Отслеживание действий пользователя (трекинг) в мобильном приложении

Возможности

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

С подключенным трекингом вам доступны такие функции, как:

  • Сегментация по действиям пользователя в приложении
  • Сегментация по покупательской активности
  • Отслеживание выручки, количества заказов и среднего чека для каждого пользователя

Настройка отслеживания для 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)
Последнее изменение: 2024.01.19 10:35 — Anastasia Aniskova