Esta página está dirigida a los desarrolladores que mantienen su propia solución de consentimiento en su sitio web y desean integrar el modo de consentimiento. Para obtener una introducción al modo de consentimiento, consulta la descripción general del modo de consentimiento. Si utilizas una plataforma de administración de consentimiento (CMP) para obtener el consentimiento del usuario, obtén más información para configurar el modo de consentimiento con una CMP.
Puedes implementar el modo de consentimiento de forma básica o avanzada. Consulta los lineamientos de tu empresa para elegir un método de implementación y los valores predeterminados que se establecerán. Obtén más información sobre el modo de consentimiento básico en comparación con el avanzado.
Antes de comenzar
Ten en cuenta lo siguiente antes de implementar el modo de consentimiento:
Si usas Tag Manager y deseas mantener tu propio banner, el enfoque recomendado es cargarlo a través del contenedor de Tag Manager. Para ello, debes crear una plantilla del modo de consentimiento. Como alternativa, puedes usar una plantilla del modo de consentimiento de la Galería de plantillas de la comunidad.
Si usas gtag.js, asegúrate de haber instalado la etiqueta de Google en todas las páginas de tu sitio web. El código del modo de consentimiento se agrega a cada página de tu sitio web.
Configura el modo de consentimiento
Para configurar el modo de consentimiento, debes hacer lo siguiente:- Antes de que un usuario otorgue su consentimiento, establece el estado de consentimiento predeterminado.
- Actualiza el estado de consentimiento según la interacción del usuario con la configuración de consentimiento.
Establece el estado de consentimiento predeterminado
Establece un valor predeterminado para cada tipo de consentimiento que uses. De forma predeterminada, no se establece ningún valor para el modo de consentimiento.
Una práctica recomendada es abarcar la configuración de consentimiento predeterminada en las regiones en las que muestras los banners de consentimiento a tus visitantes. Esto ayuda a preservar las mediciones en las regiones donde se requieren banners de consentimiento y las etiquetas de Google ajustan su comportamiento según corresponda. También evitas cualquier pérdida de medición cuando no hay banners de consentimiento o cuando no se aplican. Consulta Comportamiento específico de la región.
Para ajustar las capacidades de medición predeterminadas, llama al comando gtag('consent',
'default', ...)
en cada página de tu sitio antes de cualquier comando que envíe datos de medición (como config
o event
).
Por ejemplo, para establecer el consentimiento de denegación para todos los parámetros de forma predeterminada, haz lo siguiente:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Opcional: Realiza la integración con plataformas de administración de consentimiento asíncrono
Si tu banner se carga de forma asíncrona, es posible que no siempre se ejecute antes que tus etiquetas de Google. Para controlar esas situaciones, especifica wait_for_update
junto con
un valor de milisegundos para controlar cuánto tiempo se debe esperar antes de enviar los datos.
Por ejemplo, para denegar ad_storage
en una página en particular de forma predeterminada, pero permitir que tu CMP actualice el estado de consentimiento, usa wait_for_update
. En el siguiente código, ad_storage
se establece de forma predeterminada en denied
, y la herramienta de consentimiento tiene 500 milisegundos para llamar a gtag('consent', 'update', ...)
antes de que se activen las etiquetas:
gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
});
Cuando uses Google Tag Manager, crea tu propia plantilla con las APIs de consentimiento de Tag Manager. El siguiente ejemplo está disponible como punto de partida.
Usa las APIs específicas de Tag Manager para administrar los estados de consentimiento setDefaultConsentState
y updateConsentState
. La API de gtagSet
se puede usar de manera opcional para configurar ads_data_redaction
y la configuración de transferencia de URL según corresponda.
Actualiza el estado de consentimiento
Para enviar el estado de consentimiento del usuario, usa el comando update
. Dado que el modo de consentimiento no guarda las elecciones de consentimiento, actualiza el estado de consentimiento en cuanto un usuario interactúe con tu solución de administración del consentimiento. Después de que un usuario otorgue su consentimiento, conserva su elección y llama al comando de actualización según corresponda en las páginas posteriores.
Depende de ti asegurarte de que se establezcan los valores correctos para todos los tipos de consentimiento. Para obtener todos los detalles sobre los tipos admitidos, lee la referencia de la API.
En el siguiente ejemplo de código, se muestra cómo actualizar el estado de consentimiento a granted
cuando el usuario acepta todas las opciones:
<script>
function allConsentGranted() {
gtag('consent', 'update', {
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'ad_storage': 'granted',
'analytics_storage': 'granted'
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
...
<button onclick="allConsentGranted()">Yes</button>
...
</body>
Cuando usas una plantilla del modo de consentimiento, el consentimiento del usuario debería actualizarse automáticamente cuando el usuario interactúa con el banner.
Si compilas una plantilla del modo de consentimiento por tu cuenta, usa las APIs específicas de Tag Manager para administrar los estados de consentimiento setDefaultConsentState
y updateConsentState
. La API de gtagSet
se puede usar para establecer de forma opcional la configuración de transferencia de ads_data_redaction
y URL según corresponda.
Ejemplo de implementación
En el siguiente ejemplo, se establecen varios parámetros del modo de consentimiento en denied
de forma predeterminada. Después de que un usuario indica sus opciones de consentimiento, los parámetros relevantes se actualizan a granted
.
El orden del código es vital. Si se llama a tu código de consentimiento fuera de orden, los valores predeterminados de consentimiento no funcionarán. Según los requisitos empresariales, los detalles pueden variar, pero, en general, el código debe ejecutarse en el siguiente orden:
Carga la etiqueta de Google. Este es el código de fragmento predeterminado. Se debe actualizar el fragmento predeterminado (consulta a continuación) para incluir una llamada a
gtag('consent', 'default', ...)
.Carga tu solución de consentimiento. Si tu solución de consentimiento se carga de forma asíncrona, consulta Cómo realizar la integración con plataformas de administración de consentimiento asíncrono para asegurarte de que esto suceda en el orden correcto.
Si tu solución de consentimiento no lo controla, llama a
gtag('consent', 'update', ...)
después de que el usuario indique su consentimiento.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID ">
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage">Yes</button>
...
</body>
En el caso de los sitios que usan Tag Manager, recomendamos usar una CMP para controlar las actualizaciones de las elecciones de consentimiento de los visitantes. Las CMP proporcionan plantillas en la Galería de plantillas de la comunidad para crear una etiqueta que administre el modo de consentimiento.
Si no es posible usar una plantilla, puedes actualizar el código de tu página de la siguiente manera. El orden del código es vital. Si se llama a tu código de consentimiento desordenado, los valores predeterminados del consentimiento no funcionarán.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_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 -->
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage()">Yes</button>
...
</body>
Actualiza a la versión 2 del modo de consentimiento
Como parte del compromiso permanente de Google con un ecosistema de publicidad digital centrado en la privacidad, fortaleceremos la aplicación de nuestra política de consentimiento de usuarios de la UE.
Obtén más información sobre las actualizaciones del modo de consentimiento para el tráfico en el Espacio Económico Europeo (EEE) de Google.
Los usuarios del modo de consentimiento deben enviar dos parámetros nuevos, además de ad_storage
y analytics_storage
:
Nombre del campo | Valores permitidos | Descripción |
---|---|---|
ad_user_data
|
'granted' | 'denied'
|
Establece el consentimiento para enviar a Google los datos del usuario relacionados con la publicidad. |
ad_personalization
|
'granted' | 'denied'
|
Establece el consentimiento para la publicidad personalizada. |
Más funciones del modo de consentimiento
Las funciones de consentimiento avanzado incluyen las siguientes:
- Establece con qué servicios de Google compartes datos mediante la IU de la etiqueta de Google.
- Establece el comportamiento para una región geográfica.
- Pasa la información de clics en anuncios, ID de cliente y ID de sesión en las URLs cuando los usuarios no hayan otorgado consentimiento para las cookies.
- Ocultar (quitar) por completo la información del anuncio cuando los usuarios rechacen el consentimiento para las cookies publicitarias
Comportamiento específico de la región
Para cambiar el comportamiento predeterminado de tus etiquetas para los usuarios de ciertas regiones, especifica una región en tu comando de consentimiento. Si proporcionas un valor de región, puedes ajustar los valores predeterminados según las ubicaciones geográficas de tus usuarios. Consulta IDs geográficos para obtener más información sobre cómo identificar regiones.
En el siguiente ejemplo, se establece analytics_storage
en denied
para los usuarios de España y Alaska, y se establece ad_storage
en denied
para todos los usuarios.
gtag('consent', 'default', {
'analytics_storage': 'denied',
'region': ['ES', 'US-AK']
});
gtag('consent', 'default', {
'ad_storage': 'denied'
});
Si usas una plantilla para crear tu etiqueta, es posible que tenga los controles para establecer el comportamiento específico de la región. Si compilas una etiqueta de plantilla por tu cuenta, consulta Crea una plantilla de modo de consentimiento para obtener más información sobre cómo configurar el comportamiento específico de la región.
El parámetro más específico tiene prioridad
Si se producen dos comandos de consentimiento predeterminados en la misma página con valores para una región y una subregión, se aplicará el que tenga una región más específica. Por ejemplo, si tienes ad_storage
establecido en granted
para la región EE.UU. y ad_storage
establecido en denied
para la región EE.UU.-CA, un visitante de California tendrá el parámetro de configuración más específico de EE.UU.-CA. En este ejemplo, eso significaría que un visitante de EE.UU.-CA tendría ad_storage
establecido en denied
.
Región | ad_storage |
Comportamiento |
---|---|---|
EE.UU. | 'granted' |
Se aplica a los usuarios de EE.UU. que no se encuentran en Canadá |
US-CA | 'denied' |
Se aplica a los usuarios de EE.UU. y Canadá |
Sin especificar | 'granted' |
Usa el valor predeterminado de 'granted' . En el ejemplo, se aplica a los visitantes que no están en EE.UU. ni en Canadá.
|
Pasa la información del clic en el anuncio, el ID de cliente y el ID de sesión en las URLs
Cuando un usuario llega a tu sitio web después de hacer clic en un anuncio, es posible que la información sobre el anuncio se agregue a las URLs de tu página de destino como un parámetro de consulta. Para mejorar la precisión de los eventos de tecla, por lo general, esta información se almacena en cookies propias de tu dominio.
Sin embargo, si ad_storage
se establece en denied
, esta información no se almacenará
de forma local. Para mejorar la calidad de la medición de clics en el anuncio cuando ad_storage
sea denied
, puedes optar por pasar información sobre los clics en el anuncio a través de los parámetros de URL en todas las páginas con la transferencia de URL.
Del mismo modo, si analytics_storage
se establece en denied
, se puede usar la transferencia de URL para enviar estadísticas basadas en eventos y sesiones (incluidos los eventos clave) sin cookies en todas las páginas.
Para usar el reenvío de URLs, deben cumplirse las siguientes condiciones:
- Tu etiqueta de Google está preparada para el consentimiento y está presente en la página.
- El anunciante habilitó la función de transmisión de URL.
- El modo de consentimiento está implementado en la página.
- El vínculo saliente hace referencia al mismo dominio que el de la página actual.
Hay un GCLID o un DCLID en la URL (solo para etiquetas de Google Ads y Floodlight)
Para habilitar esta función, establece el parámetro url_passthrough
en true
.
Agrega el siguiente comando al fragmento predeterminado antes de cualquier comando config
:
gtag('set', 'url_passthrough', true);
Si usas una plantilla para crear tu etiqueta, es posible que tenga los controles para configurar el reenvío de URL. Si compilas una etiqueta de plantilla por tu cuenta, consulta Cómo crear una plantilla del modo de consentimiento para obtener más información sobre cómo configurar el reenvío de URLs con la API de plantillas personalizadas gtagSet
.
También puedes usar las siguientes opciones para configurarlo en el Vinculador de conversiones o en las etiquetas de Analytics.
Para las etiquetas de Google Ads y Floodlight, haz lo siguiente:
Para habilitar esta función, crea (o usa una existente) una etiqueta del vinculador de conversiones y asegúrate de que la opción Habilitar la vinculación en todas las URLs de página esté marcada. Consulta la configuración básica para obtener instrucciones sobre cómo crear una etiqueta del vinculador de conversiones.
Para las etiquetas de Google Analytics:
- En Tag Manager, navega a Campos para configurar y selecciona Configuración de la etiqueta > Campos para configurar.
- Cuando se expanda la sección Campos para configurar, haz clic en Agregar fila.
- En Nombre del campo (Field name), ingresa
url_passthrough
. - En Valor, ingresa "true".
- Guarda la etiqueta y publícala.
Como alternativa, puedes establecer el parámetro url_passthrough
en true
en todas las páginas de tu sitio antes del fragmento de instalación de GTM.
window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);
Cuando se usa la transferencia de URL, es posible que se agreguen algunos parámetros de consulta a los vínculos a medida que los usuarios navegan por las páginas de tu sitio web:
gclid
dclid
gclsrc
_gl
wbraid
Para obtener los mejores resultados, asegúrate de lo siguiente:
- Los redireccionamientos de tu sitio pasan todos los parámetros de búsqueda anteriores.
- Tus herramientas de estadísticas ignoran estos parámetros en las URLs de las páginas.
- Estos parámetros no interfieren en el comportamiento de tu sitio.
Cómo ocultar datos de anuncios
Cuando ad_storage
sea denied
, no se establecerán cookies nuevas con fines publicitarios. Además, no se usarán las cookies de terceros configuradas previamente en google.com y doubleclick.net, excepto para fines relacionados con el spam y el fraude. Los datos que se envíen a Google seguirán incluyendo la URL de página completa, incluida la información de clics en el anuncio en los parámetros de URL.
Para ocultar aún más los datos de tus anuncios cuando ad_storage
sea denied
, establece ads_data_redaction
en true
.
gtag('set', 'ads_data_redaction', true);
Cuando ads_data_redaction
sea true
y ad_storage
sea denied
, se ocultarán los identificadores de clics de anuncios que Google Ads y las etiquetas de Floodlight envían en las solicitudes de red. Las solicitudes de red también se enviarán a través de un dominio sin cookies.
Si usas una plantilla para crear tu etiqueta, es posible que tenga los controles para ocultar aún más los datos de los anuncios. Si compilas una etiqueta de plantilla por tu cuenta, consulta Crea una plantilla de modo de consentimiento para obtener más información sobre cómo ocultar datos de anuncios.
Problemas comunes
El consentimiento no se actualiza en una página de transición
Cuando implementes el modo de consentimiento avanzado, debes llamar a un comando de actualización en la página en la que el usuario otorga su consentimiento.
Cuando una página se carga con el consentimiento denegado y, luego, se vuelve a cargar con el consentimiento otorgado después de un cambio de consentimiento, es posible que las etiquetas de Google pierdan datos clave de la página original. Es posible que los informes posteriores estén incompletos.
Por ejemplo, en Google Analytics, es posible que a muchas sesiones con consentimiento les falte un evento session_start.
Para evitar este problema, llama al comando de actualización cada vez que cambie el estado de consentimiento del usuario.
El consentimiento se actualizó inmediatamente antes de que se volviera a cargar la página
En algunos casos, cuando un tipo de consentimiento se actualiza de denegado a otorgado, las etiquetas de Google pueden enviar mediciones en función de esta actualización. Si se llama al comando de actualización mientras se descarga la página, es posible que el navegador cancele este tráfico de red antes de que se complete. Es posible que los informes posteriores estén incompletos.
Si es posible, asegúrate de que los comandos de actualización se registren mucho antes de que se descargue la página.
Próximos pasos
Controles de etiquetas heredadas
Si utilizas etiquetas heredadas, como ga.js, analytics.js o conversion.js, actualízalas a gtag.js o Google Tag Manager.
Para obtener más información sobre los controles de privacidad de otras etiquetas heredadas, consulta la siguiente documentación: