Concordancia de cookies

En términos generales, la correlación de cookies es el proceso por el cual un anunciante o proveedor asocia las cookies de su dominio con las cookies del dominio de Google. La correlación de estas cookies te permite conectar los datos de origen que posees con los datos de anuncios de Google (de los que se hace un seguimiento a través de Display & Video 360 y Campaign Manager 360) en ese mismo usuario, lo que te permite incorporar datos del CRM y comprender mejor el comportamiento del usuario. Si combinas estos datos a través de uniones centradas en la privacidad, puedes hacer lo siguiente:

  • Segmenta los públicos en función de los artículos específicos que se abandonaron en los carritos de compras, si esos usuarios interactuaron con tus anuncios y tu dominio.
  • Determina qué anuncios generan sesiones más largas en tu dominio.
  • Analiza el historial de compras unido a los datos posteriores a la campaña.

Limitaciones y privacidad del usuario final

Si bien es potente, la correlación de cookies tiene algunas limitaciones:

  • Se prohíben las uniones entre tablas *_match y tablas que no son *_match.
  • Requiere trabajo de ingeniería tanto de tu parte como de Google.
  • Es poco probable que puedas correlacionar todos tus datos de anuncios de Google. Los porcentajes de coincidencias están sujetos a varios factores y varían según el caso de uso y la configuración del cliente. Los porcentajes de coincidencias suelen ser más bajos de lo que esperan los usuarios. Los usuarios solo son aptos para la correlación de cookies si interactuaron con tu dominio y tus anuncios.
  • Google comienza a completar tus tablas de coincidencias cuando están configuradas. Según la frecuencia con la que los usuarios visitan tu sitio y reciben tu píxel de coincidencia, es posible que pasen meses antes de que tus tablas de coincidencias contengan datos integrales y estables sobre tus usuarios.
  • No podrás asociar usuarios individuales a varios dispositivos, a menos que tengas alguna forma de conectar a los usuarios en los diferentes dispositivos.
  • No puedes correlacionar a un solo usuario con varias cookies, como sucedería si un usuario borrara sus cookies.
  • Los trabajos que se ejecutan en tablas de correlación están sujetos a los mismos requisitos de agregación que otros trabajos en el Centro de Datos de Anuncios. Una tasa de coincidencias baja combinada con visitas poco frecuentes a tu dominio podría dificultar la obtención de datos. Esto se debe al efecto combinado de las tasas de coincidencias y los requisitos de agregación1.
  • De conformidad con las políticas de Google sobre la privacidad del usuario final, debes hacer lo siguiente:
    • No se pueden correlacionar con los datos de un usuario determinado que accedió a su cuenta y de aquel que no lo hizo.
    • No pueden correlacionar los datos con los usuarios que inhabilitaron la personalización de anuncios.
  • En el caso de los eventos de iOS, solo puedes correlacionar los datos que provienen de apps en iOS 14.5 y versiones posteriores de usuarios que otorgaron permiso en el framework de App Tracking Transparency de Apple.

Para asegurarte de que puedes usar tus datos de origen en el Centro de Datos de Anuncios, debes confirmar que obtuviste el consentimiento adecuado para compartir datos de los usuarios finales del EEE con Google en virtud de la Política de consentimiento de usuarios de la UE y la Política del Centro de Datos de Anuncios. Este requisito se aplica a cada cuenta de Ads Data Hub y debe actualizarse cada vez que subas datos de origen nuevos. Cualquier usuario puede realizar esta confirmación en nombre de toda la cuenta.

Ten en cuenta que las mismas reglas de consulta de los servicios de Google que se aplican a las consultas de análisis también se aplican a las consultas de correlación de cookies. Por ejemplo, no puedes ejecutar consultas en varios servicios sobre los usuarios del EEE cuando creas una tabla de coincidencias.

Si deseas obtener información para confirmar el consentimiento en Ads Data Hub, consulta Requisitos de consentimiento para el Espacio Económico Europeo.

Para que Google complete tus tablas de coincidencias, debes publicar una etiqueta de coincidencia en cada página de tu dominio en la que te interese correlacionar los datos publicitarios. La ubicación del píxel dependerá de tus objetivos publicitarios. Por ejemplo, es posible que desees intentar correlacionar a cada usuario que visita tu dominio (lo que requiere píxeles en casi todas las páginas) o que desees correlacionar a los usuarios que generan conversiones (lo que requiere píxeles en una página de conversión). En general, un píxel más extendido generará mayores porcentajes de coincidencias.

La etiqueta de coincidencia es un píxel transparente de 1 x 1 que contiene el ID de tu perfil de coincidencia de cookies y un ID de usuario o de cookie codificado:

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

Esta etiqueta de coincidencia es la que inicia la comunicación entre tú y los servicios de coincidencia de cookies de Google.

Descripción general paso a paso

  1. Un usuario visita una página con una etiqueta de coincidencia.
  2. La etiqueta de coincidencia inicia una serie de redireccionamientos a los servicios de coincidencia de Google Marketing Platform, Google Ads y YouTube. Las solicitudes contienen el ID o la cookie de ese usuario de tu sitio web, además de la cookie de Google en cada uno de los espacios de ID del servicio de correlación.
  3. Se devuelve un píxel transparente de 1 x 1 al navegador para confirmar que se cumplió la solicitud.

Este proceso se muestra en el siguiente diagrama:

Imagen que muestra una serie de redireccionamientos entre el navegador y los servicios coincidentes

Configuración

El proceso para configurar la correlación de cookies en el Centro de Datos de Anuncios es el siguiente:

  1. Comunícate con el representante de tu cuenta y expresa tu interés en la correlación de cookies. Analizarán tus objetivos y te brindarán más información para implementar el píxel de seguimiento en tu dominio.
  2. Los especialistas del Centro de Datos de Anuncios iniciarán otra conversación para analizar los requisitos técnicos y los casos de uso.
  3. Mientras implementas el píxel de seguimiento y el extremo de error, Google creará tus tablas de coincidencias.

Una vez que completes estos pasos, no se requiere ninguna acción inmediata. Google completará tus tablas de coincidencias a diario2, por lo que deberás esperar el tiempo suficiente para que tu tabla contenga datos suficientes que permitan proporcionar coincidencias significativas y cumplir con los requisitos de agregación. Esto depende de la frecuencia con la que los usuarios visitan tu sitio. Un sitio con visitantes diarios alcanzará este punto mucho más rápido que uno con visitantes mensuales. A medida que se ralentiza la cantidad de coincidencias nuevas, tus tablas de coincidencias contendrán datos más completos.

Cómo consultar las tablas de coincidencias

Cuando tus tablas de correlación contengan suficientes datos para satisfacer las verificaciones de privacidad, podrás ejecutar consultas en ellas.

La tabla original para los datos de origen (1PD) se representa con my_data. Esto incluye tanto la información de identificación personal (PII) como los datos que no son de PII. Usar la tabla original puede mejorar tus informes con más estadísticas, ya que representa todos los datos de 1P incluidos en el alcance, en comparación con una tabla de coincidencias.

Cada tabla del esquema de Ads Data Hub que contiene un campo user_id se complementa con una tabla de concordancia. Por ejemplo, para la tabla adh.google_ads_impressions, Ads Data Hub también genera una tabla de correlación llamada adh.google_ads_impressions_match que contiene tus IDs de usuario. Se crean tablas de coincidencias separadas para las tablas de redes aisladas por políticas. Por ejemplo, para la tabla adh.google_ads_impressions_policy_isolated_network, el Centro de Datos de Anuncios también genera una tabla de correlación llamada adh.google_ads_impressions_policy_isolated_network_match que contiene tus IDs de usuario.

Estas tablas contienen un subconjunto de los usuarios disponibles en las tablas originales, en el que hay una coincidencia en user_id. Por ejemplo, si la tabla original contiene datos del usuario A y el usuario B, pero solo se encuentra una coincidencia para el usuario A, el usuario B no estará en la tabla de coincidencias.

Las tablas de coincidencias contienen una columna adicional llamada external_cookie, que almacena el identificador del usuario como BYTES.

Es importante tener en cuenta el tipo de campo cuando escribas tus consultas. Los operadores de comparación de SQL esperan que los literales que comparas sean del mismo tipo. Según cómo se almacene el user_id en tu tabla de datos propios, es posible que debas codificar los valores de la tabla antes de correlacionar los datos. Debes convertir tu clave de unión en BYTES para que las coincidencias sean exitosas:

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

Además, las comparaciones de cadenas en SQL distinguen mayúsculas de minúsculas, por lo que es posible que debas codificar cadenas en ambos lados de la comparación para asegurarte de que se puedan comparar con precisión.

Cómo codificar IDs de usuario

Codifica los IDs de usuario del cliente

Para garantizar que los diferentes formatos de ID se puedan transmitir de forma segura a través de la URL, todos los IDs deben estar codificados en Base64 seguro para URL antes de enviarse. El ID decodificado en Base64 compatible con URL estará disponible en Ads Data Hub en el campo external_cookie, por lo que deberás deshacer las transformaciones que aplicaste antes de la codificación para obtener tu ID original.

Si tu ID siempre tiene 24 caracteres (o bytes) o menos, puedes incluir el ID codificado en Base64 seguro para URLs en un píxel, como se muestra en el ejemplo 1. Si tu ID tiene más de 24 caracteres (o bytes), deberás transformarlo en una representación de 24 bytes o menos. En algunos casos (como el GUID del ejemplo 2), se trata de convertir a la representación de bytes. En otros casos, es posible que debas enviar a Google un subconjunto (o un hash) de tu ID. Ten en cuenta que, en cualquier caso, deberás asegurarte de poder escribir una JOIN de SQL que convierta el ID de tu tabla de datos propios de la misma manera.

Ejemplo 1

El valor de tu ID de usuario siempre estará dentro del límite de 24 bytes. El Centro de Datos de Anuncios recomienda que envíes tu ID de usuario directamente al ADH (después de codificarlo como Base64 seguro para URLs para fines de transporte de URLs).

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);
Ejemplo 2

Asignas un valor de identificador único universal (UUID) como un ID de usuario, por ejemplo, 123e4567-e89b-12d3-a456-426655440000.

Cuando realices la correlación, Ads Data Hub recomienda las siguientes transformaciones:

  1. El UUID se formatea como una cadena de 36 caracteres.
  2. UUID de decodificación hexadecimal.
  3. El UUID tiene el formato de bytes.
  4. Codifica bytes en Base64 seguros para URL.
  5. El UUID tiene el formato de una cadena.

Esto se podría implementar con el siguiente 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)

Si hay una coincidencia con un ID de usuario de Google, el campo external_cookie contiene tu ID como un valor de byte. Para reconstruir tu ID original, se requiere la siguiente transformación:

  1. external_cookie tiene el formato de bytes.
  2. Codificación hexadecimal external_cookie.
  3. external_cookie tiene el formato de una cadena.

Cómo codificar IDs de usuario en Ads Data Hub

Si almacenas la cadena UUID en un campo de tus datos de origen, deberás convertirla en bytes, como en el ejemplo anterior, para unir tus datos correctamente.

En el siguiente ejemplo, se muestra cómo codificar tu UUID y unirlo en el campo de la cookie externa:

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

Ten en cuenta que no puedes convertir un número entero en bytes. Si tu ID de usuario es un número entero (como en el ejemplo 1 anterior), primero deberás convertirlo en una cadena:

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

Recuerda que la codificación necesaria para que coincidan tus datos será específica de la forma en que los almacenas y de cómo los codificaste antes de enviarlos al Centro de Datos de Anuncios.

Obtén más información sobre las funciones de cadena en BigQuery SQL.

Consulta de muestra

En el siguiente ejemplo, se unen los datos de origen con google_ads_impressions_match y, luego, se unen estos resultados con adh_google_ads_impressions en una 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

Con los resultados de la consulta anterior guardados como previous_results, ahora puedes unir google_ads_impressions. Esto agrega a tus resultados datos sobre las campañas con 0 impresiones.

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. Ejemplo: Un porcentaje de coincidencias del 20% significa que necesitas 250 usuarios por fila para alcanzar el umbral de agregación de 50 usuarios, ya que 50 / 0.2 = 250. 

  2. Las coincidencias realizadas en un día determinado pueden experimentar una demora de hasta 48 horas antes de aparecer en tus tablas.