よくある質問
この記事では、アプリ内メッセージに関するよくある質問への回答を提供します。
ブラウザ内メッセージとは何ですか?アプリ内メッセージとの違いは何ですか?
ブラウザ内メッセージとは、Webブラウザに送信されるアプリ内メッセージです。ブラウザ内メッセージを作成するには、アプリ内メッセージのキャンペーンまたはキャンバスを作成する際に、送信先フィールドでWebブラウザを選択してください。
デバイスがオフラインの場合、アプリ内メッセージは表示されますか?
状況によります。アプリ内メッセージはセッション開始時に配信されるため、オフラインになる前にデバイスがペイロードをダウンロードできていれば、オフライン中でもアプリ内メッセージは表示されます。ペイロードがダウンロードされていない場合、アプリ内メッセージは表示されません。
ユーザーのデバイスにすでにアプリ内メッセージのペイロードがあり、メッセージの有効期限が変更された場合、デバイス上の有効期限は更新されますか?
ユーザーがセッションを開始すると、Brazeはそのユーザーが対象となるアプリ内メッセージに変更が加えられたかどうかを確認し、それに応じて更新します。そのため、有効期限が変更され、ユーザーがセッションを記録すると、更新された情報を含むアプリ内メッセージがデバイスに送信されます。
アプリ内メッセージキャンペーンにサイレント時間を設定するにはどうすればよいですか?
サイレント時間機能は、アプリ内メッセージキャンペーンでは使用できません。この機能は、特定の時間帯にユーザーへのメッセージ送信を防ぐために使用されます。アプリ内メッセージキャンペーンの場合、ユーザーはアプリ内でアクティブなときにのみアプリ内メッセージを受信します。
回避策として、特定の時間帯にアプリ内メッセージを送信するには、以下のサンプルLiquidコードを使用してください。これにより、指定されたタイムゾーンで午後7時59分以降または午前8時以前にアプリ内メッセージが表示された場合、メッセージが中止されます。
{% 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は、ユーザーがメッセージを受信する資格を得てから24時間後として、1日の有効期限を計算します。
テンプレート化されたアプリ内メッセージとは?
アプリ内メッセージは、表示前にキャンペーンの適格性を再評価するが選択されている場合、またはメッセージに以下のいずれかのLiquidタグが含まれている場合、テンプレート化されたアプリ内メッセージとして配信されます。
canvas_entry_propertiesconnected_content{sms.${*}}などのSMS変数catalog_itemscatalog_selection_itemsevent_properties
Brazeは、アイドル状態のアプリ内メッセージキャンペーン(まだアクティブであるものの、送信が停止されたか不要になったキャンペーン)にもテンプレート配信を使用します。これらのキャンペーンは、設定されたオーディエンスとトリガールールに引き続き従います。
Brazeは、アプリのパフォーマンスを保護するためにテンプレート配信を使用することもあります。Liquidコンテンツの準備によってセッション応答が数秒以上遅延する場合、Brazeは残りの処理を延期します。それらのメッセージは、トリガーされた時点でレンダリングされます。
これは、セッション開始時にデバイスがアプリ内メッセージ全体ではなく、そのトリガーのみを受信することを意味します。ユーザーがアプリ内メッセージをトリガーすると、ユーザーのデバイスが実際のメッセージを取得するためにネットワークリクエストを行います。

デバイスがインターネットにアクセスできない場合、メッセージは配信されません。Liquidロジックの解決に時間がかかりすぎる場合も、メッセージが配信されないことがあります。
セッション開始時にBrazeが処理する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レスポンスを参照できます。
アプリ内メッセージキャンペーンのトリガー後の最大遅延時間はどのくらいですか?
アプリ内メッセージキャンペーンは、トリガーイベント後最大2時間(7,200秒)配信を遅延できます。遅延オプションは即時と遅延後です。より長い待機時間が必要な場合は、キャンバスでアプリ内メッセージステップの前に遅延ステップを追加してください。遅延の設定については、アクションベース配信を参照してください。
アプリ内メッセージの表示前に遅延が発生するのはなぜですか?
標準的なアプリ内メッセージは、トリガーイベント後にキャッシュされたペイロードの準備ができ次第表示されます。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が同期されていることを確認してください。