Placement does not render
Check:- The app requests the same placement ID that exists in Remote UI.
- The placement is enabled.
- The requested locale has a config, or the placement has a default locale.
- The config JSON is valid.
- The user has not already seen a placement configured as Show only once per user.
- The user matches the placement targeting conditions.
- Capture protection has not blocked this user.
Requests increase but shown does not
This usually means PNLight received the request but did not return a displayable config. Common causes:- Placement disabled.
- Missing locale config.
- Attribution is required but not resolved yet.
- Show-once rules suppress the placement for that user.
- Targeting conditions do not match the user.
- Capture protection blocks the user after capture is detected.
Config request fails
Recent SDK wrappers separate loading errors from “no UI for this placement”.- In Swift, use
getUIConfigResultwhen you fetch configs manually. - In React Native and Flutter, handle
onErroronRemoteUiView. - During QA, pass
ignoreCachewhen you need a fresh server response.
Actions do not work
Check your app action handler:- Handle the expected
logId, path, or action value. - Read parameters defensively.
- Provide a fallback for unknown actions.