Skip to content

トラブルシューティング

Braze SDKのアプリ内メッセージのトラブルシューティングにお困りですか?ここから始める

基本チェック

あるユーザーにアプリ内メッセージが表示されない

  1. SDKが新しいアプリ内メッセージをリクエストするセッション開始時に、ユーザーはSegmentに含まれていましたか?
  2. Campaignのターゲティングルールに基づいて、ユーザーはアプリ内メッセージを受信する資格がありましたか、または再資格がありましたか?
  3. ユーザーはフリークエンシーキャップの影響を受けましたか?
  4. ユーザーはコントロールグループに含まれていましたか?CampaignがABテスト用に設定されているか確認してください。
  5. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  6. デバイスはCampaignで指定された正しい向きになっていましたか?
  7. SDKによって適用される、トリガー間のデフォルトの30秒の最小時間間隔によってメッセージが抑制されましたか?

このプラットフォームですべてのユーザーにアプリ内メッセージが表示されなかった

  1. Campaignは、モバイルアプリまたはWebブラウザのいずれかを適切にターゲットとするように設定されていますか?例えば、CampaignがWebブラウザのみをターゲットにしている場合、Androidデバイスには送信されません。
  2. カスタムUIを実装していますか?意図したとおりに機能していますか?他のアプリ側のカスタム処理や抑制が表示を妨げていませんか?
  3. この特定のプラットフォームとアプリのバージョンで、アプリ内メッセージが正常に表示されたことはありますか?
  4. トリガーはデバイスのローカルで発生しましたか?RESTコールを使用してSDKのアプリ内メッセージをトリガーすることはできません。

すべてのユーザーにアプリ内メッセージが表示されなかった

  1. ダッシュボードおよびアプリの連携で、トリガーアクションは適切に設定されていましたか?
  2. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  3. SDKのバージョンは最新ですか?アプリ内メッセージの種類によってはSDKのバージョン要件があります。
  4. セッションは連携で適切に統合されていますか?このアプリでセッション分析は機能していますか?
  5. カスタマイズされたコンポーネントライブラリーを使用していませんか?アプリ内メッセージの表示に干渉している可能性があります。

アプリ内メッセージの表示に時間がかかった

  1. CDNからHTMLベースのアプリ内メッセージに大きな画像や動画ファイルを配信している場合は、ファイルが可能な限り小さくなるように最適化されていること、およびCDNのパフォーマンスが高いことを確認してください。
  2. ダッシュボードでアプリ内メッセージに delay を設定していないか確認してください。

これらのシナリオの詳細については、高度なトラブルシューティングのセクションを参照してください。

インプレッションとクリック分析の問題

インプレッションユニークインプレッションより多い

これは想定される動作であり、以下の場合に発生する可能性があります。

  • 再資格がオフになっていても、Campaignを受信したユーザーが複数のデバイスを持っている場合があります。Campaignのトリガーは次のセッション開始時に更新されるため、別のデバイスが既にCampaignをトリガーしたかどうかは、ユーザーが新しいセッションを開始するまでわかりません。
  • アプリ内メッセージにトリガーイベント発生後数分間のスケジュール遅延が設定されている場合、ユーザーがメッセージを複数回受信した可能性があります。

再資格の詳細については、CampaignとCanvasの再資格を参照してください。

インプレッションが予想より低い

  1. トリガーはセッション開始時にデバイスへの同期に時間がかかるため、ユーザーがセッション開始直後にイベントや購入を記録すると競合が発生する可能性があります。考えられる回避策の1つは、Campaignをセッション開始でトリガーするように変更し、目的のイベントまたは購入でセグメント化することです。なお、イベント発生後の次回セッション開始時にアプリ内メッセージが配信されることに注意してください。

  2. Campaignがセッション開始やカスタムイベントによってトリガーされる場合、このイベントやセッションがメッセージをトリガーするのに十分な頻度で発生していることを確認する必要があります。このデータを概要(セッションデータの場合)またはカスタムイベントページで確認してください。

カスタムイベントページには、カスタムイベント「お気に入りに追加」が1か月間に発生した回数のグラフが表示されています

その他の理由として以下が考えられます。

  • ユーザーがアプリ内メッセージを閲覧していないため、インプレッションが記録されていない。
  • 複数のアプリ内メッセージが互いに干渉している(優先度の高いメッセージが複数ある場合など)。
  • メッセージがCanvas内にある場合、ユーザーがアプリ内メッセージを受信する前に、セッションタイムアウトより長い遅延ステップに入っている可能性がある。

インプレッションが以前より低下している

  1. ローンチ後、誰も意図せずにSegmentやCampaignを変更していないことを確認してください。SegmentとCampaignの変更ログから、いつ、誰が、どのような変更を行ったかについてインサイトを得ることができます。

Campaign詳細ページで、ユーザーがCampaignを最後に閲覧してからの7つの変更点を含む変更ログを表示するためのリンク

  1. トリガーイベントを、優先度の高い別のアプリ内メッセージCampaignで再利用していないことを確認してください。

高度なトラブルシューティング

ほとんどのアプリ内メッセージの問題は、配信と表示の2つの主要なカテゴリに分けることができます。期待したアプリ内メッセージがデバイスに表示されなかった原因をトラブルシューティングするには、アプリ内メッセージがデバイスに配信されたことを確認してから、メッセージ表示のトラブルシューティングを行います。

配信のトラブルシューティング

SDKはセッション開始時にBrazeサーバーからアプリ内メッセージをリクエストします。アプリ内メッセージがデバイスに配信されているかどうかを確認するには、アプリ内メッセージがSDKによってリクエストされ、Brazeサーバーによって返されていることを確認する必要があります。

メッセージがリクエストされ、返されたかどうかを確認する

  1. ダッシュボードで自分自身をテストユーザーとして追加します。
  2. ユーザーをターゲットとしたアプリ内メッセージCampaignを設定します。
  3. アプリケーションで新しいセッションが発生することを確認します。
  4. イベントユーザーログを使用して、セッション開始時にデバイスがアプリ内メッセージをリクエストしていることを確認します。テストユーザーのセッション開始イベントに関連付けられたSDKリクエストを見つけてください。
    • トリガーされたアプリ内メッセージをリクエストするためのアプリであれば、Response DataRequested Responsesフィールドに trigger が表示されます。
    • アプリが元のアプリ内メッセージをリクエストするためのものだった場合、Response DataRequested Responsesフィールドに in_app が表示されます。
  5. イベントユーザーログを使用して、応答データに正しいアプリ内メッセージが返されているか確認します。
リクエストされていないメッセージのトラブルシューティング

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

イベントユーザーログに記録されたSDKリクエストは、セッション開始イベントが成功したことを示しています。

メッセージが返されない問題のトラブルシューティング

アプリ内メッセージが返されない場合、Campaignターゲティングの問題が発生している可能性があります。

  1. Segmentにユーザーが含まれていない。
    • ユーザーのエンゲージメントタブを確認し、Segments欄に正しいSegmentが表示されているか確認してください。
  2. ユーザーが以前にアプリ内メッセージを受信しており、再度受信する資格がなかった。
    • Campaign ComposerDeliveryステップにあるCampaign再資格設定を確認し、再資格設定がテスト設定と一致していることを確認してください。
  3. ユーザーがCampaignのフリークエンシーキャップに達した。
  4. Campaignにコントロールグループが存在した場合、ユーザーがコントロールグループに分類された可能性があります。
    • CampaignバリアントがControlに設定されている受信Campaignバリアントフィルターでセグメントを作成し、ユーザーがそのSegmentに分類されたかどうかを確認することで、これが発生したかどうかを確認できます。
    • 連携テスト目的でCampaignを作成する場合は、コントロールグループの追加をオプトアウトしてください。

表示のトラブルシューティング

アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。

  1. トリガーイベントは想定どおりに発生していますか?これをテストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。

  2. トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。

  3. 画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、画像のダウンロードに失敗していないか確認してください。メッセージから画像を一時的に削除して、それで表示されるかどうか試してみてください。

  4. braze.subscribeToInAppMessage または appboy.subscribeToNewInAppMessages を介してカスタムのアプリ内メッセージ処理を行っている場合は、そのサブスクリプションがアプリ内メッセージの表示に影響を及ぼしていないことを確認してください。

  5. アプリ内メッセージがセッション開始によってトリガーされ、拡張セッションタイムアウトが設定されている場合、メッセージが表示される速さに影響します。例えば、セッションタイムアウトが300秒に設定されている場合、それ未満の時間でアプリを閉じて再度開いてもセッションはリフレッシュされないため、セッション開始でトリガーされるアプリ内メッセージは表示されません。

基本チェック

あるユーザーにアプリ内メッセージが表示されない

  1. SDKが新しいアプリ内メッセージをリクエストするセッション開始時に、ユーザーはSegmentに含まれていましたか?
  2. Campaignのターゲティングルールに基づいて、ユーザーはアプリ内メッセージを受信する資格がありましたか、または再資格がありましたか?
  3. ユーザーはフリークエンシーキャップの影響を受けましたか?
  4. ユーザーはコントロールグループに含まれていましたか?CampaignがABテスト用に設定されているか確認してください。
  5. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  6. デバイスはCampaignで指定された正しい向きになっていましたか?
  7. SDKによって適用される、トリガー間のデフォルトの30秒の最小時間間隔によってメッセージが抑制されましたか?

このプラットフォームですべてのユーザーにアプリ内メッセージが表示されなかった

  1. Campaignは、モバイルアプリまたはWebブラウザのいずれかを適切にターゲットとするように設定されていますか?例えば、CampaignがWebブラウザのみをターゲットにしている場合、Androidデバイスには送信されません。
  2. カスタムUIを実装していますか?意図したとおりに機能していますか?他のアプリ側のカスタム処理や抑制が表示を妨げていませんか?
  3. この特定のプラットフォームとアプリのバージョンで、アプリ内メッセージが正常に表示されたことはありますか?
  4. トリガーはデバイスのローカルで発生しましたか?RESTコールを使用してSDKのアプリ内メッセージをトリガーすることはできません。

すべてのユーザーにアプリ内メッセージが表示されなかった

  1. ダッシュボードおよびアプリの連携で、トリガーアクションは適切に設定されていましたか?
  2. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  3. SDKのバージョンは最新ですか?アプリ内メッセージの種類によってはSDKのバージョン要件があります。
  4. セッションは連携で適切に統合されていますか?このアプリでセッション分析は機能していますか?
  5. カスタマイズされたコンポーネントライブラリーを使用していませんか?アプリ内メッセージの表示に干渉している可能性があります。

アプリ内メッセージの表示に時間がかかった

  1. CDNからHTMLベースのアプリ内メッセージに大きな画像や動画ファイルを配信している場合は、ファイルが可能な限り小さくなるように最適化されていること、およびCDNのパフォーマンスが高いことを確認してください。
  2. ダッシュボードでアプリ内メッセージに delay を設定していないか確認してください。

  3. 状況に応じて、アプリ内メッセージは表示前に関連画像をダウンロードするか、ディスクから読み込みます。低速のネットワーク接続や非常にパフォーマンスの低いデバイスを使用している場合、この処理に時間がかかることがあります。画像ができるだけ小さくなるように最適化されていることを確認してください。

これらのシナリオの詳細については、高度なトラブルシューティングのセクションを参照してください。

インプレッションとクリック分析の問題

インプレッションとクリックが記録されない

メッセージ表示やクリックアクションを手動で処理するようにアプリ内メッセージデリゲートを設定している場合は、アプリ内メッセージのクリック数やインプレッションを手動で記録する必要があります。

インプレッションユニークインプレッションより多い

これは想定される動作であり、以下の場合に発生する可能性があります。

  • 再資格がオフになっていても、Campaignを受信したユーザーが複数のデバイスを持っている場合があります。Campaignのトリガーは次のセッション開始時に更新されるため、別のデバイスが既にCampaignをトリガーしたかどうかは、ユーザーが新しいセッションを開始するまでわかりません。
  • アプリ内メッセージにトリガーイベント発生後数分間のスケジュール遅延が設定されている場合、ユーザーがメッセージを複数回受信した可能性があります。

再資格の詳細については、CampaignとCanvasの再資格を参照してください。

インプレッションが予想より低い

  1. トリガーはセッション開始時にデバイスへの同期に時間がかかるため、ユーザーがセッション開始直後にイベントや購入を記録すると競合が発生する可能性があります。考えられる回避策の1つは、Campaignをセッション開始でトリガーするように変更し、目的のイベントまたは購入でセグメント化することです。なお、イベント発生後の次回セッション開始時にアプリ内メッセージが配信されることに注意してください。

  2. Campaignがセッション開始やカスタムイベントによってトリガーされる場合、このイベントやセッションがメッセージをトリガーするのに十分な頻度で発生していることを確認する必要があります。このデータを概要(セッションデータの場合)またはカスタムイベントページで確認してください。

カスタムイベントページには、カスタムイベント「お気に入りに追加」が1か月間に発生した回数のグラフが表示されています

その他の理由として以下が考えられます。

  • ユーザーがアプリ内メッセージを閲覧していないため、インプレッションが記録されていない。
  • 複数のアプリ内メッセージが互いに干渉している(優先度の高いメッセージが複数ある場合など)。
  • メッセージがCanvas内にある場合、ユーザーがアプリ内メッセージを受信する前に、セッションタイムアウトより長い遅延ステップに入っている可能性がある。

インプレッションが以前より低下している

  1. ローンチ後、誰も意図せずにSegmentやCampaignを変更していないことを確認してください。SegmentとCampaignの変更ログから、いつ、誰が、どのような変更を行ったかについてインサイトを得ることができます。

Campaign詳細ページで、ユーザーがCampaignを最後に閲覧してからの7つの変更点を含む変更ログを表示するためのリンク

  1. トリガーイベントを、優先度の高い別のアプリ内メッセージCampaignで再利用していないことを確認してください。

高度なトラブルシューティング

ほとんどのアプリ内メッセージの問題は、配信と表示の2つの主要なカテゴリに分けることができます。期待したアプリ内メッセージがデバイスに表示されなかった原因をトラブルシューティングするには、アプリ内メッセージがデバイスに配信されたことを確認してから、メッセージ表示のトラブルシューティングを行います。

配信のトラブルシューティング

SDKはセッション開始時にBrazeサーバーからアプリ内メッセージをリクエストします。アプリ内メッセージがデバイスに配信されているかどうかを確認するには、アプリ内メッセージがSDKによってリクエストされ、Brazeサーバーによって返されていることを確認する必要があります。

メッセージがリクエストされ、返されたかどうかを確認する

  1. ダッシュボードで自分自身をテストユーザーとして追加します。
  2. ユーザーをターゲットとしたアプリ内メッセージCampaignを設定します。
  3. アプリケーションで新しいセッションが発生することを確認します。
  4. イベントユーザーログを使用して、セッション開始時にデバイスがアプリ内メッセージをリクエストしていることを確認します。テストユーザーのセッション開始イベントに関連付けられたSDKリクエストを見つけてください。
    • トリガーされたアプリ内メッセージをリクエストするためのアプリであれば、Response DataRequested Responsesフィールドに trigger が表示されます。
    • アプリが元のアプリ内メッセージをリクエストするためのものだった場合、Response DataRequested Responsesフィールドに in_app が表示されます。
  5. イベントユーザーログを使用して、応答データに正しいアプリ内メッセージが返されているか確認します。
リクエストされていないメッセージのトラブルシューティング

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

イベントユーザーログに記録されたSDKリクエストは、セッション開始イベントが成功したことを示しています。

メッセージが返されない問題のトラブルシューティング

アプリ内メッセージが返されない場合、Campaignターゲティングの問題が発生している可能性があります。

  1. Segmentにユーザーが含まれていない。
    • ユーザーのエンゲージメントタブを確認し、Segments欄に正しいSegmentが表示されているか確認してください。
  2. ユーザーが以前にアプリ内メッセージを受信しており、再度受信する資格がなかった。
    • Campaign ComposerDeliveryステップにあるCampaign再資格設定を確認し、再資格設定がテスト設定と一致していることを確認してください。
  3. ユーザーがCampaignのフリークエンシーキャップに達した。
  4. Campaignにコントロールグループが存在した場合、ユーザーがコントロールグループに分類された可能性があります。
    • CampaignバリアントがControlに設定されている受信Campaignバリアントフィルターでセグメントを作成し、ユーザーがそのSegmentに分類されたかどうかを確認することで、これが発生したかどうかを確認できます。
    • 連携テスト目的でCampaignを作成する場合は、コントロールグループの追加をオプトアウトしてください。

表示のトラブルシューティング

アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。

  1. トリガーイベントは想定どおりに発生していますか?これをテストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。

  2. トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。

  3. 画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、画像のダウンロードに失敗していないか確認してください。メッセージから画像を一時的に削除して、それで表示されるかどうか試してみてください。

  4. アプリ内メッセージ処理をカスタマイズするようにデリゲートを設定している場合は、デリゲートがアプリ内メッセージの表示に影響していないことを確認してください。

  5. デバイスの向きがアプリ内メッセージで指定された向きと一致しない場合、アプリ内メッセージは表示されません。デバイスの向きが正しいことを確認してください。

  6. アプリ内メッセージがセッション開始によってトリガーされ、拡張セッションタイムアウトが設定されている場合、メッセージが表示される速さに影響します。例えば、セッションタイムアウトが300秒に設定されている場合、それ未満の時間でアプリを閉じて再度開いてもセッションはリフレッシュされないため、セッション開始でトリガーされるアプリ内メッセージは表示されません。

基本チェック

あるユーザーにアプリ内メッセージが表示されない

  1. SDKが新しいアプリ内メッセージをリクエストするセッション開始時に、ユーザーはSegmentに含まれていましたか?
  2. Campaignのターゲティングルールに基づいて、ユーザーはアプリ内メッセージを受信する資格がありましたか、または再資格がありましたか?
  3. ユーザーはフリークエンシーキャップの影響を受けましたか?
  4. ユーザーはコントロールグループに含まれていましたか?CampaignがABテスト用に設定されているか確認してください。
  5. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  6. デバイスはCampaignで指定された正しい向きになっていましたか?
  7. SDKによって適用される、トリガー間のデフォルトの30秒の最小時間間隔によってメッセージが抑制されましたか?

このプラットフォームですべてのユーザーにアプリ内メッセージが表示されなかった

  1. Campaignは、モバイルアプリまたはWebブラウザのいずれかを適切にターゲットとするように設定されていますか?例えば、CampaignがWebブラウザのみをターゲットにしている場合、Androidデバイスには送信されません。
  2. カスタムUIを実装していますか?意図したとおりに機能していますか?他のアプリ側のカスタム処理や抑制が表示を妨げていませんか?
  3. この特定のプラットフォームとアプリのバージョンで、アプリ内メッセージが正常に表示されたことはありますか?
  4. トリガーはデバイスのローカルで発生しましたか?RESTコールを使用してSDKのアプリ内メッセージをトリガーすることはできません。

すべてのユーザーにアプリ内メッセージが表示されなかった

  1. ダッシュボードおよびアプリの連携で、トリガーアクションは適切に設定されていましたか?
  2. 期待されたメッセージの代わりに、より優先度の高い別のアプリ内メッセージが表示されましたか?
  3. SDKのバージョンは最新ですか?アプリ内メッセージの種類によってはSDKのバージョン要件があります。
  4. セッションは連携で適切に統合されていますか?このアプリでセッション分析は機能していますか?
  5. カスタマイズされたコンポーネントライブラリーを使用していませんか?アプリ内メッセージの表示に干渉している可能性があります。

アプリ内メッセージの表示に時間がかかった

  1. CDNからHTMLベースのアプリ内メッセージに大きな画像や動画ファイルを配信している場合は、ファイルが可能な限り小さくなるように最適化されていること、およびCDNのパフォーマンスが高いことを確認してください。
  2. ダッシュボードでアプリ内メッセージに delay を設定していないか確認してください。

  3. 状況に応じて、アプリ内メッセージは表示前に関連画像をダウンロードするか、ディスクから読み込みます。低速のネットワーク接続や非常にパフォーマンスの低いデバイスを使用している場合、この処理に時間がかかることがあります。画像ができるだけ小さくなるように最適化されていることを確認してください。

これらのシナリオの詳細については、高度なトラブルシューティングのセクションを参照してください。

インプレッションとクリック分析の問題

インプレッションとクリックが記録されない

メッセージ表示またはクリックアクションを手動で処理するようにアプリ内メッセージデリゲートを設定している場合は、アプリ内メッセージのクリック数インプレッションを手動で記録する必要があります。

インプレッションユニークインプレッションより多い

これは想定される動作であり、以下の場合に発生する可能性があります。

  • 再資格がオフになっていても、Campaignを受信したユーザーが複数のデバイスを持っている場合があります。Campaignのトリガーは次のセッション開始時に更新されるため、別のデバイスが既にCampaignをトリガーしたかどうかは、ユーザーが新しいセッションを開始するまでわかりません。
  • アプリ内メッセージにトリガーイベント発生後数分間のスケジュール遅延が設定されている場合、ユーザーがメッセージを複数回受信した可能性があります。

再資格の詳細については、CampaignとCanvasの再資格を参照してください。

インプレッションが予想より低い

  1. トリガーはセッション開始時にデバイスへの同期に時間がかかるため、ユーザーがセッション開始直後にイベントや購入を記録すると競合が発生する可能性があります。考えられる回避策の1つは、Campaignをセッション開始でトリガーするように変更し、目的のイベントまたは購入でセグメント化することです。なお、イベント発生後の次回セッション開始時にアプリ内メッセージが配信されることに注意してください。

  2. Campaignがセッション開始やカスタムイベントによってトリガーされる場合、このイベントやセッションがメッセージをトリガーするのに十分な頻度で発生していることを確認する必要があります。このデータを概要(セッションデータの場合)またはカスタムイベントページで確認してください。

カスタムイベントページには、カスタムイベント「お気に入りに追加」が1か月間に発生した回数のグラフが表示されています

その他の理由として以下が考えられます。

  • ユーザーがアプリ内メッセージを閲覧していないため、インプレッションが記録されていない。
  • 複数のアプリ内メッセージが互いに干渉している(優先度の高いメッセージが複数ある場合など)。
  • メッセージがCanvas内にある場合、ユーザーがアプリ内メッセージを受信する前に、セッションタイムアウトより長い遅延ステップに入っている可能性がある。

インプレッションが以前より低下している

  1. ローンチ後、誰も意図せずにSegmentやCampaignを変更していないことを確認してください。SegmentとCampaignの変更ログから、いつ、誰が、どのような変更を行ったかについてインサイトを得ることができます。

Campaign詳細ページで、ユーザーがCampaignを最後に閲覧してからの7つの変更点を含む変更ログを表示するためのリンク

  1. トリガーイベントを、優先度の高い別のアプリ内メッセージCampaignで再利用していないことを確認してください。

高度なトラブルシューティング

ほとんどのアプリ内メッセージの問題は、配信と表示の2つの主要なカテゴリに分けることができます。期待したアプリ内メッセージがデバイスに表示されなかった原因をトラブルシューティングするには、アプリ内メッセージがデバイスに配信されたことを確認してから、メッセージ表示のトラブルシューティングを行います。

配信のトラブルシューティング

SDKはセッション開始時にBrazeサーバーからアプリ内メッセージをリクエストします。アプリ内メッセージがデバイスに配信されているかどうかを確認するには、アプリ内メッセージがSDKによってリクエストされ、Brazeサーバーによって返されていることを確認する必要があります。

メッセージがリクエストされ、返されたかどうかを確認する

  1. ダッシュボードで自分自身をテストユーザーとして追加します。
  2. ユーザーをターゲットとしたアプリ内メッセージCampaignを設定します。
  3. アプリケーションで新しいセッションが発生することを確認します。
  4. イベントユーザーログを使用して、セッション開始時にデバイスがアプリ内メッセージをリクエストしていることを確認します。テストユーザーのセッション開始イベントに関連付けられたSDKリクエストを見つけてください。
    • トリガーされたアプリ内メッセージをリクエストするためのアプリであれば、Response DataRequested Responsesフィールドに trigger が表示されます。
    • アプリが元のアプリ内メッセージをリクエストするためのものだった場合、Response DataRequested Responsesフィールドに in_app が表示されます。
  5. イベントユーザーログを使用して、応答データに正しいアプリ内メッセージが返されているか確認します。
リクエストされていないメッセージのトラブルシューティング

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

イベントユーザーログに記録されたSDKリクエストは、セッション開始イベントが成功したことを示しています。

メッセージが返されない問題のトラブルシューティング

アプリ内メッセージが返されない場合、Campaignターゲティングの問題が発生している可能性があります。

  1. Segmentにユーザーが含まれていない。
    • ユーザーのエンゲージメントタブを確認し、Segments欄に正しいSegmentが表示されているか確認してください。
  2. ユーザーが以前にアプリ内メッセージを受信しており、再度受信する資格がなかった。
    • Campaign ComposerDeliveryステップにあるCampaign再資格設定を確認し、再資格設定がテスト設定と一致していることを確認してください。
  3. ユーザーがCampaignのフリークエンシーキャップに達した。
  4. Campaignにコントロールグループが存在した場合、ユーザーがコントロールグループに分類された可能性があります。
    • CampaignバリアントがControlに設定されている受信Campaignバリアントフィルターでセグメントを作成し、ユーザーがそのSegmentに分類されたかどうかを確認することで、これが発生したかどうかを確認できます。
    • 連携テスト目的でCampaignを作成する場合は、コントロールグループの追加をオプトアウトしてください。

表示のトラブルシューティング

アプリがアプリ内メッセージのリクエストと受信に成功しているにもかかわらず表示されない場合、デバイス側のロジックが表示を妨げている可能性があります。

  1. トリガーイベントは想定どおりに発生していますか?これをテストするには、メッセージを別のアクション(セッション開始など)でトリガーするように設定し、表示されるかどうかを確認してください。

  2. トリガーされたアプリ内メッセージは、トリガー間の最小時間間隔(デフォルトは30秒)に基づいてレート制限されます。

  3. 画像のダウンロードに失敗すると、画像付きのアプリ内メッセージが表示されなくなります。デバイスのログを確認して、画像のダウンロードに失敗していないか確認してください。メッセージから画像を一時的に削除して、それで表示されるかどうか試してみてください。

  4. アプリ内メッセージ処理をカスタマイズするようにデリゲートを設定している場合は、デリゲートがアプリ内メッセージの表示に影響していないことを確認してください。

  5. デバイスの向きがアプリ内メッセージで指定された向きと一致しない場合、アプリ内メッセージは表示されません。デバイスの向きが正しいことを確認してください。

  6. アプリ内メッセージがセッション開始によってトリガーされ、拡張セッションタイムアウトが設定されている場合、メッセージが表示される速さに影響します。例えば、セッションタイムアウトが300秒に設定されている場合、それ未満の時間でアプリを閉じて再度開いてもセッションはリフレッシュされないため、セッション開始でトリガーされるアプリ内メッセージは表示されません。

アセット読み込みのトラブルシューティング (NSURLError コード -1008)

Braze とサードパーティのネットワークロギングライブラリを統合する場合、開発者はドメインコード -1008NSURLError に遭遇することがよくあります。このエラーは、画像やフォントなどのアセットが取得できなかったか、キャッシュできなかったことを示しています。このようなケースを回避するには、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]];
New Stuff!