myTracker — Мультиплатформенная система аналитики и атрибуции на базе технологий Mail.ru Group.
- Android api level 21 (Android 5.0)
- Разрешение
android.permission.INTERNET
- Разрешение
android.permission.ACCESS_NETWORK_STATE
Обязательные зависимости, которые будут добавлены автоматически:
- Google Play Services (модуль com.google.android.gms:play-services-ads-identifier)
- Google Play Install Referrer (модуль com.android.installreferrer:installreferrer)
- Минимальная поддерживаемая версия iOS - 12.4
В случае, если необходимо получение информации об IDFA/IDFV на iOS 14+, то необходимо получение разрешения от пользователя.
Для решения, возможно использовать App Tracking Transparency Plugin. Или реализовать запрос разрешений самостоятельно.
Если необходим сбор данных о местоположении, то добавление разрешений на доступ к локации и запрос этих разрешений также является обязательным.
Для решения данной задачи можно воспользоваться Location Permission Plugin. Или реализовать запрос разрешений самостоятельно.
Если вы делаете сборку приложения для Huawei App Store, то обязательно наличие в проекте подключенной библиотеки Huawei Media Services (модуль com.huawei.hms:hms-ads-identifier), для того, чтобы myTracker мог получить OAID.
Используйте flutter для добавления зависимости mytracker_sdk
в файл pubspec.yaml
:
flutter pub add mytracker_sdk
или добавьте зависимость вручную в файл pubspec.yaml
:
dependencies:
...
mytracker_sdk:
...
Скачайте SDK, добавьте его в ваш проект по некоторому пути PATH_TO_SDK
и укажите его в качестве зависимости в pubspec.yaml
вашего приложения:
dependencies:
...
mytracker_sdk:
path: PATH_TO_SDK
...
При инициализации трекера необходимо указать ваш appId.
При необходимости до инициализации, можно выполнить дополнительную конфигурацию трекера и параметров.
Активность приложения (запуски, сессии) отслеживается автоматически.
// При необходимости настраиваем параметры
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
MyTrackerParams trackerConfig = await MyTracker.getTrackerConfig();
// ...
// Настройка параметров трекера
// ...
// Инициализируем экземпляр
await MyTracker.init(SDK_KEY);
Конфигурацию трекера можно произвести через экземпляр класса MyTrackerConfig
, доступный через метод MyTracker.getTrackerConfig()
.
Параметры трекера можно настроить через экземпляр класса MyTrackerParams
, который доступен через метод MyTracker.getTrackerParams()
.
Экземпляр данного класса отвечает за конфигурацию трекера и предоставляет следующие методы.
Future<MyTrackerConfig> setTrackingLaunchEnabled(boolean trackingLaunchEnabled)
Отслеживание запусков приложения. По умолчанию true.
Future<MyTrackerConfig> setLaunchTimeout(int seconds)
Интервал в секундах, в течение которого не будет засчитываться новый запуск и прерываться сессия при сворачивании приложения.
По умолчанию 30 секунд. Можно установить значение в диапазоне 30-7200 секунд.
Future<MyTrackerConfig> setBufferingPeriod(int seconds)
Интервал в секундах, в течение которого события будут накапливаться на устройстве перед отправкой на сервер.
По умолчанию 900 секунд. Можно установить значение в диапазоне 1-86400 секунд.
Future<MyTrackerConfig> setForcingPeriod(int seconds)
Интервал в секундах после установки или обновления приложения, в течение которого события будут незамедлительно отправляться на сервер.
По умолчанию 0 секунд (незамедлительная отправка выключена). Можно установить значение в диапазоне 0-432000 секунд (5 суток).
Future<MyTrackerConfig> setAutotrackingPurchaseEnabled(boolean autotrackingPurchaseEnabled)
Автоматическое отслеживание покупок в приложении.
По умолчанию true.
Future<MyTrackerConfig> setTrackingLocationEnabled(boolean trackingLocationEnabled)
Отслеживание местоположения.
По умолчанию true.
Future<MyTrackerConfig> setRegion(MyTrackerRegion region)
Установка региона сервера приёма данных.
Доступные значения:
- MyTrackerRegion.EU - Европа.
- MyTrackerRegion.RU - РФ.
Future<MyTrackerConfig> setProxyHost(@Nullable String proxyHost)
Установка прокси-хоста сервера приёма данных.
Экземпляр данного класса предназначен для настройки пользовательских параметров.
Пользовательские параметры могут быть установлены в любой момент работы приложения.
Future setUserInfo() async
{
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
// Устанавливаем пол
await trackerParams.setAge(22);
// Устанавливаем возраст
await trackerParams.setGender(MyTrackerGender.FEMALE);
// Устанавливаем айди
trackerParams.setCustomUserIds(["user_id_0", "user_id_1"]);
//Устанавливаем адреса электронной почты
trackerParams.setEmails(["address1@example.com", "address2@example.com"]);
//Устанавливаем номера телефонаов
trackerParams.setPhones(["84953332211", "84953332212", "84953332213"]);
}
Включение/выключение режима отладки производится через статические методы класса MyTracker.
Future setDebugMode(boolean debugMode)
Включение/выключение режима отладки.
По умолчанию false.
События можно отправлять через статические методы класса MyTracker.
Доступны следующие методы для трекинга различных типов событий:
Future trackLoginEvent(String userId, String? vkConnectId, Map<String, String>? eventParams)
Событие логина.
Обязательный параметр userId задаёт идентификатор пользователя.
Дополнительный параметр vkConnectId задаёт VK идентификатор пользователя.
Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события.
Максимальная длина ключа и значения - 255 символов.
Future trackRegistrationEvent(String userId, String? vkConnectId, Map<String, String>? eventParams)
Событие регистрации.
Обязательный параметр userId задаёт идентификатор пользователя.
Дополнительный параметр vkConnectId задаёт VK идентификатор пользователя.
Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события.
Максимальная длина ключа и значения - 255 символов.
Future trackEvent(String name, Map<String, String>? eventParams)
Произвольное событие с заданным именем.
Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события.
Максимальная длина ключа и значения - 255 символов.
Например:
MyTracker.trackEvent("name", {"key_0": "value_0", "key_1": "value_1"});
Future flush()
Принудительная отправка всех событий и сброс таймера отправки.