プッシュ有効化とプッシュサブスクリプション
このリファレンス記事では、Brazeにおけるプッシュ有効化とプッシュサブスクリプション状態の概念について説明します。iOS、Android、Webにおける動作の基本的な違いも含まれています。
プッシュ通知のサブスクリプションの状態{#push-sub-states}
Brazeの 「プッシュ通知のサブスクリプションの状態」は、プッシュ通知の受信を希望するユーザーのグローバルな嗜好を識別します。サブスクリプションの状態はユーザーベースなので、個々のアプリに固有のものではない。サブスクリプションの状態は、プッシュ通知のターゲットにするユーザーを決定するときに役立つフラグです。
ユーザーのプッシュ通知のサブスクリプションの状態は、ユーザーのすべてのデバイスを含むユーザープロファイル全体に適用されます。
以下のサブスクリプション状態オプションが存在する: Subscribed, Opted-In, および Unsubscribed。
デフォルトでは、ユーザーがプッシュ通知でメッセージを受け取るには、プッシュサブスクリプション状態が「許可」またはSubscribed「拒否」のいずれかでなければならず、かつフォアグラウンドOpted-Inプッシュがイネーブルドになっている必要がある。メッセージの作成時に、この設定をオーバーライドできます。
| オプトイン状態 | 説明 |
|---|---|
Subscribed |
Brazeでユーザープロファイルが作成されたときのデフォルトのプッシュ通知のサブスクリプション状態。 |
Opted-In |
ユーザーは、プッシュ通知を受け取ることを明示的に希望した。ユーザーがOSレベルのプッシュ通知プロンプトを受け入れた場合、Brazeは自動的にOpted-Inそのユーザーのオプトイン状態を「許可済み」に変更する。Android 12 またはそれ以前のユーザーには適用されません。 |
Unsubscribed |
ユーザーがアプリケーションやブランドが提供するその他の方法で、プッシュ配信を明示的に解除した。デフォルトでは、Brazeのプッシュキャンペーンは、プッシュ通知に対してOpted-in「許可Subscribed」または「拒否」設定のユーザーのみを対象とする。 |
Braze で、ユーザーのプッシュ通知のサブスクリプションの状態を自動的に Unsubscribed にすることはありません。ユーザーのプッシュサブスクリプション状態が の場合、そのユーザーのセグメンテーションにおけるUnsubscribedForeground Push Enabled フィルターは であることをfalse覚えておけ。
プッシュ通知のサブスクリプションの状態の更新
ユーザーのプッシュサブスクリプション状態を更新する以下の方法を検討せよ:
自動オプトイン (デフォルト)
Braze はデフォルトで、ユーザーが初めてアプリのプッシュ通知を承認したときに、ユーザーのプッシュ通知のサブスクリプションの状態を Opted-In に設定します。Braze はまた、ユーザーがシステム設定でプッシュ許可を無効にした後、再度プッシュ許可を有効にした場合にもこれを行います。
このデフォルトの動作を無効にするには、Android Studio プロジェクトの braze.xml ファイルに次のプロパティを追加します。
1
<bool name="com_braze_optin_when_push_authorized">false</bool>
Braze Swift SDKバージョン 7.5.0 から、Xcode プロジェクトの AppDelegate.swift ファイルに optInWhenPushAuthorized の設定を追加することで、この動作を無効にしたり、さらにカスタマイズしたりすることができる:
1
2
3
4
configuration.optInWhenPushAuthorized = false // disables the default behavior
let braze = Braze(configuration: configuration)
AppDelegate.braze = braze
SDKの統合
Web、Android、または iOS 上で setPushNotificationSubscriptionType メソッドを使用して、Braze SDK でユーザーの購読状態を更新できる。例えば、この方法を使って、ユーザーが手動でプッシュ通知を有効または無効にできる設定ページをアプリ内に作成することができる。
REST API
ユーザーのサブスクリプションの状態を更新するには、Braze REST API で/users/track エンドポイントを使用して、ユーザーの push_subscribe 属性を更新します。
プッシュ通知のサブスクリプションの状態の確認

Brazeでは、以下のいずれかの方法でユーザーのプッシュ通知サブスクリプション状態を確認できる:
- ユーザープロフィール:Braze ダッシュボードの [ユーザー検索] ページから、個々のユーザープロファイルにアクセスできます。Eメールアドレス、電話番号、または外部ユーザーIDを介して)ユーザーのプロフィールを見つけた後、Engagementタブを選択してユーザーの購読状態を表示し、手動で調整することができる。
- REST API でのエクスポート:ExportUsers by segmentまたはUsers by identifierエンドポイントを使用して、個々のユーザープロファイルを JSON 形式でエクスポートすることができる。Brazeは、デバイスごとのプッシュ通知イネーブルメント情報を含むプッシュトークンオブジェクトを返す。
iOSユーザーアクションとプッシュステータス
以下の表は、さまざまなユーザーアクションがBrazeにおけるiOSプッシュ有効化、フォアグラウンドまたはバックグラウンドプッシュ登録、およびプッシュサブスクリプションステータスにどのように影響するかを示しています。ユーザーがアプリをインストールして最初のセッションを開始すると、その状態は通常、最初の行に示されているとおりになります。後続の各アクションにより、これらの値の一部が更新される場合がありますが、すべてが更新されるわけではありません。
| ユーザーアクション | Foreground Push Enabled |
Foreground Push Enabled for App |
プッシュ登録タイプ | プッシュサブスクリプションステータス |
|---|---|---|---|---|
| ユーザーがアプリをインストールしてセッションを記録する | false* |
更新なし | バックグラウンド | Subscribed |
| ユーザーがiOSネイティブプッシュプロンプトを受け取り、Allowを選択する | true |
true |
フォアグラウンド | Opted-In** |
| ユーザーがiOSネイティブプッシュプロンプトを受け取り、Don’t Allowを選択する | false |
更新なし | バックグラウンド | 更新なし |
| ユーザーがデバイス設定からプッシュを有効にしてセッションを記録する | true |
true |
フォアグラウンド | Opted-In** |
| ユーザーがデバイス設定からプッシュを無効にしてセッションを記録する | false |
false |
バックグラウンド | 更新なし |
| ユーザーがアプリを削除する | 更新なし | プッシュトークンが無効化された時に更新 | プッシュトークンが無効化された時に更新 | 更新なし |
* アプリが仮承認プッシュを使用していない場合、ユーザーがプッシュ通知を許可するまでForeground Push Enabledはfalseです。アプリが仮承認プッシュを使用している場合、最初のセッション開始時にForeground Push Enabledはtrueになります。詳細については、仮承認とサイレントプッシュを参照してください。
** Braze Swift SDKバージョン7.5.0以降、optInWhenPushAuthorized設定プロパティにより、プッシュ権限が承認された際にプッシュサブスクリプション状態が自動的にOpted-Inに設定されるかどうかを制御できます。詳細については、プッシュサブスクリプション状態の更新を参照してください。
プッシュ権限
プッシュ対応のすべてのプラットフォーム(iOS、Web、Android)では、OSレベルのシステムプロンプトによる明示的なオプトインが必要です。以下に若干の違いを説明します。
ユーザーの決定は最終的なものであり、拒否された後に再度尋ねることはできないため、プッシュプライマーのアプリ内メッセージを使用することは、オプトイン率を向上させるための重要な戦略です。
ネイティブOSプッシュ権限プロンプト
| プラットフォーム | スクリーンショット | 説明 |
|---|---|---|
| iOS | ![]() |
仮承認プッシュ権限をリクエストする場合は適用されません。 |
| Android | ![]() |
このプッシュ権限はAndroid 13で導入されました。Android 13より前は、プッシュの送信に権限は不要でした。 |
| Web | ![]() |
Android
Android 13より前は、プッシュ通知の送信に権限は不要でした。Android 12以前では、Brazeが自動的にプッシュトークンをリクエストする際、最初のセッションですべてのユーザーがSubscribedと見なされます。この時点で、ユーザーはそのデバイスの有効なプッシュトークンとデフォルトのサブスクリプション状態Subscribedを持つプッシュ有効状態になります。
Android 13以降、プッシュ権限はユーザーに要求し、許可を得る必要があります。アプリは適切なタイミングでユーザーに手動で権限をリクエストできますが、リクエストしない場合は、アプリが通知チャネルを作成した際に自動的にプロンプトが表示されます。
iOS

アプリは仮承認プッシュまたは承認済みプッシュをリクエストできます。
承認済みプッシュでは、通知を送信する前にユーザーからの明示的な許可が必要ですが、仮承認プッシュでは、サウンドやアラートなしで通知センターに直接__サイレントに__通知を送信できます。
仮承認とサイレントプッシュ
iOS 12(2018年リリース)より前は、すべてのユーザーがプッシュ通知を受け取るために明示的にオプトインする必要がありました。
iOS 12で、Appleは仮承認を導入しました。これにより、ブランドはユーザーが明示的にオプトインする前に、ユーザーの通知センターにサイレントプッシュ通知を送信でき、メッセージの価値を早期に示す機会が得られます。詳細については、仮承認を参照してください。
Web
Webでは、ネイティブブラウザの権限ダイアログを通じて明示的なユーザーオプトインをリクエストする必要があります。
iOSやAndroidではアプリがいつでも権限プロンプトを表示できますが、一部のモダンブラウザでは「ユーザージェスチャー」(マウスクリックやキーストローク)によってトリガーされた場合にのみプロンプトが表示されます。サイトがページ読み込み時にプッシュ通知の権限をリクエストしようとすると、ブラウザによって無視またはサイレント化される可能性があります。
そのため、ページが読み込まれたときにランダムにではなく、ユーザーがWebサイト上のどこかをクリックしたときにのみ権限をリクエストする必要があります。
プッシュトークン
プッシュトークンは、ユーザーのデバイスによって生成される一意の匿名識別子であり、各受信者の通知をどこに送信するかを識別するためにBrazeに送信されます。
プッシュトークンの分類には、プッシュ通知をユーザーに送信する方法を理解するために不可欠な2つの方法があります。
- フォアグラウンドプッシュは、ユーザーのデバイスのフォアグラウンドに通常の可視プッシュ通知を送信する機能を提供します。
- バックグラウンドプッシュは、特定のデバイスがそのブランドからのプッシュ通知の受信をオプトインしているかどうかに関係なく利用できます。バックグラウンドプッシュにより、ブランドはサイレントプッシュ通知(意図的に表示されない通知)をデバイスに送信して、アンインストール追跡などの主要な機能をサポートできます。
ユーザープロファイルにアプリに関連付けられた有効なフォアグラウンドプッシュトークンがある場合、Brazeはそのユーザーを該当アプリの「プッシュ登録済み」と見なします。Brazeは、これらのユーザーを識別するための特定のセグメンテーションフィルターForeground Push Enabled for App,を提供しています。
Foreground Push Enabled for Appフィルターは、該当アプリの有効なフォアグラウンドおよびバックグラウンドプッシュトークンの存在のみを考慮します。ただし、より汎用的なForeground Push Enabledフィルターは、ワークスペース内のいずれかのアプリでプッシュ通知を明示的に有効にしたユーザーをセグメント化します。このカウントにはフォアグラウンドプッシュのみが含まれ、配信停止したユーザーは含まれません。これらのフィルターやその他のフィルターの詳細については、セグメンテーションフィルターを参照してください。
1つのデバイスに複数のユーザー
プッシュトークンはデバイスとアプリの両方に固有であるため、同じデバイスを使用している複数のユーザーを区別するためにプッシュトークンを使用することはできません。
たとえば、CharlieとKimという2人のユーザーがいるとします。Charlieが自分の電話でアプリのプッシュ通知を有効にしており、KimがCharlieの電話を使ってCharlieのプロファイルからログアウトし、自分のプロファイルにログインした場合、プッシュトークンはKimのプロファイルに再割り当てされます。その後、Kimがログアウトし、Charlieが再度ログインするまで、プッシュトークンはそのデバイス上のKimのプロファイルに割り当てられたままになります。
アプリまたはWebサイトは、デバイスごとに1つのプッシュサブスクリプションのみを持つことができます。そのため、ユーザーがデバイスまたはWebサイトからログアウトし、新しいユーザーがログインすると、プッシュトークンは新しいユーザーに再割り当てされます。これは、ユーザーのプロファイルのエンゲージメントタブの連絡先設定セクションに反映されます。

プッシュプロバイダー(APNs/FCM)が1つのデバイス上の複数のユーザーを区別する方法がないため、プッシュトークンは最後にログインしたユーザーに渡され、デバイス上でプッシュのターゲットとするユーザーが決定されます。
複数のデバイスと1人のユーザー
プッシュサブスクリプション状態はユーザーベースであり、個々のアプリに固有ではありません。サブスクリプション状態は最後に設定された値です。そのため、ユーザーがプッシュ通知にオプトインした場合、そのプッシュサブスクリプション状態はすべての対象デバイスでOpted-Inになります。ユーザーが後でアプリケーションまたはブランドが提供するその他の方法を通じてプッシュ通知を明示的に配信停止した場合、プッシュサブスクリプション状態はUnsubscribedに更新され、プッシュ登録済みのデバイスはプッシュ通知を受信できなくなります。
Foreground Push Enabledフィルター
Foreground Push Enabledは、Brazeのセグメンテーションフィルターであり、マーケターがBrazeにプッシュ通知の送信を許可しているユーザーと、プッシュ通知を受け取らないという意思を表明していないユーザーを簡単に識別できます。
Foreground Push Enabledフィルターは以下を考慮します:
- Brazeがプッシュ通知を送信できるかどうか(フォアグラウンドプッシュトークン)
- ユーザーのいずれかのデバイスでプッシュを受信するための全体的な設定(プッシュサブスクリプション状態)

ユーザーは、ワークスペース内のアプリのアクティブなフォアグラウンドプッシュトークンを持っている場合、「プッシュ有効」または「プッシュ登録済み」と見なされます。つまり、プッシュ有効化ステータスはアプリ固有です。
プッシュ登録状態の確認方法については、プッシュ登録ステータスを参照してください。
その他のプラットフォーム固有のシナリオ
ユーザーがネイティブプッシュ権限プロンプトを受け入れると、サブスクリプションステータスはopted inに変更されます。
サブスクリプションを管理するには、ユーザーメソッドsetPushNotificationSubscriptionTypeを使用してサイトに設定ページを作成し、その後ダッシュボードでオプトアウトステータスによってユーザーをフィルタリングできます。
ユーザーがブラウザ内で通知を無効にした場合、そのユーザーに送信される次のプッシュ通知はバウンスし、Brazeはユーザーのプッシュトークンを適切に更新します。これは、プッシュ有効フィルター(Background or Foreground Push Enabled、Foreground Push Enabled、Foreground Push Enabled for App)の適格性を管理するために使用されます。ユーザーのプロファイルに設定されたサブスクリプションステータスはユーザーレベルの設定であり、プッシュがバウンスしても変更されません。
Webプラットフォームでは、バックグラウンドプッシュやサイレントプッシュは許可されていません。
フォアグラウンドプッシュが有効なユーザーがOS設定でプッシュを無効にした場合、次のセッション開始時に以下が発生します:
- Brazeはそのユーザーをフォアグラウンドプッシュ無効としてマークし、プッシュメッセージの送信を試みなくなります。
Foreground Push Enabled for App (Android)フィルターとForeground Push Enabledセグメンテーションフィルター(ユーザープロファイル上の他のアプリに有効なフォアグラウンドプッシュトークンがない場合)はfalseを返します。
このシナリオでは、バックグラウンドプッシュトークンは引き続き存在するため、セグメンテーションフィルターBackground or Foreground Push Enabled = trueを使用してバックグラウンド(サイレント)プッシュ通知を引き続き送信できます。
Androidの場合、Brazeは以下の場合にユーザーをプッシュ無効と見なします:
- ユーザーがデバイスからアプリをアンインストールした場合。
- バウンスによりプッシュメッセージの配信に失敗した場合。これは多くの場合アンインストールが原因ですが、アプリの更新、新しいプッシュトークンバージョン、またはフォーマットが原因の場合もあります。
- Firebase Cloud Messagingへのプッシュ登録が失敗した場合(ネットワーク接続の不良、またはFCMへの接続の失敗や有効なトークンの返却の失敗が原因の場合があります)。
- ユーザーがデバイス設定でアプリのプッシュ通知をブロックし、その後セッションを記録した場合。
Androidプッシュ通知をインターセプトできるのは、アプリがフォアグラウンドまたはバックグラウンド(ただし実行中)にある場合のみです。アプリが終了または完全に強制終了されている場合、通知をインターセプトすることはできません。
ユーザーがフォアグラウンドプッシュのオプトインプロンプトを受け入れたかどうかに関係なく、Xcodeでリモート通知が有効になっており、アプリがregisterForRemoteNotifications()を呼び出している場合、バックグラウンドプッシュを送信できます。
アプリが仮承認されているか、ユーザーがプッシュにオプトインしている場合、フォアグラウンドプッシュトークンを受け取り、すべてのタイプのプッシュを送信できます。Braze内では、iOSでフォアグラウンドプッシュが有効なユーザーは、明示的(アプリレベル)または仮承認(デバイスレベル)のいずれかでプッシュ有効と見なされます。
ユーザーがOSレベルでプッシュ通知の受信を拒否した場合、プッシュサブスクリプション状態はSubscribedのままとなり、プロファイルにはフォアグラウンドプッシュトークンが登録されていることは表示されません。
最初にOSレベルでオプトインしたユーザーがOS設定でプッシュ通知を無効にした場合、次のセッション開始時に以下が発生します:
- Brazeはそのユーザーをフォアグラウンドプッシュ無効としてマークし、プッシュメッセージの送信を試みなくなります。
Foreground Push Enabled for App (iOS)フィルターとForeground Push Enabledセグメンテーションフィルター(ユーザープロファイル上の他のアプリに有効なフォアグラウンドプッシュトークンがない場合)はfalseを返します。
このシナリオでは、バックグラウンドプッシュトークンは引き続き存在するため、セグメンテーションフィルターBackground or Foreground Push Enabled = trueを使用してバックグラウンド(サイレント)プッシュ通知を引き続き送信できます。
iOSでは、プッシュ通知が表示される前にアプリがプッシュ通知をインターセプトすることは許可されていません。つまり、アプリ(およびBraze)は通知を表示するか非表示にするかを制御できません。ユーザーはデバイス設定でアプリのプッシュ通知をオプトアウトできますが、それはオペレーティングシステムによって制御されます。
ベストプラクティス
Brazeでのプッシュの使用を最適化するための詳細なガイダンスについては、プッシュのベストプラクティスに関する専用記事を参照してください。


