Перейти к основному содержимому

Mobile tracking и AppMetrica

Приложение клиента отправляет события своей аналитики. Mobile SDK передаёт типизированный product action; embedded player отдельно отправляет события ShopStory. Эти потоки измеряют разные действия: что измеряется.

Инструкция относится к native iOS и Flutter на iOS. Примеры старого WebView bridge и Android runtime к этой поставке не относятся.

Когда отправлять событие​

  1. Получите типизированный product action.
  2. Проверьте payload.feedProductId и найдите товар в каталоге приложения.
  3. Для перехода откройте PDP и при необходимости отправьте событие перехода.
  4. Для прямой корзины выполните Cart API с текущей сессией.
  5. После подтверждённого изменения отправьте add-to-cart из analytics adapter приложения.

Если оба действия открывают PDP, add-to-cart в этот момент отсутствует. Оно появится только после отдельного успешного добавления на PDP.

В native iOS delegate не имеет completion для корзины player. Flutter handler возвращает типизированный результат adapter, но он не является подтверждением изменения корзины для embedded player. Аналитика магазина должна опираться на Cart API.

Данные события​

ДанныеИсточник
Товарный IDПроверенный payload.feedProductId
Источник просмотраНеобязательный payload.source: ожидаемые live, vod, mini-player
SKU и quantityРезультат cart operation приложения
Цена и валютаРезультат Cart API, а не карточка из старого снимка
УспехПодтверждение изменения корзины
Order IDСистема заказов; для add-to-cart не нужен

source может отсутствовать или содержать неизвестное значение. В таком случае сохраните unknown в своей схеме; не восстанавливайте источник по URL и не подменяйте его предполагаемым Live. Название товара можно уточнить в каталоге приложения.

SDK payload не содержит подтверждённую цену покупки. Нулевая цена вместо неизвестной исказит денежные показатели. Согласуйте обработку неполных данных в analytics adapter.

AppMetrica​

Используйте E-commerce API версии AppMetrica, закреплённой в приложении. Для iOS ориентируйтесь на текущие классы AppMetrica и ECommerce; старые примеры с YMM* не являются инструкцией установки нового SDK.

После подтверждения Cart API создайте ECommerceProduct с товарным SKU и ECommerceCartItem с quantity и revenue. В revenue передаётся сумма по добавленной позиции с учётом количества и скидок, а не цена одной единицы. Событие ECommerce.addCartItemEvent(cartItem:) отправляется через AppMetrica.reportECommerce.

quantity и revenue описывают добавленные единицы. Если Cart API возвращает всю корзину, analytics adapter сначала выделяет результат текущего добавления.

Источник можно передать в product payload под согласованным ключом shopstory_source. Это поле схемы клиента, не автоматически добавляемое SDK событие.

Для Flutter вызов AppMetrica выполняет существующий analytics adapter приложения. Mobile SDK ShopStory не устанавливает AppMetrica и не включает analytics plugin вместо клиента.

Примеры поставщика: E-commerce, iOS Swift ECommerce API, поля ECommerceCartItem, iOS usage examples.

Применяйте принятый в приложении consent flow до передачи события в систему аналитики. Согласуйте его отдельно для аналитики приложения и embedded player. Публичный контракт ShopStory не задаёт универсальный метод отключения всех систем аналитики.

Native SDK получает параметры проекта, товарный ID, SDK/host version и сведения, нужные для media lifecycle. Embedded player имеет собственную аналитику. Полный состав данных конкретной версии и PrivacyInfo.xcprivacy проверяются по privacy-документации выданного пакета.

Не передавайте в product action или diagnostics auth tokens, cookies, платёжные данные, профиль покупателя или содержимое корзины. Analytics adapter клиента использует только поля своей согласованной схемы.

Проверка разработчиком и аналитиком​

СценарийОжидаемый результат
Открытие товара из playerPDP открыта; add-to-cart не отправлен
Подтверждённое добавлениеОдно событие с правильным товаром, ценой и quantity
Отказ Cart APIНет успешного add-to-cart
Потерянный ответИсход проверяется до события и повторной записи
Отсутствующий sourceunknown без выдуманного канала
Возврат из backgroundНет повторного cart event только из-за lifecycle
Повторная доставка действияНет второй cart operation и события без нового подтверждения
Consent запрещёнПоведение соответствует согласованной политике приложения

Проверьте сначала локальный analytics adapter, затем доставку и отчёт AppMetrica. Отсутствие записи в ShopStory не доказывает отсутствие заказа в системе магазина.