Troubleshooting
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?
My in-app message took a lot of time to appear
- If you are serving large image or video files from your CDN to an HTML based in-app message, verify that your files are optimized to be as small as possible and that your CDN is performant.
- Verify whether you have configured a
delay
for your in-app message on the dashboard.
For more in-depth discussion of these scenarios, visit the advanced troubleshooting section.
Issues with Impressions and Click Analytics
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.
-
If the campaign is triggered by a session start or a custom event, you want to ensure that this event or session is happening frequently enough to trigger the message. Check this data on the Overview (for session data) or Custom Events pages:
Impressions are lower than they used to be
- Ensure no one unintentionally altered the segment or campaign since launch. Our segment and campaign changelogs will give you insight into changes that have been made, who made the change, and when it happened.
- Ensure you didn’t re-use your trigger event in a separate in-app message campaign with a higher priority.
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 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 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:
-
Is the trigger event firing as expected? To test for this, try configuring the message to trigger using a different action (like session start) and verify whether it displays.
-
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. Try removing your image temporarily from your message to see if that causes it to display.
-
If you have custom in-app message handling through
braze.subscribeToInAppMessage
orappboy.subscribeToNewInAppMessages
, check that subscription to ensure it is not affecting in-app message display. -
If your in-app message is triggered by session start and you’ve set an extended session timeout, this will affect how quickly you can show messages. For instance, if your session timeout is set to 300 seconds, closing and re-opening the app in less than that time will not refresh the session, so an in-app message triggered by a session start will not display.