Para ayudar a los anunciantes a gestionar las cookies con fines publicitarios y estadísticos, Google ha creado Consent Mode, una función que te permite ajustar cómo se comportan tus etiquetas de Google en base al estatus de consentimiento de tus usuarios.
No confundas Consent Mode con Additional Consent Mode, una función que te permite obtener el consentimiento de los socios publicitarios de Google que aún no forman parte del Marco de Transparencia y Consentimiento, pero que están en la lista de proveedores de tecnología publicitaria (ATP) de Google.
Puedes indicar si el consentimiento ha sido otorgado para cookies con fines publicitarios o estadísticos. Los tipos de consentimiento ad_storage
y analytics_storage
de Google se adaptarán automáticamente, utilizando cookies exclusivamente para los fines especificados cuando el usuario haya proporcionado su consentimiento:
Por ejemplo, si un usuario no otorga su consentimiento para cookies publicitarias (y en consecuencia se desactivan los fines publicitarios), pero proporciona su consentimiento para cookies estadísticas, todavía podrás medir su comportamiento en el sitio y las conversiones en Analytics, ya que la configuración analytics_storage
estará habilitada.
Además de los tipos de consentimiento analytics_storage
y ad_storage
la Cookie Solution ahora también valora los tipos de consentimiento opcionales:
functionality_storage
, relacionado con la funcionalidad del sitio web o la app (por ejemplo, la configuración del idioma, etc.)personalization_storage
, relacionado con la personalización (por ejemplo, recomendaciones de vídeo)security_storage
, relacionado con la seguridad (por ejemplo, la funcionalidad de autenticación, la prevención del fraude y otras protecciones del usuario).Estos son los productos compatibles con Consent Mode:
Consent Mode necesita gtag.js o Google Tag Manager para funcionar correctamente. Si utilizas una etiqueta más antigua, como ga.js, analytics.js o conversion.js, primero tendrás que actualizarla a gtag.js o Google Tag Manager.
Puede que quieras utilizar Consent Mode como una alternativa al bloqueo previo. Para implementarlo con nuestra Cookie Solution hay que agregar algunas líneas de código a la etiqueta global de tu sitio web (gtag.js) o al contenedor de Tag Manager.
Si utilizas el método de implementación anterior (el que requiere agregar una callback al fragmento de la Cookie Solution), te recomendamos que cambies a este otro, ya que es más limpio. Además, aunque actualmente es compatible, no podemos garantizar que la implementación anterior continúe funcionando en el futuro.
Lo primero que hay que hacer es inicializar la capa de datos para Google Tag Manager. Probablemente, tendrás este código en el <head>
de tus páginas:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
Tiene que convertirse en:
<script>
// Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
// Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
gtag("consent", "default", {
ad_storage: "denied",
analytics_storage: "denied",
functionality_storage: "denied", // optional
personalization_storage: "denied", // optional
security_storage: "denied", // optional
wait_for_update: 2000 // milliseconds
});
// Improve ad click measurement quality (optional)
gtag('set', 'url_passthrough', true);
// Further redact your ads data (optional)
gtag("set", "ads_data_redaction", true);
</script>
// Global site tag (gtag.js) - Google Analytics
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID'); //replace GA_MEASUREMENT_ID with the ID of your Google Analytics property
</script>
Si en cambio utilizas Google Tag Manager, el código debería ser:
<script>
// Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
// Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
gtag("consent", "default", {
ad_storage: "denied",
analytics_storage: "denied",
functionality_storage: "denied", // optional
personalization_storage: "denied", // optional
security_storage: "denied", // optional
wait_for_update: 2000 // milliseconds
});
// Improve ad click measurement quality (optional)
gtag('set', 'url_passthrough', true);
// Further redact your ads data (optional)
gtag("set", "ads_data_redaction", true);
// Google Tag Manager
(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'); //replace GTM-XXXXXX with the ID of your Google Analytics property
</script>
Como puedes ver en esta línea:
gtag("set", "ads_data_redaction", true);
Hemos optado por reducir aún más los datos cuando ad_storage
esté 'denied'
. De hecho, cuando ads_data_redaction
está establecido como true
y ad_storage
como 'denied'
, los identificadores de clic en anuncios enviados en solicitudes de red por las etiquetas asociadas de Google Ads y Floodlight están censurados. Las solicitudes de las redes también se envían a través de un dominio sin cookies.
Ten en cuenta que, sin esta línea opcional, puede que se instalen algunas cookies.
Para obtener más información, consulta la documentación oficial acerca de Google Tags. (en inglés)
Las etiquetas de Google generalmente almacenan la información sobre el anuncio que ha seguido un usuario para llegar a tu sitio web en las cookies de origen de tu dominio, con el fin de mejorar la precisión de la conversión.
Pero cuando ad_storage
se establece como denied
, las etiquetas de Google no guardan esta información de forma local.
Para mejorar la calidad de la medición de los clics de los anuncios, puedes optar por transferir esta información a través de los parámetros de la URL en todas las páginas utilizando el siguiente código:
gtag('set', 'url_passthrough', true);
Ten en cuenta que al utilizar esta función, se agregarán algunos parámetros de consulta a los enlaces de tu sitio web. (gclid
, dclid
, gclsrc
, _gl
).
Para obtener más información, consulta la documentación oficial acerca de Google Tags. (en inglés)
Por último, agrega el fragmento de código de la Cookie Solution y se convertirá en:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
// Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
// Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
gtag("consent", "default", {
ad_storage: "denied",
analytics_storage: "denied",
functionality_storage: "denied", // optional
personalization_storage: "denied", // optional
security_storage: "denied", // optional
wait_for_update: 2000 // milliseconds
});
// Improve ad click measurement quality (optional)
gtag('set', 'url_passthrough', true);
// Further redact your ads data (optional)
gtag("set", "ads_data_redaction", true);
// Google Tag Manager
(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'); //replace GTM-XXXXXX with the ID of your Google Analytics property
</script>
<!-- iubenda Cookie Solution -->
<script>
var _iub = _iub || [];
_iub.csConfiguration = {
lang: "en",
siteId: 12345678, //use your siteId
cookiePolicyId: 12345678, //use your cookiePolicyId
countryDetection: true,
perPurposeConsent: true,
purposes: "1,4,5",
consentOnContinuedBrowsing: false,
banner: {
position: "float-top-center",
acceptButtonDisplay: true,
customizeButtonDisplay: true,
rejectButtonDisplay: true
}
};
</script>
<script src="https://cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
La Cookie Solution ahora también proporciona la opción googleConsentMode
para gestionar el Google Consent Mode. Si no está establecido el parámetro (null), la Cookie Solution detecta automáticamente si se habilita el Google Consent Mode (si se encuentra una variable window.dataLayer
o una función global gtag
).
Si quieres deshabilitar el Google Consent Mode, establece googleConsentMode
en false.
Si estás utilizando Google Tag Manager con la plantilla de la Cookie Solution de iubenda y no estás integrando el código de la Cookie Solution directamente a través de la plantilla, necesitas establecer la opción googleConsentMode
a template, para que la Cookie Solution funcione correctamente.
Para obtener más información sobre el Consent Mode, consulta el blog oficial de Google Marketing Platform, la ayuda de Google Analytics o la guía gtag.js.