メインコンテンツへスキップ
このカスタムコードセットアップは、高度な構成またはプログラムによる制御が必要な場合にのみ使用してください。ほとんどのユーザーには次をお勧めします:
JavaScriptフレームワークを使用している場合は、以下の専用ガイドに従ってください:

要件

  • 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:通知とプロンプトに表示される正方形の 256x256px PNG または JPG 画像をアップロードします。設定されていない場合は、デフォルトとしてベルアイコンが使用されます。
OneSignal web push configuration showing site name, URL, and icon settings

ローカルテスト

localhostでテストするには、本番アプリとは別のOneSignalアプリを使用し、init オプションに allowLocalhostAsSecureOrigin: true を追加します。 自己署名証明書を使用してHTTPS上でlocalhostをテストしている場合は、--allow-insecure-localhost を使用してChromeに無効な証明書を無視するよう指示する必要がある場合があります。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>

Safari Webプッシュ証明書(オプション)

OneSignalは無料でSafari証明書を自動的に提供します。使用する必要がある既存のSafari Webプッシュ証明書がある場合にのみ、これを有効にしてください。
Safari certificate upload option
有効にした場合は、Safari Web .p12 Push Certificate をアップロードし、パスワードを入力します。 Save をクリックして続行します。

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

Webプッシュ設定の次のページで、OneSignalSDKWorker.js サービスワーカーファイルが提供されます。 Web SDKはデフォルトでサイトのルートにあるこのファイルを検索します。例:https://yourdomain.com/OneSignalSDKWorker.js。コードでファイルの場所、名前、スコープを変更できます。

OneSignalサービスワーカー

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

サイトにコードを追加

このコードをWebサイトの <head> セクションに追加します。以下を置き換えてください:
  • YOUR_ONESIGNAL_APP_ID を OneSignalダッシュボードの実際のApp IDに
  • YOUR_SAFARI_WEB_ID を OneSignalダッシュボードの実際のSafari Web IDに
HTML
<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",
      safari_web_id: "YOUR_SAFARI_WEB_ID",
      notifyButton: {
        enable: true,
      },
    });
  });
</script>

iOS Webプッシュサポート

AppleはiOS 16.4+を実行しているiPhoneおよびiPadで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が収集するデータ

OneSignal SDKがユーザーから収集するデータを確認します。

個人データの取り扱い

プライバシー規制に準拠してユーザーデータを管理および保護します。

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

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

プッシュ通知イベント

ユーザー状態の変更


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

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

OneSignalへの移行

別のプッシュプロバイダーからOneSignalに移行します。

統合

OneSignalをサードパーティツールとプラットフォームに接続します。

アクションボタン

プッシュ通知にインタラクティブなボタンを追加します。

多言語メッセージング

ユーザーの好みの言語でローカライズされたメッセージを送信します。

Identity Verification

サーバーサイドのIdentity VerificationでSDK統合を保護します。

カスタムアウトカム

メッセージに関連するカスタムコンバージョンイベントを追跡します。

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

Webプッシュセットアップ

統合のすべての主要なウェブプッシュ機能を有効にします。

Web SDKリファレンス

利用可能なメソッドと設定オプションの完全な詳細。
おめでとうございます!Web SDKセットアップガイドが正常に完了しました。


FAQ

Webプッシュ通知にHTTPSは必要ですか?

はい。すべての最新ブラウザーはプッシュ通知サポートにHTTPSを必要とします。サイトがHTTPを使用している場合は、Webプッシュを設定する前にHTTPSに移行する必要があります。

このセットアップをシングルページアプリケーション(SPA)で使用できますか?

はい。Custom Codeセットアップは、React、Angular、VueなどのフレームワークでビルドされたSPAに推奨されるアプローチです。AngularReactVue のフレームワーク固有のガイドはこのページの上部をご参照ください。

ユーザーがブラウザーデータをクリアするとどうなりますか?

ユーザーのプッシュサブスクリプションが削除されます。Auto Resubscribe が有効になっている場合、次回サイトを訪問したときに自動的に再サブスクライブされます。

関連ページ

権限リクエスト

ユーザーにサブスクライブを促すタイミングと方法を設定します。

Web SDKリファレンス

OneSignal Web SDKの完全なAPIリファレンス。