プッシュプライマーアプリ内メッセージ
ユーザーにプッシュ許可を求めるチャンスは一度きりです。そのため、プッシュ登録を最適化してプッシュメッセージのリーチを最大化することが重要です。アプリ内メッセージを使用して、ネイティブのプッシュプロンプトを表示する前に、オプトインした場合にどのようなメッセージを受け取れるかをユーザーに説明しましょう。これをプッシュプライマーと呼びます。

Brazeでプッシュプライマーアプリ内メッセージを作成するには、iOS、Android、またはWeb向けのアプリ内メッセージを作成する際に、ボタンのクリック時動作「プッシュ許可をリクエスト」を使用します。
前提条件
この機能にはボタンのクリック時動作が必要であり、以下の最小バージョン以降でサポートされています。
また、以下のプラットフォーム固有の詳細にご注意ください。
| OSバージョン | 追加情報 |
|---|---|
| Android 12以前 | プッシュはデフォルトでオプトインされているため、プッシュプライマーの実装は推奨されません。 |
| Android 13以降 | ユーザーがプッシュ許可プロンプトを2回拒否すると、Androidはそれ以降のプロンプト(Brazeプッシュプライマーメッセージを含む)をブロックします。許可を付与するには、ユーザーがデバイスの設定でアプリのプッシュを手動で有効にする必要があります。 |
一般情報
- プッシュプロンプトはインストールごとに1回のみ表示でき、オペレーティングシステムによって制御されます。
- アプリのプッシュ設定が明示的にオンまたはオフの場合、プロンプトは表示されません。仮承認を持つユーザーにのみ表示されます。
- アプリのプッシュ設定がオンの場合: ユーザーはすでにオプトインしているため、Brazeはアプリ内メッセージを表示しません。
- アプリのプッシュ設定がオフの場合: デバイスの設定内にあるアプリのプッシュ通知設定にユーザーをリダイレクトする必要があります。
手動でのコード削除
このチュートリアルで設定するアプリ内メッセージは、ユーザーがアプリ内メッセージのボタンをクリックすると、ネイティブのプッシュプロンプトコードを自動的に呼び出します。プッシュ通知の許可を2回リクエストしたり、不適切なタイミングでリクエストしたりすることを避けるため、開発者は既存のプッシュ通知統合を変更して、アプリ内メッセージがユーザーに表示される最初のプッシュ通知プライマーとなるようにする必要があります。
開発チームは、アプリまたはサイトのプッシュ通知の実装を確認し、プッシュ許可をリクエストするコードを手動で削除する必要があります。たとえば、以下のコードへの参照を削除してください。
1
requestAuthorizationWithOptions
requestAuthorization
braze.requestPushPermission()
// or
appboy.registerAppboyPushMessages()
android.permission.POST_NOTIFICATIONS
ステップ 1: アプリ内メッセージを作成する
まず、アプリ内メッセージを作成し、メッセージタイプとレイアウトを選択します。
メッセージとボタンの両方に十分なスペースを確保するため、フルスクリーンまたはモーダルのメッセージレイアウトを使用してください。フルスクリーンを選択する場合、画像が必要になることにご注意ください。
ステップ 2: メッセージを作成する
次に、コピーを追加しましょう!プッシュプライマーは、ユーザーにプッシュ通知をオンにするよう促すためのものです。メッセージ本文では、プッシュ通知をオンにすべき理由を強調することをお勧めします。送信したい通知の種類と、それがどのような価値を提供できるかを具体的に説明しましょう。
たとえば、ニュースアプリでは以下のようなプッシュプライマーを使用できます。
Breaking news on the go! Enable push notifications to get alerts for major stories and topics that matter to you.
ストリーミングアプリでは以下のようなものが考えられます。
Get push notifications from Movie Cannon? Notifications may include new movies, TV shows, or other notices and can be turned off at any time.
ベストプラクティスと追加リソースについては、カスタムオプトインプロンプトの作成を参照してください。
ステップ 3: ボタンの動作を指定する
アプリ内メッセージにボタンを追加するには、2つのボタンブロックをメッセージにドラッグします。これらはアプリ内メッセージのプライマリボタンとセカンダリボタンとして機能します。また、行をメッセージにドラッグしてから、その行にボタンをドラッグすることで、ボタンを同じ水平行に配置することもできます(積み重ねるのではなく)。スターターボタンとして「通知を許可」と「今はしない」をお勧めしますが、さまざまなボタンプロンプトを割り当てることができます。
ボタンのコピーを追加したら、各ボタンのクリック時動作を指定します。
- ボタン1:「メッセージを閉じる」に設定します。これはセカンダリボタン、つまり「今はしない」オプションです。
- ボタン2:「プッシュ許可をリクエスト」に設定します。これはプライマリボタン、つまり「通知を許可」オプションです。

ステップ 4: 配信をスケジュールする
プッシュプライマーを適切なタイミングで送信するには、アプリ内メッセージをアクションベースのメッセージとしてスケジュールし、トリガーアクションとしてカスタムイベントを実行を設定する必要があります。
理想的なタイミングはさまざまですが、Brazeではユーザーが何らかの高価値アクションを完了するまで待つことをお勧めします。これは、ユーザーがアプリやサイトに価値を感じ始めていることを示すタイミングや、プッシュ通知が対応できる切実なニーズがあるとき(注文後に配送追跡情報を提供したい場合など)です。こうすることで、プロンプトはブランドだけでなく顧客にとっても有益なものになります。

ステップ 5: ユーザーをターゲットにする
プッシュプライマーキャンペーンの目標は、プッシュ許可をまだ付与していないデバイスを持つユーザーに促すことです。これには、初回ユーザーや、新しいデバイスを取得したりアプリケーションを再インストールした既存ユーザーが含まれます。

ノーコードプッシュプライマーによる自動抑制: ノーコードプッシュプライマー(「プッシュ許可をリクエスト」ボタンアクション)を使用する場合、セグメンテーションにプッシュサブスクリプションフィルターを追加する必要はありません。SDKは、ユーザーの他のデバイスでのプッシュステータスに関係なく、すでにアクティブなプッシュトークンを持つデバイスでアプリ内メッセージを自動的に抑制します。複数のデバイスを持つユーザーのターゲティングの詳細については、複数のデバイスを持つユーザーのターゲティングを参照してください。
ノーコードプッシュプライマーを使用していない場合は、Foreground Push Enabled For App is falseのフィルターを追加してください。このフィルターは、フォアグラウンドプッシュ通知にまだオプトインしていない個々のアプリインストールを識別します。

Push Subscription Status is not Opted Inのようなユーザーレベルのフィルターを使用すると、別のデバイスですでにオプトインしているユーザーが除外され、新しいデバイスでプロンプトを受け取れなくなります。
それ以外にも、最も適切と思われる追加のセグメントを決定できます。たとえば、2回目の購入を完了したユーザー、会員になるためにアカウントを作成したばかりのユーザー、または週に2回以上アプリを訪問するユーザーをターゲットにすることができます。これらの重要なセグメントのユーザーをターゲットにすることで、ユーザーがオプトインしてプッシュが有効になる可能性が高まります。
複数のデバイスを持つユーザーのターゲティング
Brazeはデバイスレベルではなくプロファイルレベルでユーザーデータを取得するため、複数のデバイスを所有するユーザーのターゲティングは困難な場合があります。セグメンテーションのプッシュサブスクリプションフィルターは、特定のターゲットデバイスのサブスクリプション状態ではなく、単一のデバイスのサブスクリプション状態に基づいてユーザーを含めたり除外したりします。さらに、iOSの仮承認状態は複雑さを増します。これらのデバイスは技術的にはフォアグラウンドプッシュトークンを持っていますが、ユーザーは明示的にオプトインしていません。
プッシュサブスクリプションフィルターの問題
ユーザーが異なるプッシュサブスクリプション状態の複数のデバイスを持っている場合、セグメンテーションのプッシュサブスクリプションフィルターが一部のデバイスをターゲットにできないことがあります。以下のシナリオを考えてみましょう。
シナリオ1: ユーザーが異なるプラットフォームの2つのデバイスを持っている
ユーザーが2つのデバイスを持っている場合:
- デバイスA: Android、プッシュにオプトイン済み
- デバイスB: iOS、プッシュにオプトインしていない
機能しないセグメントフィルター:
Push enabled = false- ユーザーはAndroidデバイスでプッシュが有効なため、セグメントに含まれません。セグメントにはiOSデバイスが含まれません。Push subscription status is not opted in- ユーザーはAndroidデバイスでプッシュが有効なため、セグメントに含まれません。セグメントにはiOSデバイスが含まれません。
機能するセグメントフィルター:
Push enabled for iOS = false- ユーザーはAndroidデバイスでプッシュが有効ですが、iOSデバイスのみをターゲットにしているため、ユーザーはセグメントに含まれます。セグメントにはiOSデバイスが含まれます。
シナリオ2: ユーザーが異なる状態の2つのiOSデバイスを持っている
ユーザーが2つのiOSデバイスを持っている場合:
- デバイスA: プッシュにオプトイン済み
- デバイスB: 仮承認済みだがオプトインしていない
機能しないセグメントフィルター:
Push enabled = false- デバイスAはプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBが含まれません。Provisionally opted in = true- デバイスAは完全にオプトイン済みのため、仮承認状態ではありません。ユーザーはセグメントに含まれません。セグメントにはデバイスBが含まれません。Push enabled for app > iOS = false- デバイスAはiOSでプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBが含まれません。Push subscription status is not opted in- デバイスAはプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBが含まれません。
結果: これらのプッシュフィルターをどのように組み合わせても、セグメントから少なくとも1つのデバイスが除外されます。
シナリオ3: ユーザーが同じOSの3つ以上のデバイスを持っている
ユーザーが3つのデバイスを持っている場合:
- デバイスA: プッシュにオプトイン済み
- デバイスB: プッシュにオプトインしていない
- デバイスC: プッシュにオプトインしていない
機能しないセグメントフィルター:
Push enabled = false- デバイスAはプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBとCが含まれません。Push enabled for app > X = false- デバイスAは指定されたアプリでプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBとCが含まれません。Push subscription status is not opted in- デバイスAはプッシュにオプトイン済みのため、ユーザーはセグメントに含まれません。セグメントにはデバイスBとCが含まれません。
結果: これらのプッシュフィルターをどのように組み合わせても、少なくとも1つのデバイスがターゲットから外れます。
解決策: ノーコードプッシュプライマーを使用する
推奨される解決策は、追加のプッシュステータスセグメンテーションフィルターなしで、ノーコードプッシュプライマー(「プッシュ許可をリクエスト」ボタンアクション)を使用することです。

自動抑制: ノーコードプッシュプライマーは、すでにアクティブなプッシュトークンを持つデバイスで自動的に抑制されます。SDKは、特定のデバイス上のユーザーがすでにプッシュトークンを持っているかどうかを確認します。ユーザーがすでにオプトイン済み(以前のリクエストやデバイス設定経由など)であることをSDKが検出した場合、追加のセグメンテーションフィルターなしでアプリ内メッセージを自動的に抑制します。プライマーは、ユーザーがプッシュに仮承認されている場合を含む、その他すべてのシナリオで表示されます。
ノーコードプッシュプライマーを使用する利点は、その機能がBraze SDKによってサポートされていることです。SDKはメッセージを表示する特定のデバイスのプッシュトークンステータスを検出できるため、複数のデバイスを持つユーザーを除外する可能性のあるプロファイルレベルのセグメンテーションフィルターに依存する必要がありません。
考慮事項
ノーコードプッシュプライマーが必要: 自動抑制が機能するには、ノーコードプッシュプライマーを使用する必要があります。「プッシュ許可をリクエスト」ボタンアクションの代わりにカスタムロジックやディープリンクを設定した場合、SDKはプッシュプライマーを表示しようとしていることを識別できません。その結果、そのデバイスのサブスクリプション状態に関係なくメッセージが表示されます。
オプトアウトしたユーザーの抑制: プッシュを明示的にオプトアウトしたユーザー(ネイティブリクエストやデバイス設定から)に対してアプリ内メッセージを抑制し、それらのユーザーを別のナーチャリングキャンペーンでリターゲティングしたい場合があります。これを行うには、ノーコードプライマーと組み合わせて以下のLiquidロジックを使用します。
{% if targeted_device.${foreground_push_enabled} == false %}
{% abort_message('user turned off push notifications') %}
{% endif %}
- message goes here -
targeted_device Liquidフィルターは、ユーザープロファイルではなく、メッセージが表示されるデバイスのみを参照します。そのデバイスでは、アクティブなフォアグラウンドプッシュトークンがある場合にforeground_push_enabledがtrueに設定され、オペレーティングシステムがプッシュ通知が無効であると報告した場合(ユーザーが明示的にオフにした場合など)にfalseに設定されます。プッシュ許可状態にまだ応答していない完全に新しいデバイスの場合、foreground_push_enabledは未設定で値がありません。Liquid条件はfalseを具体的にチェックするため、明示的にオプトアウトしたデバイスに対してのみプライマーを抑制し、この不明な状態のデバイスは引き続き対象となりプッシュプライマーを受け取ることができます。
ステップ 6: コンバージョンイベント
Brazeではコンバージョンのデフォルト設定を推奨していますが、プッシュプライマーに関連するコンバージョンイベントを設定することもできます。