Crie um relatório personalizado e gratuito para a equipe de aquisição de tráfego da sua startup (Adwords, Facebook,…)

Janngo Tech Blocked Desbloquear Seguir Seguindo 3 de janeiro Foto de Adeolu Eletu em Unsplash

Em uma inicialização, assim que sua equipe de marketing começar a adquirir algum tráfego de algumas fontes diferentes (e elas serão rápidas, apenas para testar a tração de seu produto / serviço), elas passarão mais tempo monitorando seus KPIs (impressões , cliques, orçamento gasto, sessões, conversões,…) das ferramentas de relatórios de cada canal que eles usam.

Mesmo com pouco dinheiro gasto em publicidade on-line, o esforço e o tempo necessários para monitorar e otimizar o ROI aumentam rapidamente, bem como o tempo necessário para agregar as informações que lêem nos diversos aplicativos de relatórios (Facebook Business Ads Manager, Adwords, Google Ads Express, MailChimp, Google Analytics…). Muito rapidamente, eles vão querer que algo aterre diretamente em sua ferramenta favorita: uma planilha (e, se possível, quase em tempo real …).

Neste post, descrevemos como fornecemos rapidamente uma solução flexível e totalmente gratuita para nossa equipe de marketing para eles, para analisar suas métricas de aquisição de tráfego exatamente no formato desejado.

Planilha do Google para TL, DR, Google Apps Script e APIs

A ideia básica é consultar as APIs dos vários provedores de canal com um script do Google Apps que preencha e atualize uma planilha do Google . Esse (s) script (s) pode ser programado e monitorado para ser executado regularmente a partir do pacote do Google Apps. Um bônus interessante é que não há hospedagem para gerenciar esses scripts, pois eles são executados (gratuitamente) na infraestrutura do Google Apps.

Gerar relatórios do tipo Excel para publicidade on-line do Google AdWords / Facebook

Como precisamos manter isso fácil de usar e manter para sua equipe de aquisição de tráfego, usamos a organização que descrevemos aqui.

Estruture a planilha

Fornecemos em uma única planilha os dados para todos os canais de aquisição e queremos oferecer a possibilidade de analisar cada um deles separadamente com seus próprios dados específicos ou junto com seus indicadores compartilhados.

Assim organizamos a planilha com as seguintes planilhas:

  • para cada canal, uma planilha de dados brutos : é onde seus scripts anexarão os dados toda vez que forem executados (na verdade, eles devem atualizar os dados do dia atual e do dia anterior e anexar apenas os dados no dia em que forem executados, assumindo que a granularidade de tempo que você escolhe para relatar é o dia). O objetivo é gerar aqui dados que possam ser facilmente analisados com tabelas dinâmicas. Então você terá linhas com dimensões e medidas de colunas. Para dimensões, você provavelmente terá pelo menos um identificador de campanha de marketing e a data (por conveniência, convém adicionar mais colunas de dimensões como número da semana, dia da semana, semana do ano, mês … ou qualquer outro atributo da campanha campanha que você irá extrair de uma planilha de referência ). Para as medidas, você provavelmente terá um número de impressões, cliques, o gasto total para esses cliques, várias sessões em seu site e talvez alguns valores de conversão. Evite valores calculados (como a taxa de cliques (CTR), o custo por clique (CPC), … como você não pode agregar médias, melhor deixar a planilha fazer por você em tabelas dinâmicas com o recurso de valores calculados .
  • uma planilha de dados de referência : é onde sua equipe de marketing adicionará atributos de campanhas que não podem ser extraídas das APIs do canal e podem ser usadas como dimensões na planilha de dados brutos. Por exemplo, pode ser uma coluna descrevendo o objetivo de uma campanha. Esses valores serão lidos e integrados em uma coluna da planilha de dados brutos com um vlookup.
  • uma planilha de dados brutos de todos os canais : é onde nós concatenamos o conteúdo de todas as planilhas de dados brutos (pelo menos as colunas compartilhadas). Essa planilha também é protegida (atualizada apenas pelos scripts) e um suporte para os usuários criarem tabelas dinâmicas em todos os canais (e responder a perguntas como a minha campanha do Google AdWords se compara ao Facebook esta semana em comparação com a semana anterior …)
  • Por fim, uma folha de registro de atualizações indicará a hora em que a última atualização de dados foi feita pelos seus scripts para cada um dos canais.

Alguns canais que não podem ser automatizados podem ser preenchidos manualmente pelos usuários, desde que você forneça a estrutura correta, para que seus scripts também possam mesclar os dados na planilha de dados brutos agregados.

Tudo isso permite que seus usuários criem tabelas dinâmicas, gráficos ou outras planilhas / folhas de cálculo que extraiam dados dessas planilhas de dados brutos com fórmulas de planilhas para criar análises ad hoc ou relatórios de que precisam. Para relatórios específicos que são bem especificados, pode ser mais eficiente gerar uma vez para todos os relatórios com alguns scripts ou melhor, com algo como o Google Data Studio .

Preocupações de desempenho

Os scripts do Google Apps não devem demorar muito para serem executados ou serão mortos pelo Google antes de serem concluídos (pelo menos quando estiverem agendados).

Algumas dicas:

  • um script com seu próprio agendamento por canal: cada script pode fazer várias chamadas de API, mas seu número deve ser minimizado, pois não podemos controlar quanto tempo é necessário para cada um deles
  • Ao atualizar várias células da planilha do seu script, tente minimizar o número de chamadas para Range # setValues (criar um array bidimensional em Javascript e empurrá-lo com setValues para as células da planilha é várias vezes mais rápido do que empurrar vários blocos pequenos de dados com várias chamadas setValues); talvez seja necessário pensar em como organizar suas planilhas de dados brutos para facilitar isso.

Em alguns casos, você também pode escolher entre definir um valor que foi calculado pelo seu script em uma célula ou injetar uma fórmula de planilha que será calculada no uso em tempo de execução da planilha. A primeira solução torna documentos de planilha mais rápidos e mais reativos (menos fórmulas para (re) computar dinamicamente), mas remove alguma flexibilidade para o usuário. Um caso de uso em que faz sentido injetar fórmulas é atualizar colunas com valores baseados em uma tabela de referência que o usuário pode atualizar (como atributos personalizados de uma campanha).

Confiabilidade

Como desenvolvedor do script, você provavelmente terá que monitorar se ele é executado com sucesso em sua programação. O Google Apps fornece alertas de e-mail convenientes quando o script falha. Você também pode registrar eventos no Stackdriver , mas nós não experimentamos isso.

Para seus usuários, certifique-se de que cada atualização de dados insira em algum lugar da sua planilha o último registro de data e hora de atualização de dados bem-sucedido, para que, pelo menos, em caso de dúvida, eles verifiquem se os dados estão atualizados antes de ligar para o suporte .

Com relação às APIs externas, pode ser bom implementar uma nova tentativa com back-off exponencial , apenas para garantir que seus scripts não falhem com muita facilidade se houver um problema de conectividade na API que você consultar.

Especificidades do Google Adwords (e do AdWords Express)

Para mover os dados de relatórios do Google AdWords para uma planilha do Google, o Google parece encorajar a criação de scripts no ambiente do Google AdWords . Há também uma API para consultar diretamente o Adwords . Isso funciona bem na maioria dos casos, mas não usamos essas soluções por alguns motivos:

  • empurrando do Google AdWords para uma planilha: isso não era muito consistente com o design que precisaríamos aplicar para outros canais ( extrair dados de canal de um script de planilha) e teríamos menos informações disponíveis do que consultando diretamente o Google Analytics, conforme descrito abaixo
  • Todos os dados de que precisamos estão disponíveis no Google Analytics, porque são originalmente enviados pela nossa conta do Google AdWords (que estava vinculada à nossa conta do Google Analytics )
  • todos os dados significam também os dados dos anúncios que foram configurados no Adwords Express (e os KPIs desses anúncios não pareciam estar disponíveis usando a API do Google AdWords usando os scripts "push")

Portanto, em resumo, nosso script do Google Apps consulta apenas a API do Google Analytics para obter nossos KPIs do Adwords e do Adwords Express. Criar a consulta certa é simples usando o Explorador de consultas do Google Analytics . Você provavelmente executará uma consulta semelhante a esta (e poderá verificar facilmente se os números correspondem ao que você lê nos relatórios do console do Google AdWords):

Exemplo de consulta do Google Analytics para obter dados do Google AdWords

Especificidades do Facebook

Mesmo que às vezes seja difícil encontrar onde começar sua documentação, o Facebook fornece APIs úteis para obter os dados necessários, usando a API de marketing . O melhor é começar a experimentar e refinar suas consultas de API usando o Graph Explorer . Você obterá facilmente o número de impressões por campanha, cliques, orçamento gasto e muito mais …

No entanto, para obter sessões (que serão diferentes dos cliques), tivemos que voltar a consultar o Google Analytics, conforme descrito acima. isso só funciona se seus anúncios do Facebook estiverem configurados corretamente com parâmetros utm bem definidos que você pode selecionar (por exemplo utm_source = facebook, utm_medium = paid), você terá que se alinhar com sua equipe de marketing para isso ou torná-lo scripts configuráveis.

Uma parte complicada é a autenticação: seu script do Google Apps precisará ser autorizado a consultar seus dados do Facebook sem o login interativo ou o token temporário. Felizmente, esse script ajudará você a configurar a autenticação do Oauth2, sem ter que gastar muito tempo para entender como isso funciona…

Então, para resumir: criamos um aplicativo do Facebook, que nosso script do Google Apps usa para consultar a API de marketing do Facebook e coletar métricas nas campanhas (como impressões, cliques, cliques em links, orçamento gasto por dia e por campanha). Nosso script também consulta o Google Analytics para coletar o número de sessões geradas por esses cliques (a "participação" é feita usando os parâmetros utm configurados nos URLs de destino dos anúncios do Facebook).

Outros canais

Embora ainda não tenhamos implementado outras atualizações automáticas, provavelmente seguiríamos o mesmo processo para outros canais, como e-mail, SMS, banners, retargeting, desde que forneçam uma API (para impressões, cliques e gastos com orçamento ou métricas equivalentes) e os URLs aos quais eles se conectam estão configurados com parâmetros utm corretos (para a associação ao Google Analytics).

Em alguns casos, pode não valer a pena automatizar e permitir que a equipe de marketing preencha uma planilha de modelo, de onde um script extrairá números para integrar uma análise em vários canais.

Conclusão

Existem algumas limitações óbvias com esse modelo: escalabilidade (suportar mais dados em uma planilha do Google se tornará mais e mais complicado, e um banco de dados pode ser necessário), profundidade e complexidade dos dados (realmente usamos apenas um subconjunto de dados de cada canal torna disponível),… Com o crescimento, sua equipe de aquisição de tráfego pode querer ferramentas de análise de dados cada vez mais avançadas e não ficar mais contentes com o tipo de dados brutos que essa solução fornece; é quando um switch terá que ser feito de uma solução interna personalizada para uma mais avançada (a menos que você queira reimplementar um, mas será isso que seus recursos de tecnologia devem focar?), que eles selecionarão e assumirão a propriedade. do.

Enquanto isso, se sua equipe já está acostumada a trabalhar com o Google Spreadsheet, isso pode ser uma solução rápida, barata e suficiente para uma necessidade crítica com algumas linhas de Javascript, e praticamente nenhuma operação adicional de TI funciona.

Se você gostou deste artigo, pode nos seguir no Medium ou no Twitter . Nós construímos a tecnologia para Janngo, o primeiro estúdio de Startup Social da África .