Gestionar la configuración del consentimiento (web)

Dependiendo de los productos y las funciones que hayas configurado, los productos de medición de Google usarán mecanismos como la lectura y escritura de cookies, o el envío de solicitudes HTTP, para facilitar las analíticas, la medición de conversiones y el remarketing.

Estos mecanismos se pueden configurar para que solo se usen cuando los usuarios den su consentimiento. Por ejemplo, puedes configurar tus etiquetas de Google para que no lean ni escriban cookies hasta que el usuario dé su consentimiento. Cuando las etiquetas tienen en cuenta el consentimiento, funcionan de forma limitada hasta que los usuarios indiquen su preferencia. Una vez obtenido el consentimiento, el comportamiento de las etiquetas se actualizará según los parámetros que hayas indicado para ello.

Para ajustar el comportamiento de las etiquetas de forma que tengan en cuenta el estado del consentimiento de los usuarios, puedes usar estas plataformas y soluciones:

  • Google Ads
  • Floodlight
  • Google Analytics
  • Vinculación de conversiones

Antes de empezar

Debes tener en cuenta lo siguiente antes de implementar el modo de consentimiento:

  • Es recomendable que la configuración de consentimiento predeterminada se oriente a los visitantes de una región específica, en lugar de a todos los visitantes. De esta forma, evitarás que no se recojan mediciones de los usuarios que estén en regiones en las que no sean necesarios los banners de consentimiento y donde se deniegue el consentimiento de forma predeterminada. Consulta la sección Comportamiento específico para regiones concretas.
  • Es habitual que el consentimiento de los usuarios se gestione a través de una plataforma de gestión del consentimiento (CMP). Si usas una CMP, comprueba que sea compatible con el modo de consentimiento.
  • Si usas una CMP, debes configurar los comandos de actualización de consentimiento para apuntar a los visitantes de las mismas regiones especificadas en el comando de consentimiento predeterminado. De este modo, los usuarios podrán actualizar su estado de consentimiento si lo tenían definido como denegado de forma predeterminada.
  • Si escribes tus propias plantillas o etiquetas HTML personalizadas, no se asegura que los comandos que se ejecutan en retrollamadas o los que usan gtag() estén disponibles antes de que se active el siguiente activador. Para asegurarte de que la información de consentimiento esté disponible lo antes posible, usa (o crea) una plantilla de etiqueta que utilice las APIs Tag Manager Consent para definir los estados de consentimiento.

Ajustar el comportamiento de las etiquetas

Si vas a ajustar el comportamiento de las etiquetas para que tengan en cuenta el consentimiento, debes hacerlo en todas las páginas del sitio web. En cada página, normalmente se puede configurar en dos momentos:

  • Al cargar la página: cuando se carga la página, solo debes usar funciones de medición acordes a las expectativas de los usuarios. Estas funciones se configuran con el comando gtag('consent', 'default', ...).

  • Después de que un visitante indique un estado de consentimiento o si se conoce el estado de consentimiento Una vez que el visitante indique un estado de consentimiento (o si este estado se ha heredado de una carga de página anterior), habilita las funciones de medición para las que él ha dado su consentimiento (como leer o escribir cookies) mediante el comando gtag('consent', 'update', ...).

Configurar el comportamiento predeterminado

gtag.js

Para ajustar las funciones de medición predeterminadas, haz una llamada al comando gtag('consent', 'default', ...) en todas las páginas de tu sitio antes de que se ejecute cualquier comando que envíe datos de medición (como config o event). Por ejemplo, para rechazar ad_storage y analytics_storage de forma predeterminada, especifica la configuración en los parámetros consent:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

Tag Manager

Para ajustar las funciones de medición predeterminadas, sigue estos pasos:

  1. Usa una etiqueta de plantilla de la galería de plantillas de la comunidad que utilice las APIs Tag Manager Consent para definir el estado predeterminado.
  2. Configura la etiqueta de forma que se active con el activador Inicialización de consentimiento. Consulta el artículo Configuración del consentimiento.

También tienes que hacer lo siguiente en todas las páginas del sitio antes de que se active ninguna etiqueta:

  • Comprueba que se ha definido el objeto dataLayer.
  • Comprueba que se ha definido la función gtag().
  • Usa el comando gtag('consent', ...) para definir las funciones de medición.
  • Envía un evento default_consent usando dataLayer.push().

Por ejemplo, para rechazar ad_storage y analytics_storage de forma predeterminada, utiliza este código:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

dataLayer.push({
  'event': 'default_consent'
});

Eso hará que los valores predeterminados de ad_storage y analytics_storage sean denied. Consulta la sección consent de la referencia de la API gtag.js para obtener información detallada sobre las claves admitidas.

Actualizar el comportamiento de las etiquetas

Usa el comando gtag('consent', 'update', ...) para actualizar el comportamiento de las etiquetas cuando los usuarios den su consentimiento (por lo general, mediante un banner en el que se les solicita), o si el consentimiento se ha heredado de una carga de página anterior. En este ejemplo, un usuario ha dado su consentimiento para usar cookies de publicidad:

gtag('consent', 'update', {
  'ad_storage': 'granted'
});

Solo cambiarán los valores de los campos que se hayan proporcionado en la llamada al comando update. En el ejemplo de arriba, solo ha cambiado el valor de ad_storage. Si analytics_storage hubiera tenido asignado el valor denied, analytics_storage seguiría estando rechazado después de esta llamada para conceder el consentimiento a ad_storage. Es responsabilidad tuya comprobar que se hayan asignado los valores correctos a todas las claves de consentimiento. Consulta la sección consent de la referencia de la API para obtener información detallada sobre las claves admitidas.

La llamada a este comando se debe hacer lo antes posible en cada página. Una vez que el usuario indique sus preferencias de consentimiento, debes aplicarlas a todas las páginas que visite posteriormente haciendo una llamada al comando update.

Ejemplo de implementación

En el siguiente ejemplo se asigna denied a ad_storage como valor predeterminado. Cuando el usuario indica que da su consentimiento para que se usen las funciones asociadas a ad_storage, el valor se actualiza a granted.

El orden de los elementos del código es fundamental. Si la llamada al código de consentimiento no se hace en el orden correcto, los valores predeterminados de consentimiento no funcionarán. Dependiendo de las necesidades de tu empresa, puede que algunos detalles concretos varíen, pero en general el código debería ejecutarse en el siguiente orden:

  1. Carga la etiqueta global de sitio web. Este es el fragmento de código predeterminado. Debe actualizarse para incluir una llamada a gtag('consent', 'default', ...). En el código de abajo puedes ver un ejemplo. Si no hay ningún valor predeterminado, todas las funciones de etiquetado se habilitarán.
  2. Carga la solución de consentimiento. Si se carga de forma asíncrona, consulta la sección Herramientas asíncronas para saber cómo te puedes asegurar de que se haga en el orden correcto.
  3. Si la solución de consentimiento no lo hace ya, haz una llamada a gtag('consent', 'update', ...) después de que el usuario indique su consentimiento.

gtag.js

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Default ad_storage to 'denied'.
  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

  gtag('js', new Date());
  gtag('config', 'G-XXXXXX');
</script>

<!-- Update this section based on your business requirements. -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

Tag Manager

Si no usas una CMP para gestionar los comandos de actualización, haz lo siguiente:

  1. Usa una plantilla de etiqueta de la galería de plantillas de la comunidad que utilice las APIs Tag Manager Consent para definir el estado de consentimiento actualizado.
  2. Configura la etiqueta de forma que se active con el activador Inicialización de consentimiento. Consulta el artículo Configuración del consentimiento.

También puedes actualizar el código de tu página de la siguiente forma:

 <script>
   // Define dataLayer and the gtag function.
   window.dataLayer = window.dataLayer || [];
   function gtag(){dataLayer.push(arguments);}

   // Default ad_storage to 'denied'.
   gtag('consent', 'default', {
     'ad_storage': 'denied'
   });
 </script>

 <!-- Google Tag Manager -->
 <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
 })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
 <!-- End Google Tag Manager -->

 <!-- Update this section based on your business requirements -->
 <script>
   function consentGranted() {
     gtag('consent', 'update', {
       'ad_storage': 'granted'
     });
   }
 </script>

 <body>
   ...
   <button onclick="consentGranted">Yes</button>
   ...
 </body>
 ```

Comportamiento específico para regiones concretas

Para cambiar el comportamiento predeterminado de las etiquetas con los usuarios de determinadas regiones, especifica dichas regiones en el comando de consentimiento. Al proporcionar un valor de región, podrás ajustar los valores predeterminados según la ubicación geográfica de los usuarios. En este ejemplo, se asigna el valor denied a ad_storage para los usuarios de España y Alaska, y el valor denied a analytics_storage para todos los usuarios:

gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
gtag('consent', 'default', {
  'ad_storage': 'denied'
});

Cuanto más específicos son los parámetros, más prioridad tienen

Si se ejecutan dos comandos de consentimiento predeterminados en la misma página con valores para una región y una subregión, se aplicará el comando correspondiente al parámetro más específico. Por ejemplo, si has asignado el valor granted a ad_storage para la región US y el valor denied a ad_storage para la región US-CA, a un visitante de California (CA) se le aplicará la configuración de US-CA, ya que es la más específica. En este ejemplo eso significa que, para el visitante de US-CA, a ad_storage se le asigna el valor denied.

Región ad_storage Comportamiento
US 'granted' Se aplica a los usuarios de Estados Unidos que no están en California.
US-CA 'denied' Se aplica a los usuarios de California, en Estados Unidos.
Sin especificar 'granted' Se usa el valor predeterminado 'granted'. Se aplica a todos los usuarios que no se encuentren en Estados Unidos ni en California.

Información sobre los clics en los anuncios

Cuando un usuario hace clic en un anuncio que le dirige a tu sitio web, la información sobre el anuncio puede añadirse a la URL de la página de destino como un parámetro de consulta. Para mejorar la precisión de los datos sobre las conversiones, las etiquetas de Google suelen almacenar esta información en cookies propias alojadas en tu dominio.

Sin embargo, si se asigna el valor denied a ad_storage, las etiquetas de Google no guardarán esa información localmente. Si quieres mejorar la calidad de la medición de los clics en los anuncios cuando el valor de ad_storage es denied, puedes usar parámetros de URL para transferir entre páginas información sobre los clics en los anuncios.

gtag.js

Para habilitar esta función, asigna el valor true al parámetro url_passthrough:

gtag('set', 'url_passthrough', true);

Tag Manager

Para habilitar esta función, crea o usa una etiqueta de vinculación de conversiones y comprueba que la opción Habilitar la vinculación en todas las URL de página esté marcada. Consulta cómo se crean este tipo de etiquetas en la sección Configuración básica del artículo sobre la vinculación de conversiones.

Cuando se usa la función de envío de datos a través de URLs, se añaden algunos parámetros de consulta a los enlaces del sitio web:

  • gclid
  • dclid
  • gclsrc
  • _gl

Para obtener resultados óptimos, comprueba que:

  1. Las redirecciones de tu sitio web envíen todos los parámetros de consulta mencionados anteriormente.
  2. Tus herramientas de analítica no tengan en cuenta estos parámetros en las URLs de las páginas.
  3. Estos parámetros no interfieran con el comportamiento de tu sitio web.

Ocultar datos sobre los anuncios

Cuando el valor de ad_storage sea denied, no se añadirán cookies nuevas con fines publicitarios. Además, las cookies de terceros que ya se hayan añadido a google.com y a doubleclick.net no se usarán, salvo en casos de spam y fraude. Los datos que se envíen a Google seguirán incluyendo la URL de página completa, incluida la información sobre los clics en anuncios que contienen los parámetros de URL.

Para ocultar aún más los datos de los anuncios cuando el valor de ad_storage sea denied, asigna el valor true a ads_data_redaction.

gtag('set', 'ads_data_redaction', true);

Cuando el valor de ads_data_redaction sea true y el de ad_storage sea denied, se ocultarán los identificadores de los clics en anuncios que envíen las etiquetas de Google Ads y Floodlight en las solicitudes de red. Las solicitudes de red también se enviarán a través de un dominio sin cookies.

Herramientas asíncronas

Si la herramienta de consentimiento que usas se carga de forma asíncrona, es posible que no siempre se ejecute antes que las etiquetas de Google. En este tipo de situaciones, especifica wait_for_update junto con un valor de milisegundos para controlar el tiempo de espera antes de que se envíen los datos.

En el siguiente ejemplo, a ad_storage se le ha asignado el valor predeterminado denied, y la herramienta de consentimiento tiene 500 milisegundos para hacer la llamada a gtag('consent', 'update', ...) antes de que se activen las etiquetas:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'wait_for_update': 500
})

Tag Manager incluye varias herramientas que le ayudan a gestionar el funcionamiento de las etiquetas en respuesta a la configuración del consentimiento. Tag Manager ofrece un activador Inicialización de consentimiento, ajustes de etiquetas para la gestión del consentimiento y la página Resumen de consentimiento. Varios proveedores de soluciones de gestión del consentimiento de terceros han integrado el modo de consentimiento en sus productos. Más información sobre las funciones de consentimiento de Tag Manager

Controles de etiquetas antiguas

Si usas etiquetas de Google antiguas, como ga.js, analytics.js o conversion.js, deberías pasarte a gtag.js o a Google Tag Manager.

Consulta más información sobre los controles de privacidad de otras etiquetas antiguas en los siguientes artículos: