Blog de Marketing Digital de Resultados

Como automatizar relatórios do Google Analytics

Aprenda a criar um relatório automatizado que puxa as informações necessárias para uma planilha, utilizando o Google Apps Script e o Google Spreadsheet.

No Marketing Digital sabemos que conduzir um negócio sem constante análise de resultados como tráfego, cliques e conversões é como dirigir um carro com olhos vendados.

E, para essa análise, uma das melhores ferramentas disponíveis no mercado é o Google Analytics, que oferece um serviço gratuito para que você possa medir as ações realizadas pelos visitantes do seu site.

Caso você não possua muito conhecimento nessa área, temos um post apresentando as principais métricas do Google Analytics e a importância de cada uma delas para o Marketing Digital de um negócio.

Além disso, oferecemos também algumas dicas para que você possa extrair ainda mais do Google Analytics, como utilizar as dimensões na visualização dos resultados, criar metas, visualizar campanhas, monitorar eventos e realizar testes AB.

Sendo assim, temos uma ferramenta que oferece diversas análises dessas métricas, permitindo estudos com combinações de visualizações, metas, campanhas, eventos e outros. E, com toda essa informação, precisamos realizar estudos que deem suporte para as decisões do seu negócio.

Mas o problema é: esses dados são suficientes para embasar as decisões do Marketing Digital?

Em muitos casos, precisamos correlacionar visitas com campanhas veiculadas por plataformas de terceiros, como o AdRoll ou o Facebook. Ou ainda relacionar algum comportamento com um dado que existe apenas no interior de outra  plataforma, como diferenciar as visitas pelo estágio da jornada de compra dos Leads visitantes.

Então a nova pergunta é: o que fazemos se quisermos analisar dados do Google Analytics em conjunto com dados externos de forma automática?

No meu último post já tentei convencê-los do motivo pelo qual todo profissional de marketing deve aprender a programar, e a resposta à pergunta acima é mais um motivo para a afirmação do assunto desse último post.

A solução que utilizamos aqui na empresa, e que será apresentada nesse post, é criar um relatório automatizado que puxa as informações necessárias para uma planilha, utilizando o Google Apps Script e o Google Spreadsheet.

Se você está lendo com atenção até aqui, possui uma conta no Google Analytics e uma conta no Drive, então aproveite esse passo-a-passo e crie agora seu primeiro relatório.

Criando o relatório

Nesta etapa iremos configurar as ferramentas necessárias para desenvolver o relatório.

O primeiro passo é criar uma pasta para o projeto (Criei a pasta Relatório GA).

Nessa pasta, crie uma nova planilha no Drive e salve esse relatório na pasta criada.

como automatizar relatorios do google analytics (10)

Agora, devemos habilitar o Google Apps Scripts no Drive.

Para isso devemos clicar na engrenagem no canto superior direito e depois em Settings (ou Configurações, caso o Drive esteja em português).

como automatizar relatorios do google analytics (1)

Na janela que abrir, vá em Manage Apps e na parte de cima clique em connect more apps.

como automatizar relatorios do google analytics (6)

Na janela de busca, digite “script” e clique em “connect” para o Google Apps Script.
como automatizar relatorios do google analytics (8)

Então, da mesma forma que foi criada a planilha, crie um novo script na mesma pasta.

como automatizar relatorios do google analytics (9)

Habilitando a API do Google Analytics

Com o arquivo criado, devemos agora habilitar a API do Google Analytics para o script.

Para isso, no script criado, vá em “Resources” -> “Advanced Google Services”:

como automatizar relatorios do google analytics (2)

E, na janela aberta, ative o Google Analytics API.

como automatizar relatorios do google analytics (5)

Conforme vemos na mensagem, ainda precisamos habilitar o serviço no Google Developers Console. Clique no link desse aviso e no campo de busca da página de origem digite “analytics”.

como automatizar relatorios do google analytics (4)

Então selecione o Analytics API e clique em “enable”

Com isso, já temos devidamente configurado tudo o que será necessário para executar o script.

Desenvolvendo o relatório

Antes de começarmos a desenvolver, vamos entender quais serão os passos realizados pelo script para a montagem do relatório.

Neste passo-a-passo, iremos buscar as 5 páginas mais acessadas nos últimos 30 dias, listá-las em uma tabela e buscar o tráfego de cada uma delas nos 30 dias anteriores, comparando a variação em uma terceira coluna.

O relatório será montado em algumas etapas:

  1. Acessar a API do GA e extrair as páginas mais acessadas do blog;
  2. Detectar as 5 páginas mais acessadas;
  3. Buscar os acessos dessas páginas nos 30 dias anteriores;
  4. Calcular a variação no tráfego;
  5. Inserir os dados na planilha;
  6. Configurar um gatilho para executar o código periodicamente.

O próximo passo é escrever o código que irá montar o relatório. No arquivo do script, delete os códigos existentes para começarmos a desenvolver o script.

Então iremos começar utilizando a API do GA. A documentação dessa API pode ser acessada nesse link, onde podemos encontrar toda a referência para a utilização desse serviço.

Para extrair dados, utilizamos a função:

1
Analytics.Data.Ga.get(tableId, startDate, endDate, metric, options);

Onde:

  • tableId: valor referente ao perfil de acesso da conta
  • startDate: data do início do período dos dados coletados
  • endDate: data do final do período
  • metric: valores referentes às metricas que queremos analisar
  • options: objeto com algumas opções de busca, como filtro ou dimensões extras

Para auxiliar no preenchimento desses campos, temos o Query Explorer, uma ferramenta que permite experimentar e visualizar combinações desses parâmetros.

como automatizar relatorios do google analytics (7)

No exemplo acima, listamos para nossa conta (o valor do ids é preenchido automaticamente após selecionar a parte superior), para as datas do período e para a métrica de pageviews (visualizações).

Foi configurado ainda como opcional a dimensão (pagePath), ordem de listagem e o filtro (pagePath contém /blog).

Então vamos começar a inserir os primeiros códigos, configurando o período da busca:

Como a função do Analytics utiliza a formatação yyyy-MM-dd, utilizaremos uma função nativa do AppsCripts para ajustar a data que queremos para esse formato.

1
2
3
4
5
6
7
8
9
10
11
function getBlogPageviews(){

var today = new Date();
var oneMonthAgo = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000);

var startDate = Utilities.formatDate(oneMonthAgo, "GMT", 'yyyy-MM-dd');
var endDate = Utilities.formatDate(today, "GMT", 'yyyy-MM-dd');

Logger.log(startDate);
Logger.log(endDate);
}

No final desse código utilizamos o Logger, que imprime valores que podem ser lidos em View -> Logs.

Após rodar esses códigos e se certificar de que os períodos estão corretos, vamos inserir a função para coletar os dados do Analytics:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function getBlogPageviews(){

var today = new Date();
var oneMonthAgo = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000);

var startDate = Utilities.formatDate(oneMonthAgo, "GMT", 'yyyy-MM-dd');
var endDate = Utilities.formatDate(today, "GMT", 'yyyy-MM-dd');

var ids = "ga:number";
var metrics = 'ga:pageviews';

var options = {
'filters': 'ga:pagePath=@/blog/',
'dimensions': 'ga:pagePath',
'sort': '-ga:pageviews',
'max-results': '50'
};

var ssTable = [];
var report = Analytics.Data.Ga.get(ids, startDate, endDate, metrics, options);

if (report.rows) {
for (var i = 0; i < 10; i++){
ssTable.push(report.rows[i]);
Logger.log(report.rows[i]);
}
}

Logger.log(ssTable);
}

Nesse códigos, definimos variáveis para os parâmetros que definimos com o Query Explorer e criamos o objeto com as opções. Então utilizamos a função que o Apps Script oferece para acessar a API. Por fim, passamos os valores do resultado para uma tabela e imprimimos esses valores. Para inserir os resultados na planilha, inserimos o seguinte código no final da função anterior:

1
2
3
4
5
var ss = SpreadsheetApp.openByUrl( 'https://docs.google.com/spreadsheets/d/1AOIg7bkFBqYncnXL_6KSijH3bfziXglKuUWWHJXhdDg/');

var sheet = ss.getSheetByName('Sheet1');

var tableRange = sheet.getRange(1, 1, ssTable.length, ssTable[0].length); tableRange.setValues(ssTable);

Nesse código, acessamos a planilha com o SpreadsheetApp, inserindo a url da planilha criada para o projeto (insira a url da sua planilha). Com a planilha salva em uma variável, definimos qual aba será utilizada (Sheet1 no caso).

Com a aba selecionada, criamos uma variável (tableRange) com o range no qual serão inseridos os dados da tabela. Esse range é definido pela posição da primeira célula (linha e coluna) e depois com o tamanho em linhas e colunas. Esses tamanhos foram obtidos pela propriedade length da variável que contém os valores.

Agora o próximo passo é coletar os valores referentes ao mês anterior.

Para isso, repetiremos a forma com que pegamos os dados do último mês, alterando as datas de início e fim dos períodos usando uma nova data twoMonthsAgo.

1
2
3
4
var twoMonthsAgo = new Date(today.getTime() - 60 * 24 * 60 * 60 * 1000);

startDate = Utilities.formatDate(twoMonthsAgo, "GMT", 'yyyy-MM-dd');
endDate = Utilities.formatDate(oneMonthAgo, "GMT", 'yyyy-MM-dd');

E então faremos uma nova requisição para o GA:

1
report = Analytics.Data.Ga.get(ids, startDate, endDate, metrics, options);

Como esses resultados não estão ordenados da mesma forma que os anteriores, devemos realizar uma busca para cada linha da tabela que queremos analisar, da seguinte forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (report.rows) {
// iterar em cada linha da tabela que queremos montar
for (var i = 1; i <= 10; i++){

// procurar o valor relativo, se não encontrar adiciona 0
var found = false;
for (var j = 0; j < report.rows.length; j++){
if (report.rows[j][0] == ssTable[i][0]){
found = true;
ssTable[i].push(report.rows[j][1]);
ssTable[i].push(j-i+1);
}
}
if (found == false){
ssTable[i].push(0);
ssTable[i].push(99);
}
Logger.log(ssTable[i]);
}
}

Nesse código, criamos um loop que passa em cada linha e procura em todos os novos resultados se a página é a mesma. Caso seja, adiciona o valor à linha e também adiciona a variação de posição do mês anterior ao mês atual. Por último, devemos alterar a primeira linha da tabela, editando a linha onde definimos, alterando de:

1
var ssTable = [['Caminho da página', 'Visualizações']];

para:

1
var ssTable = [['Caminho da página', 'Visualizações', 'Visualizações anterior', 'Variação Posição']];

E, por último, inserir no final o código para adicionar esses novos dados na tabela (mover para o final).

1
2
3
var tableRange = sheet.getRange(1, 1, ssTable.length, ssTable[0].length);

tableRange.setValues(ssTable);

Agora rode e veja na planilha os resultados.

Automatizando

Para configurar o código para que ele seja executado periodicamente, clique no relógio do menu do Apps Scripts, apresentado na imagem a seguir.

como automatizar relatorios do google analytics (3)

Então, clique em adicionar novo trigger e selecione qual função e com que frequência deve ser executada.

Pronto, agora você tem um relatório personalizado e automatizado.

Você pode agora fazer experimentos com as queries e adaptar o código a uma necessidade específica que você precisa relatar recorrentemente.

Conclusão

Quando falamos de automação de marketing, é comum a pessoa limitar seu pensamento em autoresponders e campanhas programadas, esquecendo que que essa roda gira com base e feedbacks e análises de resultados.

A automação de relatórios é um componente essencial do funcionamento dessa máquina. O acompanhamento diário gera insights únicos que dificilmente teriam sido notados em análises de períodos maiores.

Espero ter ajudado no desenvolvimento desse relatório, e ajudado a desmistificar a programação como função de quem cursou faculdade relacionada ao tema.

Marcadores:

Deixe seu comentário