- Дубль события покупки — это один заказ, который рекламная платформа считает как две покупки или больше.
- Обычные причины — браузерный пиксель и серверное событие без общего event id, а также два инструмента, которые отправляют один и тот же пиксель.
- Meta, TikTok, Snapchat, Pinterest и Reddit оставляют по одной копии, если события из браузера и с сервера несут совпадающие id и приходят в пределах временного окна платформы.
- Когда Meta, Google и TikTok засчитывают за собой одну и ту же продажу, ни одно событие не отправлялось дважды: это пересекающаяся атрибуция, и дедупликация её не исправит.
- Сравните число покупок из каждого источника с заказами в вашем магазине: если у одного источника покупок больше, чем заказов, значит, есть второй отправитель.
Дубли событий покупки возникают, когда рекламная платформа считает один заказ как две покупки или больше. Обычные причины — браузерный пиксель и серверное событие, у которых нет общего event id, и два инструмента, отправляющие один и тот же пиксель. В результате конверсии завышены, ROAS выглядит лучше, чем есть на самом деле, а ставки обучаются на продажах, которых не было.
В этом руководстве разбираются причины, разница между дублями внутри одной платформы и ситуацией, когда несколько платформ засчитывают за собой одну продажу, принцип работы дедупликации в Meta, TikTok, Snapchat, Pinterest и Reddit, а также способы найти и исправить дубли.
Что считается дублем события покупки?
Двойным учётом называют две разные проблемы. У них разные причины, и только одна из них — ошибка трекинга.
| Дубль внутри одной платформы | Несколько платформ претендуют на одну продажу | |
|---|---|---|
| Что происходит | Одна платформа считает один и тот же заказ несколько раз | Каждая из нескольких платформ засчитывает себе один и тот же заказ |
| Пример | Meta показывает 2 покупки на один заказ в $80 | Meta, Google и TikTok по отдельности сообщают об одном и том же заказе в $80 |
| Причина | Два события на один заказ без общего event id | Каждая платформа засчитывает продажу по своим правилам атрибуции |
| Решается дедупликацией | Да | Нет |
| Что делать | Один отправитель на пиксель и один event id на заказ | Сравнивайте с заказами в вашем магазине и используйте одну модель атрибуции |
Почему покупки считаются дважды
Браузерный пиксель и серверное событие без общего id
Многие магазины намеренно отправляют каждую покупку дважды: один раз из браузерного пикселя и один раз с сервера через conversions API. Это хорошая схема, потому что серверная копия доходит, когда браузерная заблокирована. Но платформа может объединить две копии только тогда, когда у них одинаковые event id и одинаковое название события. Если браузер использует случайный id, а сервер — номер заказа, платформа видит две разные покупки.
Два инструмента, которые отправляют один и тот же пиксель
Эта причина встречается часто, и её легко не заметить, особенно после перехода на новый инструмент трекинга. Магазин устанавливает приложение для трекинга, но оставляет собственное приложение канала продаж рекламной платформы, тег Google Tag Manager или код пикселя в теме. Каждый инструмент отправляет свой Purchase со своими id. Дедупликация внутри каждого инструмента работает, но платформа всё равно получает две не связанные между собой покупки.
Повторная отправка того же события
Тег покупки на странице подтверждения заказа может сработать снова, когда покупатель перезагрузит страницу или вернётся на неё. Сервер тоже может отправить заказ дважды, например один раз при создании и ещё раз при оплате. Формируйте event id из id заказа, чтобы повтор нёс тот же id, что и первая копия, и платформа смогла его распознать.
Как работает дедупликация?
Дедупликация — это способ, которым платформа оставляет одну копию события, полученного более одного раза. На платформах из этого руководства правило схоже: у копий должен быть один и тот же id, обычно вместе с одним и тем же названием события, и они должны прийти в пределах временного окна. Тогда платформа оставляет одну копию, а остальные отбрасывает.
browser Purchase event_id=order-1042Браузерный пиксель в чекаутеserver Purchase event_id=order-1042Conversions API, то же название и id: объединено с первымbrowser Purchase event_id=7c1e9a40Второе приложение на том же пикселе со своим id: считается повторноОтсюда следуют два практических правила. Создавайте id один раз, из того, что известно и браузеру, и серверу, например из id заказа. И используйте с обеих сторон точно одно и то же название события, как его определяет платформа, например Purchase в Meta.
Правила дедупликации по платформам
Детали зависят от платформы. В этой таблице кратко изложена официальная документация каждой платформы по состоянию на октябрь 2026 года.
| Платформа | Поле в браузере | Поле на сервере | Окно | Примечания |
|---|---|---|---|---|
| Meta | eventID | event_id | 48 часов | Название события тоже должно совпадать. Запасной вариант с fbp или external_id работает, только если первым приходит событие из браузера. |
| TikTok | event_id | event_id | 48 часов | Название события тоже должно совпадать. TikTok оставляет первое полученное событие. |
| Snapchat | client_dedup_id и transaction_id для покупок | event_id и order_id для покупок | 48 часов, а для id заказа покупки — 30 дней | Название события тоже должно совпадать. Пара client_dedup_id имеет приоритет. |
event_id | event_id | 48 часов | Отправляйте одно и то же название события из обоих источников. Pinterest оставляет первое полученное событие. | |
conversionId | conversion_id | 2 дня | Тот же тип события, а для пользовательских событий — то же название. Выполняется каждый час, и результат может появиться с задержкой до 24 часов. |
В ROASaurus браузерные пиксели Meta, TikTok, Snapchat, Pinterest и Reddit отправляют тот же event id, что и серверные события, поэтому эти платформы выполняют дедупликацию. Для Snapchat пиксель также отправляет id заказа как transaction_id, что совпадает с order_id в серверной покупке. Для Pinterest Tag и API используют совпадающие названия событий. X, Microsoft Advertising и Taboola получают только серверные события, поэтому объединять нечего. Если вы отправляете события самостоятельно, руководство по Meta Conversions API показывает, куда в пикселе и в вызове API вставляется event id.
Когда несколько платформ претендуют на одну продажу, это не дубль события
Теперь вторая проблема. Покупатель смотрит видео в TikTok, через два дня кликает по рекламе Google Shopping, а покупает после ретаргетинговой рекламы Meta. У каждой платформы своя запись о клике или просмотре, и каждая сообщает о продаже. Ни одно событие не отправлялось дважды, поэтому никакая настройка дедупликации тут ничего не меняет.
Поэтому сумма выручки по платформам всегда завышает то, что заработала ваша реклама. Чтобы сравнивать каналы между собой, используйте собственные данные о заказах и одну модель атрибуции для всех каналов. Подробнее — в нашем руководстве почему Ads Manager и Shopify не сходятся. В атрибуции ROASaurus доли заказа по всем каналам в сумме дают один заказ.
Как найти дубли событий покупки
- Сравните каждый источник с вашими заказами
Возьмите один полный день. Посчитайте события Purchase, которые каждый источник отправил за этот день до дедупликации: браузерный пиксель и серверные события. Некоторые инструменты для работы с событиями показывают это в разбивке по способу подключения, а у вашего инструмента серверного трекинга есть собственный журнал отправленного. Сравните каждое число с количеством заказов, которые магазин принял за этот день.
- Изучите отчёты о дедупликации
Некоторые платформы сообщают об удалённых дублях. Например, Reddit хранит журнал дедуплицированных событий семь дней, а Pinterest показывает дедупликацию по каждому событию в Ads Manager.
- Оформите один тестовый заказ
Откройте раздел тестовых событий платформы и оформите один заказ. Вы должны увидеть один Purchase из браузера и один с сервера с одинаковым event id. Третий Purchase или два разных id укажут на причину.
- Составьте список всех инструментов, которые могут отправлять пиксель
Проверьте приложения каналов продаж, контейнеры тег-менеджера, код темы и старые приложения для трекинга. Расширение для браузера, например Meta Ads Data Advisor (раньше Meta Pixel Helper), показывает, какие события пикселя срабатывают на странице.
Первый шаг — самая быстрая проверка. Источник с одним отправителем отправляет не больше одной покупки на заказ. Число событий из браузера обычно ниже числа ваших заказов из-за блокировщиков рекламы и отказов от согласия. Поэтому если у одного источника покупок больше, чем заказов, это указывает на второго отправителя или на повторные события:
| Источник (пример магазина, один день) | Покупки | Заказы магазина | Соотношение | О чём это говорит |
|---|---|---|---|---|
| Meta, браузер | 186 | 120 | 1.55 | Покупок больше, чем заказов: пиксель в браузере срабатывает из двух инструментов |
| Meta, сервер | 119 | 120 | 0.99 | Норма: один серверный отправитель |
| TikTok, сервер | 241 | 120 | 2.01 | Каждый заказ дважды: два приложения отправляют Events API |
Как исправить дубли событий покупки
- Оставьте одного отправителя на пиксель. Выберите один инструмент для каждого пикселя и отключите этот пиксель во всех остальных местах: в приложениях каналов продаж, тегах тег-менеджера и коде темы. В Shopify удалите тот же пиксель из настроек передачи данных канала Facebook & Instagram, потому что любой уровень передачи данных всё равно отправляет браузерный пиксель. Таким же образом проверьте приложение TikTok.
- Используйте один event id на заказ. Формируйте id из id заказа и отправляйте его и с браузерным событием, и с серверным.
- Используйте одно и то же название события. Браузер и сервер должны называть событие одинаково, точно так, как его определяет платформа.
- Отправляйте в пределах окна. Серверное событие, которое приходит через несколько дней, не объединяется. В Meta, TikTok и Pinterest окно составляет 48 часов, в Reddit — два дня.
- Тестируйте заново после каждого изменения. Повторите тестовый заказ и на следующий день ещё раз сравните числа.
Как ROASaurus избегает дублей событий покупки
ROASaurus отправляет каждую покупку на основе данных заказа магазина и даёт браузерной и серверной копиям один и тот же event id, построенный из id заказа. В Shopify серверное событие приходит из вебхука оплаченного заказа, поэтому перезагрузка страницы благодарности не создаёт нового серверного события. В Event log перечислена каждая серверная отправка по платформам вместе с запросом и ответом платформы, так что вы видите, что было отправлено по каждому заказу. Руководство по серверному трекингу в Shopify показывает весь процесс.
Если платформа всё равно показывает больше покупок, чем заказов, значит, тот же пиксель отправляет другой инструмент. Страница Как избежать двойного учёта перечисляет, где искать, а серверный трекинг объясняет, какие события ROASaurus отправляет на каждую платформу.
Источники
- Meta: Handling Duplicate Pixel and Conversions API Events
- TikTok Ads Manager: About Event Deduplication
- Snap for Developers: Deduplication
- Pinterest Developers: Track conversion events in the API
- Reddit Ads Help: Event Deduplication