Skip to main content
このカスタムコードセットアップは、高度な構成またはプログラムによる制御が必要な場合にのみ使用してください。ほとんどのユーザーには次をお勧めします:
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:通知とプロンプトに表示される正方形 256×256 のPNG、JPG、または非アニメーションGIFをアップロードします。設定されていない場合は、デフォルトとしてベルアイコンが使用されます。通知アイコンを参照してください。
ユーザーがブラウザーデータをクリアすると、サイトに戻るまでプッシュを受信しなくなります。Auto Resubscribe を有効にすると、新しい権限プロンプトなしで再度サブスクライブされます。サブスクリプションを参照してください。
OneSignal web push configuration showing site name, URL, and icon settings

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 フィールドを使用しません。serviceWorkerPathserviceWorkerParam を使用して、コードでSDKに検索場所を指示します。 OneSignalダッシュボードからファイルをダウンロードするか、次の1行を含む OneSignalSDKWorker.js という名前のファイルを作成します:
ルート(デフォルト): https://yourdomain.com/OneSignalSDKWorker.js で利用可能になるようにファイルをアップロードします。serviceWorkerPath を設定する必要はありません。SDKはこのURLを自動的にリクエストします。 サブディレクトリ: サイトにすでにサービスワーカーがある場合(たとえばPWA)、/ を所有するワーカーと競合しないように、OneSignalのファイルを /push/onesignal/ などのサブディレクトリに配置します。その場合、OneSignal.init()serviceWorkerPathserviceWorkerParam を渡す必要があります。サイトにコードを追加を参照してください。ファイルは https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js で公開アクセス可能である必要があります。
ファイルがサイトのルートになく、serviceWorkerPathserviceWorkerParam を省略した場合でも、SDKは https://yourdomain.com/OneSignalSDKWorker.js をフェッチし、サービスワーカーの登録は失敗します。

OneSignalサービスワーカー

ワーカーの結合、カスタムファイル名、および他のプロバイダーからの移行。

サイトにコードを追加

このコードをWebサイトの <head> セクションに追加します。YOUR_ONESIGNAL_APP_ID をOneSignalダッシュボードのApp IDに置き換えてください。 OneSignalSDKWorker.js がサイトのルートにある場合は、次のスニペットを使用します:
HTML
ファイルがサブディレクトリにある場合は、serviceWorkerPathserviceWorkerParam を追加します。これらのオプションは、カスタムコードでSDKにルート以外の場所を伝える唯一の方法です。
HTML
永続性(Persistence)は、コードで 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プッシュサブスクリプションを確認

1

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

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

Webプッシュのネイティブ許可プロンプト

2

OneSignalダッシュボードを確認

  • Audience > Subscriptionsに移動します。
  • ステータスがSubscribedの新しいエントリが表示されるはずです。
OneSignalダッシュボードのサブスクリプションページ。Subscribedステータスのウェブプッシュサブスクリプションを表示

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード

Webプッシュサブスクリプションの作成に成功しました。 Webプッシュサブスクリプションは、ユーザーがサイトでプッシュ通知に初めてサブスクライブしたときに作成されます。

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

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

Test Usersに追加します。

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

デバイスをtest usersに追加

2

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

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

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

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

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

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

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

セグメントエディター。Test Usersフィルターが選択され、セグメント名がTest Usersになっている

Test Usersフィルターを使用して「Test Users」セグメントを作成

テストユーザーのセグメントの作成に成功しました。 この個別のデバイスとテストユーザーのグループにメッセージを送信するテストが可能になりました。

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

1

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

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

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

以下のコードのYOUR_APP_API_KEYYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。
3

コードを実行します。

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

画像とconfirmed receiptを確認します。

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

Chrome macOSで画像付きの展開されたプッシュ通知

5

confirmed receiptを確認します。

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

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

プッシュ通知の配信、クリック、コンバージョン統計を表示します。
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

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

レベルが5から10の間のユーザーのセグメントを作成し、それを使用してターゲット化されたパーソナライズされたメッセージを送信できます:
Segment editor filtering users where current_level is greater than 4 and less than 10

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


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

パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット

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

OneSignal SDKはユーザーがオプトインすると自動的にウェブプッシュサブスクリプションを作成します。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。 メールアドレスや電話番号がOneSignalアプリに既に存在する場合、SDKはそれを既存のユーザーに追加し、重複は作成しません。 ダッシュボードのAudience > UsersまたはView user APIを使用して、統合されたユーザーを表示できます。
OneSignal user profile showing push, email, and SMS subscriptions linked by External ID

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル

マルチチャネルコミュニケーションのベストプラクティス
  • メールまたは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 SDKはサービスワーカーをどこで検索しますか?

Web SDKは、OneSignal.init()serviceWorkerPathserviceWorkerParam を渡さない限り、サイトのルート(https://yourdomain.com/OneSignalSDKWorker.js)で OneSignalSDKWorker.js を検索します。カスタムコードはダッシュボードのパスフィールドを使用しません。サービスワーカーファイルのアップロードを参照してください。

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

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

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

はい。カスタムコードセットアップは、React、Angular、VueなどのフレームワークでビルドされたSPAに推奨されるアプローチです。AngularセットアップReact JSセットアップVue JSセットアップを参照してください。

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

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

関連ページ

権限リクエスト

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

Web SDKリファレンス

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