Cómo Implementar Google Consent Mode v2

Llamadas gtag() exactas, estado predeterminado denegado, disparadores de actualización y mapeo de categorías LGPD/LFPDPPP a señales GCM v2 — con fragmentos listos para usar.

¿Cómo implementar Google Consent Mode v2 para LGPD y LFPDPPP?

Dispara la llamada predeterminada de forma síncrona antes de que cargue cualquier tag de Google. Coloca gtag('consent', 'default', {...}) como el primer script en el <head> — antes de GTM, antes de GA4, antes de cualquier tag de Google. Configura todas las señales como 'denied' de forma predeterminada. Luego, después de que el visitante acepte mediante el banner de consentimiento, llama a gtag('consent', 'update', {...}) solo con las señales autorizadas.

Bajo la LGPD (Brasil) y la LFPDPPP (México), el consentimiento para analytics y marketing es opt-in — el estado predeterminado denegado no es opcional. Los visitantes que rechazan no deben ser rastreados. El parámetro wait_for_update indica a las tags de Google que esperen hasta 500ms para que el consentimiento almacenado de un visitante recurrente cargue antes de disparar en modo restrito.

Fragmento predeterminado listo para copiar

Coloca este código antes de tu tag GTM o GA4 — no después, no dentro de GTM. Este código debe ser síncrono, no asíncrono.

<!-- Paso 1: inicialización del dataLayer — debe ser el PRIMERO -->
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { dataLayer.push(arguments); }

    // Predeterminado: todo denegado — LGPD/LFPDPPP requieren opt-in
    gtag('consent', 'default', {
        ad_storage:              'denied',
        analytics_storage:       'denied',
        ad_user_data:            'denied',
        ad_personalization:      'denied',
        functionality_storage:   'denied',
        personalization_storage: 'denied',
        security_storage:        'granted', // siempre granted (Esenciales)
        wait_for_update:         500          // ms para esperar consentimiento de visitante recurrente
    });
</script>

<!-- Paso 2: CookieFácil — dispara el update después del banner -->
<script data-cfasync="false"
        src="https://cdn.cookiefacil.com.br/cdn/cf-banner.min.js?site=TU_SITE_ID"></script>

<!-- Paso 3: GTM — cargado después del gestor de consentimiento -->
<script async src="https://www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script>

CookieFácil dispara la llamada update automáticamente después de que el visitante acepta. No necesitas escribir la llamada de actualización manualmente.

Mapeo: categorías LGPD/LFPDPPP → señales GCM v2

Cuando un visitante acepta una categoría en el banner, estas señales se actualizan a 'granted'.

Categoría Señal(es) Google Consent Mode v2 Estado predeterminado
Esenciales security_storage Siempre granted
Analíticas analytics_storage denied hasta opt-in
Marketing ad_storage, ad_user_data, ad_personalization denied hasta opt-in
Funcionales functionality_storage, personalization_storage denied hasta opt-in

La llamada de actualización (implementación manual)

Si no estás usando CookieFácil, dispara este código después de que el visitante acepte.

// Dispara después de que el visitante acepte — CookieFácil lo hace automáticamente
document.addEventListener('cf:consent', function(e) {
    const { analytics, marketing, functional } = e.detail;

    gtag('consent', 'update', {
        analytics_storage:       analytics  ? 'granted' : 'denied',
        ad_storage:              marketing  ? 'granted' : 'denied',
        ad_user_data:            marketing  ? 'granted' : 'denied',
        ad_personalization:      marketing  ? 'granted' : 'denied',
        functionality_storage:   functional ? 'granted' : 'denied',
        personalization_storage: functional ? 'granted' : 'denied',
    });
});

CookieFácil dispara esta llamada de actualización automáticamente. La versión manual anterior es para equipos que construyen su propia interfaz de consentimiento y quieren integrarse con GCM v2.

Preguntas frecuentes

  • ¿Cómo implementar Google Consent Mode v2 para LGPD/LFPDPPP?

    Coloca gtag('consent', 'default', {...}) de forma síncrona antes de cualquier tag de Google, con todas las señales como 'denied'. Después de que el visitante acepte via el banner, llama a gtag('consent', 'update', {...}) con las señales autorizadas. Usa wait_for_update: 500 para que el consentimiento almacenado de visitantes recurrentes cargue antes de que las tags se disparen.

  • ¿Es obligatorio el Google Consent Mode v2 en México y LATAM?

    La LFPDPPP en México y las leyes de privacidad en Colombia, Argentina y Chile no exigen el GCM v2 directamente. Sin embargo, sin él Google Ads y GA4 operan en modo restrito — perdiendo hasta el 40% de los datos de conversión. Es una práctica recomendada para cualquier sitio que utilice herramientas de Google en LATAM.

  • ¿Qué es wait_for_update en Google Consent Mode v2?

    wait_for_update indica a las tags de Google que esperen hasta N milisegundos por una actualización de consentimiento antes de disparar en modo restrito. Configúralo en 500ms — tiempo suficiente para que el banner cargue y envíe la señal de actualización si un visitante recurrente ya tiene una decisión almacenada.

  • ¿Qué señales GCM v2 corresponden a qué categorías de cookies?

    analytics_storage → categoría Analíticas. ad_storage + ad_user_data + ad_personalization → categoría Marketing. functionality_storage + personalization_storage → categoría Funcionales. security_storage → siempre granted (Esenciales).

  • ¿Cómo verificar que Google Consent Mode v2 está funcionando?

    Usa la extensión Tag Assistant de Google Chrome. Las tags de rastreo deben aparecer como "Esperando consentimiento" antes de la interacción y "Completada" después de aceptar. También puedes verificar cualquier sitio con la herramienta de verificación gratuita de CookieFácil.