Correspondência de cookie

É o processo em que um anunciante ou fornecedor associa os cookies nos domínios dele aos do Google. Com isso, é possível conectar seus dados próprios a dados de anúncios do Google (rastreados pelo Display & Video 360 e Campaign Manager 360), incorporar dados de CRM e entender melhor o comportamento dos usuários. Ao combinar esses dados com agrupamentos centrados na privacidade, você consegue:

  • Segmentar públicos-alvo com base em itens específicos abandonados nos carrinhos de compras por pessoas que interagiram com seus anúncios e domínio
  • Determinar quais anúncios levam a sessões mais longas no seu domínio
  • Analisar o histórico de compras associado aos dados pós-campanha

Limitações e privacidade do usuário final

A correspondência de cookies é eficiente, mas tem algumas limitações:

  • Não é permitido agrupar tabelas *_match e não *_match.
  • Você e o Google precisam executar trabalho de engenharia.
  • Você provavelmente não vai conseguir fazer a correspondência de todos os seus dados de anúncios do Google. As taxas de correspondência estão sujeitas a vários fatores, variam de acordo com o caso de uso e a configuração do cliente, e costumam ser menores do que o esperado. A correspondência de cookies só é usada quando os usuários interagem com seus anúncios e domínio.
  • O Google começa a preencher suas tabelas de correspondências quando elas são configuradas. Dependendo da frequência com que os usuários acessam seu site e recebem seu pixel, pode levar meses até que essas tabelas incluam dados completos e estáveis sobre eles.
  • Você não conseguirá associar usuários individuais a vários dispositivos, a menos que conecte os usuários a esses dispositivos de alguma maneira.
  • Não é possível associar um único usuário usando vários cookies, como acontece quando alguém limpa os cookies.
  • As tarefas executadas em tabelas de correspondências estão sujeitas aos mesmos requisitos de agregação válidos no Ads Data Hub. Uma baixa taxa de correspondência combinada a visitas não frequentes ao seu domínio dificulta a coleta de dados devido ao efeito conjunto das taxas de correspondência e dos requisitos de agregação1.
  • De acordo com as políticas do Google sobre privacidade do usuário final:
    • É proibido associar os dados com e sem login de um usuário.
    • Não é possível associar dados a usuários que desativaram a personalização de anúncios.
  • Para eventos do iOS, só é possível associar dados originados de apps no iOS 14.5 ou versões mais recentes com permissão dos usuários, conforme a App Tracking Transparency da Apple.

Para conseguir usar seus dados próprios no Ads Data Hub, você precisa confirmar que obteve o consentimento necessário para compartilhar dados dos usuários finais do EEE com o Google conforme a Política de consentimento de usuários da União Europeia e a política do Ads Data Hub. Essa exigência vale para cada conta do Ads Data Hub e precisa ser atualizada toda vez que você faz upload de novos dados próprios. Qualquer usuário pode fazer essa confirmação em nome da conta como um todo.

As mesmas regras para consultas dos Serviços do Google aplicáveis às consultas de análises também valem para as pesquisas de correspondência de cookie. Por exemplo, não é possível realizar consultas entre serviços envolvendo usuários que estejam no EEE na hora de criar uma tabela de correspondência.

Para saber como confirmar o consentimento no Ads Data Hub, consulte Requisitos de conhecimento no Espaço Econômico Europeu.

Para o Google preencher suas tabelas de correspondências, implante uma tag de correspondência em todas as páginas do seu domínio em que você queira associar dados de publicidade. Considere as metas de publicidade na hora de inserir o pixel. Por exemplo, para fazer correspondência com todos os usuários que visitam seu domínio, é preciso implementar pixels em quase todas as páginas. Se quiser associar usuários que fizeram conversões, insira o pixel em uma página de conversão. Em geral, quanto mais páginas tiverem pixels, maiores serão as taxas de correspondência.

A tag de correspondência é um pixel 1 x 1 transparente contendo o ID do perfil da correspondência do cookie e um ID do cookie ou do usuário codificado:

<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />

Essa tag inicia a comunicação entre você e os serviços de correspondência de cookie do Google.

Perspectiva geral explicativa

  1. Alguém visita uma página com uma tag de correspondência.
  2. Essa tag dispara uma série de redirecionamentos aos serviços de correspondência do Google Marketing Platform, do Google Ads e do YouTube. As solicitações contêm o ID do usuário ou o cookie do site, além do cookie do Google em cada um dos espaços de ID do serviço correspondente.
  3. Um pixel 1 x 1 transparente é retornado ao navegador para confirmar que a solicitação foi atendida.

O diagrama abaixo mostra esse processo:

Imagem mostrando vários redirecionamentos entre o navegador e os serviços correspondentes

Configuração

Para configurar a correspondência de cookie no Ads Data Hub:

  1. Informe o representante da sua conta sobre seu interesse na correspondência de cookie. Ele vai conversar sobre suas metas e dar mais informações sobre a implantação do pixel de rastreamento no seu domínio.
  2. Os especialistas do Ads Data Hub vão iniciar outra conversa sobre os requisitos técnicos e casos de uso.
  3. Enquanto você implanta o pixel de rastreamento e o endpoint de erro, o Google cria suas tabelas de correspondências.

Nenhuma outra ação é necessária depois que você conclui essas etapas. O Google vai preencher as tabelas de correspondências todos os dias2. Espere o tempo necessário até que sua tabela contenha dados suficientes para fornecer correspondências significativas e atender aos requisitos de agregação. Isso depende da frequência de visitas no seu site. Uma página que recebe visitantes todos os dias chega a esse ponto mais rápido do que outra com visitas mensais. À medida que o número de novas correspondências diminuir, suas tabelas de correspondências vão mostrar dados mais abrangentes.

Consultar as tabelas de correspondências

Quando as tabelas de correspondências tiverem dados suficientes para atender às verificações de privacidade, você poderá fazer consultas nelas.

Cada tabela no esquema do Ads Data Hub que contém um campo user_id é acompanhada por uma tabela *_match. Por exemplo, na tabela adh.google_ads_impressions, o Ads Data Hub gera uma tabela de correspondências chamada adh.google_ads_impressions_match, que inclui seus IDs de usuários. Tabelas de correspondências separadas são criadas para tabelas isoladas por política. Por exemplo, na tabela adh.google_ads_impressions_policy_isolated_youtube, o Ads Data Hub gera uma tabela de correspondências chamada adh.google_ads_impressions_policy_isolated_youtube_match, que contém seus IDs de usuários.

Elas têm um subconjunto dos usuários disponíveis nas tabelas originais, com uma correspondência em user_id. Por exemplo, se a tabela original tiver dados do Usuário A e do Usuário B, mas só o Usuário A for correspondido, o Usuário B não vai estar na tabela de correspondências.

As tabelas de correspondências contêm uma coluna extra chamada external_cookie, que armazena seu cookie como BYTES.

É importante considerar o tipo do campo na hora de criar suas consultas. Os operadores de comparação do SQL esperam que os literais comparados sejam do mesmo tipo. Dependendo de como o user_id é armazenado na sua tabela de dados próprios, é necessário codificar os valores nela antes de fazer a correspondência dos dados. É necessário transmitir a chave de mesclagem em BYTES para encontrar correspondências:

JOIN ON
  adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)

Além disso, as comparações de strings no SQL consideram maiúsculas e minúsculas. Então, pode ser necessário codificar as strings em ambos os lados da comparação.

Codificar IDs dos usuários

Codificar IDs dos usuários no lado do cliente

Para que diferentes formatos de ID sejam transmitidos com segurança por URL, todos os IDs precisam ser codificados em Base64 com segurança de URL antes do envio. O ID decodificado em Base64 seguro para URLs vai ser disponibilizado no Ads Data Hub no campo external_cookie. Portanto, você terá que desfazer as transformações aplicadas antes da codificação para derivar o ID original.

Se o ID sempre tiver até 24 caracteres (ou bytes), você poderá incluir o ID codificado em Base64 seguro para URL em um pixel, como mostra o exemplo 1. Transforme os IDs com mais de 24 caracteres (ou bytes) em uma representação com até 24 bytes. Em alguns casos (como o GUID no exemplo 2), basta converter para a representação em bytes. Em outros, pode ser necessário enviar ao Google um subconjunto (ou hash) do ID. Seja qual for a situação, vai ser preciso escrever um agrupamento SQL para converter o ID na sua tabela primária da mesma forma.

Exemplo 1

O limite de 24 bytes é permanente para o valor do ID do usuário. O Ads Data Hub recomenda que você envie esse ID direto ao ADH depois de fazer a codificação dele como Base64 seguro para URL e para transporte.

var userId = 'abcdef123456789';
// Encode the string (or number) in normal base64.
var userIdBase64 = btoa(userId);

// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_')
    .replace(/=+$/, '');

// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
    'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
    + userIdBase64;
document.body.appendChild(imgElement);
Exemplo 2

Você atribui um valor de identificador exclusivo universal (UUID) como um ID do usuário, por exemplo: 123e4567-e89b-12d3-a456-426655440000.

O Ads Data Hub recomenda as seguintes transformações ao fazer a correspondência:

  1. Formatação do UUID como uma string de 36 caracteres.
  2. Codificação do UUID como hexadecimal.
  3. Formatação do UUID como bytes.
  4. Codificação de bytes em Base64 seguro para URL.
  5. Formatação do UUID como uma string.

Isso pode ser implementado com o seguinte código:

JavaScript

var userId = '123e4567-e89b-12d3-a456-426655440000';

// A helper function for converting a hex string to a byte array.
function strToBytes(str) {
        for (var bytes = [], i = 0; i < str.length; i += 2) {
          bytes.push(parseInt(str.substr(i, 2), 16));
        }
        return bytes;
}

// Remove the formatting dashes from the UUID.
userId = userId.replace(/-/g, '');

// Encode the hex string as a byte array.
var userIdBytes = strToBytes(userId);

// Encode the byte array in normal base64.
var userIdBase64 = btoa(String.fromCharCode(...new Uint8Array(userIdBytes)));

// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(
    /=+$/, '');

// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
    'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
    + userIdBase64;
document.body.appendChild(imgElement);

Python

import base64

user_id = '123e4567-e89b-12d3-a456-426655440000'
user_id_as_bytes = bytes.fromhex(user_id.replace('-', ''))
base64.urlsafe_b64encode(user_id_as_bytes)

Se houver correspondência com um ID do usuário do Google, o campo external_cookie vai mostrar o ID como um valor de bytes. Para reconstruir o ID original, a seguinte transformação é necessária:

  1. Formatação do external_cookie como bytes.
  2. Codificação do external_cookie como hexadecimal.
  3. Formatação do external_cookie como uma string.

Codificar IDs dos usuários no Ads Data Hub

Se você armazenar a string UUID em um campo nos seus dados próprios, vai ter que convertê-la em bytes, conforme o exemplo acima, para agrupar seus dados.

O exemplo a seguir mostra como codificar e agrupar seu UUID no campo de cookies externos:

JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))

Não é possível converter um número inteiro em bytes. Se o ID do usuário for um número inteiro (como no exemplo 1 acima), primeiro faça a conversão para uma string:

JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)

A codificação necessária para corresponder seus dados depende do armazenamento e da codificação aplicados antes de enviar os dados ao Ads Data Hub.

Saiba mais sobre as funções de string no BigQuery SQL

Exemplo de consulta

O exemplo a seguir agrupa dados próprios a google_ads_impressions_match e, em seguida, mescla esses resultados com adh_google_ads_impressions em uma segunda consulta.

SELECT
  imp.campaign_id as campaign_id,
  sum(my_data.recent_orders) as orders,
  average(my_data.lifetime_value) as ltv
FROM
  adh.google_ads_impressions_match as imp
LEFT JOIN
  my_data ON imp.external_cookie = my_data.company_guest_id_bytes
GROUP BY
  campaign_id

Com os resultados da consulta anterior salvos como previous_results, é possível agrupar google_ads_impressions. Isso adiciona dados às campanhas sem impressões aos resultados.

SELECT
  campaign_id,
  COALESCE(orders, 0) as orders,
  COALESCE(ltv, 0) as ltv,
FROM (SELECT DISTINCT campaign_id
   FROM adh.google_ads_impressions)
LEFT JOIN previous_results USING (campaign_id)

  1. Exemplo: uma taxa de correspondência de 20% significa que você precisa de 250 usuários por linha para atender ao limite de agregação de 50 usuários, já que 50/0,2 = 250. 

  2. Pode haver um atraso de até 48 horas até que as correspondências de um dia apareçam nas tabelas.