Войти

Flutter

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

Android

  • Android api level 21 (android 5.0)

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

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

  • Разрешение com.google.android.gms.permission.AD_ID

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

iOS

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

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

  • Подключенные фреймворки AdSupport, SystemConfiguration, CoreTelephony, CoreData, UIKit, iAd, StoreKit, AdServices, and AppTrackingTransparency (можно использовать плагин App Tracking Transparency Plugin).

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

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

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

Интеграция

  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();
MyTrackerConfig 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: сбор данных о местоположении. По умолчанию 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()

S2S трекинг

Для передачи данных с вашего сервера на сервер MyTracker (например, неотслеживаемых данных, офлайн-событий и пр.), может понадобиться специальный идентификатор устройства — instanceId. Идентификатор представляет собой значение UUID v4, которое генерируется в момент первого запуска приложения и остаётся неизменным до удаления приложения (или данных приложения) с устройства.

Получить значение instanceId можно с помощью статического метода класса MyTracker (не следует использовать этот метод на главном потоке).

Future<String?> instanceId = MyTracker.getInstanceId()

Важно как можно раньше начать собирать instanceId и отправлять на ваш сервер, если вы используете его для передачи данных к S2S API.

Вместо instanceId в запросах к API можно указывать любой другой идентификатор устройства и/или идентификатор пользователя customUserID (в этом случае данные будут формировать статистику по пользователю). Подробнее

Была ли эта статья полезна?