Acompanhamento de conversões

Implementação

Resumo

Uma implementação do acompanhamento de conversões é composta por três partes:

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

Para implementar o acompanhamento de conversões, você não precisa usar o Google Analytics nem qualquer outro JavaScript de terceiros.

Antes de começar a trabalhar na implementação do acompanhamento de conversões, você precisa decidir se acompanhará as 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 persistir o token para a janela de atribuição de 30 dias. Como o token seria armazenado localmente no dispositivo do usuário, se o usuário mudar o dispositivo que está usando, limpa o armazenamento local/cookies ou está usando um modo de navegação privada ou um 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 implementar isso novamente em todas as plataformas compatíveis, incluindo as móveis.
  • O nível do usuário inclui a persistência dele no banco de dados do aplicativo, por um sistema de análise do lado do servidor ou outros sistemas do lado do servidor. Como o token seria armazenado no servidor, se o usuário mudar o dispositivo que está usando, limpar os armazenamentos/cookies locais ou estiver usando um modo de navegação privada ou um modo 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 seu sistema, você pode implementar essa tag uma vez do lado do servidor e reutilizá-la em todas as plataformas compatíveis.

Coletando o rwg_token

Cada vez que o Google mostra um action_link fornecido por meio dos feeds, o URL é 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ê armazenará esse token e o retornará como parte do evento de conversão.

Em cada página de destino / ponto de entrada do app, é necessário 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 persistir o rwg_token.

Veja abaixo um exemplo de como esse token pode ser analisado para rastrear o dispositivo no navegador. Também é possível coletar esse token no 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>

Como persistir o rwg_token

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

Ao manter o token, você pode armazenar o token 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 persistir o token para a janela de atribuição de 30 dias.
  • O nível do usuário inclui persistência no banco de dados de aplicativos por um sistema de análise do lado do servidor ou 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 por meio de um cookie primário. Neste exemplo, presumimos que você analisou o valor do token em uma variável, como no exemplo acima. Para usar este exemplo, você precisará 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.

Enviando dados de conversão

Quando um usuário conclui uma transação atribuível a um link de posicionamento de ação do Google, você precisa enviar uma solicitação HTTP POST para o endpoint de conversão. Há dois endpoints: um para o ambiente de produção e outro para o ambiente do 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 de sandbox e de produção, será necessário fornecer um rwg_token válido ao enviar um evento de conversão. Para fins de teste no ambiente sandbox, use o seguinte token de teste.

ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==

Veja abaixo um exemplo completo de acompanhamento de conversões no nível do dispositivo (usando um cookie no dispositivo do usuário) em JavaScript para saber 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 superfície em que ele estiver) do mecanismo de armazenamento do lado do servidor e enviar o token usando os mesmos endpoints de produção ou sandbox.

Requisitos de atribuição da conversão

O padrão exigido pelo Google para a atribuição de conversão é 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 esperamos que um evento de conversão seja 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 outro canal dentro da janela de 30 dias para fazer um pedido.
  • Um usuário segue um link de ação de lugar e, em seguida, faz um pedido em outra loja, seja na mesma sessão ou em outra sessão em uma janela de 30 dias.

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

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

Se o token for armazenado no nível do usuário (veja como persistir), é esperado que você forneça a atribuição em dispositivos diferentes. Ou seja, um usuário que segue um link de ação do computador e, em seguida, conclui a transação em um dispositivo móvel (usando a mesma conta de usuário) deve acionar um evento de conversão.

Se o token for armazenado exclusivamente no nível do dispositivo, como em cookies do navegador, não é 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 no dispositivo, e cada dispositivo seguiria as regras de atribuição separadamente.