Skip to main content
Используйте эту страницу, если плейсмент Remote UI не отображается или действия не работают.

Плейсмент не отображается

Проверьте:
  • Приложение запрашивает тот же идентификатор плейсмента, который указан в разделе Remote UI.
  • Плейсмент включен.
  • Для запрошенной локали есть конфигурация или у плейсмента задана локаль по умолчанию.
  • JSON конфигурации корректен.
  • Для динамических плейсхолдеров заданы соответствующие определения.
  • Плейсхолдеры продуктов ссылаются на существующие продукты.
  • Пользователь еще не видел плейсмент с настройкой Show only once per user.
  • Пользователь соответствует условиям таргетинга плейсмента.
  • Защита от захвата экрана не заблокировала этого пользователя.

Количество запросов растет, а количество показов — нет

Обычно это означает, что PNLight получил запрос, но не нашёл конфигурацию, которую можно отобразить. Распространенные причины:
  • Плейсмент отсутствует в разделе Remote UI.
  • Плейсмент отключен.
  • Для локали отсутствует конфигурация.
  • Динамический плейсхолдер отсутствует или не разрешается.
  • Атрибуция обязательна, но еще не определена.
  • Правило однократного показа скрывает плейсмент для этого пользователя.
  • Пользователь не соответствует условиям таргетинга.
  • Защита от захвата экрана блокирует пользователя после обнаружения захвата.

Плейсхолдер не разрешается

Проверьте плейсмент в разделе Remote UI:
  • Каждый токен плейсхолдера использует формат {{key}}.
  • Для каждого токена задано соответствующее определение плейсхолдера.
  • Ключи плейсхолдеров начинаются с буквы и содержат только буквы, цифры и символы подчеркивания.
  • Плейсхолдеры продуктов ссылаются на продукты, которые еще существуют на странице Products.
Если PNLight не может разрешить плейсхолдер, он не возвращает конфигурацию этого плейсмента.

Ошибка запроса конфигурации

В последних версиях оберток 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 обрабатывает URL pnlight://navigation/... внутри флоу до передачи в onAction. Используйте URL приложения, идентификаторы действий или пути действий для действий, которые должно обрабатывать хост-приложение.
Используйте режим отладки или тестовое устройство при проверке правил показа. Отключите режим отладки перед запуском продакшен-трафика, если он не нужен вашей команде намеренно.