События SDK Статистики от SberAds: показ экрана, deeplink, собственные события
SDK отправляет события трёх видов: показ экрана, переход по deeplink и собственное событие. Показ экрана ручной или автоматический (Android), у экрана обязателен только класс, URL и заголовок опциональны. В собственном событии название обязательно, данные опциональны — на Android и iOS до 30 параметров в формате «строка-строка». Deeplink передают строкой в методе trackDeeplink.
Цифры
Что передают в методах по платформам
| Событие | Android | iOS | React Native |
|---|---|---|---|
| Показ экрана вручную | класс экрана (обязательно), URL и заголовок (опционально) | класс экрана (обязательно), URL и заголовок (опционально) | название экрана; URL и заголовок опционально |
| Собственное событие | название; данные опционально, до 30 параметров, Map из строк | название (обязательно); данные опционально, до 30 параметров, Dictionary из строк | название (обязательно); данные опционально, лимит не назван |
| Переход по deeplink | url, обязателен, строка | deeplink, обязателен, строка | deeplink, обязателен, строка |
Куда вставляют вызов
| Платформа | Показ экрана | Deeplink |
|---|---|---|
| Android | при создании Activity | при создании Activity |
| iOS | в контроллере (в примере — в viewDidLoad) | в обработчиках открытия ссылки и продолжения активности в AppDelegate |
| React Native | в справке не нашли | в справке не нашли |
Подробности
Автоматическая отправка на Android
Если в настройках включена автоматическая отправка, запуск активностей в первый раз фиксируется автоматически. Включить и выключить автоотправку можно методами Kraken.enableActivityAutoTracking и Kraken.disableActivityAutoTracking; их вызывают в любых классах и активностях приложения. Если нужен собственный контроль, просмотр экрана отправляют вручную.
Показ экрана
Ручной вызов нужен, если просмотр экрана фиксируют самостоятельно. Про автоматический трекинг на iOS и React Native эти страницы не говорят.
- Android: метод Kraken.trackPageView при создании Activity.
- iOS: TrackerTop100.trackPageView в контроллере; в примере — в viewDidLoad главного контроллера.
- React Native: NativeTrackerTop100.trackPageView с названием экрана, например HomeScreen.
Поля: класс или название экрана (SCREEN_CLASS, например MainActivity) — обязательное; URL (релевантный адрес веб-страницы) — опциональный; TITLE (название экрана) — опциональный.
Собственные события
Метод отправляет любое собственное событие: название произвольное, данные опциональные.
- Android: Kraken.trackEvent, данные в Map<String, String>, не более 30 параметров.
- iOS: TrackerTop100.trackEvent, данные в Dictionary<String, String>, не более 30 параметров.
- React Native: NativeTrackerTop100.trackEvent, данные объектом; в примере два поля (button_name и section).
Переход по deeplink
Метод фиксирует открытие и переход по deeplink, ссылке в приложение.
- Android: Kraken.trackDeepLink(url) при создании Activity. Параметр — строка со ссылкой.
- iOS: TrackerTop100.trackDeeplink; вызов ставят в обработчики открытия URL и продолжения пользовательской активности (в примере — открытие по URL и продолжение активности при переходе с веб-страницы).
- React Native: NativeTrackerTop100.trackDeeplink со строкой, например myapp://product/123.
Активация трекера в React Native
Метод activateSettings активирует трекер для настройки с одним идентификатором (ID). Настройки собирают через SettingsBuilder (идентификатор проекта, email, телефон, идентификаторы площадки и пользователя и т. д.), затем вызывают NativeTrackerTop100.activateSettings.
Важно знать
- Автоотправка на Android: страница активации экрана говорит про настройку Kraken.activateAutoTracking(this), а страница включения и отключения — про методы enableActivityAutoTracking и disableActivityAutoTracking (на странице параметров SDK — параметр setActivityAutoTracking). Какое из имён актуально, справка не поясняет: сверять с кодом SDK или уточнять в поддержке.
- Сказано, что с автоотправкой «в первый раз» запуск активностей фиксируется автоматически. Повторные запуски и возвраты на экран страница не описывает.
- На iOS поле класса экрана описано как «название активности, например MainActivity» (термины Android), а в примере стоит MainViewController.
- iOS, собственные события: в сигнатуре на странице аргумент данных называется customVars, а в примере Swift — eventValues. Для Objective-C назван eventValues. Какое имя верное, проверять в SDK.
- Android, собственные события: сказано «произвольное название», обязательность не отмечена, на iOS название обязательное. В примере Kotlin аргумент данных называется params.
- Допустимые символы в названии события для SDK справка не называет (в веб-счётчике есть правило: латиница, цифры, дефис, нижнее подчёркивание). Переносить ли его на SDK, не сказано.
- React Native: у названия экрана подпись screenName в тексте и className в таблице методов SDK; в данных события лимит и формат не названы.
- Для Android deeplink-параметр описан как «релевантный url для web страницы» с примером https://rambler.ru, тогда как на iOS и React Native примеры настоящие deeplink (myapp://…).
- React Native: страница активации трекера описывает только activateSettings; активация нескольких проектов сразу в списке методов есть, а отдельного описания в этих страницах нет.
- Рисунок на странице iOS-deeplink в тексте не описан.