<!-- Canonical: https://docs.shopstory.live/docs/guide/analytics -->

# Аналитика и события

У ShopStory и системы аналитики магазина разные источники данных. Перед подключением определите, какой результат нужен: взаимодействия с видео, добавления в корзину или заказы. Счётчики этих действий нельзя сравнивать как одну метрику.

| Действие | Что подтверждено | Что оно не подтверждает |
| --- | --- | --- |
| Показ mini-player | Виджет был показан по правилам проекта | Просмотр полного видео или покупку |
| Открытие player | Пользователь открыл просмотр | Начало checkout |
| Buy intent | Пользователь нажал «Купить» в ShopStory | Успех Cart API |
| Подтверждённое добавление | Система магазина приняла изменение корзины | Заказ, оплату или доставку |
| Заказ | Система магазина зарегистрировала заказ | Оплату, отсутствие отмены и возврата |
| Оплаченная выручка | Платёж подтверждён системой магазина | Чистую выручку после возвратов без их отдельного учёта |

В статистике ShopStory клик «Купить» учитывается как Buy intent, даже если Cart API затем вернул ошибку. В E-commerce аналитике магазина добавление отправляется после подтверждения корзины. Разница между этими числами ожидаема.

Клик по фото или названию товара открывает PDP и не является Buy intent. UTM описывает источник перехода, а не результат покупки.

## Выбрать инструкцию

- [Web: Яндекс Метрика, GA4 и UTM](<https://docs.shopstory.live/docs/guide/analytics-web>) — подключение, формат событий и проверка на сайте.
- [Mobile: события приложения и AppMetrica](<https://docs.shopstory.live/docs/guide/analytics-mobile>) — tracking после product action без собственного WebView bridge.
- [Добавление в корзину](<https://docs.shopstory.live/docs/guide/add-to-cart>) — когда разрешено подтвердить действие.
- [Безопасность](<https://docs.shopstory.live/docs/operations/security>) — данные, которые не должны попадать в события и логи.

## Что согласовать до разработки

1. Целевую систему: кабинет ShopStory, Яндекс Метрика, GA4 или AppMetrica.
2. Источник каждого события и единственного отправителя для каждой системы.
3. Строковый товарный ID, совпадающий с `feedProductId`; правила SKU и quantity.
4. Источник цены: снимок каталога, фактический результат Cart API или заказ.
5. Способы подключения: основной Web SDK, standalone PiP, native iOS, Flutter на iOS.
6. Consent flow, разрешённые поля и тестовые данные.
7. Критерий успеха: событие в браузере или приложении, запрос к системе аналитики и запись в её отчёте.

ShopStory подтверждает доступность выбранного tracking-маршрута для проекта. Подключение SDK само по себе не включает все события и системы аналитики.

## Ограничения attribution

Tracking переходов и событий не доказывает, что видео стало причиной покупки. Для оценки эффекта нужны сопоставимые группы или эксперимент.

Наблюдение E-commerce событий на PDP после mini-player подключается отдельно. Для подтверждённой связи нужны корректный товарный ID, сохранённый путь просмотра и SDK на нужной странице. Обычный cart add на PDP не следует автоматически относить к видео.

Сбор событий заказа требует отдельного согласования и SDK на странице, где магазин публикует событие заказа. Отсутствие данных с этой страницы означает отсутствие покрытия, а не нулевые продажи. Заказы, оплаты, отмены и возвраты остаются отдельными событиями системы магазина.

## Приёмка аналитики

Проверьте успешное добавление, отказ Cart API, timeout с неизвестным результатом, повторный callback и обычный переход на PDP. Для каждого сценария сохраните ожидаемое и фактическое событие без cookies, tokens и данных покупателя.

Аналитик проверяет отчёт и единицы измерения: события, товары, quantity, сумму и валюту. Разработчик проверяет момент отправки и отсутствие дублей. Наличие объекта в `dataLayer` ещё не подтверждает получение события системой аналитики.
