Esta página está dirigida a desarrolladores que mantienen etiquetas de Google en un sitio web y quieren integrar el modo de consentimiento. Si quieres ver una introducción al modo de consentimiento, consulta el resumen del modo de consentimiento.
La forma de habilitar y usar el modo de consentimiento dependerá de tu implementación para obtener el consentimiento y de la plataforma de etiquetado que utilices: Google Tag Manager (GTM) o la etiqueta de Google.
- Las plataformas de gestión del consentimiento (CMPs) compatibles con el modo de consentimiento de Google ofrecen lo siguiente:
- Plantillas de Tag Manager, disponibles en la galería de plantillas comunitarias, que debes usar para crear etiquetas de gestión del consentimiento.
- Código JavaScript para sitios que usen gtag.js para gestionar el consentimiento.
- En el caso de implementaciones personalizadas y CMPs que no admiten el modo de consentimiento:
- Si usas GTM, te recomendamos que crees tu propia plantilla con las APIs de consentimiento de Tag Manager. Consulta este ejemplo, que puedes usar como punto de partida.
- Si usas gtag.js, tendrás que añadir manualmente el código de consentimiento a cada página de tu sitio como comandos directos o en un fragmento de HTML personalizado.
En este artículo se describen algunas prácticas recomendadas y se ofrecen ejemplos de la API. Consulta los enlaces relacionados para obtener más información.
Antes de empezar
Antes de implementar el modo de consentimiento, ten en cuenta lo siguiente:
Es recomendable que la configuración de consentimiento predeterminada se aplique a las zonas en las que muestras banners de consentimiento a tus visitantes. Esto ayuda a proteger las mediciones de las zonas en las que se precisan los banners de consentimiento y las etiquetas de Google ajustan su comportamiento en consonancia. También evitarás que se pierdan mediciones donde no hay banners de consentimiento o donde estos no se aplican. Consulta la sección Comportamiento específico para zonas concretas.
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 de consentimiento de Tag Manager para definir los estados de consentimiento.
Hacer un seguimiento del estado del consentimiento
El estado del consentimiento predeterminado debe definirse inmediatamente cuando se carga la página, en función de los ajustes predeterminados que se requieran en tu organización. A continuación, la CMP o solución personalizada de gestión del consentimiento deberá pedirle al visitante que dé o deniegue su consentimiento para cada tipo de consentimiento aplicable. Como el modo de consentimiento no almacena las decisiones de consentimiento, también es necesario que la solución de gestión del consentimiento ejecute un comando de actualización del modo de consentimiento en función de las opciones elegidas por el usuario. Este comando debe ejecutarse en cada página lo antes posible después de que el usuario haya seleccionado sus opciones de consentimiento.
gtag.js
En las siguientes secciones, verás ejemplos de cómo usar gtag.js para:
- Configurar los valores de consentimiento predeterminados
- Actualizar el estado del consentimiento
- Integrar el modo de consentimiento con plataformas de gestión del consentimiento asíncronas
Configurar los valores de consentimiento predeterminados
Te recomendamos configurar un valor predeterminado para cada tipo de consentimiento que uses. Los valores del estado del consentimiento de este artículo son solo ejemplos. Te corresponde a ti asegurarte de configurar el modo de consentimiento predeterminado en todos tus productos de medición de acuerdo con la política de tu organización.
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 varios tipos de consentimiento de manera predeterminada, especifica los siguientes parámetros de consent
:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Actualizar el estado del consentimiento
Cuando los usuarios eligen opciones de consentimiento o las cambian, usa el comando update
para actualizar el estado del consentimiento. Dado que el modo de consentimiento no guarda las opciones de consentimiento, actualiza el estado de este tan pronto como un usuario interactúe con la solución de gestión del consentimiento.
Una vez que un usuario dé su consentimiento, debes aplicarlo a todas las páginas que visite posteriormente haciendo una llamada al comando update.
En el ejemplo de abajo, solo ha cambiado el valor de ad_storage
. Si analytics_storage
hubiera tenido asignado el valor denied
, seguiría estando rechazado después de esta llamada. Es responsabilidad tuya comprobar que se hayan asignado los valores correctos a todos los tipos de consentimiento. Consulta referencia de la API para obtener información detallada sobre los tipos admitidos.
En el siguiente código de ejemplo se muestra cómo actualizar el estado del consentimiento a granted
cuando el usuario decide permitir las cookies de publicidad:
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage()">Yes</button>
...
</body>
Integrar el modo de consentimiento con plataformas de gestión del consentimiento asíncronas
Si la CMP 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.
Por ejemplo, para rechazar ad_storage
en una página concreta de forma predeterminada, pero permitiendo que la CMP que usas actualice el estado de consentimiento, usa wait_for_update
. En el siguiente código, 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
En las implementaciones de Tag Manager, recomendamos usar una plantilla de modo de consentimiento de la galería de plantillas comunitarias para gestionar el consentimiento. Consulta cómo crear tu propia plantilla usando las APIs de consentimiento de Tag Manager en Crear una plantilla del modo de consentimiento.
Notas:
Las implementaciones del modo de consentimiento en sitios que utilizan GTM para el etiquetado deben usar las APIs específicas de GTM para gestionar los estados del consentimiento
setDefaultConsentState
yupdateConsentState
. La APIgtagSet
se puede usar para configurar los ajustes deads_data_redaction
y de envío de datos a través de URL según corresponda.El método
gtag('consent','update',...)
no se debe usar en lugar deupdateConsentState
porque se pondría en cola después de todos los demás mensajes pendientes, lo que podría hacer que no se procesara hasta que empezara el siguiente evento. Para obtener más información, consulta Cómo se procesa la información de las capas de datos.
Ejemplo de implementación
En el siguiente ejemplo varios parámetros del modo de consentimiento reciben el valor denied
de forma predeterminada. Después de que un usuario indique sus opciones de consentimiento, el valor de los parámetros relevantes se actualiza a granted
.
gtag.js
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 los requisitos de la empresa, ciertos detalles pueden variar, pero en general el código debería ejecutarse en el orden siguiente:
Carga la etiqueta de Google. 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.Carga la solución de consentimiento. Si se carga de forma asíncrona, consulta la sección Integrar el modo de consentimiento con plataformas de gestión del consentimiento asíncronas para saber cómo te puedes asegurar de que se haga en el orden correcto.
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.
<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>
Tag Manager
En los sitios etiquetados con Tag Manager, recomendamos que se use una CMP para gestionar las actualizaciones de las opciones de consentimiento elegidas por los visitantes. Las CMPs ofrecen plantillas en la galería de plantillas comunitarias para crear etiquetas con las que gestionar el modo de consentimiento.
Si no puedes usar una plantilla, puedes actualizar el código de tu página como se muestra a continuación. 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.
<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>
Actualizar el modo de consentimiento a la versión 2
Como muestra del compromiso continuo con un ecosistema de publicidad digital centrado en la privacidad, Google va a añadir requisitos a la Política de Consentimiento de Usuarios de la Unión Europea.
Los usuarios que utilicen el modo de consentimiento tendrán que enviar dos parámetros nuevos aparte de ad_storage
y analytics_storage
:
Nombre del campo | Valores permitidos | Descripción |
---|---|---|
ad_user_data
|
'granted' | 'denied'
|
Define el consentimiento sobre el envío a Google de datos de usuario relacionados con la publicidad. |
ad_personalization
|
'granted' | 'denied'
|
Define el consentimiento sobre la publicidad personalizada. |
Funciones de consentimiento avanzadas
Entre las funciones de consentimiento avanzadas se incluyen las siguientes:
- Definir el comportamiento para una región geográfica.
- Enviar información de clics en anuncios, IDs de clientes e IDs de sesiones en las URLs si los usuarios no han dado su consentimiento para el uso de cookies.
- Ocultar (quitar) la información de los anuncios si los usuarios rechazan el consentimiento para el uso de cookies de anuncios.
Comportamiento específico para regiones concretas
Para cambiar el comportamiento predeterminado de las etiquetas con los usuarios de determinadas zonas, especifica dichas zonas en el comando de consentimiento. Al proporcionar un valor de zona, podrás ajustar los valores predeterminados según la ubicación geográfica de los usuarios. Consulta IDs geográficos para obtener más información sobre cómo identificar zonas.
gtag.js
En este ejemplo, se asigna el valor denied
a analytics_storage
para los usuarios de España y Alaska, y el valor denied
a ad_storage
para todos los usuarios.
gtag('consent', 'default', { 'analytics_storage': 'denied', 'region': ['ES', 'US-AK'] }); gtag('consent', 'default', { 'ad_storage': 'denied' });
Tag Manager
Si vas a usar una plantilla para crear tu etiqueta, ten en cuenta que puede que incluya los controles necesarios para configurar comportamientos específicos según la región. Si vas a crear una etiqueta como plantilla, consulta Crear una plantilla del modo de consentimiento para obtener más información sobre cómo configurar comportamientos específicos para zonas concretas.
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 zona y una subzona, se aplicará el comando correspondiente a la zona más específica.
Por ejemplo, si has asignado el valor granted
a ad_storage
para la zona US (Estados Unidos) y el valor denied
a ad_storage
para la zona US-CA (California, Estados Unidos), a un visitante de California se le aplicará la configuración de US-CA, ya que es la más específica. En este ejemplo esto significa que, para el visitante de US-CA, a ad_storage
se le asignará el valor denied
.
Zona | 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' . En este ejemplo, se aplica a los usuarios que no son ni de Estados Unidos ni de California, Estados Unidos.
|
Enviar información de clics en anuncios, IDs de clientes e IDs de sesiones en URLs
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 parámetro de consulta. Para mejorar la precisión de los datos sobre las conversiones, esta información se suele almacenar en cookies propias alojadas en tu dominio.
Sin embargo, si se asigna el valor denied
a ad_storage
, esa información no se almacenará 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 utilizar parámetros de URL para transferir entre páginas información sobre los clics en los anuncios usando la función de envío de datos a través de URL.
Del mismo modo, si se asigna el valor denied
a analytics_storage
, la función de paso a través de URL se puede utilizar para enviar analíticas basadas en eventos y sesiones (incluidas las conversiones) sin cookies entre páginas.
Para usar la función de envío de datos a través de URL, se deben cumplir las siguientes condiciones:
- Tu etiqueta de Google tiene que poder detectar el consentimiento y estar instalada en la página.
- El anunciante debe haber habilitado la función de envío de datos a través de URL.
- El modo de consentimiento tiene que haberse implementado en la página.
- El enlace de salida debe hacer referencia al dominio de la página actual.
En la URL debe haber un GCLID/DCLID (solo en etiquetas de Floodlight y Google Ads).
gtag.js
Para habilitar esta función, asigna el valor true
al parámetro url_passthrough
:
gtag('set', 'url_passthrough', true);
Tag Manager
Si vas a usar una plantilla para crear tu etiqueta, ten en cuenta que puede que incluya los controles necesarios para configurar el envío de datos a través de URL. Si vas a crear una etiqueta como plantilla, consulta en Crear una plantilla del modo de consentimiento más información sobre cómo configurar el paso a través de URL usando la API gtagSet
de plantillas personalizadas.
También puedes usar las siguientes opciones para configurarlo en la vinculación de conversiones o etiquetas de analíticas.
Para etiquetas de Google Ads y de Floodlight:
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 URLs 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.
Para etiquetas de Google Analytics:
- En Tag Manager, accede a Campos que configurar:
- Para las etiquetas Google Analytics: configuración de GA4, selecciona Configuración de la etiqueta > Configurar campos.
- Para las etiquetas Google Analytics: Universal Analytics, usa una variable de configuración de Google Analytics y selecciona Configuración de la variable > Más opciones > Configurar campos.
- Cuando se muestre la sección Configurar campos, haz clic en Añadir fila.
- En Nombre del campo, introduce el valor correcto:
- Para las etiquetas Google Analytics: configuración de GA4, introduce
url_passthrough
. - Para las etiquetas Google Analytics: Universal Analytics que usan las variables de configuración de Google Analytics, introduce
urlPassthrough
.
- Para las etiquetas Google Analytics: configuración de GA4, introduce
- En Valor, introduce "true".
- Guarda la etiqueta y publícala.
También puedes asignar el valor true
al parámetro url_passthrough
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 función de envío de datos a través de URL, puede que se añadan algunos parámetros de consulta a los enlaces cuando los usuarios navegan por las páginas de tu sitio web:
gclid
dclid
gclsrc
_gl
wbraid
Para obtener resultados óptimos, comprueba que:
- Que las redirecciones de tu sitio envíen todos los parámetros de consulta mencionados anteriormente.
- Tus herramientas de analíticas no tengan en cuenta estos parámetros en las URLs de las páginas.
- 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.
gtag.js
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.
Tag Manager
Si vas a usar una plantilla para crear tu etiqueta, ten en cuenta que puede que incluya los controles necesarios para ocultar más datos sobre anuncios. Si vas a crear una etiqueta como plantilla, consulta en Crear una plantilla del modo de consentimiento más información sobre cómo ocultar datos sobre anuncios.
Funciones de configuración del modo de consentimiento de Google Tag Manager
Tag Manager incluye varias herramientas que te ayudan a gestionar el funcionamiento de las etiquetas en respuesta a la configuración del consentimiento. Tag Manager ofrece un activador de 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. Consulta más información sobre las funciones de consentimiento de Tag Manager.
Verificar la configuración del consentimiento
Para verificar y depurar la configuración del modo de consentimiento, te recomendamos que uses Tag Assistant. Con Tag Assistant, puedes ver si el estado del consentimiento se configura y se actualiza, y de qué manera. Tag Assistant admite lo siguiente:
- Comandos de consentimiento de gtag
- Una etiqueta creada a partir de una plantilla del modo de consentimiento de Tag Manager
- Marco de Transparencia y Consentimiento (TCF)
Consulta más información sobre la depuración del modo de consentimiento con Tag Assistant.
Si no usas plantillas de modo de consentimiento, puedes analizar la configuración del consentimiento con las herramientas para desarrolladores del navegador.
Para analizar la configuración del consentimiento:
En la pestaña Elementos, escribe
dataLayer
en la barra de búsqueda y comprueba que:- El comando
default
se encuentre antes de todos los demás eventos de Google. - Los estados de consentimiento se configuren en función de la interacción del usuario y con el comando
update
. - Las etiquetas se activen solo cuando se cumplan las condiciones establecidas en la configuración del consentimiento.
- Los valores de
ads_data_redaction
yurl_passthrough
se configuren en función de los ajustes indicados por el usuario.
- En la pestaña Red:
- Comprueba que el parámetro
gcs=
, correspondiente al estado del consentimiento, esté en las URLs. El formato del parámetrogcs
esgcs=G1 [ad_storage][analytics_storage]
. - Comprueba que los valores del parámetro
gcs=
correspondan a la opción de consentimiento elegida por el usuario. Los valores dead_storage
yanalytics_storage
pueden ser cualquiera de los siguientes:
Valor Significado G100 Se ha denegado el consentimiento para usar ad_storage
yanalytics_storage
.G110 Se ha dado el consentimiento para usar ad_storage
y se ha denegado para usaranalytics_storage
.G101 Se ha denegado el consentimiento para usar ad_storage
y se ha dado para usaranalytics_storage
.G111 Se ha dado el consentimiento para usar ad_storage
yanalytics_storage
.G1-- El sitio no requiere consentimiento para usar ad_storage
nianalytics_storage
.- Comprueba que se usen dominios sin cookies (por ejemplo, googlesyndication.com) cuando a
ads_data_redaction
se le asigne el valortrue
. - Comprueba que
gclid
odclid
se añadan a las URLs salientes cuando aurl_passthrough
se le asigne el valortrue
y el parámetro de vinculación de_gl
esté presente (por ejemplo,https://www.example.com/?_gl=1*abcde5*
).
- El comando
Controles de etiquetas antiguas
Si usas etiquetas 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:
Enlaces relacionados
- Resumen del modo de consentimiento
- APIs de consentimiento de Tag Manager
- APIs de consentimiento de la etiqueta de Google
- Crear una plantilla del modo de consentimiento
- Galería de plantillas comunitarias
- Configuración de la etiqueta de consentimiento
- Depuración del modo de consentimiento de Tag Assistant