Плейсмент не отображается
Проверьте:- Приложение запрашивает тот же идентификатор плейсмента, который указан в разделе Remote UI.
- Плейсмент включен.
- Для запрошенной локали есть конфигурация или у плейсмента задана локаль по умолчанию.
- JSON конфигурации корректен.
- Для динамических плейсхолдеров заданы соответствующие определения.
- Плейсхолдеры продуктов ссылаются на существующие продукты.
- Пользователь еще не видел плейсмент с настройкой Show only once per user.
- Пользователь соответствует условиям таргетинга плейсмента.
- Защита от захвата экрана не заблокировала этого пользователя.
Количество запросов растет, а количество показов — нет
Обычно это означает, что PNLight получил запрос, но не нашёл конфигурацию, которую можно отобразить. Распространенные причины:- Плейсмент отсутствует в разделе Remote UI.
- Плейсмент отключен.
- Для локали отсутствует конфигурация.
- Динамический плейсхолдер отсутствует или не разрешается.
- Атрибуция обязательна, но еще не определена.
- Правило однократного показа скрывает плейсмент для этого пользователя.
- Пользователь не соответствует условиям таргетинга.
- Защита от захвата экрана блокирует пользователя после обнаружения захвата.
Плейсхолдер не разрешается
Проверьте плейсмент в разделе Remote UI:- Каждый токен плейсхолдера использует формат
{{key}}. - Для каждого токена задано соответствующее определение плейсхолдера.
- Ключи плейсхолдеров начинаются с буквы и содержат только буквы, цифры и символы подчеркивания.
- Плейсхолдеры продуктов ссылаются на продукты, которые еще существуют на странице Products.
Ошибка запроса конфигурации
В последних версиях оберток SDK ошибки загрузки отделены от результата «для этого плейсмента нет UI».- В Swift используйте
getUIConfigResult, если получаете конфигурации вручную. - В React Native и Flutter обрабатывайте
onErrorвRemoteUiView. - Во время контроля качества передавайте
ignoreCache, когда нужен свежий ответ сервера.
Действия не работают
Проверьте обработчик действий в приложении:- Обработайте ожидаемое значение
logId, пути или действия. - Считывайте параметры с учетом возможных ошибок.
- Предусмотрите резервный вариант для неизвестных действий.
Действия после покупки не запускаются
Проверьте документ Remote UI:- Для
on_successнужна"schemaVersion": 3или"schemaVersion": 4. - Для
on_failиon_cancelнужна"schemaVersion": 4. Конфигурации схемы v3 по-прежнему запускают толькоon_success. - Ожидающая покупка StoreKit не запускает никаких действий. Текущий экран остается на месте, пока Apple не подтвердит или не отклонит транзакцию.
Навигация флоу не работает
Для серверно-управляемых флоу проверьте:- Конфигурация использует
schemaVersion: 2иtype: "flow". - Целевой маршрут есть в объекте
routes. - URL навигации находится внутри валидного маршрута флоу.
- Приложение использует актуальный Swift SDK, обертку React Native или обертку Flutter — в зависимости от своей интеграции.
pnlight://navigation/... внутри флоу до передачи в onAction. Используйте URL приложения, идентификаторы действий или пути действий для действий, которые должно обрабатывать хост-приложение.