アプリ内メッセージのトラブルシューティング
このページでは、アプリ内メッセージがデバイスに配信または表示されない原因を診断します。ダッシュボード側の設定(優先度、トリガー、セグメント、再適格性)については、アプリ内メッセージFAQを参照してください。
デバッグを始める前に、自分自身をテストユーザーとして追加し、テストメッセージの送信を確認してください。
まずはここから:症状を確認する
| 症状 | 参照先 |
|---|---|
| 1人のユーザーにアプリ内メッセージが表示されなかった | 1人のユーザー |
| 1つのプラットフォーム(Android、iOS、またはWeb)でアプリ内メッセージが表示されなかった | 1つのプラットフォーム |
| キャンバスステップのアプリ内メッセージが表示されなかった | キャンバスのアプリ内メッセージ |
| アプリ内メッセージが遅れて表示された、または遅延後に表示された | タイミングと遅延表示 |
| インプレッションやクリックが正しくない | インプレッションと分析 |
イベントユーザーログでtriggersが欠落または空 |
配信のトラブルシューティング |
| トリガーは返されたがデバイスに何も表示されない | プラットフォーム固有の表示トラブルシューティング |
アプリ内メッセージのアセットの読み込みに失敗する(iOS、NSURLError -1008) |
アセットの読み込み(Swiftタブ) |
標準的な調査パス
すべてのインシデントでこのワークフローを使用してください。ステップ 1から開始してください。
- テストデバイスでセッション開始がログに記録されていることを確認します。アプリ内メッセージはセッション開始時にリクエストされます。
- イベントユーザーログを開き、そのセッション開始に対するSDKリクエストを見つけます。Response Dataで以下を確認します。
- 生のJSONで、
respond_withに"triggers": trueが含まれていることを確認します。 - Requested Responses行に
triggersが含まれている必要があります。 - Trigger In-App Message行には、そのリクエストに対して返された各アプリ内メッセージが一覧表示されます。
triggersキーまたはTrigger In-App Message行がない場合は、メッセージがリクエストされない場合のトラブルシューティングを参照してください。triggersが存在するが空([])の場合は、メッセージが返されない場合のトラブルシューティングを参照してください。- Trigger In-App Message行が存在するが何も表示されない場合は、プラットフォーム固有の表示トラブルシューティングを参照してください。
- 各トリガーペイロードには
typeが含まれます:inapp(標準)またはtemplated_iam(表示前にテンプレートリクエストが必要)。アプリ内メッセージの種類を参照してください。
- 生のJSONで、
- ダッシュボード側の適格性(セグメント、再適格性、フリークエンシーキャップ、優先度、コントロールグループ)については、配信のトラブルシューティングとアプリ内メッセージFAQを参照してください。
- デバイス側の表示の問題(デリゲート、レート制限、画面の向き、セッションタイムアウト)については、プラットフォーム固有の表示トラブルシューティングでSDKタブを選択してください。
キャンバスのアプリ内メッセージ
症状: ユーザーがキャンバスのアプリ内メッセージステップに入ったが、期待したタイミングでメッセージが表示されなかった。
キャンバスとアプリ内メッセージに関するチケットの大半は、以下の3つの動作に起因します。
- 次のセッションでの表示: キャンバスのアプリ内メッセージは、ステップが処理された後の次のセッション開始時に適格になります。セッション中にすぐに表示されるわけではありません。キャンバス FAQのキャンバスのアプリ内メッセージはいつ送信されますか?を参照してください。
- ステップエントリ時の配信バリデーション: メッセージステップでメッセージ送信時にオーディエンスを検証が有効になっている場合、セグメントメンバーシップとフリークエンシーキャップは、表示時ではなくユーザーがステップに入った時点で評価されます。配信バリデーションを参照してください。
- 遅延とセッションタイムアウト: ユーザーがSDKのセッションタイムアウトよりも長い遅延ステップに入った場合、アプリ内メッセージステップの前に新しいセッションが開始される可能性があります。期待するタイミングのセッション開始時にメッセージが取得されない場合があります。
利用可能時間枠、有効期限、キャンバス分析での_送信数_ゼロについては、キャンバス FAQのアプリ内メッセージと配信を参照してください。

キャンバスのアプリ内メッセージは、SDKを通じて送信されたイベントによってのみトリガーできます。REST APIではトリガーできません。
1人のユーザーにアプリ内メッセージが表示されなかった
症状: 1人のユーザーが期待したアプリ内メッセージを受信しなかった。他のユーザーには影響がない可能性があります。
以下を確認してください。
- SDKが新しいアプリ内メッセージをリクエストするセッション開始時に、ユーザーがセグメントに含まれていましたか?
- キャンペーンまたはキャンバスのターゲティングルールに基づいて、ユーザーは適格または再適格でしたか?キャンペーンとキャンバスの再適格性を参照してください。
- フリークエンシーキャップが適用されましたか?
- ユーザーはキャンペーンのコントロールグループに含まれていましたか?キャンペーンがABテスト用に設定されているかどうかを確認してください。
- より優先度の高いアプリ内メッセージが代わりに表示されましたか?アプリ内メッセージFAQの同じセッションで複数のアプリ内メッセージを表示できますか?を参照してください。
- デバイスはキャンペーンで指定された画面の向きでしたか?
- トリガー間のデフォルトの最小間隔(30秒)によってメッセージが抑制されましたか?デフォルトのレート制限のオーバーライドを参照してください。
その後、標準的な調査パスに従ってください。
1つのプラットフォームでアプリ内メッセージが表示されなかった
症状: Android、iOS、またはWebでアプリ内メッセージが表示されないが、他のプラットフォームでは動作する可能性があります。
| 考えられる原因 | 確認事項 |
|---|---|
| Send Toターゲットが間違っている | キャンペーンまたはキャンバスステップが適切にモバイルアプリまたはWebブラウザーをターゲットにしていることを確認してください。Web専用のキャンペーンはAndroidデバイスには送信されません。 |
| カスタムUIまたはハンドラーが表示を抑制している | デリゲート(モバイル)またはbraze.subscribeToInAppMessage(Web)を確認してください。カスタマイズおよび以下のSDKタブを参照してください。 |
| このプラットフォームで統合が一度も動作していない | このプラットフォームとアプリバージョンで以前にアプリ内メッセージが表示されたことがあるか確認してください。 |
| デバイスでトリガーが発火しなかった | トリガーはSDKを通じてローカルで発生する必要があります。REST API呼び出しではSDKのアプリ内メッセージをトリガーできません。メッセージのトリガーを参照してください。 |
イベントユーザーログでtriggersが空 |
セグメント、再適格性、フリークエンシーキャップ、またはコントロールグループの問題です。メッセージが返されない場合のトラブルシューティングを参照してください。 |
すべてのユーザーにアプリ内メッセージが表示されなかった
症状: ユーザーが誰もアプリ内メッセージを受信しなかった、または期待より少ないユーザーしか受信しなかった。
以下を確認してください。
- ダッシュボードとアプリの統合の両方で、トリガーアクションが正しく設定されていますか?
- より優先度の高いアプリ内メッセージがキャンペーンを横取りしましたか?アプリ内メッセージFAQを参照してください。
- 最新のSDKバージョンを使用していますか?一部のアプリ内メッセージタイプには最小SDKバージョンの要件があります。
- セッションが正しく統合されていますか?このアプリでセッション分析が動作していることを確認してください。
- カスタマイズされたUIライブラリーが表示を妨げていませんか?カスタマイズを参照してください。
その後、標準的な調査パスに従ってください。
タイミングと遅延表示
症状: アプリ内メッセージが期待より遅れて表示された、または新しいセッションまで表示されなかった。
一般的な原因:
- キャンペーンのセッション開始時プリフェッチ: アプリ内メッセージはセッション開始時にキャッシュされ、トリガーが発火した時に表示されます。次のセッション開始前に発生したトリガーは、そのセッションまで表示されません。メッセージのトリガーを参照してください。
- キャンバスの次のセッション動作: キャンバスのアプリ内メッセージを参照してください。
- ダッシュボードでスケジュールされた遅延: キャンペーンまたはステップに遅延が設定されていないか確認してください。
- トリガー同期の競合: ユーザーがセッション開始直後にイベントをログに記録した場合、トリガーがまだ同期されていない可能性があります。セッション開始でトリガーし、意図したイベントでセグメントを設定することで、イベント後の次のセッションで配信されるようにすることを検討してください。
- 連続するアプリ内メッセージ: ツアーでメッセージを遅延または復元している場合は、トリガーされたアプリ内メッセージの遅延を参照してください。
- 大きなアセットまたは遅いCDN: HTMLアプリ内メッセージの画像と動画を最適化してください。モバイルでは、低速ネットワークで表示前に画像がダウンロードされる場合があります。プラットフォーム固有の注意事項については、以下のSDKタブを選択してください。

アプリ内メッセージがセッション開始でトリガーされ、セッションタイムアウトを延長している場合、その時間枠内でアプリを閉じて再度開いてもセッションは更新されません。たとえば、300秒のタイムアウトの場合、セッション開始のアプリ内メッセージはセッションが実際に更新されるまで表示されません。これがテストに影響する場合は、セッションタイムアウトまたはトリガータイプを調整してください。
配信のトラブルシューティング
アプリ内メッセージの問題の大半は、配信(デバイスがトリガーを受信しなかった)または表示(トリガーは到着したが表示されなかった)のいずれかです。まず配信を確認し、次に表示を確認してください。
配信のトラブルシューティング
SDKはセッション開始時にBrazeサーバーにアプリ内メッセージをリクエストします。SDKがトリガーをリクエストし、Brazeがそれらを返していることを確認してください。
メッセージがリクエストされ返されているか確認する
- 自分自身をテストユーザーとして追加します。
- 自分のユーザーをターゲットにしたアプリ内メッセージキャンペーンを設定します。
- アプリケーションで新しいセッションを開始します。
- イベントユーザーログで、セッション開始イベントに対するSDKリクエストを見つけます。Response Dataで以下を確認します。
- 生のJSONで、
respond_withに"triggers": trueが含まれていることを確認します。 - Requested Responses行には、レスポンスのトップレベルキーが一覧表示されます。アプリ内メッセージの場合、
triggersが含まれている必要があります。 - Trigger In-App Message行には、そのリクエストに対して返された各アプリ内メッセージが一覧表示されます。
次にトリアージします。
triggersキーまたはTrigger In-App Message行がない場合は、メッセージがリクエストされない場合のトラブルシューティングを参照してください。triggersが存在するが空([])の場合は、メッセージが返されない場合のトラブルシューティングを参照してください。- Trigger In-App Message行が存在するがデバイスに何も表示されない場合は、プラットフォーム固有の表示トラブルシューティングを参照してください。
- 各トリガーペイロードには
typeが含まれます:inapp(標準)またはtemplated_iam(表示前にテンプレートリクエストが必要)。アプリ内メッセージの種類を参照してください。
- 生のJSONで、
- レスポンスデータに正しいアプリ内メッセージが表示されていることを確認します。

メッセージがリクエストされない場合のトラブルシューティング
アプリ内メッセージがリクエストされていない場合、アプリがセッションを正しくトラッキングしていない可能性があります。アプリ内メッセージはセッション開始時に更新されます。セッションタイムアウトのセマンティクスに基づいて、アプリがセッションを開始していることを確認してください。

メッセージが返されない場合のトラブルシューティング
アプリ内メッセージが返されていない場合、ターゲティングまたは適格性の問題が発生している可能性があります。
- セグメントにユーザーが含まれていない。
- ユーザーのエンゲージメントタブで、期待するセグメントを確認してください。
- ユーザーがすでにメッセージを受信しており、再適格ではなかった。
- 再適格性の設定とアプリ内メッセージFAQを確認してください。
- ユーザーがフリークエンシーキャップに達した。
- フリークエンシーキャップの設定を確認してください。
- ユーザーがコントロールグループに入った。
- キャンペーンバリアントを受信したフィルターをコントロールに設定したセグメントを作成するか、統合テスト中はコントロールグループをオプトアウトしてください。
- より優先度の高いアプリ内メッセージが優先された。アプリ内メッセージFAQを参照してください。
アーカイブ済みキャンペーン、トリガー設定、サイレント時間については、アプリ内メッセージFAQを参照してください。
インプレッションと分析
症状: インプレッション数またはクリック数が期待と一致しない。
- _インプレッション_が_ユニークインプレッション_より多い: ユーザーが複数のデバイスを持っている場合や、スケジュールされた遅延により同じユーザーが複数回適格になった場合に想定される動作です。キャンペーンとキャンバスの再適格性を参照してください。
- インプレッションが期待より少ない: ユーザーがメッセージを閲覧しなかった可能性(インプレッションは表示時にログに記録されます)、複数の高優先度メッセージが互いに横取りした可能性、またはトリガー同期の競合が適用された可能性があります。キャンバスのアプリ内メッセージについては、キャンバスのアプリ内メッセージを参照してください。指標の完全な定義については、アプリ内メッセージレポートとアプリ内メッセージFAQを参照してください。
- インプレッションが以前より少ない: セグメントとキャンペーンの変更ログを確認してください。より優先度の高いキャンペーンで同じトリガーイベントを再利用していないか確認してください。

デリゲートまたはカスタムハンドラーを使用してアプリ内メッセージを手動で表示している場合は、インプレッションとクリックを自分でログに記録する必要があります。SwiftとAndroidの詳細については、プラットフォーム固有の表示トラブルシューティングのSDKタブを参照してください。Webについては、アプリ内メッセージデータのログ記録を参照してください。
プラットフォーム固有の表示トラブルシューティング
イベントユーザーログにTrigger In-App Message行が表示されているがデバイスに何も表示されない場合は、SDKタブを選択して表示チェック(デリゲート、レート制限、画面の向き、カスタムハンドラー)を確認してください。
表示のトラブルシューティング
アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。
-
トリガーイベントは想定どおりに発生していますか?テストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。
-
トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。
-
画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、ダウンロードの失敗がないか確認してください。画像を一時的に削除して、メッセージが表示されるかどうか試してみてください。
-
braze.subscribeToInAppMessageを介してカスタムのアプリ内メッセージ処理を行っている場合は、コールバックが表示を抑制していないことを確認してください。カスタマイズを参照してください。
表示のトラブルシューティング
アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。
-
トリガーイベントは想定どおりに発生していますか?テストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。
-
トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。
-
画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、ダウンロードの失敗がないか確認してください。画像を一時的に削除して、メッセージが表示されるかどうか試してみてください。
-
アプリ内メッセージ処理をカスタマイズするためにデリゲートを設定している場合は、そのデリゲートが表示を抑制していないことを確認してください。カスタマイズを参照してください。
-
デバイスの向きがアプリ内メッセージの設定と一致しない場合、メッセージは表示されません。
-
ネットワーク状況によっては、表示前に画像のダウンロードが完了しない場合があります。低速な接続やパフォーマンスの低いデバイスでは、追加の時間を確保するか、アセットサイズを最適化してください。
インプレッションとクリックが記録されない
メッセージ表示またはクリックアクションを手動で処理するようにアプリ内メッセージデリゲートを設定している場合は、アプリ内メッセージのクリックとインプレッションを手動で記録する必要があります。
表示のトラブルシューティング
アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。
-
トリガーイベントは想定どおりに発生していますか?テストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。
-
トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。
-
画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、ダウンロードの失敗がないか確認してください。画像を一時的に削除して、メッセージが表示されるかどうか試してみてください。
-
アプリ内メッセージ処理をカスタマイズするためにデリゲートを設定している場合は、そのデリゲートが表示を抑制していないことを確認してください。カスタマイズを参照してください。
-
デバイスの向きがアプリ内メッセージの設定と一致しない場合、メッセージは表示されません。
-
ネットワーク状況によっては、表示前に画像のダウンロードが完了しない場合があります。低速な接続やパフォーマンスの低いデバイスでは、追加の時間を確保するか、アセットサイズを最適化してください。
インプレッションとクリックが記録されない
メッセージ表示またはクリックアクションを手動で処理するようにアプリ内メッセージデリゲートを設定している場合は、アプリ内メッセージのクリックとインプレッションを手動で記録する必要があります。
アセット読み込みのトラブルシューティング(NSURLErrorコード-1008)
Brazeをサードパーティのネットワークロギングライブラリーと統合する際、開発者はドメインコード-1008のNSURLErrorに遭遇することがよくあります。このエラーは、画像やフォントなどのアセットを取得できなかったか、キャッシュに失敗したことを示しています。このようなケースを回避するには、Braze CDNのURLを、これらのライブラリーによって無視されるべきドメインのリストに登録する必要があります。
ドメイン
CDNドメインの全リストは以下の通りです。
"appboy-images.com""braze-images.com""cdn.braze.eu""cdn.braze.com"
例
以下は、Brazeのアセットキャッシュと競合することが知られているライブラリーと、問題を回避するためのサンプルコードです。利用できないリソースエラーを引き起こすライブラリーをプロジェクトで使用しており、以下にリストされていない場合は、そのライブラリーのドキュメントを参照して、同様の使用方法のAPIを確認してください。
Netfox
1
NFX.sharedInstance().ignoreURLs(["https://cdn.braze.com"])
1
[NFX.sharedInstance ignoreURLs:@[@"https://cdn.braze.com"]];
NetGuard
1
NetGuard.blackListHosts.append(contentsOf: ["cdn.braze.com"])
1
2
3
NSMutableArray<NSString *> *blackListHosts = [NetGuard.blackListHosts mutableCopy];
[blackListHosts addObject:@"cdn.braze.com"];
NetGuard.blackListHosts = blackListHosts;
XNLogger
1
2
let brazeAssetsHostFilter = XNHostFilter(host: "https://cdn.braze.com")
XNLogger.shared.addFilters([brazeAssetsHostFilter])
1
2
XNHostFilter *brazeAssetsHostFilter = [[XNHostFilter alloc] initWithHost: @"https://cdn.braze.com"];
[XNLogger.shared addFilters:@[brazeAssetsHostFilter]];