よくある質問
この記事では、アプリ内メッセージに関するよくある質問への回答を提供します。
ブラウザ内メッセージとは何ですか?アプリ内メッセージとの違いは何ですか?
ブラウザ内メッセージは、Webブラウザに送信されるアプリ内メッセージです。ブラウザ内メッセージを作成するには、アプリ内メッセージのキャンペーンまたはキャンバスを作成する際に、送信先フィールドでWebブラウザを選択してください。
デバイスがオフラインの場合、アプリ内メッセージは表示されますか?
場合によります。アプリ内メッセージはセッション開始時に配信されるため、オフラインになる前にデバイスがペイロードをダウンロードできていれば、オフライン中でもアプリ内メッセージを表示できます。ペイロードがダウンロードされていない場合、アプリ内メッセージは表示されません。
ユーザーのデバイスにすでにアプリ内メッセージのペイロードがあり、メッセージの有効期限が変更された場合、デバイス上の有効期限は更新されますか?
ユーザーがセッションを開始すると、Brazeはそのユーザーが対象となるアプリ内メッセージに変更があったかどうかを確認し、それに応じて更新します。そのため、有効期限が変更され、ユーザーがセッションを記録した場合、アプリ内メッセージは更新された情報とともにデバイスに送信されます。
アプリ内メッセージキャンペーンにサイレント時間を設定するにはどうすればよいですか?
サイレント時間機能は、アプリ内メッセージキャンペーンでは使用できません。この機能は、特定の時間帯にユーザーへのメッセージ送信を防止するために使用されます。アプリ内メッセージキャンペーンの場合、ユーザーはアプリ内でアクティブな場合にのみアプリ内メッセージを受信します。
特定の時間帯にアプリ内メッセージを送信するための回避策として、以下のサンプルLiquidコードを使用してください。これにより、指定されたタイムゾーンで午後7時59分以降または午前8時より前にアプリ内メッセージが表示された場合、メッセージが中止されます。
1
2
3
4
5
{% assign time = 'now' | time_zone: ${time_zone} %}{% assign hour = time | date: '%H' | plus: 0 %}
{% if hour > 19 or hour < 8 %}
{% abort_message("Outside allowed time window") %}
{% endif %}
MESSAGE HERE
ユーザーはアプリ内メッセージを閉じた後、再度受信できますか?
キャンペーン
アプリ内メッセージキャンペーンでは、配信コントロールで再適格性を有効にすることで、ユーザーがキャンペーンを再度受信できるようにすることができます(ユーザーがキャンペーンを再度受信できるようにする)。再度受信できるまでの期間は、設定した再適格性ウィンドウと、Brazeが以前の送信をどのように記録したかによって異なります。再適格性がメッセージ受信とどのように関連するかなど、キャンペーンの動作については、キャンペーンとキャンバスの再適格性を参照してください。
再適格性がオフの場合、ユーザーは一度受信した後、適格条件のみに基づいて同じキャンペーンを再度受信することは通常ありません。
キャンバス
キャンバスから送信されるアプリ内メッセージの場合、ユーザーがメッセージを再度表示できるかどうかは、キャンバスのエントリコントロール(ユーザーがキャンバスに再エントリできるようにするなど)やステップの設定によって決まります。キャンペーンの配信コントロールだけでは決まりません。
アプリ内メッセージの適格性はいつ計算されますか?
アプリ内メッセージの適格性は、配信時に計算されます。アプリ内メッセージが午前7時に送信されるようスケジュールされている場合、このアプリ内メッセージの適格性は午前7時にチェックされます。
アプリ内メッセージが表示される際の適格性は、アプリ内メッセージがダウンロードされてトリガーされるタイミングに依存します。
アーカイブ済みのアプリ内メッセージキャンペーンがまだアプリ内メッセージのインプレッションを配信しているのはなぜですか?
これは、アプリ内メッセージキャンペーンがアクティブだったときにセグメント条件を満たしたユーザーに対して発生する可能性があります。
これを防ぐには、キャンペーン設定時に表示前にキャンペーンの適格性を再評価するを選択してください。
アプリ内メッセージの開封が表示されないのはなぜですか?
アプリ内メッセージでは開封指標は使用されません。Brazeは、メッセージが画面に表示された時点でインプレッションを記録し、ユーザーがメッセージ本文やボタンを操作した時点でクリックを記録します。マルチチャネルのエクスポートやレポートにアプリ内メッセージの行が含まれている場合は、メールスタイルの開封ではなく、インプレッションとクリックを比較してください。定義については、アプリ内メッセージレポートを参照してください。
同じセッション中に複数のアプリ内メッセージを表示できますか?
はい。ただし、トリガーイベントの発生ごとに表示できるアプリ内メッセージは1つだけです。複数のアプリ内メッセージキャンペーンが同じトリガー(例:セッション開始)を共有している場合、そのトリガーが発生するたびに最も優先度の高いメッセージのみが表示されます。セッション開始トリガーの場合、1セッションにつき1つのメッセージのみ表示でき、次の対象メッセージを表示する機会は次のセッションになります。
複数のメッセージが同じ優先度レベルを共有している場合、最も新しく作成されたメッセージが最初に表示されます。セッション開始トリガーの場合、次に新しいメッセージは後続のセッションで表示されます。その他のトリガータイプの場合、次に新しいメッセージは、そのトリガーイベントが次に発生したときに表示されます。これは同じセッション内の場合もあれば、後のセッションの場合もあります。
優先度バケット内の表示順序を制御するには、いずれかのキャンペーンの配信設定に移動し、Set exact priority を選択してから、キャンペーンをドラッグ&ドロップして希望の順序に並べ替えます。詳細については、優先度の選択を参照してください。
アプリ内メッセージのインプレッションとクリックはどのように記録されますか?
ユーザーアクションによるインプレッションとクリックの記録方法については、アプリ内メッセージレポートを参照してください。従来のエディターで作成されたフルスクリーンメッセージに固有の例については、ユーザーアクション別のフルスクリーンメッセージ指標を参照してください。
Brazeはアプリ内メッセージの有効期限「1日後」をどのように計算しますか?
Brazeは、1日の有効期限を、ユーザーがメッセージを受信する資格を得てから24時間後として計算します。
テンプレート化されたアプリ内メッセージとは?
アプリ内メッセージは、表示前にキャンペーンの適格性を再評価するが選択されている場合、またはメッセージ内に以下のいずれかのLiquidタグが存在する場合、テンプレート化されたアプリ内メッセージとして配信されます。
canvas_entry_propertiesconnected_content{sms.${*}}などのSMS変数catalog_itemscatalog_selection_itemsevent_properties
これは、セッション開始時に、デバイスがメッセージ全体ではなく、そのアプリ内メッセージのトリガーを受信することを意味します。ユーザーがアプリ内メッセージをトリガーすると、ユーザーのデバイスが実際のメッセージを取得するためにネットワークリクエストを行います。

デバイスがインターネットにアクセスできない場合、メッセージは配信されません。Liquidロジックの解決に時間がかかりすぎる場合も、メッセージが配信されないことがあります。
アプリ内メッセージの中止動作はどのように機能しますか?
Brazeでは、ユーザーがメッセージを受信する資格のあるアクションを実行したにもかかわらず、Liquidロジックによって不適格と判定されてメッセージを受信しなかった場合に中止が発生します。例えば:
- Samがメールキャンペーンをトリガーするアクションを実行します。
- メール本文のLiquidロジックで、カスタム属性のスコアが50未満の場合はメールを送信しないと定義されています。
- Samのカスタム属性スコアは20です。
- BrazeはSamがこのメールを受信すべきでないと認識し、メールが中止されます。
- 中止イベントが記録されます。
ただし、アプリ内メッセージはプルチャネルであるため、中止の動作が少し異なります。
標準的なアプリ内メッセージの中止動作
アプリ内メッセージはセッション開始時にデバイスによってプルされ、デバイスにキャッシュされるため、インターネット接続の品質に関係なく、ユーザーに即座に配信できます。例えば、ユーザーがセッション中に5つのアプリ内メッセージを受信する場合、セッション開始時に5つすべてを受信します。メッセージはローカルにキャッシュされ、定義されたトリガーイベント(セッション開始、カスタムイベントを記録するボタンのクリックなど)が発生したときに表示されます。
つまり、アプリ内メッセージを中止すべきかどうかを判断するロジックは、トリガーが発生する前に実行されます。これを説明するために、メールの例のSamがプッシュ通知を購読していると仮定しましょう。
- SamがBraze搭載アプリを起動してセッションを開始します。
- ワークスペース内のアクティブなキャンペーンのオーディエンス基準に基づき、Samは5つの異なるキャンペーンの対象となる可能性があります。5つすべてがSamのデバイスにプルされ、キャッシュされます。
- Samはこれらのメッセージをトリガーするアクションをまだ実行していませんが、セッション中にそれらのメッセージを受信する可能性があります。
- 2つのアプリ内メッセージのLiquidには、Samをメッセージ受信から除外するルール(スコアのカスタム属性が十分に高くないなど)が含まれています。
- Samを除外する2つのアプリ内メッセージは送信されませんが、残りの3つのメッセージは送信されます。
- 中止イベントは記録されません。
Samのケースでは、中止の定義を満たさないため、Brazeは中止イベントを記録しません。Samはメッセージをトリガーするアクションを実行していません。アプリ内メッセージの場合、Brazeがメッセージを表示すべきでないと判断する前に、ユーザーが実際にトリガーを実行することはありません。
テンプレート化されたアプリ内メッセージの中止動作
テンプレート化されたアプリ内メッセージは、トリガーイベントが発生した際にメッセージを表示すべきかどうかをSDKに再評価させます。これにより、中止動作が異なります。次の例を考えてみましょう:
- SamがBraze搭載アプリを起動してBrazeセッションを開始します。
- アクティブなキャンペーンのオーディエンス基準により、Samはテンプレート化されたアプリ内メッセージの対象となる可能性があるため、メッセージペイロードなしでトリガー情報がデバイスに送信されます。
- Samがカスタムイベントを記録するボタンを選択し、テンプレート化されたアプリ内メッセージをトリガーします。
- Samのデバイスがアプリ内メッセージを取得するためにネットワークリクエストを行います。
- メッセージのLiquidロジックにより中止が発生し、Brazeはこれを中止として記録します。Samはこの評価の前にトリガーアクションを実行しています。
アプリ内メッセージの中止動作の比較
この表は、Samが経験したアプリ内メッセージのフローを比較しています:
| アプリ内メッセージ | 中止動作 |
|---|---|
| 標準 | Samがメッセージをトリガーするアクションを実行しなかったため、中止イベントは記録されませんでした。 標準的なアプリ内メッセージでは中止が記録されません。中止の定義は「トリガーアクションを実行したにもかかわらずメッセージを見なかった」ことだからです。アプリ内メッセージはトリガーアクションが発生する前にデバイスに配信されるため、Liquidロジックによって除外されたアプリ内メッセージを中止と見なすことは適切ではありません。 |
| テンプレート化 | Samがテンプレート化されたアプリ内メッセージをトリガーするトリガーアクションを実行しましたが、Liquidテンプレート処理で中止を受けたため、中止イベントが記録されました。 テンプレート化されたアプリ内メッセージでは、Liquid評価がトリガーアクションの実行後に行われるため、中止が記録されます。 |
アプリ内メッセージでConnected Contentはいつ実行されますか?
テンプレート化されたアプリ内メッセージの場合、Connected Contentやその他のLiquidタグは、トリガーイベントが発生してデバイスがメッセージペイロードをリクエストしたときに解決されます。ユーザーがメッセージ内のボタンをクリックしたときではありません。テンプレート化された各フェッチには、その表示のためのConnected Content呼び出しを含めることができます。
HTMLがConnected Contentによって返されたRESTデータを参照している場合、そのデータはメッセージがテンプレート化されたセッション中に利用可能です。複数のボタンが同じConnected Contentレスポンスを参照しても、クリック時に追加の呼び出しがトリガーされることはありません。
アプリ内メッセージが表示されるまでに遅延があるのはなぜですか?
標準的なアプリ内メッセージは、トリガーイベント後にキャッシュされたペイロードの準備ができ次第すぐに表示されます。AndroidおよびiOSでは、メッセージで参照されている大きな画像やその他のCDNホストのアセットが、アプリ内メッセージが表示される前にダウンロードが完了するまで短い遅延が発生する場合があります。
テンプレート化されたアプリ内メッセージおよび表示前にキャンペーン適格性を再評価するが選択されたキャンペーンでは、メッセージが表示される前にトリガー後に追加のネットワークリクエストが必要です。これにより短い遅延(安定した接続で通常100ミリ秒未満)が発生する場合があります。詳細については、ターゲットユーザーの選択を参照してください。
アプリ内メッセージがダッシュボードのプレビューと異なって見えるのはなぜですか?
配信されたアプリ内メッセージは、以下の場合にダッシュボードのプレビューと異なることがあります:
- インテグレーションがカスタムスタイルを適用しているか、特定のプラットフォームでデフォルトのアプリ内メッセージUIをオーバーライドしている場合
- プレビューが受信者とは異なる属性を持つテストユーザープロファイルを使用している場合
- テンプレート化されたコンテンツが送信時にプレビューモードとは異なる方法で解決される場合
外観を検証する際は、ターゲットオーディエンスと一致するプロファイルを持つテストユーザーでテストメッセージの送信を使用してください。
マルチページのアプリ内メッセージですべてのページに同じ背景が使用されるのはなぜですか?
マルチページのアプリ内メッセージの1つのページで背景画像が有効になっている場合、その背景はメッセージ内のすべてのページに適用されます。ページごとに異なる背景を使用するには、JavaScriptを使用してページ間で画像を切り替えるカスタムHTMLブロックを使用してください。
Webアプリ内メッセージをテストするにはどうすればよいですか?
Webアプリ内メッセージのテスト送信では、テストデバイスでプッシュが有効になっている必要があります。テストフローでは、アプリ内メッセージが表示されるアプリまたはサイトを開くプッシュ通知が配信されるためです。プッシュベースの同じテストパスは、Brazeでプッシュが設定されていないすべてのプラットフォームに適用されますが、多くのモバイルインテグレーションではすでにプッシュが有効になっているため、プッシュが設定されていないケースはWebで最も多く見られます。代わりに、内部テストセグメントへのライブキャンペーンを使用してください。手順については、テストメッセージの送信を参照してください。
アプリ内メッセージにはプッシュインテグレーションが必要ですか?
アプリ内メッセージは、本番環境で機能するためにプッシュ通知を必要としません。アプリ内メッセージはBraze SDKを通じて配信され、プッシュインテグレーションなしでアクティブなアプリセッション中に表示されます。
ただし、アプリ内メッセージのテスト送信では、テストデバイスでプッシュが有効になっている必要があります。テスト用のアプリ内メッセージは、アプリ内メッセージの表示をトリガーするプッシュ通知を通じて配信されるためです。テストユーザーはプッシュが有効になっており、テストプッシュ通知をタップしてアプリ内メッセージを表示する必要があります。
本番キャンペーンでは、ユーザーはプッシュを介さずに、キャンペーンのトリガー(セッション開始やカスタムイベントなど)に基づいてアプリ内メッセージを表示します。
アプリ内メッセージに余分な文字やレンダリングされない文字が表示されるのはなぜですか?
別のアプリ(ワードプロセッサーやWebページなど)からテキストをコピーすると、メッセージ本文に不可視または非印刷文字が挿入される場合があります。これらの文字は、不要な記号として表示されたり、カスタムメッセージのLiquidやHTMLを壊したりする可能性があります。
不要な文字やレンダリングされない文字を修正するには、Brazeエディターで該当テキストを再入力するか、表示されているテキストのみを選択して置換するのではなく、不要な文字を直接削除してください。特殊文字を含むカスタムHTMLメッセージの場合は、HTMLの<head>内に<meta charset="UTF-8">を追加してください。詳細については、文字エンコーディングを参照してください。
Android のフルスクリーン HTML アプリ内メッセージで閉じるボタンが隠れるのはなぜですか?
エッジツーエッジディスプレイを搭載したデバイス(Android 15以降を含む)では、フルスクリーン HTML アプリ内メッセージがシステムステータスバーの背後に描画され、レイアウト上部の閉じるコントロールが隠れることがあります。
Braze Android SDKバージョン37.0.0以降では、コントロールがセーフエリア内に収まるよう、HTMLアプリ内メッセージにウィンドウインセットがデフォルトで適用されます。それでもユーザーに重なりが見られる場合は、最新のBraze Android SDKにアップグレードしてください。
古いSDKバージョンでは、この動作がデフォルトになる前に、開発者が BrazeConfig.setIsHtmlInAppMessageApplyWindowInsetsEnabled(true) を有効にすることで対応できました。
ドラッグ&ドロップのアプリ内メッセージをカスタマイズする際に知っておくべきことは何ですか?
ドラッグ&ドロップエディターは、モーダルおよびフルスクリーンの表示タイプをサポートしています。エディターブロックを使用して、これらのコンテナ内にコンテンツを構築します。
以下の点に留意してください。
- リンクとディープリンク: 各クリック時アクションには、デフォルトで1つのURLフィールドがあります。URLにLiquidを使用して、デバイス、アプリの種類、またはユーザー属性に応じてリンクを変更できます。メッセージコンテナでは、プラットフォーム固有のクリック時動作を有効にして、プラットフォームごとに異なるリンクを設定することもできます。
- 不透明度と背景: メッセージコンテナの不透明度は、メッセージ全体の背景に影響します。個々のブロックには独自の背景色を設定できます。より細かい制御が必要な場合は、カスタムコードブロックにカスタムCSSを追加してください。
- メッセージの幅: メッセージコンテナの最大幅は、エディターで325 px未満に設定することはできません。これにより、小さな画面でもコンテンツが読みやすく保たれます。より狭いレイアウトが必要な場合は、カスタムCSSを使用してください。
- プラットフォーム固有の背景: 1つのメッセージでは、Webとモバイルで同じ背景画像と色が使用されます。エディターでプラットフォームごとに異なる背景を設定することはできません。
- マルチページメッセージ: 背景画像とメッセージレベルのクリック時アクションは、マルチページメッセージのすべてのページに適用されます。各ページで異なるフル画像を使用するには、次のページにリンクするボタンを追加してください。
- メッセージレベルのスタイル: メッセージレベルのスタイルは、メッセージ全体に適用されます。
- 背景画像: 背景画像はモーダルに合わせて引き伸ばされます。
エディターに関するその他の考慮事項については、アプリ内メッセージ準備ガイドを参照してください。
Android SDKのログで「Event was published, but no subscribers were found」とはどういう意味ですか?
このログ行は通常エラーではありません。Brazeが内部イベント(NoMatchingTriggerEventなど)を発行した際に、その時点でアプリ内メッセージやContent Cardsのリスナーが登録されていない場合によく表示されます。
カスタムイベントがアプリ内メッセージをトリガーすることを期待しているときにこのログが表示される場合は、イベントが記録されていること、ユーザーがキャンペーンまたはキャンバスのオーディエンスに含まれていること、およびメッセージがContent Cardsに依存している場合はContent Cardsが同期されていることを確認してください。