メインコンテンツへスキップ

概要

このガイドでは、ダッシュボードの設定からSDKのインストールまで、サイトにOneSignal Webプッシュ通知を追加する手順を説明します。OneSignalはChrome、Firefox、Edge、Safari、およびその他の主要なブラウザーをサポートしています。

要件

  • HTTPSウェブサイト:WebプッシュはHTTPまたはシークレット/プライベートモードでは機能しません。
  • サーバーアクセス:サービスワーカーファイルをサイトにアップロードする必要があります。
  • 単一オリジン:Webプッシュは同一オリジンポリシーに従います。複数のオリジン(ドメイン/サブドメイン)がある場合は、複数のOneSignalアプリ(オリジンごとに1つ)が必要になります。このブラウザーの制限に準拠するには、次のいずれかを実行できます:
    • サブスクリプションのために単一のオリジンにトラフィックをリダイレクトする。
    • オリジンごとに複数のOneSignalアプリを作成する。
チームがすでにOneSignalでアカウントを作成している場合は、管理者ロールとして招待してもらうことで、アプリをセットアップできます。それ以外の場合は、onesignal.comで無料アカウントにサインアップして開始してください!

OneSignalアプリとプラットフォームの構成

OneSignalダッシュボードで:
  • Settings > Push & In-App > Webに移動します。
WebプラットフォームのアクティベーションをOneSignalダッシュボードのSettings画面で表示
統合タイプを選択します:

通常のサイト(推奨)

追加のコーディングなしで、OneSignalダッシュボードから直接プロンプトと設定を管理します。

WordPress

公式プラグインを使用したWordPressを使用している場合に必要です。

カスタムコード

プロンプトとSDK構成を完全に制御する必要がある開発者向け。

サイトのセットアップ

サイトの詳細を追加します:
  • サイト名:サイトの名前とデフォルトの通知タイトル。
  • サイトURL:サイトのURL。詳細については、サイトURLを参照してください。
  • 自動再サブスクライブ:これを有効にすると、ブラウザーデータをクリアしたユーザーがサイトに戻ったときに自動的に再サブスクライブされます(新しい権限プロンプトは不要)
  • デフォルトアイコンURL:通知とプロンプトに表示される正方形の256x256pxのPNGまたはJPG画像をアップロードします。設定されていない場合は、デフォルトのアイコンとしてベルを使用します。
サイト名、URL、アイコン設定を表示するOneSignal Webプッシュ構成

サイトURL

サイトの正確なオリジンを入力します。例:https://yourdomain.com。サイトがそのように構成されていない場合は、www.の使用を避けてください。 複数のオリジンがある場合:
  • 単一のオリジンにリダイレクトします。
  • または、オリジンごとに1つのOneSignalアプリをセットアップします。

ローカルテスト

Web SDKはlocalhost環境でテストできます。localhostでテストする場合は、本番アプリとは別のOneSignalアプリをセットアップすることをお勧めします。
SITE URLをlocalhost環境のURLと正確に一致するように設定します。一般的なlocalhost URLである必要があります。例:
  • http://localhost
  • https://localhost:3000
  • http://127.0.0.1
  • https://127.0.0.1:5000
localhostがHTTPを使用している場合は、Treat HTTP localhost as HTTPS for testingを選択します。Google Chromeはhttp://localhosthttp://127.0.0.1をセキュアオリジンとして扱い、HTTPでもHTTPS統合を許可します。これが、HTTPS localhostで他の非標準オリジンをテストできない理由です。
HTTPをHTTPSとして扱うオプションを表示するOneSignalのlocalhost設定

OneSignal initオプションにallowLocalhostAsSecureOriginを追加

localhostサイトでOneSignalを初期化する際、OneSignal initオプションにallowLocalhostAsSecureOrigin: true,を追加します。さらに、自己署名証明書を使用したHTTPS上のlocalhostをテストしている場合、テスト用に無効な証明書を無視するようChromeに要求する必要がある場合があります: --allow-insecure-localhost。FirefoxとSafariは、セキュリティ証明書の例外を追加するための組み込みメカニズムを提供します。
  <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
  <script>
    window.OneSignalDeferred = window.OneSignalDeferred || [];
    OneSignalDeferred.push(function(OneSignal) {
      OneSignal.init({
        appId: "YOUR_OS_APP_ID",
        allowLocalhostAsSecureOrigin: true,
      });
    });
  </script>

権限プロンプト

通常のサイトセットアップでは、あなたまたはチームメンバーがOneSignalダッシュボードを介して、いつでも権限プロンプトを追加、削除、更新できます。

Web権限プロンプト

ブラウザーの権限ダイアログがユーザーに表示されるタイミングと方法を設定します。

ウェルカム通知(オプション)

ユーザーがプッシュ通知にサブスクライブしたときに送信されるウェルカム通知を設定することもできます。

詳細設定

OneSignalダッシュボードで構成可能な追加機能。

Webhook

Web SDKは、特定のWebプッシュイベントを選択したURLにPOSTする機能を提供します。 WebプッシュWebhookはイベントWebhookとは別の実装であり、互換性がありません。

Webプッシュwebhook

WebプッシュイベントをPOSTリクエスト経由でサーバーに送信します。

サービスワーカー

Webプッシュ構成の次のページで、OneSignalSDKWorker.jsサービスワーカーファイルが提供されます。 Web SDKは、デフォルトでサイトのルートでこのファイルを探します。サービスワーカーファイルの場所、名前、スコープを変更したい場合は、ここでこれらの設定を更新できます。
  • Path to service worker filesは、これらのファイルを配置するディレクトリへのパスです。
  • Main and Updater service worker filenamesは、OneSignalSDKWorker.jsのままにするか、このファイルの名前を変更したい場合に使用できます。.jsファイル拡張子を使用する必要があります。
  • Service worker registration scopeは、このファイルが機能できるページです。プッシュ通知の場合、これは重要ではなく、サービスワーカーファイルにさらに機能を追加したい場合のために元々設計されました。これを場所と同じパスに設定する必要があります。
サービスワーカーのパス、ファイル名、スコープの設定フィールド
この例では、ファイルのコードがhttps://yourdomain.com/push/onesignal/OneSignalSDKWorker.jsで公開アクセス可能であることを確認する必要があります

OneSignalサービスワーカー

高度なサービスワーカー設定、カスタム統合、および他のプロバイダーからの移行。

クリック動作

通知をクリックしたときに設定したURLにユーザーがどのようにナビゲートするかを制御します。 ユーザーがいずれのタブでもサイトを開いていない場合、ブラウザーは新しいタブを開き、通知のURLに移動します。ユーザーがすでにサイトを開いている場合、動作は選択した設定によって異なります:
設定一致する対象アクション
Exact Navigate(デフォルト)完全一致URL(例:example.com/product一致するタブで通知のURLに移動
Origin Navigateオリジン(例:example.com一致するタブで通知のURLに移動
Exact Focus完全一致URLページを更新せずに一致するタブにフォーカス
Origin Focusオリジンページを更新せずに一致するタブにフォーカス

永続性

デフォルトのWebプッシュ動作は、通知センターに移動される前に約5秒間デバイスにポップアップ表示され、オペレーティングシステムによって削除される前に約1週間そこに保持されます。 一部のデバイスとChromeおよびEdgeのバージョンでは、画面上で通知をより長く持続させることができます。これは、ユーザーが操作するまで通知が画面上に留まることを意味します。これはユーザーを苛立たせる可能性があり、推奨されません。 また、永続性を有効にすると、文字数が減少し、画像やボタンの表示方法に影響を与えることで、サブスクライバーへの通知の表示方法に影響します。 変更すると、更新された設定でサイトにアクセスするサブスクライバーに対してのみ有効になります。これらのオプションの変更が表示されない場合は、待つ必要があります

Safari証明書(オプション)

OneSignalは、Safariブラウザーで動作するために必要な証明書を追加費用なしで自動的に提供します。すでに独自のSafari Webプッシュ証明書をお持ちの場合は、このオプションを切り替えてSafari Web .p12 Push Certificateとパスワードをアップロードします。
Safari WebプッシュのトグルとアップロードフィールドのSafari証明書設定

サービスワーカーファイルのアップロード

OneSignalSDKWorker.jsサービスワーカーファイルをサイトに追加します。OneSignalダッシュボードからダウンロードするか、GitHubからダウンロードしてください。
OneSignalサービスワーカーファイルのダウンロードとセットアップ手順
このファイルをサイトのルートディレクトリまたはサブディレクトリに配置します。サブディレクトリに配置する場合は、詳細設定 > サービスワーカーセクションでPath to service worker filesを設定する必要があります。 ファイルがサーバーにある場合は、次のことを確認して動作を確認してください:
1

場所を確認

ファイルが詳細設定 > サービスワーカーで設定されたのと同じPath to service worker filesに配置されていることを確認してください。これらの設定を更新していない場合は、ファイルをルートに配置する必要があります。例:
  • https://yourdomain.com/OneSignalSDKWorker.js
  • https://yourdomain.com/some-subdirectory/OneSignalSDKWorker.js
2

オリジンで公開アクセス可能である必要があります

OneSignalSDKWorker.jsファイルは、オリジンで公開アクセス可能で利用可能である必要があります。CDN経由でホストしたり、リダイレクトで別のオリジンに配置したりすることはできません。ファイルのURLにアクセスすると、コードが表示されるはずです。
3

content-type: application/javascriptで提供される必要があります

これはjavascriptファイルであり、そのように提供される必要があります。content-typeがtext/htmlであってはなりません。

OneSignalサービスワーカー

高度な設定および他のWebプッシュプロバイダーからの移行。

サイトにコードを追加

以下のJavaScript SDKコードはあらゆるサイトで機能します。サイトがAngularReact JS、またはVue JSで構築されている場合は、これらのリンクに従ってください。 JavaScript SDKを使用してサイトでOneSignalを初期化するには、提供されたコードをWebサイトの<head>タグにコピー/ペーストします。OneSignalダッシュボードでは、アプリIDがあらかじめ入力された同じスニペットが提供されます。
  <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
  <script>
    window.OneSignalDeferred = window.OneSignalDeferred || [];
    OneSignalDeferred.push(async function(OneSignal) {
      await OneSignal.init({
        appId: "YOUR_ONESIGNAL_APP_ID",
      });
    });
  </script>

iOS Webプッシュサポート

Appleは、iOS 16.4+を実行しているiPhoneとiPadでWebプッシュ通知のサポートを開始しました。サポートされているブラウザーでアクセスするだけでWebプッシュが「機能する」Androidデバイスとは異なり、Appleはmanifest.jsonファイルやユーザーがサイトをホーム画面に追加するアクションなど、いくつかの追加要件を追加しました。

iOS Webプッシュセットアップ

必要なmanifest.jsonファイルを追加し、ユーザーにサイトをホーム画面に追加するように案内します。

OneSignal SDK統合のテスト

このガイドでは、プッシュ通知とサブスクリプション登録をテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。

Webプッシュサブスクリプションを確認

1

テストデバイスでサイトを起動します。

  • テスト中は、Chrome、Firefox、Edge、またはSafariを使用してください。
  • **シークレットモードやプライベートブラウジングモードは使用しないでください。**これらのモードでは、ユーザーはプッシュ通知にサブスクライブできません。
  • 許可プロンプトの設定に基づいてプロンプトが表示されるはずです。
  • プッシュ通知にサブスクライブするには、ネイティブプロンプトでAllowをクリックします。
通知を許可またはブロックするかを尋ねるブラウザのネイティブ許可プロンプト
2

OneSignalダッシュボードを確認

  • Audience > Subscriptionsに移動します。
  • ステータスがSubscribedの新しいエントリが表示されるはずです。
OneSignalダッシュボードのサブスクリプションページ。Subscribedステータスのウェブプッシュサブスクリプションを表示
Webプッシュサブスクリプションの作成に成功しました。 Webプッシュサブスクリプションは、ユーザーがサイトでプッシュ通知に初めてサブスクライブしたときに作成されます。

テストサブスクリプションをセットアップ

テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。
1

Test Subscriptionsに追加します。

ダッシュボードで、サブスクリプションの横にある**Options(3つのドット)**ボタンをクリックし、Add to Test Subscriptionsを選択します。
サブスクリプションのオプションメニュー。テストサブスクリプションに追加オプションを表示
2

サブスクリプションに名前を付けます。

Test Subscriptionsタブで後でデバイスを簡単に識別できるように、サブスクリプションに名前を付けます。
3

テストユーザーセグメントを作成します。

Audience > Segments > New Segmentに移動します。
4

セグメントに名前を付けます。

セグメントにTest Usersという名前を付けます(この名前は後で使用されるため重要です)。
5

Test Usersフィルターを追加し、Create Segmentをクリックします。

セグメントエディター。Test Usersフィルターが選択され、セグメント名がTest Usersになっている
テストユーザーのセグメントの作成に成功しました。 この個別のデバイスとテストユーザーのグループにメッセージを送信するテストが可能になりました。

API経由でテストプッシュを送信

1

App API KeyとApp IDを取得します。

OneSignalダッシュボードで、**Settings > Keys & IDs**に移動します。
2

提供されたコードを更新します。

以下のコードのYOUR_APP_API_KEYYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。
curl -X \
POST --url 'https://api.onesignal.com/notifications' \
 --header 'content-type: application/json; charset=utf-8' \
 --header 'authorization: Key YOUR_APP_API_KEY' \
 --data \
 '{
  "app_id": "YOUR_APP_ID",
  "target_channel": "push",
  "name": "Testing basic setup",
  "headings": {
  	"en": "👋"
  },
  "contents": {
    "en": "Hello world!"
  },
  "included_segments": [
    "Test Users"
  ],
  "chrome_web_image": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
}'
3

コードを実行します。

ターミナルでコードを実行します。
4

画像とConfirmed Deliveryを確認します。

すべてのセットアップ手順が正常に完了した場合、テストサブスクリプションは通知を受信するはずです。
画像をサポートしているのはChromeのみです。画像は折りたたまれた通知ビューでは小さく表示されます。通知を展開すると、完全な画像が表示されます。
Chrome macOSでカスタム画像を表示した展開されたプッシュ通知
5

Confirmed Deliveryを確認します。

ダッシュボードでDelivery > Sent Messagesに移動し、メッセージをクリックして統計を表示します。confirmed統計が表示されるはずです。これはデバイスがプッシュを受信したことを意味します。
SafariはConfirmed Deliveryをサポートしていません。

プッシュ通知メッセージレポート

プッシュ通知の配信、クリック、コンバージョン統計を表示します。
API経由でセグメントに通知を送信することに成功しました。
通知が届かない場合は、以下の情報を添えてsupport@onesignal.comにご連絡ください:
  • APIリクエストとレスポンスを.txtファイルにコピー&ペースト
  • サブスクリプションID
  • OneSignalコードを含むウェブサイトURL

ユーザー識別

前のセクションではウェブプッシュサブスクリプションの作成方法を説明しました。このセクションでは、OneSignal SDKを使用してすべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合しエンゲージするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。

External IDを割り当て

External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 SDKのloginメソッドを使用して、アプリによってユーザーが識別されるたびにExternal IDを設定します。
OneSignalは、サブスクリプション(Subscription ID)とユーザー(OneSignal ID)に対して一意の読み取り専用IDを生成します。ユーザーが異なるデバイスでアプリをダウンロードしたり、ウェブサイトにサブスクライブしたり、アプリ外でメールアドレスや電話番号を提供したりすると、新しいサブスクリプションが作成されます。すべてのサブスクリプションにわたってユーザーを識別するために、SDKを介してExternal IDを設定することを強くお勧めします。作成方法に関係なく。

データタグを追加

タグは、ユーザープロパティ(usernamerole、設定など)とイベント(purchase_dategame_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションセグメンテーションを強化し、より高度なユースケースを可能にします。 アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。 この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。
OneSignal user profile showing a data tag named current_level with value 6
レベルが5から10の間のユーザーのセグメントを作成し、それを使用してターゲット化されたパーソナライズされたメッセージを送信できます:
Segment editor filtering users where current_level is greater than 4 and less than 10

Push notification composer targeting the Level 5-10 segment with a personalized message

メールおよび/またはSMSサブスクリプションを追加

OneSignal SDKはユーザーがオプトインすると自動的にウェブプッシュサブスクリプションを作成します。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。 メールアドレスや電話番号がOneSignalアプリに既に存在する場合、SDKはそれを既存のユーザーに追加し、重複は作成しません。 ダッシュボードのAudience > UsersまたはView user APIを使用して、統合されたユーザーを表示できます。
OneSignal user profile showing push, email, and SMS subscriptions linked by External ID
マルチチャネルコミュニケーションのベストプラクティス
  • メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
  • 各コミュニケーションチャネルの利点をユーザーに説明してください。
  • ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。

プライバシーとユーザー同意

OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します: プライバシーとセキュリティの詳細については:

プッシュ、ユーザー、アプリ内イベントをリッスン

SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。

プッシュ通知イベント

ユーザー状態の変更


高度なセットアップと機能

統合を強化するための追加機能を探索します:

Web SDKのセットアップとリファレンス

おめでとうございます!Web SDKセットアップガイドが正常に完了しました。


FAQ

HTTPサイトでWebプッシュは機能しますか?

いいえ。WebプッシュにはHTTPSが必要です。ブラウザーはこれをセキュリティ要件として強制しています。唯一の例外はlocalhost127.0.0.1で、ブラウザーは開発目的のためにこれらをセキュアオリジンとして扱います。

サービスワーカーファイルが必要なのはなぜですか?

サービスワーカーはバックグラウンドで実行され、ユーザーがサイトを開いていない場合でも受信したプッシュ通知を処理します。これがなければ、ブラウザーは通知を表示できません。OneSignalSDKWorker.jsファイルはオリジン上で公開アクセス可能である必要があります。

iOS(iPhone/iPad)でWebプッシュを使用できますか?

はい、iOS 16.4+から使用できます。ただし、Appleはmanifest.jsonファイルを必要とし、ユーザーは最初にサイトをホーム画面に追加する必要があります。完全な要件についてはiOS Webプッシュセットアップを参照してください。

通知が表示されないのはなぜですか?

よくある原因としては、サービスワーカーファイルの配置が間違っている、ダッシュボードのサイトURLが一致していない、またはブラウザー設定でユーザーが通知をブロックしていることが挙げられます。完全なトラブルシューティングのチェックリストについては通知が表示されないまたは遅延するを参照してください。
サポートが必要ですか?サポートチームとチャットするか、support@onesignal.comにメールしてください以下を含めてください:
  • 発生している問題の詳細と再現手順(利用可能な場合)
  • OneSignal App ID
  • 該当する場合は、External IDまたはSubscription ID
  • 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  • 関連するログまたはエラーメッセージ
お気軽にお問い合わせください!