Prompt
How to debug in-app messaging targeting rules
Latest observation
To debug in-app messaging targeting rules, the fastest approach is to verify the rule evaluation path step by step: message eligibility → audience/segment match → event/behavior conditions → timing/frequency caps → device/user state.
1) Confirm the message is actually eligible
Check:
- Campaign/message status is published/active
- Start/end dates are correct
- App/platform matches the target
- The user is in the correct environment/account/project
2) Verify targeting logic
Review each rule individually:
- User attributes: age, locale, plan, country, custom properties
- Segments/audiences: is the user truly in the segment?
- Event conditions: did the required event occur, and with the right properties?
- Session rules: first session, Nth session, app open count, time since install
- Exclusions: blacklists, suppression rules, “do not show” conditions
A common issue is one rule failing silently because the user profile hasn’t been updated yet.
3) Check timing and state
In-app messages often won’t show if:
- The triggering event hasn’t happened yet
- The user hasn’t met a required delay
- Frequency caps or cooldowns were hit
- Another message is blocking it
- The app is in background / not in an eligible screen
4) Inspect the user profile
Look at the live/debug profile for:
- Known attributes
- Recent events
- Segment membership
- Message exposure history
- Last sync/update time
If a profile shows stale data, the targeting may be correct but the data isn’t current.
5) Use preview/test tools
If your platform supports it:
- Use message preview
- Use test users/devices
- Use rule simulation / audience tester
- Force-refresh the user profile or segments
These tools help isolate whether the issue is with targeting or delivery.
6) Turn on debug logging
Enable SDK/app logs and look for:
- Message fetch success/failure
- Evaluation reason codes
- “Not eligible because…”
- Missing user ID/anonymous mismatch
- Network or cache issues
Search logs for:
- rule evaluation
- eligibility
- audience match
- suppression
- frequency cap
- trigger received
7) Check identity and event consistency
Targeting often fails when:
- The app uses anonymous IDs in one session and logged-in IDs in another
- Events are sent before the SDK is initialized
- User properties are set after the trigger event
- Property names/values don’t exactly match expected casing or type
8) Validate payload/data types
Make sure conditions compare the correct types:
"1"vs1- boolean vs string
"true" - exact match vs contains
- timezone/date formatting issues
9) Rule out caching and propagation delays
Some systems need time to:
- sync profile updates
- rebuild segments
- publish campaigns to edge caches
If rules were changed recently, wait a few minutes and retest.
10) Create a minimal repro
If it’s still unclear:
- Make a simple message with one rule only
- Use a single test user
- Trigger one event
- Add rules back one by one
This quickly reveals which condition blocks delivery.
If you tell me which platform you’re using (e.g., Braze, Firebase, Airship, OneSignal, Customer.io, etc.), I can give you a platform-specific debugging checklist and where to look in logs or dashboards.