iOS SDK
Краткое содержание
Проверьте перед установкой
- Требуется iOS 15.0+ или tvOS 15.0+
- Необходим ID потока (Flow ID). Если его нет, отправьте запрос на analytics.support@mts.ru
Шаг 1. Подключение SDK
- Через CocoaPods: добавьте в Podfile указанные строки и выполните
pod install. - Через Swift Package Manager: добавьте URL проекта в Xcode.
Шаг 2. Инициализация SDK
- Импортируйте библиотеку
import MTAnalytics. - Настройте конфигурацию с уникальным
flowIdв методеapplication(_:didFinishLaunchingWithOptions:).
Шаг 3. Конфигурация библиотеки
- Установите таймауты для активной и фоновой сессии (по умолчанию 1800 сек).
- Ограничьте количество событий в хранилище (по умолчанию 20 000).
- Настройте отправку событий в роуминге (по умолчанию включена).
Шаг 4. Отправка событий
- Создайте экземпляр события с обязательными полями
eventTypeиeventName. - Используйте метод
track(event:)для отправки события.
Дополнительные методы библиотеки
- Установите
userIdдля связи событий с пользователем. - Настройте
User-Agentи локацию вручную. - Получите информацию о версии SDK через
sdkVersionиsdkBuildNumber.
Шаг 5. Просмотр данных
Статистика доступна в отчётах МТС Аналитики и через Data API.
Версия 6.4.0
Чтобы данные передавались от приложения в МТС Аналитику, настройте и установите SDK (счётчик). В этой статье пошагово описан процесс установки для разработчиков.
Проверьте перед установкой
- iOS 15.0+
- tvOS 15.0+
- наличие ID потока (Flow ID)
Если вы не получили ID потока, отправьте письмо на analytics.support@mts.ru с темой «Получение Flow ID». Идентификатор нужен для отправки данных приложения в МТС Аналитику.
Шаг 1. Подключение SDK
Варианты добавления библиотеки MTAnalytics в проект
- CocoaPods
- Swift Package Manager
Добавьте в Podfile
pod 'GRDB.swift', git: 'https://github.com/groue/GRDB.swift.git', tag: 'v6.29.3'
pod 'MTAnalytics'
Добавьте ссылку на библиотеку MTAnalytics в Podfile
source 'https://github.com/MTSWebServices/mts-analytics-ios-sdk'
Сохраните Podfile и введите pod install в Терминале для установки библиотеки.
-
Откройте Xcode project.
-
Выберите File — Add Packages. В поиск добавьте URL проекта и нажмите Add Package:
https://github.com/MTSWebServices/mts-analytics-ios-sdk
https://github.com/MTSWebServices/mts-analytics-static-swiftpm-ios-sdk
Шаг 2. Инициализация SDK
- Для импорта библиотеки добавьте в проект
import MTAnalytics
- Инициализируйте библиотеку в методе
application(_:didFinishLaunchingWithOptions:)вашегоUIApplicationDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// Создание config с уникальным flowid
let configuration = MTAnalyticsConfiguration(flowId: "your-flow-id")
// Активация config
MTAnalyticsApp.configure(configuration)
}
Шаг 3. Конфигурация библиотеки
Настройте работу SDK и параметры библиотеки. Инициализация конфигурации:
let configuration = MTAnalyticsConfiguration(flowId: "FLOW_ID")
Завершение сессии
Настройка времени автоматического завершения фоновой и активной сессии
configuration.activeTimeout = 1800
configuration.backgroundTimeout = 1800
| Тип сессии | Описание |
|---|---|
ActiveTimeout | Длительность сессии, если приложение будет открыто до таймаута |
BackgroundTimeout | Длительность сессии, если активность в приложение остановилась, но оно будет открыто в фоновом режиме до таймаута |
Возможные значения:
- По умолчанию длительность сессии: 1800 сек.
- Минимальное значение: 900 сек.
- Максимальное значение: 86400 сек.
Cессия завершится только при окончательном закрытии приложении.
Аккумуляция событий в хранилище
Настройка количества событий в хранилище для отправки. Новые события будут вытеснять поступившие ранее.
configuration.eventStorageLimit = 20 000
Возможные значения:
- По умолчанию количество событий: 20 000
- Максимальное количество событий: 20 000
- Минимальное количество событий: 3 000
Настройка роуминга
Настройка отправки событий в роуминговый зоне. По умолчанию отправка событий включена
configuration.networkTraffic = .on
Шаг 4. Отправка событий
Создайте экземпляр события и передайте его. Чтобы события отправлялись корректно, настройте пары ключ-значение параметров, которые планируете отслеживать.
Типы событий
Подробнее про типы событий и заполнение полей
Поля eventType и eventName — обязательные. Если их не заполнить, параметры событий передаваться не будут.
1. Создать экземпляр события
let event = MTAppEvent(
eventType: .event,
eventName: String,
screenName: String?,
parameters: [String: Any?]?
)
В качестве ключей поля parameters в MTPerformanceEvent, MTScreen, MTError рекомендуем использовать MTAppEventDefaults.
2. Настроить отправку экземпляра события
Метод отправки общий для всех типов событий
MTAnalyticsApp.analytics?.track(event: event)
Дополнительные методы библиотеки
Установка User ID
Используйте глобальный идентификатор userId, чтобы связывать события с пользователем
MTAnalyticsApp.analytics?.setUserId("user_id")
После установки он будет автоматически отправляться вместе с событиями.
Есть 2 способа передачи этого идентификатора пользователя. Если userId передаётся в событии MTAppEvent, то используется это значение. Если нет, применяется глобальный userId, установленный через setUserId.
Очистка userId
Для очистки userId вызовите:
MTAnalyticsApp.analytics?.setUserId(nil)
Новые события будут формироваться без userId, события в локальной очереди отправки не изменятся.
Установка User-Agent
Раньше User-Agent собирался автоматически, теперь его нужно установить вручную.
User-Agent — это строка, которую приложение отправляет на сервер в HTTP-запросе для идентификации себя. Используйте, чтобы передавать информацию о типе, версии и других характеристиках приложения.
MTAnalyticsApp.analytics?.setUserAgent("your_user_agent")
После установки значение будет автоматически добавляться в заголовки всех последующих HTTP-запросов SDK.
Очистка User-Agent
Для очистки вызовите
MTAnalyticsApp.analytics?.setUserAgent(nil)
Новые HTTP-запросы будут отправляться без заголовка User-Agent.
Установка локации
Чтобы регион определялся точнее, передавайте данные о локации в опциональные публичные методы. SDK МТС Аналитики не собирает их автоматически
MTAnalyticsApp.analytics?.setLocation(CLLocation(latitude: latitude, longitude: longitude))