Дублирование покупок и выручки в Метрике почти всегда означает, что событие электронной коммерции срабатывает более одного раза для одного и того же реального заказа.
Частая причина — повторная загрузка страницы «Спасибо»
Если событие purchase отправляется в момент загрузки страницы подтверждения заказа, а не при самом факте оформления, обновление страницы клиентом (F5) или повторный заход по сохранённой ссылке заново отправит то же событие в Метрику как новую покупку.
Решение — привязка к уникальному идентификатору заказа
Событие электронной коммерции должно проверять, не было ли оно уже отправлено для конкретного ID заказа — простая проверка через localStorage браузера (сохранить ID уже отправленного заказа и не повторять событие для того же ID) решает большинство случаев дублирования на стороне клиента.
Более надёжное решение — отправка события с сервера
Отправка события покупки через серверную сторону в момент реального создания заказа в базе данных (а не через JavaScript при загрузке страницы у клиента) полностью исключает проблему повторной загрузки, поскольку сервер создаёт заказ только один раз.



