Войти

React Native

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

  • Минимальная поддерживаемая версия Android — 5.0 (API Level 21).

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

Интеграция

  1. Скачайте последнюю версию SDK через пакетный менеджер NPM. Добавьте следующую строку в файл package.json в ключ dependencies:
    "@mytracker/react-native-mytracker": "1.0.4"
  2. Чтобы использовать MyTracker в своем приложении, импортируйте RNMyTracker:
    import RNMyTracker from '@mytracker/react-native-mytracker';

Если вам нужно использовать покупки StoreKit, импортируйте специальные классы:

import { StoreKitProduct, StoreKitProductDiscount, StoreKitProductSubscriptionPeriod, StoreKitTransaction } from '@mytracker/react-native-mytracker';

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

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

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

const myTracker = RNMyTracker;
myTracker.initTracker('SDK_KEY');

API

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

Конфигурацию трекера можно произвести через метод myTracker.getTrackerConfig(). Параметры трекера — через метод myTracker.getTrackerParams().

const config = myTracker.getTrackerConfig()
const params = myTracker.getTrackerParams()

TrackingLaunchEnabled: сбор данных о запусках приложения. По умолчанию true.

config.getTrackingLaunchEnabled()
// isEnabled: required, bool
config.setTrackingLaunchEnabled(isEnabled)

LaunchTimeout: интервал в секундах, в течение которого не будет засчитываться новый запуск и прерываться сессия при сворачивании приложения. По умолчанию 30 секунд. Можно установить значение в диапазоне 30-7200 секунд.

config.getLaunchTimeout()
// seconds: required, number in range
config.setLaunchTimeout(seconds)

BufferingPeriod: интервал в секундах, в течение которого события будут накапливаться на устройстве перед отправкой на сервер. По умолчанию 900 секунд. Можно установить значение в диапазоне 1-86400 секунд.

config.getBufferingPeriod()
// seconds: required, number in range
config.setBufferingPeriod(seconds)

ForcingPeriod: интервал в секундах после установки или обновления приложения, в течение которого события будут незамедлительно отправляться на сервер без локальной буферизации. По умолчанию 0 секунд (незамедлительная отправка выключена). Можно установить значение в диапазоне 0-432000 секунд (5 суток).

config.getForcingPeriod()
// seconds: required, number in range
config.setForcingPeriod(seconds)

AutotrackingPurchaseEnabled: автоматический сбор данных о платежах в приложении. По умолчанию true.

config.getAutotrackingPurchaseEnabled()
// isEnabled: required, boolean
config.setAutotrackingPurchaseEnabled(isEnabled)

TrackingLocation: сбор данных о местоположении. По умолчанию Active для iOS и None для Android.

Если ваше Android приложение запрашивает доступ к местоположению пользователя, рекомендуем включить этот параметр для более точной аналитики. В описании приложения в Google Play не забудьте указать «Да» в вопросе про сбор данных о местоположении.

Доступные значения:

  • LocationTrackingMode.NONE — местоположение не отслеживается;
  • LocationTrackingMode.CACHED — трекинг местоположения из кеша;
  • LocationTrackingMode.ACTIVE — запрос текущего местоположения, если это возможно, и получение данных из кеша.
config.getTrackingLocation()
// mode: required, enum from getConstants.LOCATION
config.setTrackingLocation(mode)

Region: регион, где расположен сервер сбора статистики.

С 1 марта 2023г. параметр region недействителен. Вне зависимости от выбранного значения данные будут отправляться на серверы, расположенные на территории Российской Федерации. Чтобы выбрать другой регион, обратитесь в службу поддержки

Необходимость изменить регион может возникнуть, например, в связи с требованиями законодательства. Доступные значения:

  • RegionEnum.RU — сервер, расположенный на территории Российской Федерации

  • RegionEnum.EU — сервер, расположенный на территории Европы

config.getRegion()
// region: required, enum from getConstants.REGION
config.setRegion(region)

Включение/выключение режима отладки

Включение/выключение режима отладки производится через статические свойства класса myTracker. По умолчанию false.

myTracker.setDebugMode(true); // enable/disable debug mode, false by default

Трекинг пользователей

Для сбора статистики не только по устройствам, но и по пользователям, установите параметр customUserId. Это уникальный идентификатор пользователя в вашем проекте, который вы присваиваете ему в момент регистрации. Он должен оставаться неизменным, даже если пользователь авторизуется на другом устройстве. Установив этот параметр, вы сможете оценить размер и активность аудитории приложения, вне зависимости от того, на скольких устройствах пользователя установлено ваше приложение. А также не будете терять историю накопленных по пользователю данных, если он решит сменить устройство. Подробнее см. раздел Трекинг.

Важно установить параметр до трекинга событий, чтобы передавать идентификатор пользователя с каждым полученным событием.

const params = myTracker.getTrackerParams()
// customUserIds: required, array
params.setCustomUserIds(customUserIds)

Если до установки customUserId в приложении уже сформирована база зарегистрированных пользователей, то MyTracker не сможет получить данные о времени их регистрации и произвести точный расчёт Lifetime метрик. Для таких пользователей Lifetime статистика будет считаться на дату первого полученного события с customUserId.

Чтобы отключить трекинг пользователей, передайте пустое значение в параметре customUserId.

Трекинг событий

События можно отправлять через статические методы класса myTracker. Перед вызовом методов установите параметр customUserId, чтобы с каждым полученным событием передавать идентификатор пользователя.

Доступны следующие методы для трекинга различных типов событий:

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

// userId: required, string
myTracker.trackRegistrationEvent(userId)

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

// userId: required, string
myTracker.trackLoginEvent(userId)

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

// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackInviteEvent(eventParams) 

Событие достижения уровня. Можно отправлять как с указанием номера уровня (параметр level), так и без. Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события. Максимальная длина ключа и значения — 255 символов.

// level: optional, number
// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackLevelAchieved(level, eventParams) 

Произвольное событие с заданным именем. Дополнительный параметр eventParams позволяет задать произвольные параметры ключ-значение для события. Максимальная длина имени, ключа и значения — 255 символов.

// name: required, string_255
// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackEvent(name, eventParams)

Принудительная отправка всех событий и сброс таймера отправки.

SDK для снижения нагрузки на канал и минимизации влияния на производительность приложения накапливает в буфер все события на устройстве перед отправкой на сервер и регулярно отправляет собранные данные сжатым пакетом. По умолчанию данные отправляются на сервер каждые 15 минут. Этот интервал можно настроить через параметр bufferingPeriod от 1 секунды до 1 суток. Если пользователь закрыл приложение, то отправка будет произведена при следующем запуске. Но некоторые события крайне важно получать в аналитику как можно раньше, особенно в первые сессии после установки приложения. В этом поможет метод flush().

myTracker.flush()

Трекинг платежей

MyTracker собирает данные по in-app платежам и подпискам.

Ручной трекинг платежей для iOS

Отслеживание платежей, если автоматическое отслеживание отключено (AutotrackingPurchaseEnabled = false):

// product: required, StoreKitProduct
// transaction: required, StoreKitTransaction
// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackStoreKitPurchase(product, transaction, eventParams)

Ручной трекинг платежей для Android

Отслеживание платежей, если автоматическое отслеживание отключено (AutotrackingPurchaseEnabled = false). Только для платежей Google.

// skuDetails: required, Map
// purchaseData: required, Map
// dataSignature: required, String
// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackGooglePlayPurchase(skuDetails, purchaseData, dataSignature, eventParams)

Google Play In-App Billing API

Если вы используете собственную реализацию In-App Billing API, для автоматического отслеживания платежей вам следует вызвать соответствующий метод MyTracker из метода действия onActivityResult, который запустил процесс платежа.

// resultCode: required, number
// purchaseData: required, Map
// dataSignature: required, String
myTracker.onActivityResult(resultCode, purchaseData, dataSignature)

Google Play Billing Library

Если вы используете Google Play Billing Library, для автоматического отслеживания платежей вам следует вызвать соответствующий метод MyTracker из метода onPurchasesUpdated слушателя BillingClient.

// responseCode: required, number
// purchaseData: required, Map
// dataSignature: required, String
myTracker.onPurchasesUpdated(responseCode, purchaseData, dataSignature)

S2S трекинг

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

Получить значение instanceId можно с помощью статического метода класса myTracker.

myTracker.getInstanceId() 

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

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

На данный момент SDK React Native не поддерживает методы для работы с диплинками

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