Como o BigQuery ajuda um profissional de marketing na Internet: alguns truques com SQL e visualização de relatórios no Google Data Studio

Igor Galichin, chefe de desenvolvimento móvel da Axmor, disse ao blog Netology sobre como um profissional de marketing com conhecimento de SQL (ou com uma pequena ajuda de outros engenheiros) pode contornar o problema de fornecer o comportamento do usuário em aplicativos Android.



O artigo é útil para quem trabalha com aplicativos Android, lança campanhas publicitárias neles, analisa os resultados e fica chateado porque o Google Analytics não pode mais ser usado para isso. O artigo contém instruções sobre como conectar o BigQuery ao Firebase e renderizar perfeitamente no Data Studio.



Axmor desenvolve aplicativos móveis desde 2010. Em 2016, uma das maiores companhias aéreas da Rússia nos pediu para revisar e desenvolver ainda mais seu aplicativo cliente Android para venda de passagens. Entre outras coisas, nossas tarefas incluíram o desenvolvimento de ferramentas de coleta de análises para promoções, que acontecem regularmente dentro do aplicativo, e o fornecimento de dados de forma visual. 



Até 2020, usávamos o Google Analytics para esses fins - bem como em nossos outros aplicativos. Porém, em 4 de fevereiro, a corporação desativou esse recurso e recomendou a mudança para o Firebase Analytics. Descobriu-se que este SDK (do kit de desenvolvimento de software em inglês) não oferece todos os recursos que o anterior fornecia, em particular, não permite a construção de relatórios não padronizados.   



Quais são as limitações do Firebase Analytics e o que fazer com elas



Para descrever nossa experiência na solução desse problema, vamos voltar ao aplicativo de venda de passagens aéreas. Quando o Google Analytics foi desativado e o Firebase Analytics veio para substituí-lo, nos deparamos com a tarefa de preservar a mesma profundidade da análise do comportamento do usuário para o cliente, deixando a capacidade de configurar rapidamente novos relatórios não padrão e, ao mesmo tempo, fornecendo uma bela visualização acessível. 



No Google Analytics, pudemos ver para quais telas os usuários vão, para quais destinos procuram os ingressos, de quais cidades estão, quantas delas estão autorizadas no aplicativo e quantas são anônimas. Além disso, sempre vimos quantos ingressos foram comprados para cada direção, como as vendas para certas direções aumentaram após a promoção e assim por diante. Com o Firebase Analytics, essa segunda estatística, na qual poderíamos analisar a conversão em detalhes, estava disponível apenas em sua forma bruta, o que significa que precisamos de uma forma de enriquecê-la. 



Aqui está o que podemos fazer no Firebase Analytics: 



  • configurar eventos de compra;
  • nos parâmetros indicamos o nome do produto - a direção ou seu identificador e preço;
  • a seguir, no relatório do site, podemos ver quantos bilhetes foram vendidos para cada voo, o preço médio de compra, quanto foi feito o total de compras. 


As informações nas ilustrações não correspondem às reais, todas as figuras foram alteradas no interesse dos segredos comerciais. Isso não afeta o significado e a clareza do exemplo, basicamente mostramos apenas os recursos do Firebase.






Aqui vemos em qual direção quantos ingressos foram comprados por quantos usuários. O cliente quer saber, por exemplo, quanto comprou passagens para a rota Ecaterimburgo-Moscou. O Firebase Analytics não fornece essas respostas. 







O conteúdo das informações do relatório é limitado pelo conjunto padrão de parâmetros - vemos apenas a imagem geral. 



Outro exemplo de análise de dados, que em nosso caso não pôde ser totalmente implementado no Firebase Analytics: o aplicativo exibe anúncios internos de voos e rotas. O cliente queria saber quantos usuários que visualizaram o anúncio compraram ingressos posteriormente. E, é claro, com um detalhamento da receita por commodity, estoque e assim por diante. Novamente, as ferramentas padrão não nos deram essa oportunidade. 



Como usar o BigQuery para analisar vendas dentro de um aplicativo Android



Começamos a procurar uma maneira de obter relatórios visuais rápidos em diferentes seções. Nos casos em que uma análise de dados mais profunda é necessária, o Google recomenda conectar o serviço da web do BigQuery. Mas, em nosso entendimento, era como um canhão nos pardais, porque se diz que a ferramenta funciona com big data. No entanto, após um estudo detalhado da ferramenta, descobriu-se que ela é adequada até mesmo para tarefas onde a análise de uma quantidade relativamente pequena de dados é necessária, mas ao mesmo tempo não padronizada. Com certeza, nos últimos anos, o conceito de Big Data mudou - agora é tudo o que é inconveniente para processar no Excel.



Conexão do BigQuery



Conectar o BigQuery ao Firebase Analytics é simples. Em quase todas as páginas do Firebase Analytics, o Google sugere fazer isso. Existem instruções detalhadas para isso.



A única ressalva é que, para conectar o BigQuery aos dados do evento, você precisa mudar para o plano de pagamento Blaze no Firebase. Isso significa que você será cobrado pelos serviços do Firebase à medida que os usar. Em nossa experiência, os serviços do BigQuery são baratos quando usados ​​com cuidado em projetos pequenos. 



Em um plano gratuito por meio do BigQuery, você só pode acessar dados do Crashlytics, Predictions, Cloud Messaging e Performance Monitoring. 



Você precisa entender que o BigQuery não faz parte do Firebase Analytics. É um serviço separado do Google, projetado para lidar com grandes quantidades de dados. Nesse caso, Firebase Analytics for BigQuery é uma das fontes de dados possíveis. Conectar o BigQuery permitirá que você encontre correlações e mais insights. 



O que acontece depois de conectar 



Depois de conectar o BigQuery ao Firebase Analytics, podemos ver os dados coletados na forma bruta. Só temos acesso aos dados que foram coletados depois de conectar o BigQuery ao nosso projeto. Se você conectar o BigQuery hoje, poderá processar os dados recebidos a partir de hoje, os dados de ontem não serão.



Então, conectamos tudo, vamos para a página principal do serviço. Vemos nosso projeto em recursos. Há uma tabela nos dados - events. Todos os dados do Firebase Analytics são coletados aqui. 







Na verdade, esta não é uma mesa. Os dados de cada dia são colocados em uma tabela com um nome events_<>, por exemplo events_20200308



Vejamos os próprios dados. Todos os eventos do Firebase Analytics são registrados em tabelas events_*. Cada linha da tabela é um evento separado. Numerosas colunas representam os parâmetros do evento: data, informações do dispositivo, informações do usuário e assim por diante. Embora os dados sejam exibidos em uma tabela, não são totalmente comuns. É mais uma representação tabular de uma estrutura em árvore. Abaixo está um exemplo de estrutura JSON de uma linha de tabela. Para resumir, nem todos os dados estão incluídos na estrutura, mas o quadro geral pode ser entendido a partir dela:







Olhando a estrutura de dados, você pode ver que ela contém:



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


Embora a estrutura de dados pareça complexa no início, torna-se mais fácil em uma inspeção mais detalhada. Em última análise, temos informações sobre todos os eventos do Firebase Analytics em nossas mãos. E só precisamos retirar os dados de que precisamos. 

Vamos tentar fazer alguns pedidos. Por exemplo, vamos exibir todas as datas dos eventos:

    

SELECT event_date

FROM `project_name.data_set.events_20200202`


Veremos o resultado:







project_name.data_set.events_20200202neste caso, o nome de uma tabela específica, que consiste no nome do projeto, no nome do conjunto de dados e na tabela diária com eventos do Firebase Analytics. Ou seja, nesta consulta, tiramos as datas dos eventos da tabela em que ocorreram eventos do dia 2 de fevereiro :) Não é muito útil, mas servirá como exemplo de consulta. Na realidade, é mais útil obter uma amostra de todos os dados disponíveis. Nesse caso, você pode especificar em vez de uma tabela específica project_name.data_set.events_*. Vamos adicionar utilidade ao pedido e descobrir, por exemplo, as datas e cidades dos eventos com o nome "booking_purchase":

    

SELECT geo.city, event_date

FROM `project_name.data_set.events_*`

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


Nós temos:







De interesse são apenas os campos especiais na tabela - arrays. Ex event_params. Recomenda-se usar o operador UNNEST para trabalhar com esses campos . Este operador pega um campo de array e o transforma em uma tabela. 

Vamos melhorar nossa consulta e exibir o valor do 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:







Então, o que adicionamos. Aplicamos o operador UNNEST ao campo event_params. Como resultado, obtivemos uma tabela na qual as linhas são os parâmetros do evento e as colunas são as propriedades desses parâmetros. Os parâmetros têm duas propriedades: chave e valor. valor - um objeto com 4 campos: string_value, int_value, float_valuee double_value. Esses campos são necessários para diferentes tipos de dados, porque o valor do parâmetro pode ser uma string, int, float, double. Então, por meio da subconsulta, extraímos o valor da string do parâmetro com o campo keyigual direction. É assim que você pode trabalhar com campos de array em uma tabela.



Vamos ver o que o Firebase Analytics não pode nos dar - um detalhamento da receita para cada produto vendido no aplicativo:



  1. No Firebase Analytics, aprovamos o evento de compra "booking_purchase"
  2. Nele, passamos dois parâmetros: "direction"e "price". direção - identificador do produto, preço - seu preço.


Gostaria de saber quantos produtos foram vendidos e em que quantidade. A solicitação para descobrir é assim:



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:







Conseguimos os dados que queríamos. 



Como renderizar relatórios no Data Studio



Digamos que um cliente queira entrar e ver as estatísticas de vendas a qualquer momento. Você pode salvar a consulta e dizer ao cliente que ele pode acessar o console do BigQuery, executar a consulta e ver o resultado. Mas o Google oferece uma solução melhor. 



Os resultados da consulta podem ser visualizados no serviço Data Studio. O serviço permite apresentar dados na forma de tabelas, gráficos, diagramas, beleza e funcionalidade que não são inferiores aos do Firebase Analytics. Vamos ver como você pode fazer isso.



Para criar um relatório, você precisa ir até a página principal do serviço e criar um novo documento. Selecione BigQuery como fonte de dados:







O relatório pode ser criado a partir de uma tabela, visualização salva ou diretamente por consulta. A última opção permite usar parâmetros de data. Usando esses parâmetros, você pode limitar a seleção de dados por data, otimizando assim a quantidade de dados processados. O resultado lembra a interface do Google Analytics e Firebase - quase os mesmos formulários e funções. A corporação parecia ter tomado suas melhores práticas em termos de visualização e as disponibilizado publicamente: 







Adicionamos uma condição para que a seleção fosse apenas para aqueles eventos que ocorressem entre os parâmetros DS_START_DATEe DS_END_DATE. Esses parâmetros serão passados ​​para a solicitação diretamente dos formulários de relatório. Criamos um relatório e imediatamente vemos algo assim:







Em seguida, você pode adicionar uma seleção de intervalo de datas. Para fazer isso, adicione o

componente apropriado ao formulário :







As datas selecionadas neste componente irão diretamente para a consulta como parâmetros DS_START_DATEe DS_END_DATE. Como resultado, no modo de visualização, o relatório terá a seguinte aparência:







Da mesma forma, você pode adicionar e personalizar outros componentes no formulário - gráficos, tabelas, imagens, texto e assim por diante. Depois disso, o relatório pode ser compartilhado por meio do compartilhamento de link ou fornecendo acesso às contas necessárias.  



BiqQuery é uma ferramenta eficaz a não ser temida



Os aplicativos móveis são uma ferramenta poderosa de vendas e marketing, especialmente quando adotam uma abordagem baseada em dados. Você não deve ter medo do BiqQuery e pensar que essa ferramenta é complicada e, em geral, Big Data é muito legal para você. O BigQuery elevará seu departamento de análise ao nível de Spotify, Delivery Food e outros gigantes de dados e fornecerá o mesmo desempenho de que desfrutam, por uma fração do custo, com o SQL mais simples que todo analista progressivo deve dominar, seja em marketing ou marketing. no produto. 



Benefícios do BigQuery:



  • Ele é configurado rapidamente e permite que você processe dados em questão de segundos. Sem servidores, sem infraestrutura cara e sem administrador. 
  • , , , : , , -, CRM.
  • , — .  
  • SQL — . 
  • Data Studio, .







All Articles