トラブルシューティング
Basic Checks
My in-app message wasn’t shown for one user
- Was the user in the segment at session start, when the SDK requests new in-app messages?
- Was the user eligible or re-eligible to receive the in-app message per campaign targeting rules?
- Was the user affected by a frequency cap?
- Was the user in a control group? Check whether your campaign is configured is configured for AB Testing.
- Was a different, higher priority in-app message displayed in place of the expected message?
- Was my device in the correct orientation specified by the campaign?
- Was my message suppressed by the default 30-second minimum time interval between triggers, enforced by the SDK?
My in-app message wasn’t shown to all users on this platform
- Is your campaign configured to target either Mobile Apps or Web Browsers as appropriate? As an example, if your campaign only targets Web Browsers, it will not send to Android devices.
- Did you implement a custom UI, and is it working as intended? Is there other app-side custom handling or suppression that could be interfering with display?
- Has this particular platform and app version ever shown in-app messages successfully?
- Did the trigger take place locally on the device? Note that a REST call can’t be used to trigger an in-app message in the SDK.
My in-app message wasn’t shown for all users
- Was the Trigger Action set up properly in the dashboard, as well as in the app integration?
- Was a different, higher priority in-app message displayed in place of the expected message?
- Are you on a recent version of the SDK? Some in-app message types have SDK version requirements.
- Have sessions been integrated properly in your integration? Are session analytics working for this app?
For more in-depth discussion of these scenarios, visit the advanced troubleshooting section.
Issues with Impressions and Click Analytics
Impressions and Clicks aren’t being logged
If you have set an in-app message delegate to manually handle message display or click actions, you must manually log clicks and impressions on the in-app message.
Impressions are lower than expected
Triggers take time to sync to the device on session start, so there can be a race condition if users log an event or purchase right after they start a session. One potential workaround could be changing the campaign to trigger off of session start, then segmenting off the intended event or purchase. Note that this would deliver the in-app message on the next session start after the event has occurred.
Advanced Troubleshooting
Most in-app message issues can be broken down into two main categories: delivery and display. To troubleshoot why an expected in-app message did not display on your device, confirm that the in-app message was delivered to the device, then troubleshoot message display.
Troubleshooting in-app message delivery
The SDK requests in-app messages from Braze servers on session start. To check if in-app messages are being delivered to your device, you’ll need to make sure that in-app messages are being both requested by the SDK and returned by Braze servers.
Check if messages are requested and returned
- Add yourself as a test user on the dashboard.
- Set up an in-app message campaign targeted at your user.
- Ensure that a new session occurs in your application.
- Use the event user logs to check that your device is requesting in-app messages on session start. Find the SDK Request associated with your test user’s session start event.
- If your app was meant to request triggered in-app messages, you should see
trigger
in the Requested Responses field under Response Data. - If your app was meant to request original in-app messages, you should see
in_app
in the Requested Responses field under Response Data.
- If your app was meant to request triggered in-app messages, you should see
- Use the event user logs to check if the correct in-app messages are being returned in the response data.
Troubleshoot messages not being requested
If your in-app messages are not being requested, your app might not be tracking sessions correctly, as in-app messages are refreshed upon session start. Also, be sure that your app is actually starting a session based on your app’s session timeout semantics:
Troubleshoot messages not being returned
If your in-app messages are not being returned, you’re likely experiencing a campaign targeting issue:
- Your segment does not contain your user.
- Check your user’s Engagement tab to see if the correct segment appears under Segments.
- Your user has previously received the in-app message and was not re-eligible to receive it again.
- Check the campaign re-eligibility settings under the Delivery step of the Campaign Composer and make sure the re-eligibility settings align with your testing setup.
- Your user hit the frequency cap for the campaign.
- Check the campaign frequency cap settings and ensure they align with your testing setup.
- If there was a control group on the campaign, your user may have fallen into the control group.
- You can check if this has happened by creating a segment with a received campaign variant filter, where the campaign variant is set to Control, and checking if your user fell into that segment.
- When creating campaigns for integration testing purposes, make sure to opt out of adding a control group.
Troubleshooting in-app message display
If your app is successfully requesting and receiving in-app messages, but they are not being shown, device-side logic may be preventing display:
-
Triggered in-app messages are rate-limited based on the minimum time interval between triggers, which defaults to 30 seconds.
-
Failed image downloads will prevent in-app messages with images from displaying. Check your device logs to ensure that image downloads are not failing.
-
If you have set a delegate to customize in-app message handling, check your delegate to ensure it is not affecting the in-app message display.
-
If the device orientation does not match the orientation specified by the in-app message, the in-app message will not display. Make sure that your device is in the correct orientation.