Отслеживание действий пользователя (трекинг) в мобильном приложении
Возможности
Вы можете отслеживать поведение пользователя в вашем мобильном приложении, записывать его активность, действия с товарами, заказы и прочее. По полученным данным сегментировать базу по покупательской или пользовательской активности, что позволит проводить маркетинговые кампании намного эффективнее.
С подключенным трекингом вам доступны такие функции, как:
- Сегментация по действиям пользователя в приложении
- Сегментация по покупательской активности
- Отслеживание выручки, количества заказов и среднего чека для каждого пользователя
Настройка отслеживания для iOS
1. Подключение библиотеки
Настройте мобильное приложение согласно инструкции: iOS
Подключите мобильное приложение к enKod по инструкции: привязка_приложения_в_enkod
2. Настройка отслеживания
Для использования функционала отслеживания (трекинга) необходимо вызвать необходимый метод без инициализации экземпляра класса.
- Добавление товара в корзину
TrackerService.productAdd(Product())
- Удаление товара из корзины
TrackerService.productRemove(Product())
- Добавление товара в избранное
TrackerService.productLike(Product())
- Удаление товара из избранного
TrackerService.productDislike(Product())
- Покупка
Добавленные в корзину товары с помощью метода «productAdd» в данном случае не применяются. Для данного метода необходимо заполнить поле «items».
TrackerService.productBuy(Order())
- Открытие страницы с товаром
TrackerService.productOpen(Product())
- Захват емейла (логин, регистрация)
TrackerService.subscribe(Subscriber())
- Захват дополнительной информации без привязки к емейлу
TrackerService.addExtrafields([String:Any])
- Открытие окна приложения
TrackerService.pageOpen(String)
Структура Subscriber:
public struct Subscriber { public var email: String? //обязательное public var phone: String? //необязательное public var firstName: String? //необязательное public var lastName: String? //необязательное public var groups: [Any]? //необязательное, массив с id групп рассылок и/или системными именами групп рассылок, которые должны быть присвоены подписчику при добавлении в платформу public var mainChannel: String? //необязательное, указывается в случае, если одновременно передается емейл и телефон (по умолчанию емейл) public var integrations: [Int64]? //необязательное public var extrafields: [String:Any]? //необязательное, список полей данных }
Структура Order:
public struct Order { public var orderId: String? //необязательное, по умолчанию генерируется UUID public var items: [Product]? //обязательное public var sum: Float64? //необязательное public var price: Float64? //обязательное для модуля рекомендаций (если присутствует) public var count: Int64? //обязательное для модуля рекомендаций (если присутствует) public var fields: [String:Any]? //необязательное, передается любая дополнительная информацию по заказу }
Структура Product:
public struct Product { public var id: String //обязательное public var count: Int64? //необязательное, по умолчанию 1 public var fields: [String:Any]? //необязательное, передается любая дополнительная информацию по товару }
Настройка отслеживания для Android
1. Подключение библиотеки
Настройте мобильное приложение согласно инструкции: Android
Подключите мобильное приложение к enKod по инструкции: привязка_приложения_в_enkod
2. Настройка отслеживания
Для использования функционала отслеживания необходимо вызвать необходимый метод без инициализации экземпляра класса.
Действия с товарами
Объекты с корзиной и избранным инициализируются при каждом запуске приложения.
Класс данных Product имеет следующую структуру:
data class Product( var id: String, //обязательное var groupId: String?, //обязательное для модуля рекомендаций (если присутствует) var count: Int?, //необязательное, по умолчанию 1 val fields: Map<String,Any>? //необязательное, передается любая дополнительная информацию по товару )
Класс данных Order имеет следующую структуру:
data class Order( var id: String?, //необязательное, по умолчанию генерируется UUID var items: ArrayList<Product>, //обязательное var sum: Float?, //необязательное var price: Float?, //обязательное для модуля рекомендаций (если присутствует) var count: Int?, //обязательное для модуля рекомендаций (если присутствует) var fields: Map<String, Any>? //необязательное, передается любая дополнительная информацию по заказу )
- Добавление товара в корзину
EnkodPushLibrary.ProductActions().AddToCart(Product())
- Удаление товара из корзины
EnkodPushLibrary.ProductActions().RemoveFromCart(Product())
- Добавление товара в избранное
EnkodPushLibrary.ProductActions().AddToFavourite(Product())
- Удаление товара из избранного
EnkodPushLibrary.ProductActions().RemoveFromFavourite(Product())
- Покупка
Добавленные в корзину товары с помощью метода «AddToCart» в данном случае не применяются. Для данного метода необходимо заполнить поле «items».
EnkodPushLibrary.ProductActions().ProductBuy(Order())
- Открытие страницы с товаром
EnkodPushLibrary.ProductActions().ProductOpen(Product())
Действия с подписчиком
Класс данных SubscriberInfo имеет следующую структуру:
data class SubscriberInfo( val email: String?, //обязательное val phone: String?, //необязательное val firstName: String?, //необязательное val lastName: String?, //необязательное val groups: Array<Any>?, //необязательное, массив с id групп рассылок и/или системными именами групп рассылок, которые должны быть присвоены подписчику при добавлении в платформу val integrations: Array<Int>?, //необязательное val extrafields: HashMap<String,Any?>?, //необязательное, список полей данных val mainChannel: String? //необязательное, указывается в случае, если одновременно передается емейл и телефон (по умолчанию емейл) )
- Захват емейла (логин, регистрация)
EnkodPushLibrary.Subscriber().Subscribe(SubscriberInfo())
- Захват дополнительной информации без привязки к емейлу
EnkodPushLibrary.Subscriber().AddExtraFields(Map<String, Any>)
- Открытие окна приложения
EnkodPushLibrary.Subscriber().PageOpen(String)