メインコンテンツへスキップ
OneSignalへようこそ!このガイドは、現在のメッセージングプラットフォームからOneSignalへの移行を最小限の中断で行うのに役立ちます。 次の方を対象としています:
  • 開発者 - OneSignal SDKを実装する方
  • マーケター - キャンペーンと分析を管理する方

前提条件

始める前に:

移行手順

1. 現在のメッセージング設定を監査する

移行前に、現在の実装の棚卸しを行います: 開発者向け:
  • サポートしているプラットフォーム:iOS、Android、Web、メール、SMSなど
  • プッシュとアプリ内メッセージイベントを処理するコード:
    • フォアグラウンド表示とクリック処理
    • プッシュ、メールなどのディープリンク使用
    • プッシュトークンとペイロード処理
  • メールアドレス、電話番号、プッシュトークンなどの収集方法
  • メールドメインとDNS所有権
  • SMS送信者とオプトインメカニズム
マーケター向け:
  • 送信するメッセージのタイプ:(トランザクション、マーケティングなど)
    • それらのメッセージのテンプレート
  • ユーザーのセグメント化とターゲティング方法
  • 追跡している分析またはコンバージョンメトリクス

2. OneSignalのコアコンセプト

始める前に理解しておくべきOneSignalのコアコンセプトをいくつか紹介します:
  • ユーザー - 外部IDで識別されます。ユーザーはプロパティ(タグ、セッションデータなど)とサブスクリプション(プッシュ、メール、SMS)で構成されます。
  • サブスクリプション - ユーザーがメッセージを受信できる方法を指します。4種類のサブスクリプションがあります:
    • モバイル:プッシュ通知、アプリ内メッセージ、Live Activitiesを受信できます。
    • Webプッシュ:Webプッシュ通知を受信できます。
    • メール:メール通知を受信できます。
    • SMS:SMS通知を受信できます。
  • セグメント - 共通のプロパティを持つユーザーのグループ。
  • タグ - カスタムユーザープロパティ。
  • カスタムイベント - ユーザーが実行するアクション。

3. OneSignal SDKを追加する(開発者向け)

モバイルアプリやWebサイトでOneSignal SDKをセットアップします:

外部IDでユーザーを識別する

外部IDは、デバイスやメッセージングチャネル間でユーザーを識別するために使用できる一意の識別子です。 ユーザーがアプリやWebサイトを使用する際に、SDKのloginメソッドを呼び出して外部IDを設定します。

新しいメールアドレスと電話番号を収集する

メールアドレスと電話番号は、このガイドの後半で説明するように、いくつかの方法でOneSignalアプリに追加できます。 モバイルアプリやWebサイトで直接メールアドレスや電話番号を収集する場合は、SDKを使用してこれらのサブスクリプションを作成できます:

4. レガシー実装を削除する

プッシュトークン、メールアドレス、電話番号を収集するためのネイティブまたはサードパーティのメソッドとAPIをすべて削除することをお勧めします。特にプッシュトークンの収集については、OneSignal SDKと競合を引き起こす可能性があります。

プッシュトークンの競合と形式

プッシュトークンを生成するすべてのレガシーコードを削除します。SDKが初期化されるときに自動的に行われるプッシュトークンの生成は、OneSignalにのみ許可してください。 必要に応じて、SDKを使用してトークンを取得し、他のプロバイダーやバックエンドに送信できます。その方法: OneSignalのプッシュトークン形式:
  • iOS Push APNSトークン形式:64文字、16進数文字のみ(0-9、a-f)。deviceToken.map {String(format: "%02x", $0)}.joined()
  • Android Push FCMトークン形式:通常163文字、英数字、ハイフン、コロン、アンダースコアを含む場合があります。

プッシュペイロード処理

OneSignalと別のプッシュプロバイダーを並行して使用する場合、重複を避けるために、他のSDKがOneSignal通知を処理しないようにする必要があります。 OneSignalのプッシュペイロードには、OSNotificationオブジェクトrawPayload内に特定の"custom"キーが含まれており、SDKはこれを使用して通知を処理するかどうかを判断します。 Android NotificationCompatを更新して、OSNotificationペイロード上のオブジェクトをリッスンし、他のプロバイダーのペイロードとは異なるものにして、当社から送信された通知を処理しないようにする必要があります。

段階的移行(モバイルアプリのみ)

限られた期間、両方のSDKを保持する必要がある場合:
  • 複数のSDKにプッシュトークンを生成させないでください。 OneSignalに処理させ、必要に応じて古いシステムとトークンを共有します。
  • ペイロードフィルターを更新して、レガシーSDKがOneSignalプッシュを処理しないようにします。
    • OneSignalはrawPayload"custom"キーを使用します(ドキュメント)。
    • NotificationCompat(Android)でこのキーを確認します。
  • どのプロバイダーがどのタイプの通知を処理するかを決定します。
  • 明確なカットオフ日を設定し、レガシーシステムの段階的廃止計画を構築します。
    • 送信する通知のタイプごとに通知テンプレートを作成します。
    • 古いプロバイダーは古いバージョンのアプリのユーザーにメッセージを送信し、OneSignalは新しいバージョンのアプリのユーザーにメッセージを送信するように設定します。
    • 特定のユーザーグループをターゲットにするセグメントを作成します。

5. Webプッシュ移行

同じHTTPSサイトのオリジンを使用している場合、サブスクライバーは次回の訪問時に自動的にOneSignalに追加されます。プロンプトは表示されず、すぐにOneSignalからプッシュを受信できます。また、以前のプロバイダーからのプッシュの受信も停止します。
  • ブラウザーのセキュリティ制限により、Webプッシュサブスクリプションをインポートすることはできません。OneSignalは、ユーザーが戻ってきたときに登録します。
  • OneSignalが引き継ぐ前に、古いプッシュサービスワーカーの登録を解除する必要があります。
手順:
  1. レガシーSDKを削除します:WebサイトとService Workerファイルのコード。
  2. Service Workerが確実に登録解除されるように、このコードを追加します。
  3. sw.jsをサードパーティのService Workerファイルの名前に置き換えます。
javascript
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.getRegistrations().then(function(registrations) {
    for (let registration of registrations) {
      if (registration.active.scriptURL.includes("sw.js")) {
        registration.unregister();
      }
    }
  });
}

OneSignalアプリ間の移行

1つのOneSignalアプリ(アプリA)から別のアプリ(アプリB)にサブスクライバーを移動する場合:
  • Webプッシュサブスクリプションは、アプリ間で直接転送できません。各サブスクリプションは、サイトのドメイン(オリジン)とOneSignalアプリIDの両方に関連付けられています。
  • 移行するには、サイトのOneSignal初期化コードを更新して、アプリBのappIdを使用します:
OneSignal.init({
  appId: "YOUR_APP_B_ID",
});
  • ユーザーがサイトを再訪問すると、ブラウザーの既存のプッシュ権限により、OneSignalはアプリBに自動的に登録します。
  • 新しい権限プロンプトは表示されませんが、アプリBでサブスクリプションが作成されるには、ユーザーが少なくとも1回サイトを訪問する必要があります。
  • サブスクライバーは、非アクティブになるまでアプリAに引き続き表示されます。
ベストプラクティス: 十分なユーザーが移行したことを確認したら、アプリAからの送信を停止します。両方のアプリのサブスクライバー数を監視して、移行の進行状況を検証します。

6. メールとSMSのセットアップ

OneSignalでメールやSMSを送信する場合は、メールセットアップおよびSMSセットアップガイドに従う必要があります。 現在のメール送信ドメインをOneSignalに移行するには、DNSレコードを更新するだけです。必要に応じて、OneSignalで複数のメール送信者を設定できます。 SMS送信者の移行には時間がかかる場合があります。このプロセスについて当社のチームから連絡があるはずですが、ない場合は、いつでもsupport@onesignal.comにお問い合わせください。

メールウォームアップは必要ですか?

送信ドメインが確立された送信評価を持っている場合、専用IPアドレスを使用していない限り、ウォームアップは必要ありません。

専用IPアドレスを取得できますか?

はい、プランタイプとニーズに応じて、専用IPアドレスを提供できます。詳細については、アカウントマネージャーにお問い合わせください。

7. 既存ユーザーをインポートする(オプション)

過去270日間にアプリでアクティブだったサブスクライブ済みユーザーをインポートすると、移行中の中断を最小限に抑えることができます。 まず既知のテストユーザーをインポートし、アプリの起動前に残りのユーザーをインポートすることをお勧めします。

プラットフォームの考慮事項

  • メールアドレスは、アクティブで有効なユーザーのものである必要があります。これまでにメールをクリックまたは開封したことのないメールアドレスはインポートしないでください。
  • 電話番号は特定の形式である必要があり、ユーザーはSMSの受信に同意している必要があります。
  • iOSサブスクリプションは、インポート後すぐにプッシュ通知の受信を開始できます。通知クリックトラッキングや確認済み配信などの機能には、デバイスでSDKがアクティブである必要があります。
  • Android/Huawei/Amazonサブスクリプションは、自動更新または手動更新を通じて、デバイスでSDKがアクティブである必要があります。
  • Webサブスクリプションはインポートできません。Webプッシュ移行の上記に従うと、ユーザーがサイトに戻ったときに、SDKを介してWebプッシュサブスクリプションが作成され、プッシュトークンが取得されます。

インポート手順

  1. 理解のためにユーザーおよびサブスクリプションドキュメントを確認します。
  2. 古いシステムからテストユーザーデータをエクスポートします。
  3. OneSignalのユーザーを作成 API用にデータをフォーマットします。
  4. テストユーザーをインポートし、テストに成功したら、プレリリースチェックリストで繰り返すプロセスを保持します。
必須フィールド:
  • token - プッシュトークン、メールアドレス、または電話番号
  • type - サブスクリプションのタイプ:iOSPushAndroidPushWebPushEmailSMS
  • external_id - ユーザーの一意の識別子。トラッキングと分析に使用することをお勧めします。
APIリクエストの例:
POST https://api.onesignal.com/users
  {
    "identity": {
      "external_id": "user_12345"
    },
    "subscriptions": [
      {
        "type": "iOSPush",
        "token": "7abcd49d0affb7426a8f1202420e8f4e2fc4df58e49501adc383f3bd66df8636"
      },
      {
        "type": "AndroidPush",
        "token": "dQGm89TZQXiTvLsRIj_GBo:APA91bpgqFgqkP2qYvV1uW2kdK5Z3TjgCXB_1jkL6VJrgH3hoYn16MvFY19tzDE4OuSgKjYC7itbFpSJYHBfKLWt-xZYBpgCVhYn9K5neV_9-Zj7s9mOSjRUJ2IwEwVSYhR-j5ICF9WB"
      },
      {
        "type": "Email",
        "email": "test@example.com"
      },
      {
        "type": "SMS",
        "phone_number": "+1234567890"
      }
    ]
  }

7. 移行をテストする

スムーズな移行には徹底的なテストが不可欠です。
  1. OneSignal SDKでデバッグログを有効にします。
  2. すべてのプラットフォーム(Android、iOS、Webなど)の実機でテストします。
  3. フォアグラウンドとバックグラウンドの両方の通知処理を確認します。
開発者とマーケターチーム向けのテストシナリオ:
  • OneSignal SDKを追加する前に、OneSignalからインポートされたユーザーにテスト通知を送信します。
    • iOSではプッシュを受信しますが、確認済み配信やクリック分析は取得できません。
    • 別のプッシュSDKがあり、まだペイロード処理要件を実装していない場合、Androidでプッシュを受信する可能性があります。通知にはデータが欠けている可能性が高く、クリックしても期待どおりに機能しません。
  • OneSignal SDKを追加した後、OneSignalからインポートされたユーザーにテスト通知を送信します。
    • AndroidとiOSの両方で、確認済み配信とクリック分析と共にプッシュを受信するはずです。
  • さまざまな状態のアプリで通知動作をテストします。
  • ディープリンクとカスタムアクションが正しく機能することを確認します。
複数のプロバイダーを使用している場合:
  • 現在のプロバイダーとOneSignalの両方から送信します。
  • 重複通知を確認します
  • 各プロバイダーの通知が正しく表示されることを確認します
  • ユーザーのログイン/ログアウトシナリオをテストします
サポートが必要ですか?サポートチームとチャットするか、support@onesignal.comにメールしてください以下を含めてください:
  • 発生している問題の詳細と再現手順(利用可能な場合)
  • OneSignal App ID
  • 該当する場合は、External IDまたはSubscription ID
  • 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  • 関連するログまたはエラーメッセージ
お気軽にお問い合わせください!

プレリリースチェックリスト

マーケター向け:
  • アプリ更新を促すメッセージング計画を構築します
  • 古いシステムからのプッシュとアプリ内メッセージを使用して、ユーザーに更新を優しく促すことを検討してください。
開発者向け:
  • プッシュとアプリ内メッセージの分析が期待どおりに機能していることを確認します。
    • クリックイベントと確認済み配信がAndroidとiOSで追跡されます。
  • 両方のプロバイダーから送信されたメッセージについて、クリックイベントとフォアグラウンド受信イベントが正しく処理されることを確認します。
  • ユーザーをインポートする場合は、過去270日間にアプリでアクティブだったAndroidおよびiOSユーザーをエクスポートして、期限切れトークンのインポートを防ぎます。詳細については、FCM期限切れトークンFAQを参照してください。

アプリ/サイトをリリースする

  • ほとんどのユーザーは、アプリが最新バージョンに自動的に更新されます。
  • ユーザーが更新されたアプリを開いたとき、権限が既に付与されている場合(必須の権限プロンプトまたはアプリの通知設定を通じて)、プッシュ通知のサブスクライブを求められることはありません。
ユーザーをインポートしなかった場合:
  • ユーザーがアプリの更新バージョンを開くと、OneSignalで自動的に作成されます。以前にサブスクライブしていた場合、プッシュを求められることはありません。
  • メッセージを送信する前に、更新されたアプリを開くのを待つ必要があります。
  • OneSignalに十分なユーザーが表示されるまで数日間、以前のプッシュプロバイダーから通知とアプリ内メッセージを送信し続けます。アプリを最新バージョンに更新するよう求める追加のアラートを送信します。

結果を監視する

開発者向け:
  • デプロイ後のエラー率とクラッシュを監視します。
  • 予期しないトークンの無効化に注意します。
  • SDK統合の分析を確認します。
マーケター向け:
  • アプリのリリース日をマークします。
  • 開発者と次のことについてコミュニケーションします:
    • どの移行パスが取られたか(クリーン移行または段階的移行)。
    • ユーザーはインポートされましたか?
  • クリーン移行を実行している場合:
    • 以前のプラットフォームで、引き続きアクティブなユーザーのセグメントまたはコホートを作成します。セッション時間、受信したメッセージ、クリックイベントを確認します。
    • アプリを更新していないユーザーのみが、引き続きアクティブでこのグループに含まれているはずです。
    • これらのユーザーに以前のプロバイダーからプッシュとアプリ内メッセージを送信し続け、優しく更新を促します。
    • OneSignalに完全に移行する準備ができるまで、以前のプロバイダーからの送信を停止します。
  • 段階的移行を実行している場合:
    • 以前のプラットフォームで、OneSignal以前の古いアプリバージョンを持つユーザーのセグメントまたはコホートを作成します。
    • これらの古いアプリのユーザーに以前のプロバイダーからプッシュとアプリ内メッセージを送信し続け、優しく更新を促します。
    • OneSignalに完全に移行する準備ができるまで、以前のプロバイダーからの送信を停止します。
    • 次のアプリリリースで以前のプッシュプロバイダーのコードを削除します。

OneSignalへの移行が正常に完了しました!移行計画に関する戦略的な質問については、カスタマーサクセスチームがパーソナライズされたガイダンスを提供できます。
サポートが必要ですか?サポートチームとチャットするか、support@onesignal.comにメールしてください以下を含めてください:
  • 発生している問題の詳細と再現手順(利用可能な場合)
  • OneSignal App ID
  • 該当する場合は、External IDまたはSubscription ID
  • 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  • 関連するログまたはエラーメッセージ
お気軽にお問い合わせください!