Requisitos previos
- Un sitio que soporte HTTPS.
- Puedes publicar cambios en GTM para el contenedor del sitio.
- Completa el flujo de configuración del SDK Web de OneSignal hasta llegar al paso Añadir código al sitio. Si haces esto, tendrás:
- Una aplicación OneSignal Web Push creada con OneSignal 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 puedas referenciar en las etiquetas de GTM. Usar variables evita codificar valores de forma fija y hace que tu configuración sea más fácil de mantener. Crea una variable de OneSignal App ID- En GTM, ve a Variables > New.
- Elige Constant.
- Nómbrala
os_app_id. - Establece el valor como tu OneSignal App ID.
- Guarda.

Ahora puedes referenciar tu App ID en cualquier lugar de GTM usando
{{os_app_id}}. - Data Layer Variable (recomendado)
- First-Party Cookie
- DOM Variable (avanzado)
- En GTM, ve a Variables > New.
- Elige Data Layer Variable.
- Nómbrala
external_id. - Establece el Data Layer Variable Name como
external_id. - No establezcas un valor predeterminado.
- Guarda.
Se proporcionará un ejemplo de cómo insertar el valor en el dataLayer en la siguiente sección.
- En GTM, ve a Variables > New.
- Variable Type: Data Layer Variable.
- Nómbrala
onesignal_id. - Establece el Data Layer Variable Name como
onesignal_id. - No establezcas un valor predeterminado.
- Guarda.
Se proporcionará un ejemplo de cómo insertar el valor en el dataLayer en la siguiente sección.
El OneSignal ID se genera después de la suscripción. Si planeas poblar este valor, debes insertarlo explícitamente en el dataLayer desde un callback de OneSignal.
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
HTML
- Configura el tiempo en Advanced Settings > Tag firing options como Once per page.
- En Triggering, selecciona Initialization - All Pages.

4. Establece External ID y etiquetas
Establecer el External ID es opcional pero recomendado porque te permite identificar usuarios en todos los dispositivos y sincronizar con tu backend.Establece external_id y captura el onesignal_id
Usa esta etiqueta cuando quieras:
- Identificar usuarios en OneSignal con tu propio ID de usuario (external_id)
- Capturar el ID generado por OneSignal para análisis o uso posterior en GTM cuando no existe un external ID
external_id en el dataLayer y usando la variable {{external_id}} del paso 2 anterior. Por ejemplo:
HTML
- Tag name:
OneSignal – Set External ID or Get OneSignal ID - Tag type: Custom HTML
- Tag firing options: Once per page (recomendado)
- Trigger: Usar con el evento
OneSignalInitialized(establecido en la etiqueta OneSignal - Init anterior)
HTML
Establece etiquetas de datos
Este paso envía etiquetas de datos de usuario a OneSignal usando el SDK Web. Configuración de etiqueta- Name:
OneSignal - Add Tags. - Tag Type: Custom HTML.
- Tag firing options: Once per page (recomendado)
- Trigger:
- Usar con el evento
OneSignalInitialized(establecido en la etiqueta OneSignal - Init anterior) - Tu condición para que se active la etiqueta (p. ej., “Inicio de sesión exitoso”, “Página de perfil”, “Compra”, etc.)
- Usar con el evento
HTML
Envía etiquetas solo cuando tengas los datos del usuario disponibles (p. ej., después del inicio de sesión, después de que se cargue 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 UE/Reino Unido), 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 conservaste el push del evento).
- Suscríbete a tu sitio web. Consulta Solicitudes de permiso web para obtener detalles sobre las solicitudes.
- En el panel de OneSignal, ve a Audience > Subscriptions y confirma que aparece una suscripción después de que te suscribas. También deberías ver un External ID si configuraste uno.
- Envía un push de prueba desde Messages > New Push.
Si la inicialización funciona, verás el SDK cargado en la página y las suscripciones apareciendo en OneSignal después de la suscripción.
Solución de problemas
-
La etiqueta Init se activa, pero el SDK nunca se carga
- Verifica si hay una Content Security Policy (CSP) bloqueando
https://cdn.onesignal.com. - Verifica bloqueadores de anuncios/bloqueadores de scripts.
- Verifica si hay una Content Security Policy (CSP) bloqueando
-
Errores de
dataLayer- Asegúrate de que
window.dataLayer = window.dataLayer || []esté establecido antes de cualquier llamada adataLayer.push().
- Asegúrate de que
-
Solicitudes duplicadas / carga duplicada del SDK
- Asegúrate de que no estás 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 a OneSignalInitialized.
- Confirma que tu activador de acción de usuario realmente se activa.
- Confirma que las etiquetas son pares clave/valor válidos y están dentro de los límites del plan.