Тестирование

Запустите debug-сборку, откройте приложение один раз и проверьте панель. На этой странице описано, что считается тестовым устройством, как увидеть его данные и как протестировать отложенные диплинки без публикации в Google Play.

Тестовые устройства

Установка, помеченная как тестовое устройство, отправляет настоящие данные, но панель не включает их в ваши цифры, пока вы об этом не попросите. Так ваше собственное тестирование никогда не завышает установки, конверсию или выручку.

ПлатформаПомечается как тестовое устройство, когда
AndroidСборка debuggable (по умолчанию для debug-сборок) или вы передаёте UnolinkOptions(debug = true). Также, начиная с SDK 0.3.0, release-сборка, которую вы установили сами через adb или Android Studio, и телефоны из pre-launch report Google и Firebase Test Lab.
iOSВы передаёте UnolinkOptions(debug: true). Используйте #if DEBUG, потому что скомпилированная библиотека не видит ваших настроек сборки. Начиная с SDK 0.3.0, сборки TestFlight и Xcode сами считаются тестовыми устройствами.
React NativeВы передаёте { debug: __DEV__ }, плюс правила для iOS и Android выше.
FlutterВы передаёте debug: kDebugMode, плюс правила для iOS и Android выше.

Установка, которая делает покупку RevenueCat в песочнице (TestFlight, лицензированные тестировщики в Google Play), тоже становится тестовым устройством, вместе со всем, что она отправила.

Треки тестирования Google Play (внутреннее, закрытое, открытое) на телефоне невозможно отличить от релиза в магазине. Помечайте такие сборки сами, например переменной на этапе сборки:

// React Native / Expo: set EXPO_PUBLIC_UNOLINK_TEST=1 only for testing-track builds
Unolink.configure("ulk_…", { debug: __DEV__ || process.env.EXPO_PUBLIC_UNOLINK_TEST === "1" })

Тестовые данные в панели

Откройте приложение → Воронка или «Пути» и включите Учитывать тестовые устройства. Тестовые установки появятся рядом с настоящими. Выключите это снова, прежде чем смотреть на свои реальные цифры.

Первое открытие появляется через несколько секунд после запуска приложения. События отправляются пакетами каждые 15 секунд, пока приложение открыто, и сразу, когда оно уходит в фон: нажмите «Домой», чтобы отправить их прямо сейчас.

Отладочные логи

Когда всё работает, SDK молчит: по умолчанию он пишет в лог только предупреждения и ошибки. Чтобы видеть каждый шаг, повысьте уровень логирования.

// Android: Logcat, tag "Unolink"
Unolink.configure(this, "ulk_…", UnolinkOptions(logLevel = LogLevel.DEBUG))
// iOS: Xcode console, prefix "[Unolink]"
Unolink.configure(apiKey: "ulk_…", options: UnolinkOptions(logLevel: .debug, debug: true))
// React Native: Xcode console or Logcat, tag "Unolink"
Unolink.configure("ulk_…", { debug: __DEV__, logLevel: "debug" })
// Flutter: Xcode console or Logcat, tag "Unolink"
await Unolink.configure('ulk_…', debug: kDebugMode, logLevel: UnolinkLogLevel.debug);

Перед релизом верните значение по умолчанию.

Имитация реферера установки Play (Android)

Google Play передаёт реферер установки только для настоящих установок из Google Play. Чтобы протестировать код отложенного диплинка без него, дайте нативной debug-сборке Android выдуманный реферер:

Unolink.configure(this, "ulk_…", UnolinkOptions(
    debugInstallReferrer = "unolink_click_id=clk_01JA0000000000000000000000&unolink_deep_link=%2Fpromo%2F3for2&unolink_p_offer=3for2",
))
  • Он используется только в debuggable-сборках. Release-сборки игнорируют его и читают настоящий реферер.
  • Он читается только при первом запуске, как и настоящий. Перед каждой попыткой удаляйте приложение или очищайте его данные.
  • Ваш слушатель отложенного диплинка получает из реферера deepLink = "/promo/3for2" и params = {offer=3for2}. SDK пишет в лог предупреждение о том, что использовал имитированный реферер.
  • Сама установка не засчитывается ссылке, если ID клика не является настоящим кликом по одной из ссылок вашего приложения.

Этот параметр есть в нативном SDK для Android. В React Native и Flutter тестируйте на настоящей установке, как описано ниже.

Тест на настоящей установке (Android)

  1. Загрузите сборку в Google Play Console → Тестирование → Внутреннее тестирование и добавьте себя как тестировщика.
  2. На телефоне удалите приложение, затем откройте одну из своих ссылок Unolink и установите приложение со страницы в Play, которая откроется.
  3. Откройте приложение. Установка засчитывается этой ссылке, а слушатель диплинка срабатывает, если у ссылки есть диплинк.

Подробнее в разделе Отложенные диплинки на Android.

iPhone

На iPhone установки и события учитываются, но вашему приложению никогда не сообщается, по какой ссылке нажали: отложенного диплинка нет, потому что у Apple нет реферера установки, а Unolink никогда не использует фингерпринтинг. При этом панель сопоставляет установки на iPhone с их ссылкой, без фингерпринтинга. Поэтому на iOS проверяйте, что приходят установки и события. Диплинка, который нужно проверить в приложении, нет.

Чек-лист

  • Первое открытие появляется в «Путях» при включённом Учитывать тестовые устройства.
  • Каждый вызов воронки отображается как шаг этой установки.
  • С RevenueCat: покупка в песочнице появляется у той же установки после setUserId.
  • Android: установка из внутреннего тестирования Play по ссылке показывает ссылку, и диплинк открывается.
  • Release-сборки настроены без debug: true и с уровнем логирования по умолчанию.

Чего-то не хватает? См. Решение проблем.