"@mytracker/react-native-mytracker": "1.0.4"
Минимальная поддерживаемая версия Android — 5.0 (API Level 21).
Минимальная поддерживаемая версия iOS — 12.4.
dependencies
:
"@mytracker/react-native-mytracker": "1.0.4"
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');
Конфигурацию трекера можно произвести через метод 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 не забудьте указать «Да» в вопросе про сбор данных о местоположении.
Доступные значения:
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 платежам и подпискам.
Отслеживание платежей, если автоматическое отслеживание отключено (AutotrackingPurchaseEnabled = false
):
// product: required, StoreKitProduct
// transaction: required, StoreKitTransaction
// eventParams: optional, Map<key: string_255, value: string_255>
myTracker.trackStoreKitPurchase(product, transaction, eventParams)
Отслеживание платежей, если автоматическое отслеживание отключено (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)
Если вы используете собственную реализацию In-App Billing API,
для автоматического отслеживания платежей вам следует вызвать соответствующий метод MyTracker из метода действия onActivityResult
,
который запустил процесс платежа.
// resultCode: required, number
// purchaseData: required, Map
// dataSignature: required, String
myTracker.onActivityResult(resultCode, purchaseData, dataSignature)
Если вы используете Google Play Billing Library, для автоматического отслеживания платежей вам следует вызвать соответствующий метод MyTracker из метода onPurchasesUpdated слушателя BillingClient.
// responseCode: required, number
// purchaseData: required, Map
// dataSignature: required, String
myTracker.onPurchasesUpdated(responseCode, purchaseData, dataSignature)
Для передачи данных с вашего сервера на сервер MyTracker (например, неотслеживаемых данных, офлайн-событий и пр.),
может понадобиться специальный идентификатор устройства — instanceId
.
Идентификатор представляет собой значение UUID v4,
которое генерируется в момент первого запуска приложения и остаётся неизменным до удаления приложения (или данных приложения) с устройства.
Получить значение instanceId
можно с помощью статического метода класса myTracker
.
myTracker.getInstanceId()
Важно как можно раньше начать собирать instanceId
и отправлять на ваш сервер,
если вы используете его для передачи данных к S2S API.
Вместо instanceId
в запросах к API
можно указывать любой другой идентификатор устройства:
gaid
, androidId
, appSetId
,
idfa
, iosVendorId
,
и/или идентификатор пользователя customUserID
(в этом случае данные будут формировать статистику по пользователю).
Подробнее
На данный момент SDK React Native не поддерживает методы для работы с диплинками