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

概要

このガイドでは、Vue.jsアプリケーションにOneSignalプッシュ通知を統合する方法について説明します。公式のOneSignal Vueプラグインを使用したVue 2とVue 3の両方を対象とし、サービスワーカーの構成やTypeScriptサポートなどの主要なセットアップの考慮事項を含みます。

要件

Vue互換性

Vue環境と互換性のあるプラグインバージョンをインストールしてください。
VueOneSignal Plugin
2onesignal-vue
3onesignal-vue3

インストール

お好みのパッケージマネージャーを使用してインストールします:
yarn add onesignal-vue
# or yarn add @onesignal/onesignal-vue3

初期化

OneSignalサービスをインポートし、ルートコンポーネントで初期化します。init関数は、OneSignalが読み込まれたときに解決されるプロミスを返します。 YOUR_APP_IDキーとIDで見つかるOneSignalアプリIDに置き換えてください。
import Vue from 'vue'
import OneSignalVue from 'onesignal-vue'

Vue.use(OneSignalVue);

new Vue({
  render: h => h(App),
  beforeMount() {
    this.$OneSignal.init({ appId: 'YOUR_APP_ID' });
  }
}).$mount('#app')
//Example 1
await this.$OneSignal.init({ appId: 'YOUR_APP_ID' });
// do other stuff

//Example 2
this.$OneSignal.init({ appId: 'YOUR_APP_ID' }).then(() => {
  // do other stuff
});
OneSignalプラグインは、アプリケーション内でアクセス可能な$OneSignalグローバルプロパティを自動的に公開します。

Composition API

setup内から呼び出すことができるuseOneSignal()フックを介して、VueのComposition APIを活用することもできます。

init オプションのカスタマイズ

追加のinitパラメーターを使用して初期化をカスタマイズできます。

サービスワーカーの設定

まだ行っていない場合は、OneSignalサービスワーカーファイルをダウンロードしてサイトに追加する必要があります。 OneSignalSDKWorker.jsファイルは公開アクセス可能である必要があります。publicディレクトリ、トップレベルルート、またはサブディレクトリに配置できます。ただし、ファイルをサブディレクトリに配置する場合や、サイトに別のサービスワーカーがある場合は、パスを指定してください。詳細については、OneSignalサービスワーカーを参照してください。
オプション説明
serviceWorkerParamOneSignalワーカーによって制御されるスコープ。推奨: カスタムサブパスを使用します(例:"/onesignal/")。
serviceWorkerPathホストされているOneSignalサービスワーカーファイルへのパス(例:"onesignal/OneSignalSDKWorker.js")。公開アクセス可能である必要があります。
例:
this.$OneSignal.init({
  appId: 'YOUR-ONESIGNAL-APP-ID',
  serviceWorkerParam: {
    scope: '/onesignal/'
  },
  serviceWorkerPath: 'onesignal/OneSignalSDKWorker.js'
});

ワーカーのホスティング

  • パブリックルート(デフォルト):/OneSignalSDKWorker.js
  • カスタムフォルダー(推奨):例:前のステップで設定した/onesignal/OneSignalSDKWorker.js

サービスワーカーのホスティングを確認

ブラウザでパスにアクセスして、アクセス可能であることを確認します。 ルートを使用した場合:
https://your-site.com/OneSignalSDKWorker.js
例のパスを使用した場合:
https://your-site.com/onesignal/OneSignalSDKWorker.js
有効なJavaScriptが返されるはずです。

重要な注意事項

  • 開発環境での重複初期化を回避
    • 開発環境でテストする場合、OneSignal SDKが2回初期化され、コンソールエラーが発生する可能性があります。
    • これは、<React.StrictMode>が開発環境でエフェクトを2回実行するために発生します。解決するには、開発中にルートコンポーネントから<React.StrictMode>を削除してください。
厳密モードは開発環境にのみ影響します。本番ビルドには影響しません。

OneSignal SDK統合のテスト

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

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

1

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

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

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

2

OneSignalダッシュボードを確認

OneSignalダッシュボードを確認してください:
  • Audience > Subscriptionsに移動します。
  • ステータスがSubscribedの新しいエントリが表示されるはずです。

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

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

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

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

Test Subscriptionsに追加します。

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

デバイスをTest Subscriptionsに追加

2

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

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

「Name your subscription」フィールドを表示するダッシュボード

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をサポートしていません。

Confirmed Deliveryを示す配信統計

Professionalプラン以上をご利用の場合は、Audience Activityまでスクロールして、サブスクリプションレベルの確認を表示します:

Audience Activityでのデバイスレベルでの Confirmed Delivery

API経由でセグメントに通知を送信することに成功しました。
サポートが必要ですか?次の情報を添えてsupport@onesignal.comにお問い合わせください:
  • APIリクエストとレスポンスを.txtファイルにコピー&ペースト
  • あなたのSubscription ID
  • OneSignalコードを含むあなたのウェブサイトURL
喜んでお手伝いします!

ユーザー識別

以前、Webプッシュサブスクリプションの作成方法を説明しました。次に、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に設定されます。

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

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

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


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

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

以前、SDKがプッシュを送信するためにWebプッシュサブスクリプションを作成する方法を見ました。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。 メールアドレスや電話番号がOneSignalアプリに既に存在する場合、SDKはそれを既存のユーザーに追加し、重複は作成しません。 ダッシュボードのAudience > UsersまたはView user APIを使用して、統合されたユーザーを表示できます。

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

マルチチャネルコミュニケーションのベストプラクティス
  • メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
  • 各コミュニケーションチャネルの利点をユーザーに説明してください。
  • ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。

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

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

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

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

プッシュ通知イベント

ユーザー状態の変更


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

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

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

Webプッシュセットアップガイドを確認して、すべての主要機能が有効になっていることを確認してください。 利用可能なメソッドと設定オプションの詳細については、Web SDKリファレンスにアクセスしてください。
おめでとうございます!Web SDKセットアップガイドが正常に完了しました。

サポートが必要ですか?サポートチームとチャットするか、support@onesignal.comにメールしてください以下を含めてください:
  • 発生している問題の詳細と再現手順(利用可能な場合)
  • OneSignal App ID
  • 該当する場合は、External IDまたはSubscription ID
  • 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  • 関連するログまたはエラーメッセージ
お気軽にお問い合わせください!