Prérequis
- Un site qui prend en charge HTTPS.
- Vous pouvez publier des modifications dans GTM pour le conteneur du site.
- Vous avez complété le flux de configuration du SDK Web OneSignal jusqu’à Ajouter le code au site. Cela vous donne :
- Une application OneSignal Web Push et un App ID.
- La configuration du OneSignal Service Worker.
Configuration
1. Configurez votre application web OneSignal
Suivez la configuration du SDK Web jusqu’à atteindre l’étape Ajouter le code au site. C’est ici que vous obtiendrez l’OneSignal App ID.
2. Créez des variables GTM
Créez des variables GTM pour les valeurs que vous référencez dans les balises. Cela évite de coder en dur les valeurs et facilite la maintenance de votre configuration. Créez une variableONESIGNAL_APP_ID
- Dans GTM, allez dans Variables > New.
- Choisissez Constant.
- Nommez-la
ONESIGNAL_APP_ID - Définissez la valeur sur votre OneSignal App ID.
- Enregistrez

Vous pouvez maintenant référencer votre App ID n’importe où dans GTM en utilisant
{{ ONESIGNAL_APP_ID }}.ONESIGNAL_EXTERNAL_ID (Recommandé)
Utilisez cette variable si vous associez des utilisateurs à un identifiant externe (par exemple, un ID utilisateur de votre base de données ou système d’authentification).
Choisissez un type de variable en fonction de l’emplacement de la valeur sur votre site. Options courantes :
- Data Layer Variable (recommandé)
- First-Party Cookie
- DOM Variable (avancé)
3. Créez la balise d’initialisation OneSignal
- Dans GTM, allez dans Tags > New
- Nommez la balise :
OneSignal - Init - Tag Type : Custom HTML
- Collez le code ci-dessous.
- Sous Advanced Settings > Tag firing options, définissez Once per page.
- Sous Triggering, sélectionnez Initialization - All Pages.
HTML

4. Définissez l’External ID et les balises
La définition de l’External ID est optionnelle mais recommandée car elle vous permet d’identifier les utilisateurs sur plusieurs appareils et de synchroniser avec votre backend. EnvoyerONESIGNAL_EXTERNAL_ID dans le dataLayer
Cet exemple montre comment vous pouvez transmettre un ID utilisateur dans le dataLayer afin que GTM puisse le lire via la variable ONESIGNAL_EXTERNAL_ID (créée à l’étape 2).
HTML
- Nom de la balise :
OneSignal – Set External ID - Type de balise : Custom HTML
- Options de déclenchement : Once per page
- Déclencheur :
- Créez un déclencheur d’événement personnalisé pour
OneSignalInitialized(défini dans la balise OneSignal - Init ci-dessus) et - Éventuellement si vous savez que l’ID utilisateur est disponible au chargement de la page.
- Créez un déclencheur d’événement personnalisé pour
Définir les balises de données
Cette étape envoie des balises utilisateur OneSignal à l’aide du SDK Web. Configuration de la balise :- Nom :
OneSignal - Add Tags - Type de balise : Custom HTML
- Options de déclenchement : Once per page
- Déclencheur :
OneSignalInitialized, et- Votre condition pour que les données de balise soient disponibles (par exemple : après la connexion, sur une page de profil, après un achat).
HTML
N’envoyez des balises que lorsque vous avez les données utilisateur disponibles (par exemple : après la connexion, après le chargement d’un profil ou après un événement de conversion connu).
Consent Mode et considérations de confidentialité
Si votre site utilise Consent Mode / un CMP, décidez si OneSignal doit se charger :- Seulement après consentement (courant pour l’UE/Royaume-Uni), ou
- Immédiatement (courant là où le stockage “fonctionnel” est autorisé par défaut).
Tests
- Dans GTM, ouvrez le mode Preview.
- Chargez votre site et confirmez :
OneSignal - Initse déclenche une fois.OneSignalInitializedapparaît dans la chronologie des événements GTM (si vous avez conservé le push d’événement).
- Abonnez-vous à votre site web. Consultez Demandes de permission web pour les détails des invites.
- Dans le tableau de bord OneSignal, allez dans Audience > Subscriptions et confirmez :
- Un abonnement apparaît après avoir accepté.
- Un External ID est visible si vous en avez défini un.
- Envoyez un push de test depuis Messages > New Push.
Si l’initialisation fonctionne, vous verrez les abonnements apparaissant dans OneSignal après avoir accepté.
Dépannage
- La balise Init se déclenche, mais le SDK ne se charge jamais
- Vérifiez si la Content Security Policy (CSP) bloque
https://cdn.onesignal.com. - Vérifiez les bloqueurs de publicité/bloqueurs de scripts.
- Vérifiez si la Content Security Policy (CSP) bloque
- Erreurs de
dataLayer- Assurez-vous que
window.dataLayer = window.dataLayer || []est défini avant tout appeldataLayer.push().
- Assurez-vous que
- Invites en double / chargement en double du SDK
- Assurez-vous de ne pas charger OneSignal via le code du site, un plugin CMS ou une autre balise GTM.
- Add Tags s’exécute mais n’apparaît pas dans OneSignal
- Confirmez que le Trigger Group attend
OneSignalInitialized. - Confirmez que votre déclencheur d’action utilisateur se déclenche réellement.
- Confirmez que les balises sont des paires clé/valeur valides et dans les limites du plan.
- Confirmez que le Trigger Group attend