Comment BigQuery aide un spécialiste du marketing Internet: quelques astuces avec SQL et visualisation de rapports dans Google Data Studio

Igor Galichin, responsable du développement mobile chez Axmor, a expliqué au blog Netology comment un spécialiste du marketing connaissant SQL (ou avec un peu d'aide de collègues ingénieurs) peut contourner le problème du comportement des utilisateurs dans les applications Android.



L'article sera utile pour ceux qui travaillent avec des applications Android, lancent des campagnes publicitaires dans celles-ci, analysent les résultats et sont contrariés que Google Analytics ne puisse plus être utilisé à cette fin. Cet article contient des instructions sur la façon de connecter BigQuery à Firebase et d'obtenir un rendu magnifique dans Data Studio.



Axmor développe des applications mobiles depuis 2010. En 2016, l'une des plus grandes compagnies aériennes de Russie nous a commandé la révision et le développement ultérieur de son application client Android pour la vente de billets. Entre autres, nos tâches comprenaient le développement d'outils de collecte d'analyses pour les promotions qui ont lieu régulièrement à l'intérieur de l'application et la fourniture de données sous forme visuelle. 



Jusqu'en 2020, nous avons utilisé Google Analytics à ces fins - ainsi que dans nos autres applications. Mais le 4 février, la société a désactivé cette fonctionnalité et a recommandé de passer à Firebase Analytics. Il s'est avéré que ce SDK (issu du kit de développement logiciel anglais) ne fournit pas toutes les possibilités que le précédent offrait, en particulier, il ne permet pas de construire des rapports non standard.   



Quelles sont les limites de Firebase Analytics et que faire avec



Pour décrire notre expérience dans la résolution de ce problème, tournons-nous vers l'application de vente de billets d'avion. Lorsque Google Analytics a été désactivé et que Firebase Analytics est venu remplacer, nous avons été confrontés à la tâche de maintenir la même profondeur d'analyse du comportement des utilisateurs pour le client, laissant la possibilité de configurer rapidement de nouveaux rapports non standard et en même temps de fournir une belle visualisation accessible. 



Dans Google Analytics, nous avons pu voir sur quels écrans les utilisateurs se rendent, dans quelles destinations ils recherchent des billets, de quelles villes ils se trouvent, combien d'entre eux sont autorisés dans l'application et combien sont anonymes. De plus, nous avons toujours vu combien de billets ont été achetés pour chaque direction, comment les ventes pour certaines directions ont augmenté après la promotion, etc. Avec Firebase Analytics, cette deuxième statistique, dans laquelle nous pouvions analyser la conversion en détail, n'était disponible que sous sa forme brute, ce qui signifie que nous avons besoin d'un moyen de l'enrichir. 



Voici ce que nous pouvons faire dans Firebase Analytics: 



  • organiser des événements d'achat;
  • dans les paramètres, nous indiquons le nom du produit - la direction ou son identifiant et son prix;
  • puis, dans le rapport sur le site Web, nous pouvons voir combien de billets ont été vendus pour quel vol, le prix d'achat moyen, le montant total des achats effectués. 


Les informations contenues dans les illustrations ne correspondent pas aux informations réelles, tous les chiffres ont été modifiés dans l'intérêt des secrets commerciaux. Cela n'affecte pas la signification et la clarté de l'exemple, nous ne montrons essentiellement que les capacités de Firebase.






Ici, nous voyons dans quelle direction combien de billets ont été achetés par combien d'utilisateurs. Le client veut savoir, par exemple, combien il a acheté des billets pour l'itinéraire Ekaterinbourg-Moscou. Firebase Analytics ne fournit pas de telles réponses. 







Le contenu informatif du rapport est limité par l'ensemble standard de paramètres - nous ne voyons que l'image générale. 



Autre exemple d'analyse de données, qui dans notre cas n'a pas pu être totalement implémenté dans Firebase Analytics: l'application affiche des publicités internes pour les vols et les itinéraires. Le client voulait savoir combien d'utilisateurs ayant vu l'annonce avaient acheté des billets par la suite. Et, bien sûr, avec une ventilation des revenus par produit, stock, etc. Encore une fois, les outils standards ne nous ont pas donné cette opportunité. 



Comment utiliser BigQuery pour analyser les ventes dans une application Android



Nous avons commencé à chercher un moyen d'obtenir des rapports visuels rapides dans différentes sections. Dans les cas où une analyse plus approfondie des données est nécessaire, Google recommande de connecter le service Web BigQuery. Mais dans notre compréhension, c'était comme un canon sur les moineaux, car l'outil est censé fonctionner avec des données volumineuses. Cependant, après une étude détaillée de l'outil, il s'est avéré qu'il convient même pour les tâches où l'analyse d'une quantité relativement faible de données est requise, mais en même temps non standard. Bien sûr, au cours des deux dernières années, le concept de Big Data a changé - maintenant, c'est tout ce qui n'est pas pratique à traiter dans Excel.



Connexion BigQuery



La connexion de BigQuery à Firebase Analytics est simple. Sur presque toutes les pages Firebase Analytics, Google suggère de le faire. Il existe des instructions détaillées pour cela.



La seule mise en garde est que pour connecter BigQuery aux données d'événements, vous devez passer au plan de paiement Blaze dans Firebase. Cela signifie que les services Firebase vous seront facturés au fur et à mesure que vous les utilisez. D'après notre expérience, les services BigQuery sont peu coûteux lorsqu'ils sont utilisés avec précaution sur de petits projets. 



Avec un forfait gratuit via BigQuery, vous ne pouvez accéder qu'aux données Crashlytics, Predictions, Cloud Messaging et Performance Monitoring. 



Vous devez comprendre que BigQuery ne fait pas partie de Firebase Analytics. Il s'agit d'un service Google distinct conçu pour gérer de grandes quantités de données. Dans ce cas, Firebase Analytics pour BigQuery est l'une des sources de données possibles. La connexion de BigQuery vous permettra de trouver des corrélations et plus d'informations. 



Que se passe-t-il après la connexion 



Après avoir connecté BigQuery à Firebase Analytics, nous pouvons voir les données collectées sous forme brute. Nous n'avons accès aux données collectées qu'après avoir connecté BigQuery à notre projet. Si vous connectez BigQuery aujourd'hui, vous pouvez traiter les données reçues à partir d'aujourd'hui, les données d'hier ne le seront pas.



Du coup, on a tout connecté, on va à la page principale du service. Nous voyons notre projet dans les ressources. Il y a un tableau dans les données - events. Toutes les données de Firebase Analytics sont collectées ici. 







En fait, ce n'est pas une table. Les données de chaque jour sont placées dans une table avec un nom events_<>, par exemple events_20200308



Regardons les données elles-mêmes. Tous les événements de Firebase Analytics sont enregistrés dans des tableaux events_*. Chaque ligne du tableau est un événement distinct. De nombreuses colonnes représentent les paramètres d'événement: date, informations sur l'appareil, informations sur l'utilisateur, etc. Bien que les données soient affichées dans un tableau, ce n'est pas tout à fait ordinaire. Il s'agit plutôt d'une représentation tabulaire d'une structure arborescente. Voici un exemple de la structure JSON d'une ligne de table. Par souci de concision, toutes les données ne sont pas incluses dans la structure, mais l'image globale peut être comprise à partir de celle-ci:







En regardant la structure des données, vous pouvez voir qu'elle contient:



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


Bien que la structure des données semble complexe au début, elle devient plus facile en y regardant de plus près. En fin de compte, nous avons entre nos mains des informations sur tous les événements de Firebase Analytics. Et nous avons juste besoin d'en extraire les données dont nous avons besoin. 

Essayons de faire quelques demandes. Par exemple, affichons toutes les dates des événements:

    

SELECT event_date

FROM `project_name.data_set.events_20200202`


Nous verrons le résultat:







project_name.data_set.events_20200202dans ce cas, le nom d'une table spécifique, qui se compose du nom du projet, du nom de l'ensemble de données et de la table quotidienne avec les événements de Firebase Analytics. Autrement dit, dans cette requête, nous avons obtenu les dates des événements à partir du tableau dans lequel il y avait des événements pour le 2 février :) Pas très utile, mais cela fonctionnera comme un exemple de requête. En réalité, il est plus utile d'échantillonner à partir de toutes les données disponibles. Dans ce cas, vous pouvez spécifier au lieu d'une table spécifique project_name.data_set.events_*. Ajoutons de l'utilité à la demande et découvrons, par exemple, les dates et les villes des événements avec le nom "booking_purchase":

    

SELECT geo.city, event_date

FROM `project_name.data_set.events_*`

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


On a:







Seuls les champs spéciaux de la table sont intéressants: les tableaux. Par ex event_params. Il est recommandé d'utiliser l'opérateur UNNEST pour travailler avec de tels champs . Cet opérateur prend un champ de tableau et le transforme en table. 

Améliorons notre requête et affichons la valeur du paramètre "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 != ""


Résultat:







Alors qu'avons-nous ajouté. Nous avons appliqué l'opérateur UNNEST au champ event_params. En conséquence, nous avons un tableau dans lequel les lignes sont les paramètres de l'événement, et les colonnes sont les propriétés de ces paramètres. Les paramètres ont deux propriétés: clé et valeur. La valeur - un objet avec 4 champs: string_value, int_value, float_valueet double_value. Ces champs sont nécessaires pour différents types de données, car la valeur du paramètre peut être une chaîne, un entier, un flottant, un double. Ensuite, à travers la sous-requête, nous avons extrait la valeur de chaîne du paramètre avec le champ keyégal direction. C'est ainsi que vous pouvez travailler avec des champs de tableau dans une table.



Voyons ce que Firebase Analytics ne pouvait pas nous donner: une ventilation des revenus pour chaque produit vendu dans l'application:



  1. Dans Firebase Analytics, nous transmettons l'événement d'achat "booking_purchase"
  2. Dans celui-ci, nous passons deux paramètres: "direction"et "price". direction - identifiant du produit, prix - son prix.


Je voudrais savoir combien de produits ont été vendus et pour quel montant. La demande de découverte ressemble à ceci:



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


Résultat:







Nous avons obtenu les données que nous voulions. 



Comment rendre des rapports dans Data Studio



Disons qu'un client veut entrer et voir les statistiques de ventes à tout moment. Vous pouvez enregistrer la requête et indiquer au client qu'il peut accéder à la console BigQuery, exécuter la requête et voir le résultat. Mais Google propose une meilleure solution. 



Les résultats de la requête peuvent être visualisés dans le service Data Studio. Le service vous permet de présenter des données sous forme de tableaux, graphiques, diagrammes, beauté et fonctionnalités qui ne sont pas inférieurs à ceux de Firebase Analytics. Voyons comment vous pouvez faire cela.



Pour créer un rapport, vous devez accéder à la page principale du service et créer un nouveau document. Sélectionnez BigQuery comme source de données:







Le rapport peut être construit à partir d'une table, d'une vue enregistrée ou directement par requête. Cette dernière option vous permet d'utiliser des paramètres de date. En utilisant ces paramètres, vous pouvez restreindre la sélection des données par date, optimisant ainsi la quantité de données traitées. Le résultat ressemble à l'interface de Google Analytics et Firebase - à peu près les mêmes formes et fonctions. La société semble avoir pris ses meilleures pratiques en termes de visualisation et les a rendues publiques: 







Nous avons ajouté une condition pour que la sélection ne concerne que les événements survenus entre les paramètres DS_START_DATEet DS_END_DATE. Ces paramètres seront transmis à la demande directement à partir des formulaires de rapport. Nous créons un rapport et voyons immédiatement quelque chose comme ceci:







Ensuite, vous pouvez ajouter une sélection de plage de dates. Pour ce faire, ajoutez le

composant approprié au formulaire :







Les dates sélectionnées dans ce composant iront directement à la requête en tant que paramètres DS_START_DATEet DS_END_DATE. En conséquence, en mode affichage, le rapport ressemblera à ceci:







De la même manière, vous pouvez ajouter et personnaliser d'autres composants sur le formulaire - graphiques, graphiques, images, texte, etc. Après cela, le rapport peut être partagé via le partage de lien ou en donnant accès aux comptes requis.  



BiqQuery est un outil efficace à ne pas craindre



Les applications mobiles sont un puissant outil de vente et de marketing, en particulier lorsqu'elles adoptent une approche axée sur les données. Il ne faut pas avoir peur de BiqQuery, et penser que cet outil est compliqué et qu'en général, le Big Data est trop cool pour vous. BigQuery amène votre service d'analyse au niveau de Spotify, Delivery Food et d'autres géants des données et offre les mêmes performances dont ils bénéficient pour une fraction du coût avec le SQL le plus simple que tout analyste progressif doit maîtriser, que ce soit en marketing ou en marketing. dans le produit. 



Avantages de BigQuery:



  • Il est rapidement configuré et vous permet de traiter les données en quelques secondes. Pas de serveurs, pas d'infrastructure coûteuse et pas d'administrateur. 
  • , , , : , , -, CRM.
  • , — .  
  • SQL — . 
  • Data Studio, .







All Articles