Para obtener estadísticas valiosas al tiempo que se protege la privacidad de los usuarios, debes obtener el consentimiento de los usuarios de su sitio web. Te recomendamos que uses una plataforma de gestión del consentimiento (CMP) o que trabajes con tu sistema de gestión de contenido (CMS) para obtener el consentimiento y enviarlo a Google.
Paso 1: Configura un banner de consentimiento
- Si tienes el gestor de consentimiento de cookies avanzado (CCM Advanced), que es un servicio gestionado, tu Administrador técnico de cuentas configurará el banner siguiendo tus requisitos y tus directrices de estilo.
- Si tienes el gestor de consentimiento de cookies profesional (CCM Pro), que es una plataforma de gestión del consentimiento (CMP) de autoservicio, TrustArc te proporcionará la URL para que inicies sesión en el portal y configures tu banner con las plantillas predefinidas del asistente.
- Asegúrate de que tu banner cumpla los requisitos de la Política de Consentimiento de Usuarios de la Unión Europea de Google. Para obtener más información sobre la configuración del banner de TrustArc, consulta la sección introductoria de su guía de usuario.
- Incluye en el código de tu sitio web o a través de Google Tag Manager los elementos
<div>
, que se encargan de renderizar el banner y el enlace de la CMP.
Paso 2: Configura el modo de consentimiento
Usando Google Tag Manager
- Abre Tag Manager y ve a tu contenedor.
- En "Etiquetas", haz clic en "Nueva" y dale un nombre.
- Haz clic en Configuración de la etiqueta y, a continuación, en "Descubra más tipos de etiquetas en la galería de plantillas comunitarias". En la galería, busca TrustArc CMP (Consent Mode) (CMP de TrustArc [modo de consentimiento]) y, a continuación, instala dicha CMP.
- Configura los ajustes predeterminados que quieras usar en la sección "Default Consent Mode settings" (Configuración predeterminada del modo de consentimiento).
- Selecciona la opción Deploy CMP Script using the template (Implementar el script de la CMP con la plantilla).
- En el campo CMP ID (ID de la CMP), introduce el ID de la instancia, que encontrarás en la sección Step 4. Copy Code Snippet (Paso 4: Copia el fragmento de código) del portal del gestor de consentimiento de cookies profesional (CCM Pro). Si tienes el gestor de consentimiento de cookies avanzado (CCM Advanced), el Administrador técnico de cuentas puede proporcionarte esa información.
- En el campo Additional parameters (Parámetros adicionales), introduce otros ajustes de tu instancia. Esta configuración se usa para anular las configuraciones de backend, como el idioma, la detección geográfica, los enlaces a la política de privacidad, etc.
- Para configurar la sección Google Consent Mode Integration (Integración del modo de consentimiento de Google), marca la opción Integrate CMP with Google Consent Mode (Integrar la CMP con el modo de consentimiento de Google).
- Indica la asignación de los tipos de consentimiento y las preferencias de los usuarios en función de tus ajustes. Asigna el ID del segmento de consentimiento de cookies (Required [Obligatorio], Functional [Funcional] o Advertising [Publicitario]) correspondiente a cada tipo de consentimiento que uses. En el campo Preferences Cookie (Cookie de preferencias), asigna una cookie propia a cmapi_cookie_privacy. En el campo Behavior Cookie (Cookie de comportamiento), asigna una cookie propia a notice_behavior.
- Haz clic en Activación > Consent Initialization - All Pages (Inicialización del consentimiento: todas las páginas) > Guardar.
- Haz clic en la opción Vista previa, situada en la esquina superior derecha, para probar el contenedor. Consulta las instrucciones de la prueba, que encontrarás más abajo.
- Publica el contenedor.
Usando otras plataformas o editando directamente el código del sitio web
- Inicia sesión en el portal de asistencia de TrustArc, abre la guía de implementación del modo de consentimiento de Google de TrustArc (TrustArc Google Consent Mode Implementation Guide) en este enlace y sigue las instrucciones que se indican en la sección Integrating the Consent Mode Using JavaScript (Integrar el modo de consentimiento con JavaScript).
- Si usas un creador de sitios web, consulta la documentación correspondiente para saber cómo implementar el código en la etiqueta "head" de cada página. De lo contrario, ve al paso 3.
- Si utilizas el gestor de consentimiento de cookies avanzado (CCM Advanced), sigue este paso. De lo contrario, ve al paso 4. En la parte superior de la etiqueta "head" de cada página (consulta el paso 2 si usas un creador de sitios web), copia y pega el código que se indica a continuación, seguido del script de la CMP que has copiado en el paso 1. Ten en cuenta que esto es fundamental para que la CMP funcione correctamente.
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-YYYYYY');
// Usa el valor predeterminado "denied" (denegado) en los tipos de consentimiento como marcador de posición
// Determina los valores reales en función de tus propios requisitos
// Omite los tipos de consentimiento que no se usen
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'denied',
'wait_for_update': 500
});
gtag('set', 'ads_data_redaction', true);
gtag('set', 'developer_id.dNTIxZG', true);
</script>
<!--El script del banner va aquí-->
- Si utilizas el gestor de consentimiento de cookies profesional (CCM Pro), sigue este paso. En la parte superior de la etiqueta "head" de cada página (consulta el paso 2 si usas un creador de sitios web), copia y pega el código que se indica a continuación, seguido del script de la CMP que has copiado en el paso 1. Ten en cuenta que esto es fundamental para que la CMP funcione correctamente. No olvides ajustar la asociación entre los segmentos de la CMP y los tipos de consentimiento.
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
gtag('set', 'developer_id.dNTIxZG', true);
// PENDIENTE: Se puede cambiar según las necesidades del cliente y la configuración
gtag('set', 'ads_data_redaction', true);
gtag('set', 'url_passthrough', true);
// Estado del modo de consentimiento
const ConsentType = {
DENIED: 'denied',
GRANTED: 'granted',
};
const convertBooleanToGrantedOrDenied = (boolean) => boolean ? ConsentType.GRANTED : ConsentType.DENIED;
/*
PENDIENTE: Aquí puedes configurar el modo de consentimiento de Google y asignar la categorización de la CMP y los valores predeterminados de la inicialización del consentimiento.
Google te recomienda que especifiques los tipos de consentimiento que no vayas a usar.
*/
const domain = 'your_domain.com'; // PENDIENTE: actualizar
// Asignación de segmentos
const REQUIRED = 1;
const FUNCTIONAL = 2;
const ADVERTISING = 3;
const consentTypesMapped = {
'ad_storage': ADVERTISING,
'ad_user_data': ADVERTISING,
'ad_personalization': FUNCTIONAL,
'analytics_storage': FUNCTIONAL,
'functionality_storage': FUNCTIONAL,
'personalization_storage': FUNCTIONAL,
'security_storage': REQUIRED
}
const getConsentState = (prefCookie) => {
var consentStates = {};
var noticeBehavior = window.truste.util.readCookie("notice_behavior");
/*
PENDIENTE: Se puede cambiar según las necesidades del cliente y la configuración
*/
var impliedLocation = noticeBehavior && noticeBehavior.includes("na");
for (const consentType in consentTypesMapped) {
var id = consentTypesMapped[consentType];
if(prefCookie && !prefCookie.includes(0)) {
console.log("Existing consent..");
consentStates[consentType] = convertBooleanToGrantedOrDenied(prefCookie && prefCookie.includes(id));
} else {
console.log("Non Existing consent..");
consentStates[consentType] = convertBooleanToGrantedOrDenied(impliedLocation);
;}
;}
consentStates['wait_for_update'] = 500;
console.log(consentStates);
return consentStates;
};
/*
Función auxiliar para enviar un evento de GCM basado en las preferencias del usuario en el script de TrustArc
consent: el objeto de consentimiento será un array de valores [1, 2, 3, n] en el cual 1 indica que el usuario ha dado el consentimiento del tipo Required, 2 indica el tipo Functional, etc.
Esta función se debe personalizar de acuerdo con la asignación que necesite el cliente. Por ejemplo, en 'ad_storage': returnGrantedOrDenied(advertisingAccepted) se asigna a Advertising. Para asignarla a Functional, solo tenemos que cambiar la variable de contenedor a la que apunta.
.*/
var runOnceGCM = 0;
function handleConsentDecisionForGCM(consent) {
// Este código inicializa el modo de consentimiento
const consentStates = getConsentState(consent.consentDecision);
var defaultOrUpdate;
if (runOnceGCM == 0) {
defaultOrUpdate = 'default';
runOnceGCM++;
} else {
console.log('consent is being updated');
defaultOrUpdate = 'update';
}
console.log(consentStates);
// Cuando se cambie el consentimiento, enviaremos una actualización
gtag('consent', defaultOrUpdate, {
consentStates
});
}
// Este código se encarga de procesar los cambios en el consentimiento que se hagan a través de la instancia del gestor de consentimiento de cookies de TrustArc,
// así como de enviar los cambios en el consentimiento a la capa de datos (dataLayer) de acuerdo con la asignación de consentimiento del cliente
// Este fragmento de código hace referencia a la carga inicial. Si el usuario elige un consentimiento diferente de los valores predeterminados, el fragmento envía una actualización a la capa de datos.
// Una vez que se carga el gestor de consentimiento de cookies.
var interval = setInterval(() => {
if (window.truste) {
var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);
handleConsentDecisionForGCM(consentDecision);
clearInterval(interval);
console.log("running once...");
}
}, 100);
// Empezar a procesar cuándo envían los usuarios sus preferencias
window.addEventListener("message", (event) => {
let eventDataJson = null;
// Por ahora solo nos interesan los eventos de TrustArc. Además, los eventos de TrustArc están codificado en JSON.
try {
eventDataJson = JSON.parse(event.data);
} catch {
// Otro evento que no es JSON
// TrustArc codifica los datos en JSON
// console.log(event.data);
}
// Protección para asegurarnos de que solo se reciban eventos de TrustArc
if (eventDataJson && eventDataJson.source === "preference_manager") {
// Significa que el usuario ha enviado sus preferencias
if (eventDataJson.message === "submit_preferences") {
console.log("Event Data: ", eventDataJson);
// Espera de medio segundo para asegurarnos de que se reflejan las preferencias del usuario
setTimeout(() => {
var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);
console.log("Consent Decision: ", consentDecision);
handleConsentDecisionForGCM(consentDecision);
}, 500);
}
}
}, false);
<!--El script del banner va aquí-->
Hacer pruebas con Tag Assistant
Más información sobre cómo solucionar problemas del modo de consentimiento con Google Tag Manager