Cómo ayuda BigQuery a un comercializador de Internet: algunos trucos con SQL y visualización de informes en Google Data Studio

Igor Galichin, jefe de desarrollo móvil de Axmor, comentó en el blog de Netology cómo un especialista en marketing con conocimientos de SQL (o con un poco de ayuda de otros ingenieros) puede solucionar el problema de proporcionar comportamiento de usuario en aplicaciones de Android.



El artículo es útil para quienes trabajan con aplicaciones de Android, lanzan campañas publicitarias en ellas, analizan los resultados y están molestos porque Google Analytics ya no se puede usar para esto. El artículo contiene instrucciones sobre cómo conectar BigQuery a Firebase y renderizar a la perfección en Data Studio.



Axmor ha estado desarrollando aplicaciones móviles desde 2010. En 2016, una de las aerolíneas más importantes de Rusia nos encargó la revisión y posterior desarrollo de su aplicación cliente Android para la venta de billetes. Entre otras cosas, nuestras tareas incluyeron el desarrollo de herramientas para la recopilación de análisis de promociones, que se realizan regularmente dentro de la aplicación, y proporcionar datos de forma visual. 



Hasta 2020, utilizamos Google Analytics para estos fines, así como en nuestras otras aplicaciones. Pero el 4 de febrero, la corporación desactivó esta función y recomendó cambiar a Firebase Analytics. Resultó que este SDK (del kit de desarrollo de software en inglés) no brinda todas las posibilidades que brindaba el anterior, en particular, no permite construir informes no estándar.   



¿Cuáles son las limitaciones de Firebase Analytics y qué hacer con ellas?



Para describir nuestra experiencia en la solución de este problema, pasemos a la aplicación para la venta de boletos aéreos. Cuando Google Analytics se desactivó y Firebase Analytics vino a reemplazarlo, nos enfrentamos a la tarea de mantener la misma profundidad de análisis del comportamiento del usuario para el cliente, dejando la capacidad de configurar rápidamente nuevos informes no estándar y al mismo tiempo proporcionar una hermosa visualización accesible. 



En Google Analytics pudimos ver a qué pantallas se dirigen los usuarios, qué destinos buscan los billetes, de qué ciudades se encuentran, cuántos de ellos están autorizados en la aplicación y cuántos son anónimos. Además, siempre vimos cuántos boletos se compraron para cada dirección, cómo aumentaron las ventas para ciertas direcciones después de la promoción, etc. Con Firebase Analytics, esta segunda pieza de estadísticas, en la que pudimos analizar la conversión en detalle, solo estaba disponible en su forma sin procesar, lo que significa que necesitamos una forma de enriquecerla. 



Esto es lo que podemos hacer en Firebase Analytics: 



  • organizar eventos de compra;
  • en los parámetros indicamos el nombre del producto: la dirección o su identificador y precio;
  • luego, en el informe en el sitio web, podemos ver cuántos boletos se vendieron para qué vuelo, el precio promedio de compra, cuántas compras totales se realizaron. 


La información de las ilustraciones no se corresponde con las reales; todas las cifras se han modificado en interés de los secretos comerciales. Esto no afecta el significado y la claridad del ejemplo, básicamente solo mostramos las capacidades de Firebase.






Aquí vemos para qué dirección cuántas entradas han comprado cuántos usuarios. El cliente quiere saber, por ejemplo, cuánto compró billetes para la ruta Ekaterimburgo-Moscú. Firebase Analytics no proporciona tales respuestas. 







El contenido de información del informe está limitado por el conjunto estándar de parámetros; solo vemos la imagen general. 



Otro ejemplo de análisis de datos, que en nuestro caso no se pudo implementar por completo en Firebase Analytics: la aplicación muestra anuncios internos para vuelos e indicaciones. El cliente quería saber cuántos usuarios que vieron el anuncio compraron entradas posteriormente. Y, por supuesto, con un desglose de los ingresos por materias primas, acciones, etc. Una vez más, las herramientas estándar no nos dieron esta oportunidad. 



Cómo usar BigQuery para analizar las ventas dentro de una aplicación de Android



Comenzamos a buscar una forma de obtener informes visuales rápidos en diferentes secciones. En los casos en que se necesite un análisis de datos más profundo, Google aconseja conectar el servicio web de BigQuery. Pero a nuestro entender, fue como un cañón sobre los gorriones, porque se dice que la herramienta funciona con big data. Sin embargo, tras un estudio detallado de la herramienta, resultó que es adecuada incluso para tareas donde se requiere el análisis de una cantidad relativamente pequeña de datos, pero al mismo tiempo no estándar. Sin duda, en los últimos años, el concepto de Big Data ha cambiado; ahora es todo lo que es inconveniente de procesar en Excel.



Conexión de BigQuery



Conectar BigQuery a Firebase Analytics es simple. En casi todas las páginas de Firebase Analytics, Google sugiere hacer esto. Hay instrucciones detalladas para esto.



La única advertencia es que para conectar BigQuery a los datos de eventos, debe cambiar al plan de pago Blaze en Firebase. Esto significa que se le cobrará por los servicios de Firebase a medida que los use. Según nuestra experiencia, los servicios de BigQuery son económicos cuando se utilizan con cuidado en proyectos pequeños. 



Con un plan gratuito a través de BigQuery, solo puede acceder a los datos de Crashlytics, Predictions, Cloud Messaging y Performance Monitoring. 



Debe comprender que BigQuery no forma parte de Firebase Analytics. Este es un servicio de Google separado diseñado para manejar grandes cantidades de datos. En este caso, Firebase Analytics para BigQuery es una de las posibles fuentes de datos. Conectar BigQuery le permitirá encontrar correlaciones y más información. 



Que pasa despues de conectar 



Después de conectar BigQuery a Firebase Analytics, podemos ver los datos que se recopilan en forma sin procesar. Solo obtenemos acceso a los datos que se recopilaron después de que BigQuery se conectó a nuestro proyecto. Si conecta BigQuery hoy, puede procesar los datos que se recibieron a partir de hoy, pero los datos de ayer no lo serán.



Entonces, conectamos todo, vamos a la página principal del servicio. Vemos nuestro proyecto en recursos. Hay una tabla en los datos - events. Todos los datos de Firebase Analytics se recopilan aquí. 







De hecho, esta no es una mesa. Los datos de cada día se colocan en la tabla llamada events_<>, por ejemplo events_20200308



Veamos los datos en sí. Todos los eventos de Firebase Analytics se registran en tablas events_*. Cada fila de la tabla es un evento independiente. Numerosas columnas representan parámetros de eventos: fecha, información del dispositivo, información del usuario, etc. Aunque los datos se muestran en una tabla, no es del todo normal. Es más bien una representación tabular de una estructura de árbol. A continuación se muestra un ejemplo de estructura JSON de una fila de tabla. Por brevedad, no todos los datos están incluidos en la estructura, pero la imagen general se puede entender a partir de ella:







Al observar la estructura de datos, puede ver que contiene:



  • . , - . : event_date, event_timestamp, event_name.
  • -. , , event_params user_properties. — . . — --. ,
  • -. — device. . — device.category, device.operating_system device.operating_system_version.


Si bien la estructura de datos parece compleja al principio, se vuelve más fácil si se examina más de cerca. En última instancia, tenemos información sobre todos los eventos de Firebase Analytics en nuestras manos. Y solo necesitamos extraer los datos que necesitamos de él. 

Intentemos hacer algunas solicitudes. Por ejemplo, mostremos todas las fechas de los eventos:

    

SELECT event_date

FROM `project_name.data_set.events_20200202`


Veremos el resultado:







project_name.data_set.events_20200202en este caso, el nombre de una tabla específica, que consta del nombre del proyecto, el nombre del conjunto de datos y la tabla diaria con eventos de Firebase Analytics. Es decir, en esta consulta obtuvimos las fechas de eventos de la tabla en la que hubo eventos para el 2 de febrero :) No es muy útil, pero como ejemplo de consulta servirá. En realidad, es más útil tomar muestras de todos los datos disponibles. En este caso, puede especificar en lugar de una tabla específica project_name.data_set.events_*. Agreguemos utilidad a la solicitud y averigüemos, por ejemplo, las fechas y ciudades de eventos con el nombre "booking_purchase":

    

SELECT geo.city, event_date

FROM `project_name.data_set.events_*`

WHERE event_name = "booking_purchase" and geo.city != ""


Obtenemos:







Solo son de interés los campos especiales en la tabla: matrices. Ej event_params. Se recomienda utilizar el operador UNNEST para trabajar con dichos campos . Este operador toma un campo de matriz y lo convierte en una tabla. 

Mejoremos nuestra consulta y visualicemos el valor del parámetro "direction":

    

SELECT 
geo.city, 
event_date,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
    	
FROM
`project_name.data_set.events_*`
    	
WHERE
event_name = "booking_purchase" and geo.city != ""


Resultado:







Entonces, ¿qué hemos agregado? Hemos aplicado el operador UNNEST al campo event_params. Como resultado, obtuvimos una tabla en la que las líneas son los parámetros del evento y las columnas son las propiedades de estos parámetros. Los parámetros tienen dos propiedades: clave y valor. valor - un objeto con 4 campos: string_value, int_value, float_valuey double_value. Estos campos son necesarios para diferentes tipos de datos, porque el valor del parámetro puede ser una cadena, int, float, double. Luego, a través de la subconsulta, sacamos el valor de cadena del parámetro con el campo keyigual direction. Así es como puede trabajar con campos de matriz en una tabla.



Veamos lo que Firebase Analytics no pudo brindarnos: un desglose de los ingresos de cada producto vendido en la aplicación:



  1. En Firebase Analytics, pasamos el evento de compra "booking_purchase"
  2. En él, pasamos dos parámetros: "direction"y "price". dirección - identificador del producto, precio - su precio.


Me gustaría saber cuántos productos se vendieron y por qué cantidad. La solicitud para averiguarlo se ve así:



SELECT
  	
direction,
  	
count(direction) as count,
  	
sum(price) as total_sum
FROM
(
    	
SELECT
      	
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
      	
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "price") AS price
    	
FROM
        	
`project_name.data_set.events_*`
    	
WHERE
      	
event_name = "booking_purchase"
      	
)
group by direction
order by total_sum desc


Resultado:







Obtuvimos los datos que queríamos. 



Cómo renderizar informes en Data Studio



Digamos que un cliente quiere entrar y ver estadísticas de ventas en cualquier momento. Puede guardar la consulta y decirle al cliente que puede ir a la consola de BigQuery, ejecutar la consulta y ver el resultado. Pero Google ofrece una mejor solución. 



Los resultados de la consulta se pueden visualizar en el servicio Data Studio. El servicio le permite presentar datos en forma de tablas, gráficos, diagramas, belleza y funcionalidad que no son inferiores a los de Firebase Analytics. Veamos cómo puedes hacer esto.



Para crear un informe, debe ir a la página principal del servicio y crear un nuevo documento. Seleccione BigQuery como fuente de datos:







El informe se puede crear a partir de una tabla, una vista guardada o directamente mediante una consulta. La última opción le permite utilizar parámetros de fecha. Con estos parámetros, puede limitar la selección de datos por fecha, optimizando así la cantidad de datos procesados. El resultado se parece a la interfaz de Google Analytics y Firebase, aproximadamente las mismas formas y funciones. La corporación parecía haber tomado sus mejores prácticas en términos de visualización y las puso a disposición del público: 







Agregamos una condición para que la selección fuera solo para aquellos eventos que ocurrieron entre los parámetros DS_START_DATEy DS_END_DATE. Estos parámetros se pasarán a la solicitud directamente desde los formularios de informe. Creamos un informe e inmediatamente vemos algo como esto:







A continuación, puede agregar una selección de rango de fechas. Para hacer esto, agregue el

componente apropiado al formulario :







Las fechas seleccionadas en este componente irán directamente a la consulta como parámetros DS_START_DATEy DS_END_DATE. Como resultado, en el modo de visualización, el informe se verá así:







De la misma manera, puede agregar y personalizar otros componentes en el formulario: gráficos, tablas, imágenes, texto, etc. Después de eso, el informe se puede compartir mediante el uso compartido de enlaces o proporcionando acceso a las cuentas requeridas.  



BiqQuery es una herramienta eficaz que no debe temer



Las aplicaciones móviles son una poderosa herramienta de ventas y marketing, especialmente cuando adoptan un enfoque basado en datos. No debes tenerle miedo a BiqQuery y pensar que esta herramienta es complicada y, en general, Big Data es demasiado genial para ti. BigQuery lleva su departamento de análisis al nivel de Spotify, Delivery Food y otros gigantes de datos y ofrece el mismo rendimiento que disfrutan por una fracción del costo con el SQL más simple que todo analista progresista debe dominar, ya sea en marketing o marketing. en el producto. 



Beneficios de BigQuery:



  • Se configura rápidamente y le permite procesar datos en cuestión de segundos. Sin servidores, sin infraestructura costosa y sin administrador. 
  • , , , : , , -, CRM.
  • , — .  
  • SQL — . 
  • Data Studio, .







All Articles