Трекинг

Дублирующиеся события покупки: почему продажи считаются дважды

Дублирующиеся события покупки завышают конверсии и ROAS. Узнайте о причинах, о том, как Meta, TikTok, Snapchat, Pinterest и Reddit выполняют дедупликацию, и как это исправить.

·8 мин чтения·От команды ROASaurus

Главное
  • Дубль события покупки — это один заказ, который рекламная платформа считает как две покупки или больше.
  • Обычные причины — браузерный пиксель и серверное событие без общего event id, а также два инструмента, которые отправляют один и тот же пиксель.
  • Meta, TikTok, Snapchat, Pinterest и Reddit оставляют по одной копии, если события из браузера и с сервера несут совпадающие id и приходят в пределах временного окна платформы.
  • Когда Meta, Google и TikTok засчитывают за собой одну и ту же продажу, ни одно событие не отправлялось дважды: это пересекающаяся атрибуция, и дедупликация её не исправит.
  • Сравните число покупок из каждого источника с заказами в вашем магазине: если у одного источника покупок больше, чем заказов, значит, есть второй отправитель.

Дубли событий покупки возникают, когда рекламная платформа считает один заказ как две покупки или больше. Обычные причины — браузерный пиксель и серверное событие, у которых нет общего event id, и два инструмента, отправляющие один и тот же пиксель. В результате конверсии завышены, ROAS выглядит лучше, чем есть на самом деле, а ставки обучаются на продажах, которых не было.

В этом руководстве разбираются причины, разница между дублями внутри одной платформы и ситуацией, когда несколько платформ засчитывают за собой одну продажу, принцип работы дедупликации в Meta, TikTok, Snapchat, Pinterest и Reddit, а также способы найти и исправить дубли.

Что считается дублем события покупки?

Двойным учётом называют две разные проблемы. У них разные причины, и только одна из них — ошибка трекинга.

Дубль внутри одной платформыНесколько платформ претендуют на одну продажу
Что происходитОдна платформа считает один и тот же заказ несколько разКаждая из нескольких платформ засчитывает себе один и тот же заказ
ПримерMeta показывает 2 покупки на один заказ в $80Meta, 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, поэтому платформа сообщает о двух покупках по заказу 1042.

Отсюда следуют два практических правила. Создавайте id один раз, из того, что известно и браузеру, и серверу, например из id заказа. И используйте с обеих сторон точно одно и то же название события, как его определяет платформа, например Purchase в Meta.

Правила дедупликации по платформам

Детали зависят от платформы. В этой таблице кратко изложена официальная документация каждой платформы по состоянию на октябрь 2026 года.

ПлатформаПоле в браузереПоле на сервереОкноПримечания
MetaeventIDevent_id48 часовНазвание события тоже должно совпадать. Запасной вариант с fbp или external_id работает, только если первым приходит событие из браузера.
TikTokevent_idevent_id48 часовНазвание события тоже должно совпадать. TikTok оставляет первое полученное событие.
Snapchatclient_dedup_id и transaction_id для покупокevent_id и order_id для покупок48 часов, а для id заказа покупки — 30 днейНазвание события тоже должно совпадать. Пара client_dedup_id имеет приоритет.
Pinterestevent_idevent_id48 часовОтправляйте одно и то же название события из обоих источников. Pinterest оставляет первое полученное событие.
RedditconversionIdconversion_id2 дняТот же тип события, а для пользовательских событий — то же название. Выполняется каждый час, и результат может появиться с задержкой до 24 часов.
Общее правило: то же событие, тот же id, в пределах окна. Названия полей различаются, поэтому проверяйте каждую интеграцию отдельно.

В 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. У каждой платформы своя запись о клике или просмотре, и каждая сообщает о продаже. Ни одно событие не отправлялось дважды, поэтому никакая настройка дедупликации тут ничего не меняет.

Выручка, засчитанная за одну неделю (пример магазина)
Meta
$7,400
Google Ads
$4,100
TikTok
$1,900
Сумма по заявкам платформ
$13,400
Выручка магазина
$10,000
Три платформы вместе засчитали за собой $13,400 из $10,000 за неделю, то есть на 34% больше, чем получил магазин. Каждая платформа считала правильно по своим правилам.

Поэтому сумма выручки по платформам всегда завышает то, что заработала ваша реклама. Чтобы сравнивать каналы между собой, используйте собственные данные о заказах и одну модель атрибуции для всех каналов. Подробнее — в нашем руководстве почему Ads Manager и Shopify не сходятся. В атрибуции ROASaurus доли заказа по всем каналам в сумме дают один заказ.

Как найти дубли событий покупки

  1. Сравните каждый источник с вашими заказами

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

  2. Изучите отчёты о дедупликации

    Некоторые платформы сообщают об удалённых дублях. Например, Reddit хранит журнал дедуплицированных событий семь дней, а Pinterest показывает дедупликацию по каждому событию в Ads Manager.

  3. Оформите один тестовый заказ

    Откройте раздел тестовых событий платформы и оформите один заказ. Вы должны увидеть один Purchase из браузера и один с сервера с одинаковым event id. Третий Purchase или два разных id укажут на причину.

  4. Составьте список всех инструментов, которые могут отправлять пиксель

    Проверьте приложения каналов продаж, контейнеры тег-менеджера, код темы и старые приложения для трекинга. Расширение для браузера, например Meta Ads Data Advisor (раньше Meta Pixel Helper), показывает, какие события пикселя срабатывают на странице.

Первый шаг — самая быстрая проверка. Источник с одним отправителем отправляет не больше одной покупки на заказ. Число событий из браузера обычно ниже числа ваших заказов из-за блокировщиков рекламы и отказов от согласия. Поэтому если у одного источника покупок больше, чем заказов, это указывает на второго отправителя или на повторные события:

Источник (пример магазина, один день)ПокупкиЗаказы магазинаСоотношениеО чём это говорит
Meta, браузер1861201.55Покупок больше, чем заказов: пиксель в браузере срабатывает из двух инструментов
Meta, сервер1191200.99Норма: один серверный отправитель
TikTok, сервер2411202.01Каждый заказ дважды: два приложения отправляют Events API
Количество по источникам до дедупликации. Соотношение выше 1.0 означает, что источник отправляет часть заказов дважды. Соотношение около 2.0 означает, что он отправляет дважды почти каждый заказ.

Как исправить дубли событий покупки

  1. Оставьте одного отправителя на пиксель. Выберите один инструмент для каждого пикселя и отключите этот пиксель во всех остальных местах: в приложениях каналов продаж, тегах тег-менеджера и коде темы. В Shopify удалите тот же пиксель из настроек передачи данных канала Facebook & Instagram, потому что любой уровень передачи данных всё равно отправляет браузерный пиксель. Таким же образом проверьте приложение TikTok.
  2. Используйте один event id на заказ. Формируйте id из id заказа и отправляйте его и с браузерным событием, и с серверным.
  3. Используйте одно и то же название события. Браузер и сервер должны называть событие одинаково, точно так, как его определяет платформа.
  4. Отправляйте в пределах окна. Серверное событие, которое приходит через несколько дней, не объединяется. В Meta, TikTok и Pinterest окно составляет 48 часов, в Reddit — два дня.
  5. Тестируйте заново после каждого изменения. Повторите тестовый заказ и на следующий день ещё раз сравните числа.

Как ROASaurus избегает дублей событий покупки

ROASaurus отправляет каждую покупку на основе данных заказа магазина и даёт браузерной и серверной копиям один и тот же event id, построенный из id заказа. В Shopify серверное событие приходит из вебхука оплаченного заказа, поэтому перезагрузка страницы благодарности не создаёт нового серверного события. В Event log перечислена каждая серверная отправка по платформам вместе с запросом и ответом платформы, так что вы видите, что было отправлено по каждому заказу. Руководство по серверному трекингу в Shopify показывает весь процесс.

Если платформа всё равно показывает больше покупок, чем заказов, значит, тот же пиксель отправляет другой инструмент. Страница Как избежать двойного учёта перечисляет, где искать, а серверный трекинг объясняет, какие события ROASaurus отправляет на каждую платформу.

Источники

  1. Meta: Handling Duplicate Pixel and Conversions API Events
  2. TikTok Ads Manager: About Event Deduplication
  3. Snap for Developers: Deduplication
  4. Pinterest Developers: Track conversion events in the API
  5. Reddit Ads Help: Event Deduplication

В ROASaurus

Читайте дальше

ТрекингБлокировщики рекламы и трекинг: что теряет ваш магазинБлокировщики рекламы останавливают пиксели трекинга, поэтому рекламные платформы не видят часть покупок. Узнайте, какие события теряются, почему серверные события не теряются, и как измерить свой разрыв.ТрекингConsent Mode v2 и GDPR: что может отправлять интернет-магазинConsent Mode v2 для интернет-магазинов: четыре сигнала согласия Google, что требует законодательство ЕС и что серверный трекинг всё ещё может отправлять. Только общая информация.ТрекингSafari ITP и рекламный трекинг: что ещё работаетSafari ITP ограничивает срок жизни cookie, созданных скриптами, 7 днями, а после некоторых кликов по рекламе — 24 часами. Узнайте, как это влияет на атрибуцию и какой трекинг всё ещё работает.
FAQ

Ответы на вопросы

Почему Meta показывает больше покупок, чем заказов в моём магазине?

Обычно потому, что два инструмента отправляют один и тот же пиксель с разными event id или у браузерного и серверного событий нет общего id. Meta может объединить только копии с одинаковым названием события и одинаковым event id.

Как долго Meta ждёт при дедупликации событий?

Meta дедуплицирует браузерное и серверное события с одним и тем же названием и event id, если они приходят в пределах 48 часов от первого.

Нужно ли отключить браузерный пиксель, чтобы убрать дубли?

Нет. Вместо этого дайте браузерному и серверному событиям один и тот же event id. Браузерный пиксель добавляет сигналы, например cookie, а серверное событие доходит, когда браузер заблокирован.

Может ли дедупликация исправить ситуацию, когда несколько платформ засчитывают за собой одну продажу?

Нет. Это пересекающаяся атрибуция, а не дубль события. Сравнивайте данные платформ с заказами в вашем магазине и используйте одну модель атрибуции для сравнения каналов.

Дедуплицирует ли Pinterest тег и Conversions API?

Да, если оба события несут одинаковые event_id и название события и приходят в пределах 48 часов. Pinterest оставляет первое полученное событие и удаляет более поздние копии. В ROASaurus Tag и сервер отправляют все пять событий покупателя с совпадающими id и названиями.

Каждая продажа прослежена до рекламы, которая её принесла

Серверный трекинг, прибыль и пожизненная ценность клиента в одном приложении. 14 дней бесплатно, без банковской карты.

Начать бесплатный пробный период →