Cómo configurar Google Consent Mode v2 en Shopify

Pon tus valores por defecto de Consent Mode, en denegado, en theme.liquid por encima del contenedor, y haz que el banner escriba la elección del visitante en dos sitios con el mismo clic: Google Consent Mode y la Customer Privacy API de Shopify. Shopify tiene dos sistemas de consentimiento, no uno. Si conectas solo la mitad de Google, tus Custom Pixels siguen disparándose elija lo que elija el visitante.
Empieza con un análisis.
El análisis gratuito lee el HTML de tu página de inicio y tu contenedor público de Tag Manager, y muestra las etiquetas de seguimiento que encuentra.
Gratis · Sin registro · Revisión de HTML y GTM público
Shopify tiene dos sistemas de consentimiento, y solo uno es de Google
La mayoría de las guías sobre el tema te explican cómo activar una app de consentimiento y pegar un contenedor. Lo que decide si la configuración aguanta es estructural y propio de Shopify: el consentimiento se aplica en dos sitios distintos que no saben nada el uno del otro a menos que los conectes.
La Customer Privacy API de Shopify controla lo que gestiona la plataforma: los Custom Pixels y los píxeles de apps. Nada de lo que hagas en Google Tag Manager llega hasta ella. Solo escucha una cosa, Shopify.customerPrivacy.setTrackingConsent(), y hasta que algo la llama, mantiene el estado que ya tuviera. Shopify documenta el método en su referencia de la Customer Privacy API.
Google Consent Mode v2 controla tus propias etiquetas: el contenedor de theme.liquid y todo lo que dispara. Escucha gtag('consent', ...) y no tiene ni idea de que existe la Customer Privacy API.
Así que hay dos formas de fallar. Si conectas solo Consent Mode, tus etiquetas de GA4 y Ads se portan bien, pero los Custom Pixels y los píxeles de apps siguen sin bloquear. Si conectas solo el lado de Shopify, tu propio contenedor se dispara sin control. Una app de consentimiento de la App Store suele encargarse de los dos, y por eso esa vía es más fácil; una CMP pegada en el tema no, salvo que escribas el callback tú mismo.
Hacerlo bien no es un detalle menor. Cada visitante cuya elección llega solo a uno de los dos sistemas acaba rastreado sin permiso o desaparece de los informes sin motivo. Cuántos visitantes rechazan en tu tienda depende de tus regiones, tu público y el diseño de tu banner, y puedes verlo en la tasa de consentimiento de tu CMP o en los ajustes de privacidad de clientes de Shopify.
Un clic en el banner tiene que escribir en los dos.
Shopify
Customer Privacy APIControla los Custom Pixels y los píxeles de apps, incluido el píxel del checkout.
Quién escribe en élsetTrackingConsent()
Controla el contenedor de theme.liquid y todo lo que dispara: GA4, Google Ads, Meta.
Quién escribe en élgtag('consent', 'update', ...)
Ninguno de los dos sistemas lee al otro, y ninguno te avisa de que al otro nunca se le informó.
¿Cómo configuras Consent Mode v2 en Shopify?
Decide qué banner se encarga de la decisión
El banner propio de Shopify, en Settings y luego Customer privacy, o una CMP. El banner de Shopify escribe por ti en la Customer Privacy API, pero no habla Consent Mode, así que igualmente tienes que conectarlo con tu contenedor. Una CMP instalada como app de Shopify suele cubrir los dos lados; una pegada en el tema como script solo cubre el lado de Google hasta que añades el callback. El paso seis es el que te dice qué mitades cubre de verdad la tuya.
Fija valores por defecto denegados por encima del contenedor
Un comando default de Consent Mode que ponga
ad_storage,analytics_storage,ad_user_datayad_personalizationendenied, colocado entheme.liquidantes del fragmento del contenedor, no después. Es el orden sobre el que descansa toda la configuración: un valor por defecto que llega cuando el contenedor ya ha disparado una etiqueta no es un valor por defecto, es una corrección que llega tarde. Si das servicio a regiones fuera del EEE, limita los valores por defecto por región en lugar de denegarlo todo en todas partes.Pon el banner en el tema, nunca en un Custom Pixel
Los Custom Pixels se ejecutan dentro de un iframe aislado con su propio origen opaco. Desde ahí un banner no puede mostrarse en la página, y las cookies que se escriben dentro no se comportan como cookies de origen propio. El banner va en
theme.liquid, en el contexto principal de la página, por encima del contenedor.Escribe la elección en los dos sistemas con el mismo clic
Al aceptar o rechazar, envía la actualización de Consent Mode y, en el mismo handler, llama a
Shopify.customerPrivacy.setTrackingConsent()con las categorías correspondientes. Si te saltas esta mitad, los Custom Pixels y los píxeles de apps nunca se enteran de que el visitante dijo que no. Es el hueco más habitual que encontramos en tiendas Shopify que creen tenerlo todo listo.Reacciona a la elección en la misma página vista
Shopify dispara un evento
visitorConsentCollectedcuando se registra el consentimiento. Escúchalo y aplica el estado en lugar de esperar a la siguiente navegación, para que a un visitante que acepta en la página de colección se le mida en esa misma página y no a partir de la siguiente.Compruébalo en la tienda publicada, por los dos caminos, y revisa el checkout aparte
No en la vista previa. Al rechazar, tu petición a GA4 debería seguir saliendo, con un valor
gcsque indique la denegación, en vez de no salir en absoluto; los Custom Pixels no deberían aparecer y no debería instalarse ninguna cookie publicitaria. Al aceptar, todo eso debería aparecer. Después repite la comprobación completa dentro del checkout, que funciona en su propio sandbox y puede comportarse de forma distinta a la tienda que acabas de probar.
El argumento del orden, sin los detalles de Shopify, está en por qué las etiquetas se disparan antes de que cargue el banner de cookies, y Consent Mode básico frente a avanzado te dice cuál has acabado usando más rápido que si te pones a leer tu propio contenedor.
Tres cosas que sorprenden en Shopify
Pendiente no es aceptado. Antes de que el visitante elija, la Customer Privacy API indica un estado pendiente. Un puente que trata como un sí todo lo que no sea un no explícito tiene fugas en cada primera página vista. Trata el estado pendiente como denegado.
Puede que los visitantes que ya venían antes de activar el banner no lleguen a verlo nunca. En una tienda en la que ampliamos un banner de Shopify a todas las regiones europeas, los visitantes nuevos recibían correctamente el estado pendiente y el banner, mientras que los que volvían y habían navegado antes de que existiera el banner se quedaron como aceptados por herencia y nunca lo vieron. Es lo que observamos en una tienda, no una regla documentada, así que compruébalo en la tuya antes de interpretar una tasa de aceptación: esas primeras semanas pueden mezclar dos poblaciones.
El checkout es otro entorno. El checkout de Shopify ejecuta los píxeles dentro de ese iframe aislado, en un origen opaco donde escribir cookies da error. Una configuración perfecta en la tienda puede seguir generando sesiones de checkout sin contexto de página. Es un fallo de medición, no de consentimiento, pero aflora en cuanto los números se niegan a cuadrar.
Qué revisar si los números siguen sin cuadrar
Diagnostica los dos sistemas por separado, porque el síntoma te dice qué lado ha fallado. Si los Custom Pixels siguen disparándose tras un rechazo, nadie ha escrito en la Customer Privacy API: paso cuatro. Si GA4 se queda en silencio en vez de enviar pings denegados, tus valores por defecto deniegan sin que Consent Mode esté activo en absoluto: paso dos. Si hay cookies antes de cualquier clic, algo se carga por encima de tus valores por defecto, normalmente un script incrustado a mano y no una etiqueta del contenedor, y eso es una cuestión de categorización.
Velo se encarga de las dos mitades a partir de una sola decisión: el banner está en el tema, escribe en Consent Mode y en la Customer Privacy API con el mismo clic y pasa ese mismo estado al contenedor, así que los dos sistemas no pueden acabar discrepando sobre lo que dijo el visitante.
Preguntas frecuentes
Lo que más se pregunta sobre este tema.
¿Cómo configuro Google Consent Mode v2 en Shopify?
Fija los valores por defecto de Consent Mode en denegado en theme.liquid, por encima de tu contenedor, carga el banner en el tema y no en un Custom Pixel, y cuando el visitante haga clic, envía tanto la actualización de Consent Mode como una llamada a setTrackingConsent de Shopify. Shopify tiene dos sistemas de consentimiento: la Customer Privacy API controla los Custom Pixels y los píxeles de apps, y Consent Mode controla las etiquetas de tu contenedor. Si escribes solo en uno, el otro sigue disparándose con el estado que ya tuviera. Después compruébalo en la tienda publicada, tanto aceptando como rechazando, y revisa el checkout por separado, porque funciona en su propio sandbox.
¿El banner de cookies propio de Shopify es compatible con Google Consent Mode v2?
No por sí solo. El banner de Shopify escribe la elección del visitante en la Customer Privacy API, que es el lado de la plataforma, y eso controla correctamente los Custom Pixels y los píxeles de apps. No envía ninguna actualización de Consent Mode, así que no afecta a las etiquetas de tu propio contenedor. Sigues necesitando un puente que escuche la decisión de consentimiento y lance la actualización de consentimiento de gtag, o una app de consentimiento que haga las dos mitades por ti.
¿Por qué mis Custom Pixels de Shopify siguen disparándose después de que un visitante rechace las cookies?
Porque los Custom Pixels los controla la Customer Privacy API de Shopify, no Google Consent Mode, y nadie le ha comunicado el rechazo. Consent Mode no llega a la capa de la plataforma. Lo que recoja la elección tiene que llamar a setTrackingConsent con las categorías correspondientes en el mismo clic que envía la actualización de Consent Mode. Hasta que lo haga, la plataforma mantiene el estado que tuviera, y pendiente no es lo mismo que rechazado.
¿Por qué el banner de cookies no aparece a algunos visitantes recurrentes en Shopify?
En una tienda en la que ampliamos un banner de Shopify a todas las regiones europeas, los visitantes que habían navegado antes de que existiera el banner se quedaron como aceptados por herencia y nunca lo vieron, mientras que los visitantes nuevos recibían correctamente el estado pendiente y el banner. Es lo que observamos en una tienda, no una regla documentada, así que compruébalo en la tuya. Si se cumple, una tasa de aceptación medida en las primeras semanas tras el lanzamiento está mezclando dos poblaciones.
Privacidad web, en un solo lugar.
Analiza tu web →
