initオプション、サービスワーカーのパスをコードで設定する必要がある場合は、カスタムコードを使用してください。
WordPressセットアップ
Shopifyセットアップ
カスタムコードセットアップ
OneSignal.init()で設定します。要件
- HTTPSウェブサイト:WebプッシュはHTTPまたはシークレット/プライベートモードでは機能しません。
- サーバーアクセス:サービスワーカーファイルをサイトにアップロードする必要があります。
- 単一オリジン:Webプッシュは同一オリジンポリシーに従います。複数のオリジン(ドメイン/サブドメイン)がある場合は、複数のOneSignalアプリ(オリジンごとに1つ)が必要になります。このブラウザーの制限に準拠するには、次のいずれかを実行できます:
- 購読のために単一のオリジンにトラフィックをリダイレクトする。
- オリジンごとに1つずつ、複数のOneSignalアプリを作成する。
OneSignalアプリとプラットフォームの構成
OneSignalダッシュボードで:- Settings > Push & In-App > Webに移動します。

OneSignal設定でWebプラットフォームをアクティブ化
Typical Site(推奨)
WordPress
カスタムコード
サイトのセットアップ
サイトの詳細を追加します:- Site Name: サイトの名前とデフォルトの通知タイトル。
- Site URL: サイトのURL。詳細については、サイトURLを参照してください。
- Auto Resubscribe: これを有効にすると、ブラウザーデータをクリアしたユーザーがサイトに戻ったときに自動的に再購読されます(新しい権限プロンプトは不要)。
- Default Icon URL: 通知とプロンプトに表示される正方形
256×256のPNG、JPG、または非アニメーションGIFをアップロードします。設定されていない場合は、デフォルトとしてベルアイコンが使用されます。通知アイコンをご覧ください。

OneSignalダッシュボードのWeb設定
サイトURL
サイトの正確なオリジンを入力します。例:https://yourdomain.com。サイトがそのように構成されていない場合は、www.の使用を避けてください。
複数のオリジンがある場合は、要件をご覧ください。
ローカルテスト
Web SDKはlocalhost環境でテストできます。localhostでテストする場合は、本番アプリとは別のOneSignalアプリを使用してください。Localhost構成
Localhost構成
http://localhosthttps://localhost:3000http://127.0.0.1https://127.0.0.1:5000
http://localhostとhttp://127.0.0.1をセキュアオリジンとして扱うため、SDKはこれらのホストに限りHTTP経由で初期化できます。その他のホスト名(例:http://mysite.local)はセキュアとして扱われず、Webプッシュのテストには使用できません。
OneSignalダッシュボードでのローカルテスト
initオプションにallowLocalhostAsSecureOrigin: trueを追加してください。自己署名証明書を使用したHTTPS上のlocalhostをテストしている場合、テスト用に無効な証明書を無視するようChromeに要求する必要がある場合があります:--allow-insecure-localhost。FirefoxとSafariは、セキュリティ証明書の例外を追加するための組み込みメカニズムを提供します。権限プロンプト
Typical Siteセットアップでは、あなたまたはチームメンバーがOneSignalダッシュボードを介して、いつでも権限プロンプトを追加、削除、更新できます。Web権限プロンプト
ウェルカム通知(オプション)
ユーザーがプッシュ通知を購読したときに送信されるウェルカム通知を設定することもできます。Typical SiteとWordPressではダッシュボードで設定します。カスタムコードではOneSignal.init()でwelcomeNotificationを設定します。
ダッシュボードで設定するには、Settings > Push & In-App > Webに移動します:

ウェルカム通知の設定
welcomeNotificationパラメータをご覧ください。
詳細設定
以下の機能はOneSignalダッシュボードで設定できます。Webhook
Web SDKは、特定のWebプッシュイベントを選択したURLにPOSTできます。
WebプッシュWebhookはイベントWebhookとは別の実装であり、互換性がありません。
Webプッシュwebhook
サービスワーカー
Web SDKは、別の場所を指定しない限り、サイトのルート(https://yourdomain.com/OneSignalSDKWorker.js)でOneSignalSDKWorker.jsを探します。
ルート以外の場所をSDKに伝える方法は、選択した統合タイプによって異なります。
Typical Site: ダッシュボードでパスを設定します。コードでserviceWorkerPathを設定しないでください。
ファイルをルートでホストする場合は、デフォルトのパス設定のままにします。サブディレクトリでホストする場合は、以下のパスを設定する必要があります。設定しないと、SDKは引き続き/OneSignalSDKWorker.jsをリクエストし、登録に失敗します。
- Settings > Push & In-App > Webに移動します。
- Advanced Push Settingsを開きます。
- Customize service worker paths and filenamesを有効にします。
- ファイルの公開URLに一致するようにフィールドを設定します:

サービスワーカー構成
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.jsで公開アクセス可能である必要があります。
カスタムコード: ダッシュボードのパスフィールドは使用しないでください。OneSignal.init()でserviceWorkerPathとserviceWorkerParamを渡します。initオプションについてはカスタムコードセットアップを、ワーカーの結合と移行についてはOneSignalサービスワーカーをご覧ください。
クリック動作
クリック動作は、ユーザーが同一オリジンのタブですでにサイトを開いている場合に何が起こるかのみを変更します。一致するタブが開いていない場合、ブラウザーは新しいタブを開いて通知のURLに移動します。この設定はその動作を変更しません。 クリック動作はChrome、Edge、Firefox、Safariで機能します。 起動URLが設定されていない場合、通知のURLはホームページになります。起動URLを設定すると、ユーザーを特定のページに誘導したり、UTMトラッキングを追加したり、?_osp=do_not_openを追加してページを開かずに通知を閉じたりできます。
同一オリジンのタブがすでに開いている場合、動作は選択した設定によって異なります:
URL、リンク、ディープリンク
?_osp=do_not_openで通知を閉じたりします。アクションボタン
Web SDKプッシュイベントリスナー
永続性
永続性は、ユーザーが操作するまで通知を画面上に保持します。デスクトップのChromeとEdgeでのみ機能します。Firefox、Safari、およびすべてのモバイルブラウザーではこの設定は無視されます。 永続的な通知はテキスト、画像、アクションボタンを圧迫する可能性があるため、これがユーザーにとって問題になる場合は無効にすることをお勧めします。 値が未設定の場合、SDKは現在、永続性をオンとして扱います。- Typical Site: Settings > Push & In-App > WebのPersistenceトグルを使用します。
- カスタムコード:
OneSignal.init()でpersistNotificationを設定します。ダッシュボードのトグルは適用されません。persistNotificationをご覧ください。
Safari Web Push .p12証明書(オプション、レガシー)
すでに独自のSafari Web Push.p12証明書を持っていて、レガシーSafariユーザーをサポートしたい場合を除き、これはオフのままにしてください。
最新のSafari(macOS 13+およびiOS 16.4+)は、VAPID(Voluntary Application Server Identification)を使用した標準ベースのWebプッシュを使用します。OneSignalはVAPIDを自動的に処理します。これらのブラウザーには証明書をアップロードする必要はありません。
Appleは、Safari Webプッシュ用の.p8トークンやキーを提供していません。ネイティブのiOSおよびmacOSアプリはAPNsとの認証に.p8を使用しますが、Safari Webプッシュは使用しません。Safariに適用される唯一のApple認証情報はSafari Web Push .p12証明書であり、レガシーのWebsite Push IDパスにのみ適用されます。
そのレガシーパスは引き続き以下に適用されます:
- macOS 12以前のSafari(VAPID非対応)
- 古いSafari APIを通じてすでに許可を与えた既存の購読者(Safariはこれらの購読をVAPIDに移行しません)
.p12ファイルとそのパスワードをアップロードします。Typical Siteとカスタムコードのどちらもダッシュボードで設定します。OneSignal.init()では設定しません。

Safari Web Push .p12証明書(オプション、レガシー)
サービスワーカーファイルのアップロード
OneSignalSDKWorker.jsサービスワーカーファイルをサイトに追加します。
OneSignalダッシュボードからダウンロードするか、次の1行を含むOneSignalSDKWorker.jsという名前のファイルを作成してください:

サービスワーカーファイルのアップロード手順
OneSignal.init()でパスを設定してください。カスタムコードセットアップをご覧ください。
ルート(デフォルト): https://yourdomain.com/OneSignalSDKWorker.jsで利用可能になるようにファイルをアップロードします。サービスワーカーのパス設定は変更しないでください。SDKはこのURLを自動的にリクエストします。
サブディレクトリ: サイトにすでにサービスワーカーがある場合(例えばPWA)、/を所有するワーカーと競合しないように、OneSignalのファイルを/push/onesignal/などのサブディレクトリに配置します。次に、SDKに探す場所を伝えます:サービスワーカーに従い、Customize service worker paths and filenamesを有効にします。Path to service worker filesとService worker registration scopeをそのサブディレクトリ(例:/push/onesignal/)に設定します。ファイルはhttps://yourdomain.com/push/onesignal/OneSignalSDKWorker.jsで公開アクセス可能である必要があります。
ファイルがサーバーにアップロードされたら、次のことを確認して動作を確認してください:
場所を確認
- デフォルト:
https://yourdomain.com/OneSignalSDKWorker.js - サブディレクトリの例:
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js
オリジンで公開アクセス可能である必要があります
OneSignalSDKWorker.jsファイルは、オリジンで公開アクセス可能で利用可能である必要があります。CDN経由でホストしたり、リダイレクトで別のオリジンに配置したりすることはできません。ファイルのURLにアクセスすると、コードが表示されるはずです。content-type: application/javascriptで提供される必要があります
OneSignalサービスワーカー
サイトにコードを追加
JavaScript SDKを使用してサイトでOneSignalを初期化するには、提供されたコードをWebサイトの<head>タグにコピーします。OneSignalダッシュボードでは、アプリIDがあらかじめ入力された同じスニペットが提供されます。
Google Tag Managerでスクリプトを読み込む場合は、ここで止めてGoogle Tag Managerセットアップに従ってください。そのガイドでは、このダッシュボードとサービスワーカーの作業を使用し、以下のスニペットを貼り付ける代わりにGTMでSDKを初期化します。
iOS Webプッシュサポート
Appleは、iOS 16.4+を実行しているiPhoneとiPadでWebプッシュ通知のサポートを開始しました。サポートされているブラウザーで追加のセットアップなしにWebプッシュが機能するAndroidデバイスとは異なり、Appleはmanifest.jsonファイルと、ユーザーがサイトをホーム画面に追加するアクションを必要とします。
iOS Webプッシュセットアップ
manifest.jsonファイルを追加し、ユーザーにサイトをホーム画面に追加するように案内します。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
HTTPサイトでWebプッシュは機能しますか?
いいえ。WebプッシュにはHTTPSが必要です。ブラウザーはこれをセキュリティ要件として強制しています。唯一の例外はlocalhostと127.0.0.1で、ブラウザーは開発目的のためにこれらをセキュアオリジンとして扱います。
サービスワーカーファイルが必要なのはなぜですか?
サービスワーカーはバックグラウンドで実行され、ユーザーがサイトを開いていない場合でも受信したプッシュ通知を処理します。これがなければ、ブラウザーは通知を表示できません。OneSignalSDKWorker.jsファイルはオリジン上で公開アクセス可能である必要があります。
Web SDKはどこでサービスワーカーを探しますか?
Web SDKは、カスタムパスを設定しない限り、サイトのルート(https://yourdomain.com/OneSignalSDKWorker.js)でOneSignalSDKWorker.jsを探します。Typical Siteではダッシュボードでパスを設定します:Settings > Push & In-App > Web > Advanced Push SettingsでCustomize service worker paths and filenamesを有効にします。カスタムコードではこれらのダッシュボードフィールドを使用しません。OneSignal.init()でserviceWorkerPathとserviceWorkerParamを渡します。カスタムコードセットアップをご覧ください。
サイトがWordPressまたはShopifyの場合、このガイドを使用すべきですか?
いいえ。WordPressセットアップまたはShopifyセットアップを使用してください。これらの統合はSDKとサービスワーカーを自動的に追加します。Typical Siteとカスタムコードの違いは何ですか?
Typical Siteはこのページで推奨されるパスです:プロンプト、ほとんどの設定、サービスワーカーのパスをOneSignalダッシュボードで設定し、その後JavaScriptスニペットを追加します。カスタムコードはプログラムによる制御のためのものです。プロンプト、initオプション、サービスワーカーのパスを、serviceWorkerPathとserviceWorkerParamを使用してコードで設定します。カスタムコードセットアップをご覧ください。
Safari証明書をアップロードする必要はありますか?
いいえ、macOS 13+またはiOS 16.4+のSafariには必要ありません。OneSignalは自動的にVAPIDを使用します。Safari Web Push .p12は、レガシーのWebsite Push IDパス(macOS 12以前と、既存のレガシー購読者)のためだけにアップロードしてください。Safari Web Push .p12証明書をご覧ください。Safari Webプッシュに.p8キーを使用できますか?
いいえ。Appleは、Safari Webプッシュ用の.p8トークンやキーを提供していません。.p8はネイティブのiOSまたはmacOSアプリにのみ使用してください。iOS p8トークンベースのAPNs接続をご覧ください。唯一のSafari認証情報はSafari Web Push .p12であり、レガシーパスにのみ適用されます。iOS(iPhone/iPad)でWebプッシュを使用できますか?
はい、iOS 16.4+から使用できます。ただし、Appleはmanifest.jsonファイルを必要とし、ユーザーは最初にサイトをホーム画面に追加する必要があります。完全な要件についてはiOS Webプッシュセットアップを参照してください。iOS WebプッシュはVAPIDを使用します。そのためにSafariの.p12や.p8をアップロードする必要はありません。
通知が表示されないのはなぜですか?
よくある原因としては、サービスワーカーファイルの配置が間違っている、ダッシュボードのSite URLが一致していない、またはブラウザー設定でユーザーが通知をブロックしていることが挙げられます。完全なトラブルシューティングのチェックリストについてはWebプッシュ:通知が表示されないを参照してください。support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ