よくある質問
この記事では、アプリ内メッセージに関するよくある質問への回答を提供します。
ブラウザー内メッセージとは何ですか?アプリ内メッセージとはどう違いますか?
ブラウザー内メッセージとは、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が前回の送信をどのように記録したかによって異なります。メッセージの受信と再適格性の関係を含むキャンペーンの動作については、キャンペーンとキャンバスの再適格性を参照してください。
再適格性がオフの場合、ユーザーは一度受信した同じキャンペーンを、適格条件を満たしているという理由だけで再度受信することは通常ありません。
キャンバス
キャンバスから送信されたアプリ内メッセージの場合、ユーザーがメッセージを再度表示できるかどうかは、キャンペーンの配信コントロールだけでなく、キャンバスのエントリコントロール(ユーザーのキャンバスへの再エントリを許可するなど)やステップの設定によって決まります。
アプリ内メッセージの対象条件はいつ判定されますか?
キャンペーン
アプリ内メッセージのキャンペーンでは、ユーザーのデバイスがアプリ内メッセージをダウンロードする時点で、Brazeはそのユーザーがターゲットオーディエンスに含まれているかどうかを確認します。これは通常、セッション開始時に行われます。デバイスは対象となるメッセージを保存し、それぞれのトリガーが発生した時点で表示します。トリガーの発生がセッションの後半であっても同様です。
開始時刻が未来に設定されたキャンペーンの場合、Brazeは開始時刻の最大1時間前にセッションを開始したデバイスにもメッセージを送信します。これにより、メッセージを予定どおりに表示する準備が整います。たとえば、午前6時30分にセッションを開始したユーザーは、午前7時に開始するキャンペーンを受信します。Brazeは午前6時30分にそのユーザーの対象条件を確認し、午前7時以降にトリガーが発生した時点でメッセージが表示されます。
セッション中の対象条件
セッション中に対象となったユーザーは、次回のセッション開始時にメッセージを受信します。
メッセージを表示する直前に対象条件を再度確認するには、表示前にキャンペーンの適格性を再評価するを選択します。ユーザーが条件を満たさなくなった場合、メッセージは表示されません。この設定によって、セッション開始後に対象となったユーザーにメッセージが送信されることはありません。詳しくは、ターゲットにするユーザーを選択するを参照してください。
キャンバス
キャンバス内のアプリ内メッセージでは、ユーザーがステップに到達した時点で、Brazeはそのステップのオーディエンスを確認します。その後、ユーザーの次回のセッション開始時にメッセージがダウンロードされます。
アーカイブしたアプリ内メッセージキャンペーンで、まだアプリ内メッセージのインプレッションが発生しているのはなぜですか?
これは、アプリ内メッセージキャンペーンがアクティブだった間にセグメント条件を満たしていたユーザーで発生することがあります。
これを防ぐには、キャンペーンの設定時に表示前にキャンペーンの適格性を再評価するを選択してください。
アプリ内メッセージの開封数が表示されないのはなぜですか?
アプリ内メッセージには開封数の指標はありません。Brazeでは、メッセージが画面に表示された時点でインプレッションを記録し、ユーザーがメッセージ本文やボタンを操作した時点でクリックを記録します。マルチチャネルのエクスポートやレポートにアプリ内メッセージの行が含まれている場合は、メールのような開封数ではなく、インプレッションとクリックを比較してください。各指標の定義については、アプリ内メッセージのレポートを参照してください。
同じセッションで複数のアプリ内メッセージを表示できますか?
はい。ただし、トリガーイベントが1回発生するごとに表示できるアプリ内メッセージは1つだけです。複数のアプリ内メッセージキャンペーンが同じトリガー(セッション開始など)を共有している場合、そのトリガーが発生するたびに、最も優先度の高いメッセージのみが表示されます。セッション開始トリガーの場合、1セッションにつき表示できるメッセージは1つだけで、対象となる別のメッセージを表示できる次の機会は次のセッションになります。
複数のメッセージが同じ優先度レベルを共有している場合、最も新しく作成されたメッセージが最初に表示されます。セッション開始トリガーの場合、次に新しいメッセージは後続のセッションで表示されます。その他のトリガータイプの場合、次に新しいメッセージは次回そのトリガーイベントが発生したときに表示され、それは同じセッション内の場合もあれば、後のセッションの場合もあります。
同じ優先度グループ内での表示順序を制御するには、いずれかのキャンペーンの配信設定に移動して正確な優先度を設定を選択し、キャンペーンをドラッグ&ドロップして目的の順序に並べ替えます。詳しくは、優先度を選択するを参照してください。
アプリ内メッセージのインプレッションとクリックはどのように記録されますか?
ユーザーのアクションごとにインプレッションとクリックがどのように記録されるかについては、アプリ内メッセージのレポートを参照してください。従来のエディターで作成したフルスクリーンメッセージに固有の例については、ユーザーアクション別のフルスクリーンメッセージの指標を参照してください。
Brazeでは、アプリ内メッセージの有効期限を「1日後」に設定した場合、どのように計算されますか?
Brazeでは、1日の有効期限を、ユーザーがメッセージを受信できるようになってから24時間後として計算します。
テンプレート化されたアプリ内メッセージとは何ですか?
表示前にキャンペーンの適格性を再評価するが選択されている場合、またはメッセージに以下のいずれかのLiquidタグが含まれている場合、アプリ内メッセージはテンプレート化されたアプリ内メッセージとして配信されます。
canvas_entry_propertiesconnected_content{sms.${*}}などのSMS変数catalog_itemscatalog_selection_itemsevent_properties
Brazeは、アイドル状態のアプリ内メッセージキャンペーン(まだアクティブであるものの、送信が止まっているキャンペーンや不要になったキャンペーン)にもテンプレート化された配信を使用します。これらのキャンペーンは、設定されたオーディエンスとトリガーのルールに引き続き従います。
Brazeは、アプリのパフォーマンスを保護するためにテンプレート化された配信を使用することもあります。Liquidコンテンツの準備によってセッションのレスポンスが数秒以上遅れる場合、Brazeは残りの処理を後回しにします。それらのメッセージは、トリガーされた時点でレンダリングされます。
つまり、セッション開始時に、デバイスはメッセージ全体ではなく、そのアプリ内メッセージのトリガーを受け取ります。ユーザーがアプリ内メッセージをトリガーすると、ユーザーのデバイスがネットワークリクエストを送信して実際のメッセージを取得します。

デバイスがインターネットに接続できない場合、メッセージは配信されません。また、Liquidのロジックの解決に時間がかかりすぎる場合も、メッセージが配信されないことがあります。
セッション開始時にBrazeが処理するLiquidの量を減らすには、アプリ内メッセージのパフォーマンスを最適化するを参照してください。
アプリ内メッセージでは中止の動作はどのように機能しますか?
Brazeにおける中止とは、ユーザーがメッセージを受信する対象となるアクションを実行したにもかかわらず、メッセージのLiquidロジックによって対象外と判断され、メッセージを受信しないことを指します。例を示します。
- Samが、メールキャンペーンをトリガーするはずのアクションを実行します。
- メール本文には、カスタム属性のスコアが50未満の場合はこのメールを送信しない、というLiquidロジックが含まれています。
- Samのカスタム属性のスコアは20です。
- BrazeはSamがこのメールを受信すべきでないと判断し、メールは中止されます。
- 中止イベントが記録されます。
ただし、アプリ内メッセージはプル型のチャネルであるため、中止の仕組みが少し異なります。
標準のアプリ内メッセージの中止動作
アプリ内メッセージは、セッション開始時にデバイスによって取得され、デバイスにキャッシュされます。そのため、インターネット接続の品質にかかわらず、メッセージをユーザーに即座に配信できます。たとえば、ユーザーがセッション中に5件のアプリ内メッセージを受信する場合、5件すべてをセッション開始時に受信します。メッセージはローカルにキャッシュされ、定義されたトリガーイベント(セッション開始、カスタムイベントを記録するボタンのクリックなど)が発生したときに表示されます。
つまり、アプリ内メッセージを中止すべきかどうかを判断するロジックは、トリガーが発生する前に実行されます。これを説明するために、メールの例に登場したSamがプッシュ通知を購読しているとします。
- Samがスマートフォンで、Brazeを利用したアプリを起動してセッションを開始します。
- ワークスペース内のアクティブなキャンペーンのオーディエンス条件に基づくと、Samは5つの異なるキャンペーンの対象になる可能性があります。5件すべてがスマートフォンに取得され、キャッシュされます。
- Samはこれらのメッセージをトリガーするアクションをまだ実行していませんが、セッション中にそれらのメッセージを受信する可能性があります。
- 2件のアプリ内メッセージのLiquidには、Samをメッセージの受信対象から除外するルール(スコアのカスタム属性が十分に高くないなど)が含まれています。
- Samを除外する2件のアプリ内メッセージはSamに送信されませんが、残りの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が同期されていることも確認してください。