Flutter

Минимальные требования

Android

  • Android api level 14 (android 4.0)

  • Разрешение android.permission.INTERNET

  • Разрешение android.permission.ACCESS_NETWORK_STATE

Обязательные зависимости, которые будут добавлены автоматически:

iOS

  • Минимальная поддерживаемая версия iOS — 9.0

  • xCode версии 12.4 или выше

В случае, если нужна информация об IDFA/IDFV на iOS 14+, то необходимо получить разрешение от пользователя. Для этого можно использовать плагин App Tracking Transparency Plugin или реализовать запрос разрешений самостоятельно.

Данные о местоположении

Если необходим сбор данных о местоположении, то добавление разрешений на доступ к локации и запрос этих разрешений также является обязательным.

Для решения данной задачи можно воспользоваться Location Permission Plugin или реализовать запрос разрешений самостоятельно.

Приложения для Huawei App Store

В случае сборки приложения для Huawei App Store обязательно наличие в проекте подключенной библиотеки Huawei Media Services (модуль com.huawei.hms:hms-ads-identifier), для того, чтобы MyTracker мог получить OAID.

Интеграция

  1. Скачайте последнюю версию SDK.
  2. Добавьте скаченный файл в ваш проект по пути PATH_TO_SDK и укажите его в качестве зависимости в pubspec.yaml вашего приложения:
dependencies:
  ...
  mytracker_sdk:
    path: PATH_TO_SDK
  ...

Инициализация

Для инициализации трекера необходимо указать ваш SDK_KEY. При необходимости до инициализации, можно выполнить дополнительную конфигурацию трекера и параметров. Активность приложения (запуски, сессии и пр.) отслеживается автоматически.

SDK_KEY генерируется автоматически после того, как вы добавите ваше приложение в MyTracker. Чтобы получить ключ, перейдите на страницу со списком приложений, выберите необходимое и во вкладке Обзор скопируйте ключ. Обратите внимание, что для сборки приложения на разных платформах необходим отдельный SDK_KEY для каждой из них.

// При необходимости настройте конфигурацию трекера
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
MyTrackerParams trackerConfig = await MyTracker.getTrackerConfig();

// ...
// Настройте параметры трекера
// ...

// Инициализируйте трекер
await MyTracker.init(SDK_KEY);

API

Конфигурация трекера

Конфигурацию трекера можно произвести через экземпляр класса 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: отслеживание местоположения. По умолчанию true.

Future<MyTrackerConfig> setTrackingLocationEnabled(boolean trackingLocationEnabled)

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. Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события. Максимальная длина ключа и значения — 255 символов.

Future trackRegistrationEvent(String userId, Map<String, String>? eventParams)

Событие авторизации. Метод должен быть вызван сразу после того, как пользователь успешно авторизуется в приложении. Идентификатор пользователя — обязательный параметр, который должен быть передан в параметре userId. Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события. Максимальная длина ключа и значения — 255 символов.

Future trackLoginEvent(String userId, Map<String, String>? eventParams)

Произвольное событие с заданным именем. Дополнительный параметр 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()