En algún momento, la mayoría de las tiendas terminan operando en más de un dominio. Por ejemplo, un dominio «.com» para clientes internacionales y un «.de» para Alemania; un sitio web de marca junto a la tienda online; o un dominio de aterrizaje que redirige a los usuarios según su país. A veces, una única plataforma da servicio a cinco dominios; otras veces, se trata de cinco tiendas totalmente independientes.
Cualquiera de estas configuraciones provoca problemas en el seguimiento de los datos: los visitantes se contabilizan dos veces, las plataformas publicitarias pierden la referencia del clic y el banner de consentimiento vuelve a aparecer constantemente. Esto no ocurre porque algo esté mal configurado, sino porque la configuración inicial no se diseñó para gestionar múltiples dominios.
En este artículo explico cinco medidas que aplico en cualquier tienda con múltiples dominios. Lo hago de forma sencilla, incluyendo una breve lista de «qué hacer» en cada caso. Al terminar, sabrás cuáles de estas cinco medidas se aplican a tu situación y en qué orden debes implementarlas.
Existen tres formas de gestionar cinco mercados; solo las dos últimas requieren aplicar las medidas 4 y 5.
¿Por qué el uso de varios dominios afecta al seguimiento?
Hay dos conceptos clave que debes conocer; todo lo demás se deriva de ellos.
Las cookies están vinculadas a un dominio específico. Imagina una cookie como una tarjeta de fidelización válida únicamente para una tienda concreta: la tarjeta que obtienes en «shop.com» no sirve en «shop.de». Por tanto, si un visitante llega a «shop.com» a través de un anuncio en Meta y realiza una compra en «shop.de», GA4 interpretará que se trata de dos personas distintas, Meta registrará una compra sin un clic previo y es posible que Google Ads ni siquiera detecte la conversión.
El consentimiento también está vinculado a un dominio. La aceptación que un usuario otorga en «shop.com» se almacena en una cookie dentro de ese mismo dominio. Al acceder a «shop.de», el banner vuelve a aparecer y, hasta que el usuario no acepte de nuevo, tus etiquetas (tags) funcionarán en modo «denegado».
Ninguno de estos problemas aparece como un error técnico; simplemente, tus informes mostrarán cifras inferiores a la realidad. Las cinco medidas que presento a continuación solucionan estos inconvenientes. Como están interconectadas, te recomiendo seguirlas en el orden indicado.
1. Identifica qué tipo de estructura multi-dominio tienes
Existen cuatro formas de gestionar varios mercados, y cada una presenta un nivel de dificultad distinto en cuanto al seguimiento de datos. La mayoría de las plataformas ofrecen las tres primeras opciones como una configuración nativa (Shopify Markets, WooCommerce multisite y las vistas de tienda en Magento funcionan así). La cuarta opción responde a una decisión de negocio.
Subdirectorios: `shop.com/de`, `shop.com/fr` — Un solo dominio, un único conjunto de cookies, un solo banner de consentimiento. Es la opción más sencilla para realizar el seguimiento.
Subdominios: `de.shop.com`, `fr.shop.com` — Las cookies pueden configurarse en el dominio principal (`.shop.com`), de modo que todos los subdominios puedan leerlas. Es casi igual de sencillo.
Dominios de nivel superior (TLD): `shop.de`, `shop.fr` — Conjuntos de cookies independientes, consentimientos separados. Requiere aplicar las prácticas 4 y 5.
Tiendas independientes: Una cuenta de plataforma por país — Todo es independiente, incluidos el proceso de pago y el carrito. Requiere aplicar las prácticas 4 y 5.
Por lo general, el SEO y las necesidades operativas determinan esta elección, lo cual es correcto. Los subdirectorios comparten la autoridad de tu dominio principal; los dominios específicos por país ofrecen una señal local más sólida; y las tiendas independientes son la única opción cuando el catálogo o la entidad legal varían según el país. Eso sí, plantea la cuestión del seguimiento antes de comprar los dominios, ya que la respuesta determinará en qué medida el resto de este artículo es aplicable a tu caso.
¿Qué hacer?
Haz una lista de todos los dominios y subdominios a los que puede llegar un visitante, incluidos aquellos que solo sirven para redirigir.
Clasifica cada uno en su categoría correspondiente. Para subdirectorios y subdominios, puedes omitir las prácticas 4 y 5. Para dominios de nivel superior o tiendas independientes, necesitarás aplicar las cinco prácticas.
Si los dominios aún no están activos y el SEO no exige el uso de dominios específicos por país, opta por los subdirectorios. Esto te permitirá prescindir de dos de las cinco prácticas.
2. Un modelo de datos único; luego, decide cuántos contenedores utilizar
Los eventos que envía tu sitio deben ser idénticos en todos los dominios: mismos nombres de evento, mismos parámetros, mismos ID de producto y la moneda local en el campo correspondiente. GA4 realiza la conversión de divisas automáticamente; además, las cuentas de Google Ads están vinculadas a una moneda específica. Solo si los eventos son idénticos será posible compararlos entre distintos mercados más adelante.
A continuación, decide cuántos contenedores de GTM (Google Tag Manager) necesitas. Existen tres opciones, y la elección correcta dependerá del nivel de control que requieras para cada dominio.
Opción A: un par de contenedores para todos los dominios. Un contenedor web, un contenedor de servidor. Las variables de tipo «tabla de búsqueda» (lookup table), que utilizan el nombre de host como clave, devuelven los identificadores correctos para cada dominio: el ID de medición de GA4, el ID de conversión de Google Ads, el píxel de Meta, el ID del banner de consentimiento, etc.
Una tabla de búsqueda por cada identificador. El valor predeterminado permite gestionar cualquier dominio que añadas más adelante.
Elige esta opción cuando todos los dominios compartan una misma estructura y el mismo conjunto de plataformas, cuando un único equipo se encargue de todo y cuando un cambio deba aplicarse en todos los sitios simultáneamente.
Opción B: un par de contenedores (web y servidor) por cada dominio. Esto ofrece un control total sobre cada mercado. Permite, por ejemplo, tener una etiqueta que solo esté activa en Alemania, conceder acceso a una agencia únicamente al contenedor de Francia, o realizar cambios en un mercado sin que ello afecte a los demás. El inconveniente es que cada modificación debe realizarse cinco veces. Es recomendable copiar los contenedores mediante un script o una exportación, ya que, si se hace manualmente, es muy probable que, en menos de un mes, las configuraciones terminen siendo diferentes entre sí.
Elige esta opción cuando los mercados utilicen plataformas distintas, trabajen con agencias diferentes o requieran configuraciones de consentimiento específicas.
Opción C: un contenedor web por dominio y un único contenedor de servidor compartido. Es la configuración que más suelo implementar. El contenedor web es donde residen la estructura general, el banner de consentimiento y las etiquetas específicas de cada mercado; es precisamente ahí donde resulta ventajoso tener un control individualizado por dominio. Por su parte, el contenedor de servidor es donde se almacenan las credenciales; además, los enfoques 3 y 4 requieren el uso de un contenedor de servidor único.
En fin.
Elijas la opción que elijas, ten en cuenta el tamaño del contenedor. GTM deja de guardar cambios cuando un contenedor se llena; los contenedores multidominio se llenan rápidamente, ya que cada tabla de búsqueda, cada activador (trigger) específico por dominio y cada excepción consumen espacio. En una prueba realizada por Stape, se alcanzó el 85 % de capacidad con solo 41 etiquetas. Puedes consultar este porcentaje en la sección «Administración» (Admin), bajo «Versiones del contenedor».
¿Qué hacer?
Incluye el mismo fragmento de seguimiento (tracking snippet) en todos los dominios y verifica que una misma acción genere el mismo evento en todos ellos.
Elige la opción A, B o C siguiendo las indicaciones mencionadas anteriormente. Ante la duda, opta por la C.
Decide qué identificadores (IDs) serán compartidos y cuáles serán independientes. Por lo general: los píxeles de Meta y TikTok se comparten (para lograr audiencias más amplias); GA4 se configura por mercado, además de una propiedad global; y Google Ads se organiza según la moneda utilizada.
Comprueba el tamaño del contenedor ahora y vuelve a revisarlo cada vez que añadas un nuevo mercado.
3. Mantén todos los dominios bajo una configuración «first-party» (de origen) en un único contenedor de servidor.
Aquí tienes una explicación sencilla de un tema que suele ser bastante técnico.
La vida útil de una cookie depende de quién la crea. Safari elimina, al cabo de siete días, cualquier cookie generada mediante JavaScript en el navegador o por un servidor en un dominio ajeno. En cambio, una cookie creada por un servidor en tu propio dominio permanece activa durante el tiempo que tú determines. El término «first-party» (de origen) significa, precisamente, que la cookie ha sido creada por tu propio dominio.
Ese servidor es tu servidor de etiquetado (tagging server). En un sitio de un solo dominio, le asignas un nombre de host, por ejemplo: `data.shop.com`. En una tienda multidominio, es necesario contar con un nombre de host específico para cada dominio, ya que una cookie creada por `data.shop.com` seguiría considerándose una cookie externa (de terceros) si se intenta usar en `shop.de`.
Todos estos nombres de host pueden apuntar al mismo contenedor. La función «Multi-Domains» de Stape permite vincular hasta 20 dominios (en el plan Business) o 50 (en el plan Enterprise) a un único contenedor de servidor. De este modo, cada dominio conserva sus propias cookies «first-party», mientras tú solo gestionas un único contenedor.
Dos detalles que marcan una diferencia real:
Evita utilizar nombres predecibles. Los bloqueadores de anuncios (ad blockers) funcionan a partir de listas de filtros; términos como `sst.`, `gtm.` o `data.` son fácilmente detectables. ...y las herramientas de analítica aparecen en esas listas. Asigna a cada dominio un nombre de host o una ruta que incluya un prefijo o sufijo aleatorio, y carga GTM a través del «Custom Loader» (cargador personalizado) de Stape para que la ruta del script también sea única. Un nombre de host que nadie más utiliza no aparece en ninguna lista.
shop.de -> k7dq.shop.de o shop.de/k7dq/
shop.fr -> m2xr.shop.fr o shop.fr/m2xr/
En Safari, el uso de una ruta es preferible al de un subdominio. Safari interpreta un subdominio que apunta a tu proveedor de etiquetado como una técnica de «enmascaramiento CNAME» (*CNAME cloaking*), por lo que limita la duración de las cookies a siete días. Por el contrario, una ruta dentro de tu propio dominio, configurada mediante un proxy que apunte al contenedor, no presenta ningún registro CNAME que pueda ser detectado. Esta opción requiere un proxy frente a tu sitio web, por lo que es ideal para tiendas que ya cuentan con uno; de lo contrario, el uso de un subdominio es perfectamente válido.
Un único contenedor, cinco dominios de origen (*first-party domains*) y cuatro zonas.
Luego, un aspecto que suele pasarse por alto en la mayoría de las configuraciones: dónde se ejecuta el contenedor. Si un visitante en EE. UU. envía eventos a un contenedor alojado en Alemania, cada solicitud experimentará una latencia de varios cientos de milisegundos; en conexiones móviles lentas, esto puede provocar que algunos eventos nunca lleguen a su destino. El alojamiento «Multi-Zone» (multizona) de Stape permite ejecutar un mismo contenedor en cuatro zonas distintas (Iowa, Alemania, Brasil y Singapur), dirigiendo cada solicitud a la ubicación más cercana al visitante. Se trata del mismo contenedor y la misma configuración, sin necesidad de realizar ajustes específicos para cada mercado.
Esta función requiere un plan «Business» o superior y debe seleccionarse al crear el contenedor. No es posible cambiar un contenedor existente a esta modalidad; por tanto, si una tienda decide expandirse internacionalmente utilizando una configuración ya establecida, deberá crear un nuevo contenedor. Al combinar «Multi-Zone» con «Multi-Domains», obtienes un contenedor único, dominios siempre de origen (*first-party*) y la garantía de que cada visitante se conecta a la zona más cercana.
Pasos a seguir
Crea un contenedor de servidor (*server container*). Si tus visitantes se encuentran repartidos en más de un continente, selecciona la opción «Global multi-zone» al realizar la creación.
Añade un nombre de host para el etiquetado en cada dominio mediante la función «Multi-Domains». Utiliza un prefijo aleatorio; evita nombres como «data.» o «gtm.». Habilita el cargador personalizado (Custom Loader) y, a través de él, carga GTM en todos los dominios.
Verifica en el navegador que las cookies de cada dominio hayan sido establecidas por el propio nombre de host de dicho dominio.
4. No pierdas al visitante entre dominios
Si utilizas subcarpetas o subdominios, puedes omitir este paso. En el caso de dominios de nivel superior o tiendas independientes, es la metodología aplicada la que determina si tus plataformas publicitarias registrarán una conversión cuando un visitante cambie de país.
Existen tres niveles. Cada uno aporta elementos que el anterior no puede ofrecer. Capa 1: El vinculador (linker) propio de Google. Google lo tiene integrado; solo tienes que activarlo. Añade todos tus dominios a la configuración de dominios de la etiqueta de Google (Google Tag) y habilita la vinculación entre dominios en el «Vinculador de conversiones» (Conversion Linker) utilizando esa misma lista. Google añadirá entonces un parámetro `_gl` a cada enlace entre dichos dominios, el cual transporta el ID de cliente de GA4 y el ID de clic de Google Ads. En el destino, la etiqueta de Google lee este parámetro y recrea las cookies. Vincula únicamente aquellos dominios que envíen datos a la misma propiedad de GA4: es necesario para la propiedad global, pero no para las propiedades específicas de cada mercado. Además, añade todos tus dominios a la lista de «referencias no deseadas» (unwanted referrals) en cada propiedad; de lo contrario, el selector de país aparecerá registrado como una fuente de tráfico.
Capa 2: IDs de clic en enlaces salientes. El vinculador solo transporta los IDs de Google. Plataformas como Meta, TikTok o Microsoft pierden la trazabilidad del origen publicitario del visitante en cuanto cambia el nombre de host (hostname). Por tanto, captura los IDs de clic y los parámetros de campaña cuando el visitante llegue al sitio, almacénalos en una cookie de origen (first-party cookie) y añádelos a cualquier enlace que dirija a otro de tus dominios:
- gclid
- gbraid
- wbraid
- msclkid
- fbclid
- ttclid
- utm_source
- utm_medium
- utm_campaign
De este modo, los píxeles en `shop.de` registrarán el clic como si el visitante hubiera llegado directamente a ese sitio. Ten cuidado con las redirecciones realizadas mediante JavaScript: los controles de edad, las redirecciones geográficas o las ventanas emergentes de selección de país no utilizan enlaces, por lo que el proceso de «decoración» de enlaces no se ejecuta. En estos casos, intercepta la redirección y añade los parámetros a la URL antes de que esta se active.
Capa 3: Información que una URL no puede transportar. Cookies como `_fbp` y `_fbc` (de Meta), `_ttp` (de TikTok) o `_kx` (de Klaviyo) se configuran de forma específica para cada dominio y no se transfieren entre ellos. Sin estos datos, la calidad de la coincidencia (match quality) de los eventos enviados a través de la API de conversiones (CAPI) disminuye, lo que resulta en una menor atribución por parte de la plataforma publicitaria. Aquí es donde entra en juego Stape Store. La etiqueta «Cookie reStore» de Stape guarda dichas cookies en Stape Store, asociadas al ID de cliente de GA4 en el dominio A. Cuando ese mismo ID de cliente llega al dominio B a través del parámetro «_gl» (procedente de la capa 1), la etiqueta busca el registro y vuelve a establecer las cookies en el dominio B, tratándolas como cookies de origen (first-party). Para ello, es necesario que ambos dominios estén configurados en un mismo contenedor de servidor, algo que ya se abordó en el ejercicio 3.
La función «Enricher» de Stape realiza un proceso similar para los visitantes que puedes identificar. En cuanto un usuario proporciona su dirección de correo electrónico —ya sea durante el proceso de compra, al iniciar sesión o a través de un formulario de suscripción—, Enricher almacena sus datos de usuario y sus cookies de marketing, incorporándolos a todos los eventos posteriores en cualquier dominio gestionado por el contenedor. Esto funciona tanto entre distintos dominios como entre diferentes dispositivos. Ambas herramientas solo se ejecutan si existe consentimiento para fines de marketing, lo que nos lleva al último punto.
Pasos a seguir:
Google Tag: añade todos tus dominios en la sección «Configurar tus dominios». En «Conversion Linker», habilita la vinculación entre dominios (cross-domain linking) utilizando la misma lista.
GA4 (en todas las propiedades): añade tus dominios tanto en «Configurar tus dominios» como en la «Lista de referencias no deseadas».
Implementa un pequeño script que almacene los parámetros mencionados al llegar al sitio y los añada a los enlaces que dirigen a tus otros dominios, así como a cualquier redirección mediante JavaScript.
Contenedor de servidor: importa la etiqueta «Cookie reStore», conéctala a Stape Store y configúrala para que se active en cada visualización de página. Activa también la función «Enricher».
Realiza una prueba completa de todo el flujo, de principio a fin. Consulta la sección «Cómo realizar pruebas» más abajo.
5. Consentimiento por dominio, valores predeterminados por región
El consentimiento otorgado por un visitante se almacena en una cookie; por tanto, al igual que cualquier otra cookie, está vinculado a un dominio específico. Si un usuario acepta el consentimiento en «shop.com», al acceder a «shop.de» verá el banner de nuevo. Hasta que no vuelva a aceptar, todas las etiquetas se ejecutarán en modo «denegado» y no se llevará a cabo ninguna de las acciones descritas en la capa 3.
La mayoría de las herramientas de gestión de consentimiento ofrecen soluciones para esto. Por ejemplo, en Cookiebot, puedes agrupar todos tus dominios bajo un mismo ID; de este modo, el consentimiento se solicita una sola vez para todo el grupo. Antes de habilitar esta opción, verifica qué requisitos te exige el RGPD (GDPR). El consentimiento debe ser informado y específico: el banner debe indicar los dominios que abarca —los cuales deben pertenecer a la misma empresa— y el visitante debe poder retirar su consentimiento en cada uno de ellos. No es posible compartir el consentimiento entre distintas marcas o entidades legales. Además, Safari bloquea el almacenamiento necesario para este tipo de intercambio, por lo que debes mantener el banner estándar como opción predeterminada.
Hablemos ahora del idioma. La mayoría de las herramientas de gestión del consentimiento determinan la legislación aplicable según la ubicación del visitante, mientras que el idioma del banner se basa en la configuración del navegador. Esto provoca que, por ejemplo, un usuario alemán que visita «shop.fr» vea un banner en alemán en un sitio web francés; algo que da una mala impresión y reduce la tasa de aceptación. En su lugar, configura el idioma del banner para que coincida con el idioma del sitio web. En la plantilla de Cookiebot para GTM, esto corresponde al campo «Language» (Idioma): ajústalo al idioma de la tienda en lugar de utilizar la detección automática. Si un mismo contenedor web da servicio a varios idiomas, emplea una tabla de búsqueda («lookup table») basada en el nombre de host para definir el idioma, tal como hiciste anteriormente con los identificadores (IDs).
Asimismo, establece los valores predeterminados del «Consent Mode» (Modo de consentimiento) según la región, en lugar de aplicar una configuración única para todos. Por ejemplo, establece el estado como «denegado» (denied) para el EEE, el Reino Unido y Suiza, y ajusta la configuración según lo que exija la legislación local en otras regiones. En la plantilla de Cookiebot, esto se gestiona en la tabla de regiones dentro de la sección «Consent Mode»: crea una fila para el EEE, el Reino Unido y Suiza con todos los permisos denegados; añade una fila para cada país cuya legislación permita el consentimiento otorgado por defecto; y deja una fila en blanco como opción predeterminada para el resto de los países.
Configuraciones predeterminadas por región en la plantilla de Cookiebot. La fila en blanco actúa como opción predeterminada para cualquier otro país.
Dos cosas más...
Si tu plataforma cuenta con su propia API de consentimiento (como es el caso de Shopify), la herramienta de gestión del consentimiento debe transmitir la decisión a dicha API en cada tienda; de lo contrario, los píxeles propios de la plataforma y el proceso de pago (checkout) la ignorarán. Asimismo, es necesario enviar el estado del consentimiento al servidor junto con cada evento, para garantizar que CAPI, Cookie reStore y Enricher lo respeten en todos los dominios.
Qué hacer
Agrupa todos los dominios de una misma empresa dentro de tu herramienta de gestión del consentimiento. Consulta con tu equipo legal —nunca por tu cuenta— sobre el intercambio de datos entre dominios.
Configura el idioma del banner basándote en el idioma de la tienda, no en la ubicación del visitante.
Establece los valores predeterminados del «Modo de consentimiento» (Consent Mode) según la región.
Transmite el estado del consentimiento al contenedor del servidor y verifica que las etiquetas de CAPI lo respeten.
Cómo ponerlo en práctica
El orden es fundamental, ya que cada paso depende del anterior.
1. Enumera tus dominios y determina a qué categoría perteneces (práctica 1).
2. Asegúrate de que los eventos sean idénticos en todos los dominios y, a continuación, elige la configuración de tu contenedor (práctica 2).
3. Crea un contenedor de servidor (utiliza la opción «Multi-Zone» si recibes visitantes de todo el mundo) y asigna a cada dominio su propio nombre de host de origen (first-party hostname) (práctica 3).
4. Solo en el caso de dominios distintos: activa el «linker» de Google, añade identificadores de clic (click IDs) a los enlaces salientes y configura Cookie reStore y Enricher (práctica 4).
5. Agrupa tus dominios en la herramienta de gestión del consentimiento, ajusta el idioma del banner y establece los valores predeterminados por región (práctica 5).
Cómo realizar pruebas
Sigue el mismo recorrido que realizaría un visitante. Abre el «dominio A» incluyendo `?gclid=test&fbclid=test` en la URL, acepta el banner y navega al «dominio B» a través del selector de país. A continuación, comprueba lo siguiente: la URL en el «dominio B» debe contener el parámetro `_gl` y los identificadores de clic; la cookie `_ga` debe tener el mismo valor en ambos dominios; la cookie `_fbp` debe estar presente en el «dominio B»; y el banner en el «dominio B» debe mostrarse en el idioma correcto. Por último, abre la vista previa (preview) del contenedor del servidor y confirma que las solicitudes salientes incluyan los identificadores correspondientes a ese nombre de host. Por último, compara las compras por mercado en GA4 con los pedidos por mercado en el panel de administración de tu tienda para la misma semana. Una discrepancia superior a un pequeño porcentaje es una señal de que no se está siguiendo una de las cinco prácticas mencionadas anteriormente.
Conclusión
El seguimiento entre dominios no es más que un seguimiento de dominio único aplicado a varios dominios, al que se añaden tres elementos: vincular al visitante a través de los distintos dominios, transmitir información que una URL no puede transportar por sí sola y garantizar que el consentimiento del usuario se respete de forma coherente en todas partes. Define primero la arquitectura, mantén un modelo de datos unificado, configura todos los dominios como «de origen» (first-party) en un mismo contenedor; el resto es cuestión de disciplina.