Cómo instalar GTM Server Side partiendo de client-side y Google Tag Gateway
Si ya tienes GTM client-side y Google Tag Gateway configurado desde Cloudflare, el salto a sGTM es más corto de lo que parece. Te explico el proceso paso a paso.

En el post anterior expliqué qué es GTM Server Side y cuándo tiene sentido implementarlo. En este me centro en el cómo — el proceso concreto para montarlo partiendo de una situación donde ya tienes GTM client-side funcionando y Google Tag Gateway activo desde Cloudflare.
Si aún no has leído esos posts te recomiendo empezar por qué es Google Tag Gateway y qué es GTM Server Side antes de continuar.
Lo que ya tienes
Punto de partida:
- GTM client-side funcionando en
www.tudominio.com - Google Tag Gateway activo desde Cloudflare — las peticiones de GA4 pasan por tu dominio
- GA4 recogiendo datos correctamente
Lo que vamos a añadir:
- Un contenedor sGTM desplegado en Google Cloud Run
- Un subdominio propio para el servidor —
gtm.tudominio.com - Configuración del contenedor client-side para enviar datos al servidor
- Tags en el servidor para reenviar a GA4 y otras herramientas
Paso 1: Crear el contenedor de sGTM en GTM
El primer paso es crear un nuevo contenedor de tipo servidor en GTM.
Ve a tagmanager.google.com → selecciona tu cuenta → Crear contenedor → introduce un nombre descriptivo como tudominio - Server → en Plataforma de segmentación selecciona Servidor.
Después debemos elegir que tipo de aprovisionamiento queremos hacer:
Y finalmente GTM te proporcionará un código de aprovisionamiento — una cadena de texto que necesitarás en el siguiente paso para desplegar el servidor. Cópialo y guárdalo.
Paso 2: Desplegar el servidor en Google Cloud Run
Google Cloud Run es la opción recomendada para desplegar sGTM. Es serverless — solo pagas por las peticiones que procesas — y la configuración inicial es relativamente sencilla.
2.1 Crea un proyecto en Google Cloud
Si no tienes uno, ve a console.cloud.google.com y crea un proyecto nuevo. Activa la facturación — Cloud Run tiene un nivel gratuito generoso pero necesitas tener una tarjeta o cuenta bancaria asociada.
2.2 Despliega sGTM desde la consola de Cloud
La forma más sencilla es usar el botón de despliegue automático que ofrece Google. En la documentación oficial de sGTM encontrarás un botón Deploy to Cloud Run que automatiza la mayor parte del proceso.
Durante el despliegue te pedirá:
- Región — elige la más cercana a tu audiencia principal. Para audiencia española
europe-west1(Bélgica) oeurope-southwest1(Madrid) son buenas opciones. - Código de aprovisionamiento — el que copiaste en el paso 1.
- Número mínimo de instancias — para empezar con 0 está bien. Si necesitas latencia muy baja puedes poner 1 para que siempre haya una instancia activa, pero tiene coste adicional.
2.3 Anota la URL del servidor
Una vez desplegado, Cloud Run te dará una URL del servidor con formato https://XXXX-XXXX.a.run.app. La necesitarás en los siguientes pasos.
Paso 2.1: Desplegar con Google en 1 solo click
A día de hoy es todavía más sencillo, una vez hemos creado el contenedor, creado la cuenta de facturación y hacer el aprovisionamiento. Google hace automáticamente toda la configuración para proporcionarte los datos finales de tu servidor.
Ahora solo quedaría configurar el dominio como propio, posiblemente lo ideal dentro de un subdominio como explicamos en el paso siguiente.
Paso 3: Configurar el dominio propio para el servidor
Las peticiones al servidor deben ir a través de tu propio dominio — no a la URL de Cloud Run — para que sean de primera parte. Vamos a usar por ejemplo gtm.tudominio.com.
3.1 Añade el subdominio en Cloudflare
Ve a Cloudflare → tudominio.com → DNS y añade:
Tipo: CNAME Nombre: gtm Valor: la URL de Cloud Run sin https:// (la URL que nos ha devuelto cloud run en el paso anterior) Proxy: Solo DNS (nube gris, NO naranja)
Es importante que sea nube gris, ya que el proxy de Cloudflare puede interferir con las peticiones servidor a servidor.
3.2 Configura el dominio en Cloud Run
En la consola de Google Cloud → Cloud Run → tu servicio → Dominios personalizados → Añadir asignación → introduce gtm.tudominio.com.
Google te pedirá verificar la propiedad del dominio. Si ya lo tienes verificado en Google Search Console el proceso es automático.
3.3 Actualiza la configuración del contenedor sGTM
En GTM → tu contenedor de servidor → Administrador → Configuración del contenedor → en URL del servidor introduce el subdominio elegido https://gtm.tudominio.com.
Paso 4: Configurar el contenedor client-side para enviar al servidor
Ahora hay que decirle a GTM client-side que envíe los datos al servidor en lugar de directamente a Google.
4.1 Actualiza la etiqueta de GA4
En tu contenedor client-side, abre la Etiqueta de Google (GA4) y busca la opción URL del servidor o Dominio del servidor. Introduce https://gtm.tudominio.com.
Si no ves esta opción directamente, ve a Opciones de configuración → Configuración de la etiqueta y busca el parámetro server_container_url. Añade tu URL del servidor como valor.
4.2 Publica el contenedor client-side
Una vez actualizada la etiqueta, publica una nueva versión del contenedor client-side. Esto es importante. Ya que, sin publicar, los cambios no tienen efecto en producción.
Paso 5: Configurar los tags en el servidor
El contenedor de servidor recibe los datos del cliente pero necesita tags para reenviarlos a los destinos finales.
5.1 Añade el cliente web de GA4
En tu contenedor de servidor → Clientes → Nuevo → selecciona Cliente web de GA4.
Este cliente recibe las peticiones del contenedor client-side y las transforma en eventos que el servidor puede procesar. La configuración por defecto funciona correctamente para la mayoría de casos.
5.2 Añade el tag de GA4 para reenviar los datos
En tu contenedor de servidor → Tags → Nuevo → selecciona Google Analytics: GA4.
Configura:
- ID de medición: tu Measurement ID (G-XXXXXXXXXX)
- Usar datos del evento de entrada: activado — así el tag hereda automáticamente los datos que llegan del cliente
Para el trigger usa All Events — quieres que el servidor reenvíe todos los eventos que recibe.
5.3 Publica el contenedor de servidor
Publica el contenedor de servidor con un nombre descriptivo. A partir de ahora los datos fluyen: navegador → contenedor client-side → servidor sGTM → GA4.
Paso 6: Verificar que todo funciona
Antes de dar el setup por bueno hay que verificar que los datos llegan correctamente.
6.1 Usa el modo preview del servidor
En tu contenedor de servidor → Vista previa. Abre tu web en otra pestaña — verás las peticiones llegando al servidor en tiempo real y cómo se procesan.
Comprueba que:
- Los eventos llegan al servidor desde el cliente
- El tag de GA4 se dispara correctamente
- Los eventos aparecen en GA4 en tiempo real
6.2 Comprueba en el Network Tab
Abre DevTools → Network Tab → filtra por gtm.tudominio.com. Deberías ver peticiones a tu subdominio del servidor. Si sigues viendo peticiones directas a region1.google-analytics.com algo no está bien configurado.
6.3 Comprueba GA4 en tiempo real
En GA4 → Informes → En tiempo real — verifica que los eventos siguen llegando después del cambio. Si no ves actividad, revisa la configuración del tag de GA4 en el servidor.
Paso 7: La relación con Google Tag Gateway
Con sGTM activo, Google Tag Gateway sigue siendo útil pero su rol cambia.
El Gateway mejora la carga del script de GTM client-side desde tu dominio. sGTM gestiona el envío de datos al servidor. Son capas complementarias:
Navegador → carga GTM desde tu dominio (Gateway) → envía datos a gtm.tudominio.com (sGTM) → servidor reenvía a GA4, Google Ads, Meta…
No necesitas cambiar la configuración del Gateway — sigue funcionando como antes para la carga del script de GTM.
Añadir más destinos: Meta CAPI
Una de las ventajas más importantes de sGTM es poder añadir la Conversions API de Meta para enviar eventos de conversión servidor a servidor.
En tu contenedor de servidor → Tags → Nuevo → busca la plantilla Meta Conversions API en la galería de plantillas de la comunidad.
Configura:
- Pixel ID: tu ID de píxel de Meta
- Access Token: el token de acceso de la API generado desde Meta Business Manager
- Eventos a enviar: las conversiones que quieres enviar a Meta
Con esto los eventos de conversión llegan a Meta tanto desde el cliente (píxel) como desde el servidor (CAPI), y Meta deduplica automáticamente. El resultado es una atribución más completa y precisa en tus campañas.
Costes aproximados
Cloud Run cobra por número de peticiones y tiempo de CPU. Para un site personal como este, con tráfico moderado, el coste mensual es mínimo y probablemente quede por debajo del nivel gratuito de Cloud Run.
Para sites con más tráfico aquí podemos ver una pequeña lista:
- Hasta 100k peticiones/mes: prácticamente gratuito
- 100k - 1M peticiones/mes: entre 5€ y 20€/mes aproximadamente
- Más de 1M peticiones/mes: depende del tráfico y la configuración de instancias
Si quieres controlar el coste, configura el número máximo de instancias en Cloud Run y activa las alertas de facturación en Google Cloud.
¿Tienes dudas sobre algún paso del proceso o estás encontrando algún problema en la implementación? Escríbeme.


