プッシュトークンのライフサイクル
この記事では、ユーザーにプッシュトークンが割り当てられるプロセスと、Brazeがユーザーにプッシュメッセージを送信する仕組みについて説明します。
プッシュトークンについて
アプリがデバイスにプッシュ権限をリクエストすると、デバイスのプッシュサービスプロバイダーがそのアプリ用のプッシュトークンを生成します。各アプリには固有の匿名プッシュトークンが付与され、プッシュ通知を送信する際にデバイスと現在のアプリインスタンスを識別するために使用されます。
プッシュトークンは永続的な静的識別子ではないことに注意してください。更新されることもあれば、有効期限が切れることもあります。

フォアグラウンドプッシュとバックグラウンドプッシュ
プッシュトークンは、フォアグラウンドプッシュ通知とバックグラウンドプッシュ通知の両方の送信に使用されます。
| タイプ | オプトインが必要? | 説明 |
|---|---|---|
| フォアグラウンドプッシュ | はい | アプリがフォアグラウンドにある間、ユーザーに通知が視覚的に表示されます。 |
| バックグラウンドプッシュ | いいえ | 通知は表示されずにバックグラウンドでサイレントに配信されます。アンインストール追跡などの機能によく使用されます。 |
ユーザーがアプリのプッシュ通知にオプトインすると、「プッシュ登録済み」とみなされ、BrazeのForeground Push Enabled for Appセグメンテーションフィルターを使用してターゲティングできるようになります。

これはForeground Push Enabledセグメンテーションフィルターとは異なります。このフィルターは、特定のアプリではなく、少なくとも1つのアプリでプッシュにオプトインしたユーザーを識別するために使用されます。詳細については、セグメンテーションフィルターを参照してください。
1つのデバイスに複数のユーザー
プッシュトークンはデバイスとアプリの両方に固有であるため、複数のユーザーが同じデバイスを使用している場合、プッシュトークンを使用して特定のユーザーをターゲティングすることはできません。
たとえば、CharlieとKimという2人のユーザーがいるとします。Charlieが自分のスマートフォンでアプリのプッシュ通知を有効にし、KimがCharlieのスマートフォンを使ってCharlieのプロファイルからログアウトし、自分のプロファイルにログインした場合、プッシュトークンはKimのプロファイルに再割り当てされます。その後、Kimがログアウトし、Charlieが再度ログインするまで、プッシュトークンはそのデバイス上でKimのプロファイルに割り当てられたままになります。
アプリまたはWebサイトは、デバイスごとに1つのプッシュサブスクリプションしか持てません。そのため、ユーザーがデバイスまたはWebサイトからログアウトし、新しいユーザーがログインすると、プッシュトークンは新しいユーザーに再割り当てされます。これは、ユーザープロファイルのエンゲージメントタブの連絡先設定セクションに反映されます。

プッシュプロバイダー(APNs/FCM)には1つのデバイス上の複数のユーザーを区別する方法がないため、最後にログインしたユーザーにプッシュトークンを渡し、デバイス上でプッシュのターゲットとなるユーザーを決定します。

プッシュトークンの登録
各デバイスプラットフォームでは、プッシュトークンの登録方法が異なります。プラットフォーム固有の詳細については、以下を参照してください。
ネイティブブラウザーの許可ダイアログを通じて、ユーザーから明示的なオプトインを取得する必要があります。ユーザーがオプトインした後にトークンを受け取ります。iOSやAndroidではアプリがいつでも許可プロンプトを表示できますが、一部の最新ブラウザーでは「ユーザージェスチャー」(マウスクリックやキーストローク)によってトリガーされた場合にのみプロンプトが表示されます。サイトがページ読み込み時にプッシュ通知の許可をリクエストしようとすると、ブラウザーによって無視またはサイレンスされる可能性があります。
アプリがインストールされると、プッシュトークンはアプリに対して自動的に生成されます—ただし、ユーザーが明示的にオプトインするまでは、バックグラウンドプッシュ通知にのみ使用できます。また、登録方法はAndroidのバージョンによって異なります。
| バージョン | 詳細 |
|---|---|
| Android 13 | プッシュ許可はユーザーによるリクエストと許可が必要です。アプリは手動で許可をリクエストできます。または、通知チャネルが作成された後に自動的にプロンプトが表示されます。 |
| Android 12以前 | すべてのユーザーは最初のセッション後にSubscribedと見なされます。この時点でBrazeは自動的にプッシュトークンをリクエストし、有効なトークンとデフォルトの購読ステータスSubscribedでユーザーのプッシュを有効にします。 |
iOSでは、アプリがインストールされてもプッシュトークンは自動的に生成されません。また、登録方法はiOSのバージョンによって異なります。
| バージョン | 仮承認? | 詳細 |
|---|---|---|
| iOS 12 | あり | ユーザーがプッシュ通知にオプトインすると、標準の承認が付与され、フォアグラウンドプッシュ通知を送信できるようになります。ただし、仮承認をリクエストすることもでき、これによりサイレントなバックグラウンドプッシュ通知を通知センターに直接送信できます。 |
| iOS 11以前 | なし | すべてのユーザーはプッシュ通知を受信するために明示的にオプトインする必要があります。プッシュトークンは許可が付与された後にのみ生成されます。 |

Brazeは、インポートされたプッシュトークンをアプリと環境に対する有効なフォアグラウンドプッシュトークンとして扱います。
iOSトークンをインポートする際、BrazeはそれらのApple Push Notification service(APNs)ゲートウェイ(developmentまたはproduction)を保存しません。Brazeはアプリの設定済みゲートウェイを通じてこれらのトークンに送信します。トークンが別の環境用に生成されたものであった場合、APNsはBadDeviceTokenとして拒否し、送信はバウンスされます。
Brazeがトークンのゲートウェイを保存するのは、SDKが後から同じトークンを登録し、ゲートウェイを報告した場合のみです。
ユーザーのプッシュ購読ステータスの確認

Brazeでユーザーのプッシュ購読ステータスを確認するには、2つの方法があります。
- ユーザープロファイル: Brazeダッシュボードのユーザー検索ページから、個々のユーザープロファイルにアクセスできます。ユーザーのプロファイルを見つけたら(メールアドレス、電話番号、または外部ユーザーIDで検索)、Engagementタブを選択して、ユーザーの購読ステータスを確認・手動で調整できます。
- Rest APIエクスポート: エクスポートのセグメント別ユーザーまたは識別子別ユーザーエンドポイントを使用して、個々のユーザープロファイルをJSON形式でエクスポートできます。Brazeは、デバイスごとのプッシュ有効化情報を含むプッシュトークンオブジェクトを返します。
プッシュ登録ステータスの確認
ユーザーのプロファイルのEngagementタブには、Push Registered Forの後にアプリ名が表示されます。そのデバイスのアプリ情報が存在しない場合は、2つのダッシュ(--)が表示されます。ユーザーに属するすべてのデバイスについてエントリが表示されます。
デバイスエントリのアプリ名にForeground:のプレフィックスが付いている場合、そのアプリはそのデバイスでフォアグラウンドプッシュ通知(ユーザーに表示される)とバックグラウンドプッシュ通知(ユーザーに表示されない)の両方を受信する権限があります。

一方、デバイスエントリのアプリ名にBackground:のプレフィックスが付いている場合、そのアプリはバックグラウンドプッシュの受信のみが承認されており、そのデバイスでユーザーに表示される通知を表示することはできません。これは通常、ユーザーがそのデバイスでアプリの通知を無効にしていることを示します。
プッシュトークンが同じデバイス上の別のユーザーに移動された場合、最初のユーザーはプッシュ登録されなくなります。
プッシュトークン管理
以下の表で、プッシュトークンの変更やユーザープロファイルからの削除につながるアクションを確認してください。
| アクション | 説明 |
|---|---|
changeUser() メソッドの呼び出し |
BrazeのchangeUser()メソッドは、SDKがユーザー行動データを割り当てるユーザー IDを切り替えます。このメソッドは通常、ユーザーがアプリにログインする際に呼び出されます。特定のデバイスで異なるまたは新しいユーザー IDを指定してchangeUser()が呼び出されると、そのデバイスのプッシュトークンは対応するユーザー IDを持つ適切なBrazeプロファイルに移動されます。 |
| プッシュエラーの発生 | トークンの削除につながる一般的なプッシュエラーには、MismatchSenderId、InvalidRegistration、その他のプッシュバウンスがあります。一般的なプッシュエラーの完全なリストをご覧ください。 |
| ユーザーがアンインストールした場合 | ユーザーがデバイスからアプリをアンインストールすると、Brazeはそのユーザーのプッシュトークンをプロファイルから削除します。 |
全体的な流れはどのようになっていますか?
ユーザーが新しいアプリを開き、プッシュプロンプトからプッシュアクセスを許可すると、Braze SDKからプッシュプロバイダーへの呼び出しが行われます。この呼び出しが行われると、プッシュプロバイダーはすべてが正しく設定されているかチェックします。正しく設定されている場合、プッシュトークンがデバイスに渡されます。トークンが届くと、SDKはこれをBrazeに通知します。Brazeがプッシュプロバイダーからトークンを受信すると、ユーザープロファイルを更新するか新規作成します。これらのユーザーは登録済みとみなされます。
キャンペーンを開始する場合、Brazeでキャンペーンを作成し、プッシュプロバイダーに送信するプッシュペイロードを生成します。そこからプロバイダーがプッシュペイロードをユーザーのデバイスに配信し、SDKがメッセージングの状態をBrazeに渡します。

| 登録ステップ | メッセージングステップ |
|---|---|
| 1. 顧客(デバイス)がプッシュプロバイダーに登録 2. プロバイダーがプッシュトークンを生成して配信 3. トークンをBrazeにフラッシュ |
1. Brazeがプッシュペイロードをプロバイダーに送信 2. プロバイダーがプッシュペイロードをデバイスに配信 3. SDKがメッセージング統計をBrazeに渡す |
よくある質問
オプトインしたユーザーがアプリを削除してから再ダウンロードした場合はどうなりますか?
ユーザーがプッシュ通知にオプトインし、いくつかのプッシュメッセージを受信した後、アプリを削除したとします。これにより、デバイスレベルでのプッシュの同意が削除されます。ここから、アンインストール後に最初にバウンスしたプッシュにより、そのユーザーは自動的に今後のプッシュメッセージングからオプトアウトされます。その後、ユーザーがアプリを再インストールしても起動しなかった場合、プッシュトークンがアプリに対して再付与されていないため、Brazeはそのユーザーにプッシュを送信できません。
さらに、ユーザーがフォアグラウンドプッシュを再度有効にした場合、プッシュメッセージングの受信を開始するには、ユーザープロファイルでこの情報を更新するためにセッション開始が必要になります。
プッシュトークンはいつ期限切れになりますか?
残念ながら、APNsとFCMはこれについて明確に定義していません。プッシュトークンは、アプリが更新されたとき、ユーザーがデータを新しいデバイスに転送したとき、またはオペレーティングシステムを再インストールしたときに期限切れになることがあります。ほとんどの場合、プッシュプロバイダーが特定のプッシュトークンを期限切れにする理由について、明確なインサイトはありません。
このあいまいさに対応するために、SDKのプッシュ統合ではセッション開始時に常にトークンの登録とフラッシュを行い、最新のトークンを確実に保持するようにしています。