Server-side tracking con sGTM: setup completo en 2 horas (Cloud Run + Shopify)
Tutorial paso a paso para implementar Server-side Google Tag Manager (sGTM) en Cloud Run conectado a Shopify. Recupera 30-50% de conversiones perdidas por iOS ATT, ITP, ad blockers.
Server-side tracking (sGTM) en Cloud Run conectado a Shopify recupera el 30-50% de conversiones perdidas por iOS 17+ ATT, ITP de Safari, ad blockers y políticas de cookies. Setup completo en 2 horas: (1) crear container sGTM en GTM, (2) deploy en Cloud Run (free tier hasta 100K req/día), (3) custom domain con SSL automático, (4) configurar webhook Shopify orders/create → sGTM → Google Ads + Meta CAPI + GA4. Coste mensual: 5-15€. ROI: 28% mejora ROAS reportado en 30 días.
Resumen
Server-side tracking (sGTM) en Cloud Run conectado a Shopify recupera el 30-50% de conversiones perdidas por iOS 17+ ATT, ITP de Safari, ad blockers y políticas de cookies. Setup completo en 2 horas: (1) crear container sGTM en GTM, (2) deploy en Cloud Run (free tier hasta 100K req/día), (3) custom domain con SSL automático, (4) configurar webhook Shopify orders/create → sGTM → Google Ads + Meta CAPI + GA4. Coste mensual: 5-15€. ROI: 28% mejora ROAS reportado en 30 días.
Por qué sGTM es obligatorio en 2026
Sin sGTM, tu Pixel/tag client-side reporta 40-60% de las conversiones reales. Los motivos:
- iOS 17+ ATT (App Tracking Transparency) — 90% de usuarios iOS rechazan tracking → eventos perdidos
- Safari ITP — recorta cookies first-party a 7 días → atribución multi-touch rota
- Firefox ETP + Brave — bloquean trackers third-party por defecto
- Ad blockers — uBlock, AdBlock Plus, Privacy Badger en 30%+ usuarios web
- Privacy Sandbox de Chrome (rolling out 2025-2026) — tercera ola de restricciones
Resultado: tu Google Ads optimiza con la mitad de la señal. Tus campañas Meta no entrenan bien Smart Bidding. Tu GA4 reporta tráfico atribuido al canal equivocado.
Solución: server-side tracking. Los eventos van directos de tu servidor a Google/Meta/GA4 sin pasar por el navegador del usuario.
Datos Sellencia Research Q1 2026:
- 78% ecommerces DTC España SIN sGTM funcional
- +28% mejora ROAS reportado tras activar sGTM (medición 30 días)
- +45% eventos atribuidos a Google Ads tras Enhanced Conversions + sGTM
- 5-15€/mes coste medio Cloud Run para 1K-10K pedidos/mes
Setup técnico paso a paso · 2 horas
Paso 1 · Crear container sGTM en GTM (10 min)
- https://tagmanager.google.com → crear nuevo container → Server
- Asignar a tu Google Cloud Project (crear uno si no tienes — gratis)
- Anotar el ID del container (formato
GTM-XXXXXX)
Paso 2 · Deploy sGTM en Cloud Run (30 min)
Google ofrece deployment automático:
- En GTM Server container → Admin → Container Settings
- Click “Manually provision tagging server”
- Copia el
Configuration String(necesario en paso 3) - En Google Cloud Console → Cloud Run → Create Service
- Container image:
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable - Variables entorno:
CONTAINER_CONFIG= el Configuration String del paso 3RUN_AS_PREVIEW_SERVER=false(ponertruesolo en preview server)
- Region:
europe-west1(más cerca de España) - Min instances: 1 (warm start, evita cold latency)
- Max instances: 10 (suficiente para spike de tráfico)
- Memory: 512Mi · CPU: 1 (default OK)
- Allow unauthenticated invocations: Yes
- Deploy
Tendrás una URL tipo https://gtm-xxxx-uc.a.run.app — ya está corriendo.
Paso 3 · Custom domain (15 min)
Para que tu sGTM use tag.sellencia.com en lugar de la URL fea de Cloud Run:
- Cloud Run → tu servicio → Manage Custom Domains → Add Mapping
- Añadir
tag.sellencia.com - En Hostinger DNS añadir registro CNAME:
tag→ghs.googlehosted.com - Esperar propagación DNS (5-30 min)
- Cloud Run automáticamente provisiona certificado SSL
Tu sGTM ahora responde en https://tag.sellencia.com.
Paso 4 · Webhook Shopify → sGTM (45 min)
Shopify envía webhooks a tu sGTM cuando un pedido se crea:
- Shopify Admin → Settings → Notifications → Webhooks
- Crear webhook: Event =
Order created, Format =JSON, URL =https://tag.sellencia.com/shopify-order(custom path que tu sGTM tag escuchará) - En GTM Server: crear nuevo Tag → Custom Template
- Trigger: Custom Event matching path
/shopify-order - Tag Code (JavaScript dentro del template):
const event = getEventData(); const order = event.order; // Calcular margen contributivo (CMB) const cogs_total = order.line_items.reduce((sum, item) => sum + (item.cogs * item.quantity), 0); const fees = order.total_price * 0.029; // Stripe ~2.9% const shipping = order.shipping_lines[0]?.price || 0; const conversion_value = order.total_price - cogs_total - fees - shipping; // Enviar a Google Ads (Enhanced Conversions) sendHttpRequest('https://www.googleadservices.com/pagead/conversion/...', { // payload con conversion_value calculado, no order.total_price }); // Enviar a Meta CAPI sendHttpRequest('https://graph.facebook.com/v18.0/.../events', { // payload con conversion_value, advanced matching, etc. }); // Enviar a GA4 measurement protocol sendHttpRequest('https://www.google-analytics.com/mp/collect', { // payload purchase event });
(Código simplificado — la implementación real maneja errores, retries, deduplication.)
Paso 5 · Verificar funcionamiento (20 min)
- Cloud Run logs: revisar que llegan webhooks Shopify
- GTM Server preview mode: ver eventos en debug
- Meta Events Manager: ver eventos llegando vía CAPI · Match Quality 8+
- Google Ads Enhanced Conversions: ver “Recorded” status verde
- GA4 Realtime: ver purchase events
Si todos los destinos reciben datos correctamente, sGTM está OK.
Setup avanzado · Contribution Margin Bidding
Para enviar margen contributivo (no revenue bruto) a Google Ads:
// En sGTM tag, calcular conversion_value real
const order = getEventData().order;
// COGS dinámico (de Shopify metafields o BD externa)
const cogs_total = await fetchCOGS(order.line_items);
// Fees pasarela según método de pago
const fees = calculateFees(order.payment_gateway, order.total_price);
// Shipping cost real (no el cobrado al cliente)
const shipping_cost = await fetchRealShipping(order.shipping_lines);
// Devolución esperada (% por SKU/cohort)
const expected_refund_rate = await fetchRefundRate(order.line_items);
const expected_refund = order.total_price * expected_refund_rate;
// Margen contributivo neto
const conversion_value = order.total_price
- cogs_total
- fees
- shipping_cost
- expected_refund;
// Este es el número que enviamos a Google Ads
// NO order.total_price, que es lo que la mayoría hace mal
Implementación completa CMB — framework Sellencia step by step.
Costes y ROI
Coste setup:
- 2-4h tiempo dev: 100-300€ si externalizas a freelance
- Cloud Run + custom domain: 0€ (free tier)
- Coste mensual operación: 0-15€ según tráfico
ROI medido en clientes Sellencia (Q1 2026):
- +28% ROAS reportado a 30 días (mismo spend, mejores señales)
- +45% eventos Google Ads atribuidos correctamente
- +37% eventos Meta CAPI con Match Quality 8+
- -22% CPA blended a 90 días
Payback típico: 7-14 días. Es probablemente el mejor ROI técnico que puedes hacer en 2026.
Errores típicos al implementar sGTM
- Server sGTM corriendo en region us-central — latencia 200ms+ desde España. Usa
europe-west1. - Olvidar Min instances = 1 — cold starts hacen perder eventos en spike.
- Sin deduplication entre client-side + server-side — Google cuenta eventos doble.
- Custom path no configurado en Cloud Run — webhooks Shopify devuelven 404.
- No hashear PII (email, phone) antes de Advanced Matching — viola GDPR.
- Permitir Cloud Run unauthenticated en endpoints sensibles — security risk.
- No log retention — debugging imposible cuando algo falla.
Conclusión: server-side es el futuro, ya
iOS, Firefox, Safari y los ad blockers seguirán comiendo señal client-side. La única forma de mantener tracking honest es server-side. Las marcas que NO hagan esta migración en 2026 verán degradación gradual de performance Google Ads/Meta hasta volverse no-rentables.
Tu próximo paso:
- Audita tu Match Quality en Meta Events Manager. Si <7, sGTM es obligatorio.
- Si tienes dev, sigue este tutorial — 2 horas y listo.
- Si no tienes dev: AI Automation Lab de Sellencia lo implementa llave en mano en 5-7 días.
Posts relacionados
- Google Ads ecommerce 2026 con CMB
- Meta Ads ecommerce 2026 estructura
- Automatización ecommerce con n8n
Preguntas frecuentes
- ¿Qué es sGTM (Server-side Google Tag Manager)?
- sGTM es la versión server-side de Google Tag Manager. En lugar de ejecutar tags en el navegador del usuario (client-side), corre en tu servidor (Cloud Run, AWS Lambda, etc.). Recibe eventos vía webhooks (de Shopify, Stripe, app móvil) o vía cliente (relay de GTM web), enriquece los datos, y los envía a destinos (Google Ads, Meta CAPI, GA4, custom). Ventajas: no afectado por ad blockers, ITP, ATT; latencia más baja; control total de datos enviados.
- ¿Cuánto cuesta sGTM en Cloud Run?
- Free tier de Google Cloud Run incluye 2 millones de requests/mes y 360.000 vCPU-segundos. Para un ecommerce con 1.000 pedidos/mes y 50K visitantes/mes, sGTM cuesta 0€/mes (dentro del free tier). Con tráfico 200K+ visitantes/mes el coste es 5-15€/mes. Comparado con servicios SaaS sGTM (Stape 60€/mes, Addingwell 30€/mes), self-host en Cloud Run es 3-12× más barato a escala.
- ¿sGTM funciona con Shopify?
- Sí, vía 2 caminos: (1) Webhook Shopify orders/create → endpoint custom en sGTM → enrichment + envío a Google Ads / Meta CAPI / GA4 (más fiable, captura 100% órdenes); (2) GTM Web → relay a sGTM endpoint → procesamiento server-side (captura ~70% por ATT/ITP, complementar con webhook). Ideal: implementar AMBOS para redundancia. Sellencia siempre instala doble pipeline en clientes Growth Partner.
- ¿Necesito un developer para implementar sGTM?
- Para setup básico: alguien técnico con experiencia en Google Cloud + GTM. Tiempo estimado 2-4 horas. Para setup avanzado con Contribution Margin Bidding (calcular margen contributivo en sGTM y enviarlo a Google Ads): 1-2 días con dev experimentado. Si no tienes dev: [AI Automation Lab](/ia-automatizacion/) de Sellencia lo implementa llave en mano en 5-7 días.
- ¿Qué alternativas hay a Cloud Run para sGTM?
- (1) AWS Lambda + API Gateway — similar al Cloud Run en coste, más complejo de setup; (2) Vercel Functions — mejor DX pero limites de memory en hot paths; (3) Stape.io — SaaS sGTM 60-200€/mes, sin ops; (4) Addingwell — competidor de Stape 30-100€/mes; (5) self-host en VPS DigitalOcean 12€/mes. Cloud Run es el sweet spot para 99% de casos: scaling automático, free tier generoso, integración nativa con Google.
¿Quieres aplicarlo
a tu ecommerce?
Diagnóstico gratuito 7 días. KPIs auditados a 90 días.
Hablar con Álvaro →