Библиотека и Android-приложение
Краткое содержание
- Подходит для библиотек, интегрируемых в приложения с МТС Аналитикой, и приложений, передающих данные в МТС Аналитику.
- Ранее SDK мог вызывать конфликты версий, но новый способ позволяет избежать этого, встраивая SDK только в приложение через интерфейс
AnalyticsHostDelegate.
Порядок действий для библиотек
- Шаг 1. Добавьте интерфейс
AnalyticsHostDelegateв публичный API, заменив префикс на название продукта для избежания конфликтов. - Шаг 2. Добавьте метод
setAnalyticsHostDelegateдля инициализации делегата на стороне приложения. - Шаг 3. Передавайте события через делегат после получения технического задания от МТС.
Порядок действий для приложений
- Шаг 1. Реализуйте интерфейс
AnalyticsHostDelegate, предоставленный библиотекой. - Шаг 2. Инициализируйте делегат через метод SDK, например,
ecoSdk1Api.setAnalyticsHostDelegate(this). - Шаг 3. Подготовьте конфигурацию МТС Аналитики для каждой библиотеки с указанием
flowId. - Шаг 4. Отправляйте события в МТС Аналитику через реализованные методы делегата, используя
MTSAnalytics.
Такой способ интеграции подходит для:
- Библиотек, которые интегрируются в приложения с МТС Аналитикой.
- Приложений, библиотекам которых необходимо передать свои данные в МТС Аналитику.
Если библиотека встраивается в приложение вне экосистемы МТС, интеграция с МТС Аналитикой проходит стандартным образом.
Ранее SDK Аналитики встраивался и в библиотеку, и в приложение. Из-за этого могли возникнуть конфликты версий библиотек и зависимостей. Описанный ниже способ позволяет этого избежать.
Библиотека предоставляет интерфейс AnalyticsHostDelegate, возможность установить его instance и передаёт данные событий разметки в delegate. Приложение реализует предложенный интерфейс, передаёт instance делагата в библиотеку и обрабатывает данные от делегата. Так, SDK МТС Аналитики будет встроен только в приложение.
Порядок действий для библиотек
Шаг 1. Добавить API
Добавьте в пакет публичного API интерфейс
interface MyProductAnalyticsHostDelegate {
fun sendEvent(flowId: String, eventName: String, data: Map<String, Any?>?) // Стандартные события
fun sendError(flowId: String, error: Throwable, errorMessage: String?, data: Map<String, Any?>?) // События ошибок
suspend fun getHostSessionQueryAsync(url: String): String // События кросс-платформенных сессий
fun getHostSessionQuery(url: String): String
}
Замените префикс MyProduct на название своего продукта. Например
interface EcoSdk1AnalyticsHostDelegate
Это позволит избежать конфликта имён классов в приложении при добавлении нескольких библиотек. Приложение сможет легко найти название библиотеки для дальнейшей интеграции.
Шаг 2. Добавить метод
Добавьте в публичное API метод для инициализации делегата
fun setAnalyticsHostDelegate(delegate: EcoSdk1AnalyticsHostDelegate)
Приложение проинициализи рует делегат на своей стороне.
Шаг 3. Передавать события
Если вы планируете отслеживать определённые события, например, клики на конкретные кнопки, направьте на analytics.support@mts.ru бизнес-требование для получения технического задания на разметку.
После получения технического задания передайте его команде разработки. Для экосистемных продуктов рекомендуем использовать экосистемную разметку МТС, так как это гарантирует корректную передачу событий в МТС Аналитику.
Начните отправлять данные событий разметки через методы делагата. События будут пере даваться в делегат, а затем — в Аналитику только после того, как приложение проинициализирует делегат.
Порядок действий для приложений
- Завершена интеграция с МТС Аналитикой
- Библиотека предоставила интерфейс
AnalyticsHostDelegate. Если библиотека добавила данный публичный интерфейс, он будет отображаться в её пакете