要件
- HTTPSウェブサイト:WebプッシュはHTTPまたはシークレット/プライベートモードでは機能しません。
- サーバーアクセス:サービスワーカーファイルをサイトにアップロードする必要があります。
- 単一オリジン:Webプッシュは同一オリジンポリシーに従います。複数のオリジン(ドメイン/サブドメイン)がある場合は、複数のOneSignalアプリが必要です(オリジンごとに1つ)。このブラウザー制限に対応するには、次のいずれかを行います:
- サブスクリプション用に単一のオリジンにトラフィックをリダイレクトする。
- オリジンごとに複数のOneSignalアプリを作成する。
OneSignalアプリとプラットフォームを構成する
OneSignalダッシュボードで:- Settings > Push & In-App > Web に移動します。
- Custom Code 統合タイプを選択します。
サイトセットアップ
サイトの詳細を追加します:- Site Name:サイトの名前とデフォルトの通知タイトル。
- Site URL:サイトの正確なオリジン、例:
https://yourdomain.com。サイトがそのように構成されていない場合はwww.の使用を避けてください。複数のオリジンがある場合は要件を参照してください。 - Auto Resubscribe:ユーザーがブラウザーデータをクリアした後にサイトに戻ったときに自動的に再サブスクライブするには、これを有効にします(新しい権限プロンプトは不要)。
- Default Icon URL:通知とプロンプトに表示される正方形
256×256のPNG、JPG、または非アニメーションGIFをアップロードします。設定されていない場合は、デフォルトとしてベルアイコンが使用されます。通知アイコンを参照してください。

OneSignalダッシュボードのWeb設定
ローカルテスト
localhostでテストするには、本番アプリとは別のOneSignalアプリを使用し、init オプションに allowLocalhostAsSecureOrigin: true を追加します。
自己署名証明書を使用してHTTPS上でlocalhostをテストしている場合は、--allow-insecure-localhost を使用してChromeに無効な証明書を無視するよう指示する必要がある場合があります。FirefoxとSafariは、セキュリティ証明書の例外を追加するための組み込みメカニズムを提供しています。
ウェルカム通知(オプション)
カスタムコードでは、welcomeNotificationパラメーターを使用して OneSignal.init() でウェルカム通知を設定します。通常のサイトとWordPressではダッシュボードで設定します。Web SDKセットアップを参照してください。
サービスワーカーファイルのアップロード
Web SDKは、OneSignal.init() でカスタムパスを渡さない限り、サイトのルート(https://yourdomain.com/OneSignalSDKWorker.js)で OneSignalSDKWorker.js を検索します。
カスタムコードはダッシュボードの Customize service worker paths and filenames フィールドを使用しません。serviceWorkerPath と serviceWorkerParam を使用して、コードでSDKに検索場所を指示します。
OneSignalダッシュボードからファイルをダウンロードするか、次の1行を含む OneSignalSDKWorker.js という名前のファイルを作成します:
https://yourdomain.com/OneSignalSDKWorker.js で利用可能になるようにファイルをアップロードします。serviceWorkerPath を設定する必要はありません。SDKはこのURLを自動的にリクエストします。
サブディレクトリ: サイトにすでにサービスワーカーがある場合(たとえばPWA)、/ を所有するワーカーと競合しないように、OneSignalのファイルを /push/onesignal/ などのサブディレクトリに配置します。その場合、OneSignal.init() で serviceWorkerPath と serviceWorkerParam を渡す必要があります。サイトにコードを追加を参照してください。ファイルは https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js で公開アクセス可能である必要があります。
OneSignalサービスワーカー
サイトにコードを追加
このコードをWebサイトの<head> セクションに追加します。YOUR_ONESIGNAL_APP_ID をOneSignalダッシュボードのApp IDに置き換えてください。
OneSignalSDKWorker.js がサイトのルートにある場合は、次のスニペットを使用します:
serviceWorkerPath と serviceWorkerParam を追加します。これらのオプションは、カスタムコードでSDKにルート以外の場所を伝える唯一の方法です。
persistNotification を使用して設定します。ダッシュボードのPersistenceトグルはカスタムコードには適用されません。このオプションを省略した場合、SDKは現在、永続性をオンとして扱います。オフにするには persistNotification: false を設定します。これはデスクトップのChromeとEdgeでのみ機能します。Persistenceを参照してください。
iOS Webプッシュサポート
AppleはiOS 16.4+を実行しているiPhoneおよびiPadでWebプッシュ通知のサポートを開始しました。対応ブラウザーで訪問するだけで動作するAndroidデバイスとは異なり、Appleはmanifest.json ファイルやユーザーがサイトをホーム画面に追加するアクションなど、いくつかの追加要件を追加しました。
iOS Webプッシュセットアップ
manifest.json ファイルを追加し、ユーザーをサイトをホーム画面に追加するよう案内します。Safari Web Push .p12証明書(オプション、レガシー)
すでに独自のSafari Web Push.p12 証明書を持っていて、レガシーSafariユーザーをサポートしたい場合を除き、これはオフのままにしてください。モダンSafari(macOS 13+およびiOS 16.4+)は、VAPID(Voluntary Application Server Identification)を使用した標準ベースのWeb Pushを使用します。OneSignalはVAPIDを自動的に処理します。モダンなSafariブラウザー向けに証明書をアップロードする必要はありません。
すでに独自の .p12 を持っている場合(AppleはSafari Web Pushで .p8 をサポートしていません)、ダッシュボードでアップロードしてください。Safari Web Push .p12証明書を参照してください。
OneSignal SDK統合のテスト
このガイドでは、プッシュ通知とサブスクリプション登録をテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。Webプッシュサブスクリプションを確認
テストデバイスでサイトを起動します。
- テスト中は、Chrome、Firefox、Edge、またはSafariを使用してください。
- **シークレットモードやプライベートブラウジングモードは使用しないでください。**これらのモードでは、ユーザーはプッシュ通知にサブスクライブできません。
- 許可プロンプトの設定に基づいてプロンプトが表示されるはずです。
- プッシュ通知にサブスクライブするには、ネイティブプロンプトでAllowをクリックします。

Webプッシュのネイティブ許可プロンプト
OneSignalダッシュボードを確認
- Audience > Subscriptionsに移動します。
- ステータスがSubscribedの新しいエントリが表示されるはずです。

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード
テストサブスクリプションをセットアップ
テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。Test Usersに追加します。

デバイスをtest usersに追加
サブスクリプションに名前を付けます。
テストユーザーセグメントを作成します。
セグメントに名前を付けます。
Test Usersという名前を付けます(この名前は後で使用されるため重要です)。Test Usersフィルターを追加し、Create Segmentをクリックします。

Test Usersフィルターを使用して「Test Users」セグメントを作成
API経由でテストプッシュを送信
App API KeyとApp IDを取得します。
提供されたコードを更新します。
YOUR_APP_API_KEYとYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。コードを実行します。
画像とconfirmed receiptを確認します。

Chrome macOSで画像付きの展開されたプッシュ通知
confirmed receiptを確認します。
プッシュ通知メッセージレポート
support@onesignal.comにご連絡ください:
- APIリクエストとレスポンスを
.txtファイルにコピー&ペースト - サブスクリプションID
- OneSignalコードを含むウェブサイトURL
ユーザー識別
前のセクションではウェブプッシュサブスクリプションの作成方法を説明しました。このセクションでは、OneSignal SDKを使用してすべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合しエンゲージするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。External IDを割り当て
External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 SDKのloginメソッドを使用して、アプリによってユーザーが識別されるたびにExternal IDを設定します。
データタグを追加
タグは、ユーザープロパティ(username、role、設定など)とイベント(purchase_date、game_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションとセグメンテーションを強化し、より高度なユースケースを可能にします。
アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。
この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。

"current_level"というタグが"6"に設定されたOneSignalのユーザープロファイル

current_level値が4より大きく10より小さいユーザーをターゲットとするセグメントを示すセグメントエディター

パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット
メールおよび/またはSMSサブスクリプションを追加
OneSignal SDKはユーザーがオプトインすると自動的にウェブプッシュサブスクリプションを作成します。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。addEmailメソッドを使用してメールサブスクリプションを作成します。addSmsメソッドを使用してSMSサブスクリプションを作成します。

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル
- メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
- 各コミュニケーションチャネルの利点をユーザーに説明してください。
- ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。
プライバシーとユーザー同意
OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します:setConsentRequired(true):同意が与えられるまでデータ収集を防ぎます。setConsentGiven(true):同意が付与されるとデータ収集を有効にします。
SDKが収集するデータ
個人データの取り扱い
プッシュ、ユーザー、アプリ内イベントをリッスン
SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。プッシュ通知イベント
- クリックイベントリスナー:通知がタップされたときを検出します。
- フォアグラウンドライフサイクルリスナー:フォアグラウンドでの通知の動作を制御します。
ユーザー状態の変更
- ユーザー状態変更イベントリスナー:External IDが設定されたときを検出します。
- 許可オブザーバー:ネイティブのプッシュ許可プロンプトとのユーザーの特定のインタラクションを追跡します。
- プッシュサブスクリプション変更オブザーバー:プッシュサブスクリプションのステータスが変更されたときを追跡します。
高度なセットアップと機能
統合を強化するための追加機能を探索します:OneSignalへの移行
統合
アクションボタン
多言語メッセージング
Identity Verification
カスタムアウトカム
Web SDKのセットアップとリファレンス
Webプッシュセットアップ
Web SDKリファレンス
FAQ
Web SDKはサービスワーカーをどこで検索しますか?
Web SDKは、OneSignal.init() で serviceWorkerPath と serviceWorkerParam を渡さない限り、サイトのルート(https://yourdomain.com/OneSignalSDKWorker.js)で OneSignalSDKWorker.js を検索します。カスタムコードはダッシュボードのパスフィールドを使用しません。サービスワーカーファイルのアップロードを参照してください。