Requisitos previos
- Un sitio que soporte HTTPS.
- Puedes publicar cambios en GTM para el contenedor del sitio.
- Has completado el flujo de configuración del SDK Web de OneSignal hasta Añadir código al sitio. Esto te proporciona:
- Una aplicación OneSignal Web Push y App ID.
- La configuración del OneSignal Service Worker.
Configuración
1. Configura tu aplicación web de OneSignal
Sigue la configuración del SDK Web hasta llegar al paso Añadir código al sitio. Aquí es donde obtendrás el OneSignal App ID.
2. Crea variables de GTM
Crea variables de GTM para los valores que referencias en las etiquetas. Esto evita codificar valores de forma fija y hace que tu configuración sea más fácil de mantener. Crea una variableONESIGNAL_APP_ID
- En GTM, ve a Variables > New.
- Elige Constant.
- Nómbrala
ONESIGNAL_APP_ID - Establece el valor como tu OneSignal App ID.
- Guarda

Ahora puedes referenciar tu App ID en cualquier lugar de GTM usando
{{ ONESIGNAL_APP_ID }}.ONESIGNAL_EXTERNAL_ID (Recomendado)
Usa esta variable si asocias usuarios con un identificador externo (por ejemplo, un ID de usuario de tu base de datos o sistema de autenticación).
Elige el tipo de variable según cómo esté disponible el valor en tu sitio. Opciones comunes:
- Data Layer Variable (recomendado)
- First-Party Cookie
- DOM Variable (avanzado)
3. Crea la etiqueta de inicialización de OneSignal
- En GTM, ve a Tags > New
- Nombra la etiqueta:
OneSignal - Init - Tag Type: Custom HTML
- Pega el código a continuación.
- En Advanced Settings > Tag firing options, establece Once per page.
- En Triggering, selecciona Initialization - All Pages.
HTML

4. Establece External ID y etiquetas
Establecer el External ID es opcional pero recomendado porque te permite identificar usuarios entre dispositivos y sincronizar con tu backend. EnviarONESIGNAL_EXTERNAL_ID al dataLayer
Este ejemplo muestra cómo puedes enviar un ID de usuario al dataLayer para que GTM pueda leerlo a través de la variable ONESIGNAL_EXTERNAL_ID (creada en el paso 2).
HTML
- Nombre de etiqueta:
OneSignal – Set External ID - Tipo de etiqueta: Custom HTML
- Tag firing options: Once per page
- Trigger:
- Crea un activador de evento personalizado para
OneSignalInitialized(establecido en la etiqueta OneSignal - Init anterior) y - Opcionalmente si sabes que el ID de usuario está disponible en la carga de la página.
- Crea un activador de evento personalizado para
Establecer etiquetas de datos
Esto envía Etiquetas de usuario de OneSignal usando nuestro SDK Web. Configuración de etiqueta:- Nombre:
OneSignal - Add Tags - Tag Type: Custom HTML
- Tag firing options: Once per page
- Trigger:
OneSignalInitialized, y- Tu condición para cuando los datos de la etiqueta estén disponibles (por ejemplo: después del inicio de sesión, en una página de perfil, después de una compra).
HTML
Solo envía etiquetas cuando tengas los datos de usuario disponibles (por ejemplo, después del inicio de sesión, después de que se carga un perfil o después de un evento de conversión conocido).
Consent Mode y consideraciones de privacidad
Si tu sitio usa Consent Mode / un CMP, decide si OneSignal debe cargarse:- Solo después del consentimiento (común para EU/UK), o
- Inmediatamente (común donde el almacenamiento “funcional” está permitido por defecto).
Pruebas
- En GTM, abre el modo Preview.
- Carga tu sitio y confirma:
OneSignal - Initse activa una vez.OneSignalInitializedaparece en la línea de tiempo de eventos de GTM (si mantuviste el evento push).
- Suscríbete a tu sitio web. Consulta Solicitudes de permisos web para obtener detalles sobre las solicitudes.
- En el panel de OneSignal, ve a Audience > Subscriptions y confirma:
- Una suscripción aparece después de aceptar.
- Un External ID es visible si estableciste uno.
- Envía un push de prueba desde Messages > New Push.
Si la inicialización está funcionando, verás las suscripciones apareciendo en OneSignal después de aceptar.
Solución de problemas
-
La etiqueta Init se activa, pero el SDK nunca se carga
- Verifica si la Content Security Policy (CSP) está bloqueando
https://cdn.onesignal.com. - Verifica los bloqueadores de anuncios/bloqueadores de scripts.
- Verifica si la Content Security Policy (CSP) está bloqueando
-
Errores de
dataLayer- Asegúrate de que
window.dataLayer = window.dataLayer || []esté configurado antes de cualquier llamadadataLayer.push().
- Asegúrate de que
-
Avisos duplicados / carga duplicada del SDK
- Asegúrate de no estar cargando OneSignal también a través del código del sitio, un plugin de CMS u otra etiqueta de GTM.
-
Add Tags se ejecuta pero no aparece en OneSignal
- Confirma que el Trigger Group espera
OneSignalInitialized. - Confirma que tu activador de acción de usuario se activa realmente.
- Confirma que las etiquetas son pares clave/valor válidos y están dentro de los límites del plan.
- Confirma que el Trigger Group espera