プッシュ登録
この記事では、ユーザーがプッシュトークンを割り当てられるまでのプロセスと、Brazeがユーザーにプッシュメッセージを送信する方法について説明する。
プッシュトークン
プッシュトークンとそれが何であるかを理解することは、Brazeでプッシュメッセージを送信する方法を理解するための基本的な要素である。プッシュトークンは、ユーザーのデバイスによって生成され、各受信者の通知を送信する場所を特定するためにBrazeに送信される一意の匿名識別子である。デバイスがプッシュトークンを持っていない場合、プッシュを送信する方法はない。
プッシュトークンはプッシュサービスプロバイダによって生成される。Brazeは、AndroidのFirebase Cloud Messaging Service(FCM)やiOSのApple Push Notification Service(APN)のようなプッシュサービスプロバイダーと接続し、これらのプロバイダーは、あなたのアプリを識別するユニークなデバイストークンを送信する。各デバイスには、メッセージングに使用される一意のトークンが 1 つあります。トークンはそのまま期限切れにするか、更新することができます。
[プッシュトークン][プッシュトークン] には 2 つの分類方法があります。プッシュ通知をユーザーに送る方法を理解するためには、これらを把握しておく必要があります。
- フォアグラウンドプッシュは、ユーザーのデバイスのフォアグラウンドに定期的に表示されるプッシュ通知を送信する機能を提供します。
- バックグラウンドプッシュは、特定のデバイスがそのブランドからのプッシュ通知の受信にオプトインしているかどうかに関係なく利用できます。バックグラウンドプッシュでは、ブランドがサイレントプッシュ通知 (意図的に表示されない通知) をデバイスに送信して、アンインストール追跡のような重要な機能をサポートすることができます。
ユーザープロファイルにアプリに関連付けられた有効なフォアグラウンドプッシュトークンがある場合、Brazeはそのユーザーを指定されたアプリの「プッシュ登録済み」とみなす。そこで、Braze にはそのようなユーザーの特定に役立つ特定のセグメンテーションフィルター Push enabled for App,
が用意されています。
Push enabled for App
フィルターは、指定されたアプリについて、有効なフォアグラウンドやバックグラウンドのプッシュトークンの有無のみを考慮します。しかし、より一般的なPush Enabled
フィルタは、ワークスペース内のアプリのプッシュ通知を明示的に有効にしているユーザーをセグメントする。このカウントには、フォアグラウンドプッシュのみが含まれ、配信停止したユーザーは含まれません。これらのフィルターやその他のフィルターについては、セグメンテーション・フィルターで詳しく説明されている。
1台のデバイスで複数のユーザーが利用できる
プッシュトークンはデバイスとアプリの両方に固有なので、プッシュトークンを使って同じデバイスを使っている複数のユーザーを区別することはできない。
例えば、2人のユーザーがいるとする:Charlie と Kim です。Charlie が自分の携帯電話でアプリのプッシュ通知を有効にしている場合、Kim が Charlie の携帯電話を使用して Charlie のプロファイルからログアウトし、自分のプロファイルにログインすると、プッシュトークンは Kim のプロファイルに割り当てし直されます。プッシュトークンは、Kim がログアウトして、Charlie が再度ログインするまで、そのデバイスの Kim のプロファイルに割り当てられたままになります。
アプリや Web サイトは、1 つのデバイスにつき 1 つのプッシュ通知サブスクリプションのみを持つことができます。そのため、ユーザーがデバイスやウェブサイトからログアウトし、新しいユーザーがログインすると、プッシュトークンは新しいユーザーに再割り当てされる。これは、EngagementタブのContact Settingsセクションにあるユーザーのプロフィールに反映される:
![ユーザープロファイルの [エンゲージメント] タブにあるプッシュトークンの変更ログ。プッシュトークンが他のユーザーに移動した時点と、そのトークンがリストされます。][4]
プッシュ・プロバイダ(APN/FCM)には、1つのデバイス上の複数のユーザーを区別する方法がないため、最後にログインしたユーザーにプッシュ・トークンを渡し、デバイス上のどのユーザーをプッシュのターゲットにするかを決定する。
プッシュトークン登録
プラットフォームは、プッシュトークン登録とプッシュ権限をさまざまな方法で処理します。
- Android:
- Android 13:
プッシュ権限は、ユーザーに求め、ユーザーによって付与される必要があります。ユーザーからパーミッションが与えられた後にトークンを受け取る。アプリから手動で、適切なタイミングでユーザーに許可を求めることができますが、そうでない場合は、アプリが通知チャネルを作成した後に、ユーザーに自動的にプロンプトが表示されます。 - Android 12 以前:
Braze が自動的にプッシュトークンを要求すると、すべてのユーザーが最初のセッションでSubscribed
と見なされます。この時点で、ユーザーはそのデバイスの有効なプッシュトークンと、Subscribed
というデフォルトのサブスクリプション状態でプッシュ有効になっている。
- Android 13:
- iOS:自動的にプッシュ登録されません。
- iOS 12(暫定認証あり):
アプリは、仮承認または承認されたプッシュを要求することができる。承認プッシュでは、通知を送信する前にユーザーからの明示的な許可が必要ですが (ユーザーから許可された後でトークンを受信します)、[暫定プッシュ][provisional-blog] では、音やアラートなしで通知センターに直接、__静かに__通知を送信できます。 - iOS 11以降およびiOS 12(暫定認証なし):
すべてのユーザーは、プッシュ通知の受信を明示的にオプトインしなければなりません。ユーザーがオプトインした後にトークンを受け取ります。
- iOS 12(暫定認証あり):
- Web:ネイティブブラウザーの許可ダイアログを通じて、ユーザーから明示的なオプトインを要求する必要があります。ユーザーがオプトインした後にトークンを受け取ります。 iOS や Android の場合、アプリからいつでも許可プロンプトを表示できますが、最近のブラウザーの中には、「ユーザーのジェスチャー」(マウスクリックやキーストローク) でトリガーされたときにのみプロンプトを表示するものもあります。御社サイトでページの読み込み時にプッシュ通知の許可を要求しようとした場合、おそらくブラウザーによって無視されるか、表示されない可能性があります。
プッシュトークンを取得する | プッシュトークンを送信する |
---|---|
アプリケーションは、デバイスのプッシュトークンを取得するためにプッシュプロバイダーに登録する必要があります。 | 開発者は、FCM/APN によって生成されたプッシュトークンを使ってデバイスをターゲットにすることができます。 |
ユーザーのプッシュ購読状態をチェックする
![John Doeのユーザープロファイルで、プッシュ購読の状態がSubscribedに設定されている。][3]{: style=”float:right;max-width:35%;margin-left:15px;”}
Braze でユーザーのプッシュ通知のサブスクリプションの状態を確認するには、3 つの方法があります。
- ユーザープロフィールBraze ダッシュボードの [ユーザー検索][5] ページから、個々のユーザープロファイルにアクセスできます。Eメールアドレス、電話番号、または外部ユーザーIDを介して)ユーザーのプロフィールを見つけた後、Engagementタブを選択してユーザーの購読状態を表示し、手動で調整することができる。
- ** Rest API でのエクスポート **: セグメント別のユーザー または識別子別のユーザーのエクスポートのエンドポイントを使用して、個々のユーザープロファイルを JSON 形式でエクスポートできます。Brazeは、デバイスごとのプッシュ有効化情報を含むプッシュトークンオブジェクトを返す。
プッシュ登録状況を確認する
ユーザープロファイルの [エンゲージメント] タブに、[登録済みのプッシュ通知] とアプリ名が表示されます。そのデバイスにアプリ情報が存在しない場合は、2 つのダッシュ (–) が表示されます。ユーザーに属するすべてのデバイスにエントリが存在します。
デバイスエントリのアプリ名の前に Foreground:
が付いている場合、アプリはそのデバイスでフォアグラウンドプッシュ通知 (ユーザーに表示されます) と、バックグラウンドプッシュ通知 (ユーザーに表示されません) の両方を受け取るよう承認されています。
![サンプルプッシュトークンのあるプッシュ通知の変更ログ][2]{: style=”float:right;max-width:40%;margin-left:15px;margin-top:10px;”}
一方、デバイスエントリのアプリ名に Background:
という接頭辞が付いている場合、アプリはバックグラウンドプッシュを受信する権限のみが付与され、ユーザーに表示可能な通知をそのデバイスでは表示できません。これは通常、ユーザーがそのデバイスでアプリの通知を無効にしていることを示します。
プッシュトークンを同じデバイスの別のユーザーに移動すると、最初のユーザーはプッシュ登録されなくなる。
プッシュトークンの管理
プッシュトークンの変更またはユーザープロファイルからの削除につながるアクションについては、以下のチャートをチェックしてほしい。
アクション (Action) | 説明 |
---|---|
changeUser() メソッドが呼び出される |
BrazechangeUser() メソッドは、SDKがユーザー行動データを割り当てるユーザーIDを切り替える。このメソッドは通常、ユーザーがアプリケーションにログインするときに呼び出される。changeUser() 、特定のデバイスで異なるユーザーIDまたは新しいユーザーIDで呼び出されると、そのデバイスのプッシュトークンは、対応するユーザーIDを持つ適切なBrazeプロファイルに移動する。 |
プッシュエラー発生 | トークンの削除につながる一般的なプッシュエラーには、MismatchSenderId 、InvalidRegistration 、およびその他のタイプのプッシュバウンスがあります。よくあるプッシュエラーのリストをご覧いただきたい。 |
ユーザーがアンインストールする | ユーザーがデバイスからアプリケーションをアンインストールすると、Brazeはユーザーのプッシュトークンをプロファイルから削除する。 |
これはより広いスケールで見るとどうなるのだろうか?
ユーザーが新しいアプリケーションを開き、プッシュプロンプトからプッシュアクセスを許可すると、Braze SDKからプッシュプロバイダーへの呼び出しが行われる。この呼び出しが行われると、プッシュプロバイダーはすべてが正しく設定されているかどうかのチェックを実行します。もしそうなら、プッシュトークンがあなたのデバイスに渡される。トークンが到着すると、SDKはこれをBrazeに伝える。Brazeがプッシュプロバイダからトークンを受け取った後、ユーザープロファイルを更新または新規作成する。これらのユーザーは登録済みとみなされる。
キャンペーンを開始する場合は、プッシュプロバイダーに送信するプッシュペイロードを生成するキャンペーンを Braze で作成します。そこから、プロバイダーはユーザーのデバイスにプッシュペイロードを配信し、SDKはメッセージング状態をBrazeに渡す。
![前述の Braze、カスタマー、Apple Push Notification Service または Firebase Cloud Messaging 間のプッシュプロセスをマッピングしたフローチャート][push-process]
登録ステップ | メッセージングステップ |
---|---|
1.顧客 (デバイス) がプッシュプロバイダーに登録する 2.プロバイダーがプッシュトークンを生成し、配信する 3.Brazeのフラッシュ・トークン |
1.Brazeはプッシュペイロードをプロバイダーに送る 2.プロバイダーはプッシュペイロードをデバイスに配信する。 3.SDKはメッセージング統計情報をBrazeに渡す |
よくある質問
オプトインしたユーザーがアプリを削除し、再ダウンロードした場合はどうなるのか?
あるユーザーがプッシュを選択し、プッシュメッセージを受け取った後、アプリを削除したとします。すると、デバイスレベルでプッシュ同意が削除される。ここから、アンインストール後の最初のバウンスプッシュによって、そのユーザーは将来のプッシュメッセージからオプトアウトされます。この後、ユーザーがアプリを再インストールし、起動しなかった場合、アプリにプッシュトークンが再付与されないため、Braze はユーザーにプッシュを送信できません。
さらに、ユーザーがフォアグラウンドプッシュを再び有効にする場合、プッシュメッセージの受信を開始するには、セッションを開始してユーザープロファイル内のこの情報を更新する必要があります。
プッシュトークンの有効期限は?
残念ながら、APN と FCM はこれを定義していません。プッシュトークンは、アプリがアップデートされた時、ユーザーが新しいデバイスにデータを移した時、OSを再インストールした時などに失効することがある。ほとんどの場合、プッシュプロバイダーが特定のプッシュトークンを期限切れにする理由について有用なインサイトはありません。
この曖昧さを考慮し、SDKプッシュ統合は常にセッション開始時にトークンを登録し、フラッシュすることで、最新のトークンを確保している。
[push-process] : /docs/ja/assets/img/push_process.png?9cf024c26e389ace595ddaed8e81ad88 [5]: /docs/ja/user_guide/engagement_tools/segments/using_user_search/ [2]: /docs/ja/assets/img/push_changelog.png?a1df21a5f442a5202c793c3ccaf1e02d [push-tokens]: /docs/ja/user_guide/message_building_by_channel/push/push_registration/ [3]: /docs/ja/assets/img/push_example.png?037b25580f8a7a625c58fbddce3886ed [4]: /docs/ja/assets/img/push_token_changelog.png?7da5a070185b54256e3bb28616ccee8f