前提条件
- HTTPS をサポートするサイト。
- サイトのコンテナに対して GTM で変更を公開できること。
- OneSignal の Web SDK セットアップ フローを サイトにコードを追加 まで完了していること。これにより以下が得られます:
- OneSignal Web Push アプリと App ID。
- OneSignal Service Worker のセットアップ。
セットアップ
1. OneSignal Web アプリをセットアップする
Web SDK セットアップ を サイトにコードを追加 まで進めます。ここで OneSignal App ID を取得します。
2. GTM 変数を作成する
タグ全体で参照する値の GTM 変数を作成します。これによりハードコーディングを避け、セットアップの保守が容易になります。ONESIGNAL_APP_ID 変数を作成する
- GTM で、Variables > New に移動します。
- Constant を選択します。
ONESIGNAL_APP_IDという名前を付けます- 値を OneSignal App ID に設定します。
- 保存

GTM のどこでも
{{ ONESIGNAL_APP_ID }} を使用して App ID を参照できるようになりました。ONESIGNAL_EXTERNAL_ID 変数を作成する(推奨)
ユーザーを外部識別子と関連付ける場合(たとえば、データベースまたは認証システムからのユーザー ID)、この変数を使用します。
サイトで値がどのように利用可能かに基づいて変数タイプを選択します。一般的なオプション:
- Data Layer Variable(推奨)
- First-Party Cookie
- DOM Variable(高度)
3. OneSignal init タグを作成する
- GTM で、Tags > New に移動します
- タグに名前を付けます:
OneSignal - Init - Tag Type:Custom HTML
- 以下のコードを貼り付けます。
- Advanced Settings > Tag firing options で、Once per page に設定します。
- Triggering で、Initialization - All Pages を選択します。
HTML

4. External ID とタグを設定する
External ID の設定はオプションですが、推奨されます。デバイス間でユーザーを識別し、バックエンドと同期できるようになります。ONESIGNAL_EXTERNAL_ID を dataLayer にプッシュする
この例では、GTM が ONESIGNAL_EXTERNAL_ID 変数(ステップ 2 で作成)を介して読み取れるように、ユーザー ID を dataLayer にプッシュする方法を示します。
HTML
- タグ名:
OneSignal – Set External ID - タグタイプ:Custom HTML
- Tag firing options:Once per page
- Trigger:
OneSignalInitializedのカスタムイベントトリガーを作成(上記の OneSignal - Init タグで設定)し、- オプションでページ読み込み時にユーザー ID が利用可能であることがわかっている場合。
タグを設定する
Web SDK を使用して OneSignal タグ を送信します。 タグの設定:- 名前:
OneSignal - Add Tags - Tag Type:Custom HTML
- Tag firing options:Once per page
- Trigger:
OneSignalInitialized、および- タグデータが利用可能な条件(例:ログイン後、プロフィールページ、購入後)。
HTML
ユーザーデータが利用可能な場合にのみタグを送信してください(例:ログイン後、プロフィールの読み込み後、または既知のコンバージョンイベント後)。
Consent Mode とプライバシーに関する考慮事項
サイトで Consent Mode / CMP を使用している場合、OneSignal をいつ読み込むかを決定します:- 同意後のみ(EU / UK で一般的)、または
- 即座に(デフォルトで「機能的」ストレージが許可されている場所で一般的)。
テスト
- GTM でプレビューモードを開きます。
- サイトを読み込んで確認します:
OneSignal - Initが一度発火します。OneSignalInitializedが GTM イベントタイムラインに表示されます(イベントプッシュを保持した場合)。
- ウェブサイトに登録します。プロンプトの詳細については、Web パーミッションプロンプト を参照してください。
- OneSignal ダッシュボードで、Audience > Subscriptions に移動し確認します:
- オプトイン後にサブスクリプションが表示されること。
- External ID を設定した場合、External ID が表示されること。
- Messages > New Push からテストプッシュを送信します。
初期化が機能している場合、オプトイン後に OneSignal にサブスクリプションが表示されます。
トラブルシューティング
-
Init タグが発火するが、SDK が読み込まれない
- Content Security Policy(CSP)が
https://cdn.onesignal.comをブロックしていないか確認してください。 - 広告ブロッカー / スクリプトブロッカーを確認してください。
- Content Security Policy(CSP)が
-
dataLayerエラーdataLayer.push()呼び出しの前にwindow.dataLayer = window.dataLayer || []が設定されていることを確認してください。
-
重複プロンプト / 重複 SDK 読み込み
- サイトコード、CMS プラグイン、または別の GTM タグ経由で OneSignal を読み込んでいないことを確認してください。
-
Add Tags が実行されるが OneSignal に表示されない
- Trigger Group が
OneSignalInitializedを待っていることを確認してください。 - ユーザーアクショントリガーが実際に発火していることを確認してください。
- タグが有効なキー / 値のペアであり、プラン制限 内であることを確認してください。
- Trigger Group が