Acompanhamento de conversões

Implementação

Resumo

Há três partes em uma implementação de acompanhamento de conversões:

  1. Coletar o rwg_token da página de destino / ponto de entrada do app.
  2. Persistência de rwg_token na janela de atribuição adequada
  3. Enviar um evento de conversão na finalização da compra

Essa implementação do acompanhamento de conversões não requer o uso do Google Analytics ou de qualquer outro JavaScript de terceiros.

Antes de começar a trabalhar na implementação do acompanhamento de conversões, decida se você vai acompanhar conversões no nível do dispositivo ou do usuário:

  • O nível do dispositivo inclui o uso de cookies do navegador, armazenamento local, armazenamento local do app ou qualquer outro método que possa manter o token na janela de atribuição de 30 dias. Como o token seria armazenado localmente no dispositivo do usuário, se ele mudar o dispositivo que está usando, limpar o armazenamento/cookies local ou usar o modo de navegação anônima ou o modo de navegação anônima, é possível que o evento de conversão não seja atribuído corretamente. Ao usar o acompanhamento de conversões no nível do dispositivo, é necessário implementá-lo novamente em todas as plataformas compatíveis (inclusive dispositivos móveis).
  • O nível do usuário inclui a permanência dele no banco de dados do aplicativo por meio de um sistema de análise do lado do servidor ou de outros sistemas do lado do servidor. Como o token é armazenado no lado do servidor, se o usuário mudar o dispositivo que está usando, limpar o armazenamento/cookies local ou usar o modo de navegação anônima ou de navegação anônima, o evento de conversão ainda será atribuído quando o usuário fizer login novamente. Ao usar o acompanhamento de conversões no nível do usuário, dependendo da arquitetura do sistema, é possível implementá-lo uma vez no lado do servidor e reutilizá-lo em todas as plataformas com suporte.

Como coletar o rwg_token

Sempre que o Google mostrar um action_link que você forneceu nos feeds, esse URL será modificado para incluir um parâmetro de consulta exclusivo: rwg_token. O valor rwg_token é uma string codificada que contém alguns metadados sobre o link em que o usuário clicou. Você vai armazenar esse token e enviá-lo de volta como parte do evento de conversão.

Em cada página de destino / ponto de entrada do app, você precisa analisar o valor definido para o parâmetro de consulta rwg_token e armazená-lo. Os requisitos para armazenar esse parâmetro são descritos na etapa Como manter o rwg_token.

Confira abaixo um exemplo de como esse token pode ser analisado para rastreamento no nível do dispositivo pelo navegador. Como alternativa, é possível coletar esse token no lado do servidor ao responder à solicitação:

<script>
  var query = location.search.substring(1);
  var params = query.split('&');
  var rwgToken = undefined;
  for (var i = 0; i < params.length; ++i) {
    var pair = params[i].split('=');
    if (pair[0] == 'rwg_token') {
      rwgToken = decodeURIComponent(pair[1]);
      break;
    }
  }
</script>

Manter a rwg_token

Você precisará manter o parâmetro de URL rwg_token, que será anexado a todos os links de ação fornecidos por você, por um total de 30 dias. O valor de rwg_token precisa ser armazenado e retornado sem nenhuma edição. Se houver um token existente mantido em uma visita anterior, o token antigo precisará ser substituído e a janela de 30 dias para armazenamento será redefinida.

Ao manter o token, você pode armazená-lo no nível do dispositivo ou do usuário:

  • O nível do dispositivo inclui o uso de cookies do navegador, armazenamento local, armazenamento local do app ou qualquer outro método que possa manter o token na janela de atribuição de 30 dias.
  • O nível do usuário inclui a permanência dele no banco de dados do aplicativo por meio de um sistema de análise do lado do servidor ou de outros sistemas do lado do servidor.

Veja abaixo um exemplo de acompanhamento de conversões no nível do dispositivo que armazena esse token em um navegador da Web usando um cookie primário. Neste exemplo, presumimos que você tenha analisado o valor do token em uma variável, como no exemplo acima. Para usar este exemplo, será necessário atualizar "rootdomain" para seu domínio.

<script>
  if (typeof rwg_token !== 'undefined') {
    document.cookie =
    "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
  }
</script>

Ao usar o acompanhamento de conversões no nível do usuário, o rwg_token precisa ser armazenado no servidor e associado ao usuário.

Enviar dados de conversão

Quando um usuário conclui uma transação que pode ser atribuída a um link de ação de lugar do Google, você precisa enviar uma solicitação POST HTTP para o endpoint de conversão. Há dois endpoints: um para o ambiente de produção e outro para o ambiente de sandbox.

  • Produção: https://www.google.com/maps/conversion/collect
  • Sandbox: https://www.google.com/maps/conversion/debug/collect

O corpo da postagem precisa ser um objeto codificado em json no formato:

{
  'conversion_partner_id': partnerId,
  'rwg_token': <rwg_token_val>
}

Nos ambientes sandbox e de produção, você precisa fornecer um rwg_token válido ao enviar um evento de conversão. Para fins de teste no ambiente de sandbox, use o token de teste a seguir.

ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==

Confira abaixo um exemplo completo de acompanhamento de conversões no nível do dispositivo (usando um cookie no dispositivo do usuário) em JavaScript de como fazer essa solicitação de postagem:

const partnerId = XXXXXXXXXX;
const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal
    })
  });
}

Ao usar o acompanhamento de conversões no nível do usuário, você precisa recuperar o token associado ao usuário (independentemente da plataforma em que ele está) do mecanismo de armazenamento do servidor e enviar o token usando os mesmos endpoints de produção ou sandbox.

Requisitos de atribuição de conversões

O padrão obrigatório do Google para a atribuição de conversões é uma janela de atribuição de 30 dias para qualquer interação com um link de lugar em qualquer loja.

Essa janela de atribuição significa que um evento de conversão seria enviado em qualquer um dos seguintes cenários:

  • Um usuário segue um link de ação de lugar e faz um pedido na mesma sessão
  • Um usuário segue um link de ação de lugar e retorna de um canal diferente dentro do período de 30 dias para fazer um pedido.
  • Um usuário segue um link de ação de lugar e faz um pedido em uma loja diferente, seja na mesma sessão ou em uma sessão diferente em um período de 30 dias.

Além disso, esperamos que os eventos de conversão sejam enviados de todas as plataformas que o usuário pode acessar usando um link de ação de lugar. Incluindo:

  • Aplicativos da Web para computadores ou dispositivos móveis
  • Apps para dispositivos móveis, seja por um link direto ou uma intent de app registrada para seu domínio

Se o token estiver armazenado no nível do usuário (consulte Como manter o token), é esperado que você forneça a atribuição entre dispositivos. Ou seja, um usuário que segue um link de ação no computador e conclui a transação em um dispositivo móvel (usando a mesma conta de usuário) precisa acionar um evento de conversão.

Se o token for armazenado exclusivamente no nível do dispositivo, como em cookies do navegador, não vai ser esperado que você forneça a atribuição entre dispositivos. Nesse caso, cada dispositivo teria um token separado mantido se o usuário tivesse seguido um link de ação nesse dispositivo, e cada dispositivo seguiria as regras de atribuição separadamente.