dependencies:
...
mytracker_sdk:
path: PATH_TO_SDK
...
Android api level 21 (android 5.0)
Разрешение android.permission.INTERNET
Разрешение android.permission.ACCESS_NETWORK_STATE
Разрешение com.google.android.gms.permission.AD_ID
Обязательные зависимости, которые будут добавлены автоматически:
Google Play Services (модули com.google.android.gms:play-services-ads-identifier, com.google.android.gms:play-services-appset)
Google Play Install Referrer (модуль com.android.installreferrer:installreferrer)
Huawei Media Services (модуль com.huawei.hms:hms-ads-identifier)
Минимальная поддерживаемая версия iOS — 12.4
xCode версии 12.4 или выше
Если необходим сбор данных о местоположении, то добавление разрешений на доступ к локации и запрос этих разрешений также является обязательным.
Для решения данной задачи можно воспользоваться Location Permission Plugin или реализовать запрос разрешений самостоятельно.
PATH_TO_SDK
и укажите его в качестве зависимости в pubspec.yaml вашего приложения:dependencies:
...
mytracker_sdk:
path: PATH_TO_SDK
...
Для инициализации трекера необходимо указать ваш SDK_KEY
. При необходимости до инициализации можно выполнить дополнительную конфигурацию трекера и параметров.
Данные по активности в приложении (запуски, сессии и пр.) собираются автоматически.
SDK_KEY
генерируется автоматически после того, как вы добавите ваше приложение в MyTracker.
Чтобы получить ключ, перейдите на страницу со списком приложений, выберите необходимое и во вкладке Обзор скопируйте ключ.
Обратите внимание, что для сборки приложения на разных платформах необходим отдельный SDK_KEY
для каждой из них.
// При необходимости настройте конфигурацию трекера
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
MyTrackerConfig trackerConfig = await MyTracker.getTrackerConfig();
// ...
// Настройте параметры трекера
// ...
// Инициализируйте трекер
await MyTracker.init(SDK_KEY);
Конфигурацию трекера можно произвести через экземпляр класса MyTrackerConfig
, доступный через метод MyTracker.getTrackerConfig()
.
Параметры трекера — через экземпляр класса MyTrackerParams
, который доступен через метод MyTracker.getTrackerParams()
.
TrackingLaunchEnabled: сбор данных о запусках приложения. По умолчанию true.
Future<MyTrackerConfig> setTrackingLaunchEnabled(boolean trackingLaunchEnabled)
LaunchTimeout: интервал в секундах, в течение которого не будет засчитываться новый запуск и прерываться сессия при сворачивании приложения. По умолчанию 30 секунд. Можно установить значение в диапазоне 30-7200 секунд.
Future<MyTrackerConfig> setLaunchTimeout(int seconds)
BufferingPeriod: интервал в секундах, в течение которого события будут накапливаться на устройстве перед отправкой на сервер. По умолчанию 900 секунд. Можно установить значение в диапазоне 1-86400 секунд.
Future<MyTrackerConfig> setBufferingPeriod(int seconds)
ForcingPeriod: интервал в секундах после установки или обновления приложения, в течение которого события будут незамедлительно отправляться на сервер без локальной буферизации. По умолчанию 0 секунд (незамедлительная отправка выключена). Можно установить значение в диапазоне 0-432000 секунд (5 суток).
Future<MyTrackerConfig> setForcingPeriod(int seconds)
TrackingLocationEnabled: сбор данных о местоположении. По умолчанию false.
Если ваше Android приложение запрашивает доступ к местоположению пользователя, рекомендуем включить передачу данных для более точной аналитики. В описании приложения в Google Play не забудьте указать «Да» в вопросе про сбор данных о местоположении.
Параметр выключен по умолчанию начиная с версии SDK 3.1.0
Future<MyTrackerConfig> setTrackingLocationEnabled(boolean trackingLocationEnabled)
Region: регион, где расположен сервер сбора статистики.
С 1 марта 2023г. параметр region
недействителен.
Вне зависимости от выбранного значения данные
будут отправляться на серверы, расположенные на территории Российской Федерации.
Чтобы выбрать другой регион,
обратитесь в службу поддержки
Необходимость изменить регион может возникнуть, например, в связи с требованиями законодательства. Доступные значения:
RegionEnum.RU — сервер, расположенный на территории Российской Федерации
RegionEnum.EU — сервер, расположенный на территории Европы
Future<MyTrackerConfig> setRegion(MyTrackerRegion region)
AutotrackingPurchaseEnabled: автоматический сбор данных о платежах в приложении. По умолчанию true.
Future<MyTrackerConfig> setAutotrackingPurchaseEnabled(boolean autotrackingPurchaseEnabled)
Включение/выключение режима отладки производится через
статические свойства класса MyTracker
. По умолчанию false.
Future setDebugMode(boolean debugMode)
Для сбора статистики не только по устройствам, но и по пользователям, установите параметр customUserId
.
Это уникальный идентификатор пользователя в вашем проекте, который вы присваиваете ему в момент регистрации.
Он должен оставаться неизменным, даже если пользователь авторизуется на другом устройстве.
Установив этот параметр, вы сможете оценить размер и активность аудитории приложения, вне зависимости от того,
на скольких устройствах пользователя установлено ваше приложение.
А также не будете терять историю накопленных по пользователю данных, если он решит сменить устройство. Подробнее см. раздел Трекинг.
Важно установить параметр до трекинга событий, чтобы передавать идентификатор пользователя с каждым полученным событием.
Future setUserInfo() async
{
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
// Установите пользовательский идентификатор
trackerParams.setCustomUserIds(["user_id_0", "user_id_1"]);
}
Если до установки customUserId
в приложении уже сформирована база зарегистрированных пользователей, то MyTracker не сможет получить данные о времени их регистрации и произвести точный расчёт Lifetime метрик.
Для таких пользователей Lifetime статистика будет считаться на дату первого полученного события с customUserId
.
Чтобы отключить трекинг пользователей, передайте пустое значение в параметре customUserId
.
События можно отправлять через статические методы класса MyTracker
.
Перед вызовом методов установите параметр customUserId,
чтобы с каждым полученным событием передавать идентификатор пользователя.
Доступны следующие методы для трекинга различных типов событий:
Событие регистрации.
Метод должен быть вызван сразу после того, как пользователь зарегистрируется в приложении.
Идентификатор пользователя — обязательный параметр, который должен быть передан в параметре userId
.
Future trackRegistrationEvent(String userId)
Событие авторизации.
Метод должен быть вызван сразу после того, как пользователь успешно авторизуется в приложении.
Идентификатор пользователя — обязательный параметр, который должен быть передан в параметре userId
.
Future trackLoginEvent(String userId)
Произвольное событие с заданным именем. Дополнительный параметр eventParams
позволяет задать
произвольные параметры ключ-значение для события. Максимальная длина имени, ключа и значения — 255
символов.
Future trackEvent(String name, Map<String, String>? eventParams)
Пример:
MyTracker.trackEvent("name", {"key_0": "value_0", "key_1": "value_1"});
Принудительная отправка всех событий и сброс таймера отправки.
SDK для снижения нагрузки на канал и минимизации влияния на производительность приложения
накапливает в буфер все события на устройстве перед отправкой на сервер и регулярно
отправляет собранные данные сжатым пакетом.
По умолчанию данные отправляются на сервер каждые 15 минут. Этот интервал можно настроить
через параметр bufferingPeriod
от 1 секунды до 1 суток.
Если пользователь закрыл приложение, то отправка будет произведена при следующем запуске.
Но некоторые события крайне важно получать в аналитику как можно раньше, особенно в первые
сессии после установки приложения.
В этом поможет метод flush()
.
Future flush()
Для передачи данных с вашего сервера на сервер MyTracker (например, неотслеживаемых данных, офлайн-событий и пр.),
может понадобиться специальный идентификатор устройства — instanceId
.
Идентификатор представляет собой значение UUID v4,
которое генерируется в момент первого запуска приложения и остаётся неизменным до удаления приложения (или данных приложения) с устройства.
Получить значение instanceId
можно с помощью статического метода класса MyTracker
(не следует использовать этот метод на главном потоке).
Future<String?> instanceId = MyTracker.getInstanceId()
Важно как можно раньше начать собирать instanceId
и отправлять на ваш сервер,
если вы используете его для передачи данных к S2S API.
Вместо instanceId
в запросах к API
можно указывать любой другой идентификатор устройства и/или идентификатор пользователя customUserID
(в этом случае данные будут формировать статистику по пользователю).
Подробнее