Bienvenido al que definitivamente es el script de seguimiento de duración de sesión más robusto, inteligente y flexible que puedas implementar en Google Tag Manager.
Este no es un simple temporizador. Es una solución de nivel enterprise diseñada para ofrecer datos de la más alta calidad, con una arquitectura resiliente que protege la integridad de tu analítica y la experiencia de tus usuarios, ahora con capacidades cross-subdomain y detección automática de contexto.
Mientras que la mayoría de los scripts se limitan a contar segundos, esta solución fue concebida para resolver los problemas del mundo real a los que se enfrentan los analistas y desarrolladores modernos:
- Timestamps reales: Olvídate de los errores acumulados de
setInterval. Medimos el tiempo real que un usuario pasa activamente en tu sitio. - Detección automática: El script sabe cuándo está midiendo segundos vs minutos y ajusta las variables automáticamente.
- Cross-subdomain nativo: Una sesión que comienza en
blog.tusite.comcontinúa perfectamente enshop.tusite.com.
- Sistema de fallback inteligente: ¿Cookies bloqueadas? Pasa a localStorage. ¿También bloqueado? Usa sessionStorage. ¿Modo incógnito extremo? Funciona en memoria.
- Validación de sesión: Detecta y descarta sesiones corruptas o demasiado antiguas automáticamente.
- Protección de calidad: Si algo falla, se desactiva elegantemente, protegiendo la pureza de tus datos.
- Variables específicas:
tiempo_secondspara segundos,tiempo_minutspara minutos - como debe ser. - Milestones configurables: Desde
0,5,15,30hasta60,120,300,1800- tú decides qué medir. - Control total desde GTM: Cambiar configuración = cambiar una variable. Sin tocar código.
- Debugging integrado: Logs detallados, información de estado, monitoreo en tiempo real.
- Compatibility layer: Funciona en todos los navegadores, incluso los más antiguos.
- Zero-impact design: Nunca romperá la ejecución de otras funcionalidades.
Implementar esta bestia de la ingeniería es sorprendentemente sencillo. Sigue estos pasos:
Esta variable le dice al script cuándo disparar eventos con total flexibilidad:
- En GTM: Variables → Variables definidas por el usuario → Nueva
- Tipo: Constante
- Nombre:
c_sessionMilestones(exacto, es case-sensitive) - Valor: Los segundos que quieres medir, separados por comas
// Para sitios de contenido (lectura)
"0,5,15,30,60,180,300,600"
// Para e-commerce (decisión de compra)
"0,10,30,60,120,300,600,1200"
// Para SaaS (engagement profundo)
"0,5,15,30,60,120,300,600,900,1800"
// Solo segundos (landing pages)
"0,5,10,15,30,45"
// Solo minutos (aplicaciones)
"60,120,180,300,600,900,1200,1500,1800"El script automáticamente detecta:
< 60segundos → Variabletiempo_seconds≥ 60segundos → Variabletiempo_minuts(convierte a minutos)
- Etiquetas → Nueva → HTML Personalizado
- Nombre:
Session Duration Tracker V24.0 - Activa en:
All Pages(o tu trigger preferido) - Pega el código del script V24.0
El script usa un único evento para todo:
- Activadores → Nuevo → Evento personalizado
- Nombre del evento:
session_duration - Aplica a:
Todos los eventos personalizados
{
'event': 'session_duration',
'tiempo_seconds': 15,
'session_duration_label': '15_seconds',
'session_duration_seconds': 15,
'session_storage_method': 'cookies',
'session_cross_subdomain': true,
'session_tracker_version': 'V24.0'
}{
'event': 'session_duration',
'tiempo_minuts': 5,
'session_duration_label': '5_minutes',
'session_duration_seconds': 300,
'session_storage_method': 'cookies',
'session_cross_subdomain': true,
'session_tracker_version': 'V24.0'
}{
'event': 'session_duration',
'tiempo_seconds': 0,
'session_duration_label': 'page_load',
// ... resto de datos
}El script V24.0 no solo funciona - se adapta:
- Cookies bloqueadas → Fallback a localStorage
- LocalStorage deshabilitado → Fallback a sessionStorage
- Todo bloqueado → Modo memoria (funcionalidad limitada)
Si hay problemas, recibirás eventos informativos:
{
'event': 'session_duration',
'session_duration_label': 'tracker_storage_blocked',
'session_storage_method': 'memory'
}// Activar logging detallado
gtmSessionTrackerDebug.enableDebug();
// Ver estado completo de la sesión
gtmSessionTrackerDebug.getInfo();
// Ver todos los milestones configurados
gtmSessionTrackerDebug.getMilestones();
// Desactivar logs
gtmSessionTrackerDebug.disableDebug();- Tiempo total vs tiempo activo
- Método de storage utilizado
- Milestones alcanzados y pendientes
- Capacidad cross-subdomain
- Estado de cookies/localStorage
// Borrar solo la cookie del tracker
document.cookie = "gtm_session_tracker_state=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
localStorage.removeItem('gtm_session_tracker_state');
sessionStorage.removeItem('gtm_session_tracker_state');
console.log("Tracker reseteado - sesión nueva en próxima carga");- Abre DevTools → Console
- Ejecuta:
gtmSessionTrackerDebug.enableDebug() - Recarga la página
- Observa los logs del tracker
"0,10,30,60,120,300,600" // Momento de decisión de compra"0,15,30,60,180,300,600,1200" // Engagement de lectura"0,30,60,180,300,600,1200,1800" // Uso profundo de producto"0,5,10,15,30,45" // Micro-interacciones- Cross-subdomain: Funciona automáticamente si usas cookies
- Testing: Usa modo incógnito para sesiones limpias
- Análisis: Combina
tiempo_secondsytiempo_minutsen GA4 para insights completos - Performance: El script se auto-desactiva cuando completa todos los milestones
Este script está desarrollado por Convertiam.com y Juan Carlos Díaz. Es de uso gratuito bajo las siguientes condiciones:
- ✅ Uso comercial y personal
- ✅ Modificación del código para tus necesidades
- ✅ Redistribución (con atribución obligatoria)
- ✅ Implementación en proyectos de clientes
- 🏷️ Mantener los comentarios de atribución en el código
- 📝 Mencionar a Convertiam.com en documentación del proyecto
- 🔗 Enlazar a este repositorio si redistribuyes
- 👨💻 Crédito a Juan Carlos Díaz como autor original
- ❌ Revender el script como producto propio
- ❌ Quitar los créditos del código fuente
- ❌ Reclamar autoría del trabajo
GTM Session Duration Tracker V24.0
Desarrollado por Juan Carlos Díaz - Convertiam.com
Contacto: jcarlos@convertiam.com
En Convertiam.com no solo creamos herramientas - construimos ecosistemas completos de medición:
- 🎯 Implementación enterprise con configuración personalizada
- 📊 Estrategia de medición completa para tu negocio
- 🔧 Integración avanzada con GA4, Adobe Analytics, mixpanel, etc.
- 📈 Dashboard personalizados y automatización de reportes
- 🛡️ Auditorías de tracking y optimización de rendimiento
Juan Carlos Díaz
📧 Email: jcarlos@convertiam.com
🌐 Web: convertiam.com
💼 LinkedIn: Juan Carlos Díaz - Convertiam
"No solo instalamos el tracker - diseñamos la arquitectura de datos que impulsa tu crecimiento."
Convertiam.com es la consultora especializada en analítica web avanzada y optimización de conversión para empresas que buscan datos que realmente importen.
- 📊 Implementación de tracking avanzado (GA4, GTM, Data Studios)
- 🔍 Auditorías técnicas de medición y rendimiento
- 📈 Estrategia de datos y arquitectura de medición
- 🚀 CRO y optimización basada en datos
- 🎓 Formación técnica para equipos internos
- ✅ +8 años especializados en analítica web
- ✅ +200 proyectos implementados exitosamente
- ✅ Certificados oficiales en todas las plataformas principales
- ✅ Código abierto - contribuimos a la comunidad
- ✅ Soporte técnico real, no bots
Convertiam.com - Donde la analítica web se convierte en ventaja competitiva
- ✅ Milestones completamente configurables
- ✅ Variables específicas tiempo_seconds/tiempo_minuts
- ✅ Detección automática segundos vs minutos
- ✅ Cross-subdomain nativo con fallbacks
- ✅ Sistema de storage resiliente
- ✅ Debugging avanzado integrado
- ✅ Compatibilidad total con versiones anteriores
Si este script te ha ahorrado tiempo y te ha dado mejores datos:
- ⭐ Star este repositorio
- 🔄 Comparte con tu equipo
- 💬 Menciona @convertiam en redes sociales
- 📧 Cuéntanos tu caso de éxito: jcarlos@convertiam.com
¡Tu éxito es nuestro mejor marketing! 🚀