Перейти к содержимому
Все статьи
4 мин чтения

Дедупликация Facebook CAPI: event_id, Pixel и server events

Browser и server signals объединяются по одному event ID перед журналом атрибуции

Facebook CAPI deduplication не даёт посчитать одну реальную конверсию дважды, когда её отправляют browser Pixel и server-side Conversions API. Базовый контракт: у browser и server копий одного события совпадают event name и event_id.

Не смешивайте четыре разных идентификатора:

  • fbclid / fbc — Meta click context;
  • fbp — browser context;
  • внутренний click_id — визит в вашем трекере;
  • event_id — одна conversion, доставленная по двум каналам.

Что решает дедупликация

ПроблемаМеханизм
Pixel и CAPI отправили один PurchaseОдинаковые event name и event_id
Network повторила postbackStable transaction ID / tracker idempotency
Registration и deposit на одном clickРазные event types и IDs
Meta должна сопоставить event с рекламным кликомfbc/fbclid, fbp и разрешённые match keys
Tracker должен найти исходный визитВнутренний click ID из postback

Текущий контракт сверяйте с официальной документацией Meta.

Корректная пара событий

Browser Pixel:

<script>
fbq("track", "Purchase", {value: 42.50, currency: "USD"}, {
  eventID: "purchase_conv_98211"
});
</script>

Server CAPI для того же Purchase:

{
  "event_name": "Purchase",
  "event_time": 1786957000,
  "event_id": "purchase_conv_98211",
  "action_source": "website",
  "custom_data": {"value": 42.50, "currency": "USD"}
}

Browser SDK использует eventID, API payload — event_id, но значение должно совпадать.

Как создавать event ID

ID должен быть стабильным для повторной доставки одного event и уникальным между разными business events. Хороший seed — transaction ID сети:

Purchase:network_conv_98211

Если transaction ID нет, создайте ID один раз в источнике события, сохраните в conversion record и переиспользуйте в Pixel/CAPI. Не генерируйте два random IDs независимо.

Нельзя использовать:

  • один event ID на всю жизнь пользователя;
  • campaign ID как event ID;
  • независимые timestamp-only IDs;
  • один click ID для registration, deposit и всех purchases без event scope.

Event name тоже должен совпадать

Одинаковый ID не исправит такую пару:

browser: Purchase / purchase_conv_98211
server:  Lead     / purchase_conv_98211

Сначала задайте conversion registry: какой raw postback status становится Lead, CompleteRegistration, Purchase или custom event. Если два канала намеренно отправляют разные этапы funnel, дедуплицировать их нельзя.

Роль fbclid, fbc и fbp

Эти значения помогают Meta связать server event с рекламным контактом. Они не определяют, являются ли Pixel и CAPI payloads дублями.

click_id → наш точный визит
fbc/fbp  → Meta matching context
event_id → одна conversion в одном или нескольких каналах
tx_id    → одна partner/business transaction

Подробнее — в карте Click ID и Sub ID.

Граница postback → CAPI

В affiliate traffic deposit часто происходит у advertiser/network. Postback сначала должен вернуть событие трекеру:

https://tracker.example/postback?click_id={aff_sub}&status=deposit&payout={payout}&transaction_id={conversion_id}

Только после проверки click, status и transaction формируйте server event для Meta. Иначе unknown click, unmapped status или retry превращаются в ложный рекламный signal.

Полный маршрут описан в статье как возвращать affiliate conversions в Facebook, а границы систем — в Pixel vs CAPI vs postback.

Pass/fail таблица

ТестУсловие pass
Browser payloadПравильный event name и непустой ID
Server payloadТо же событие использует то же имя и точный ID
Event dataValue и currency совпадают
Click contextfbc/fbp присутствуют, если были легитимно captured
Tracker eventServer event создан из известной conversion и click
Partner retryТа же transaction не создаёт второй tracker event
Meta diagnosticsEvent принят без unresolved duplicate
ИтогОдна бизнес-конверсия осталась одной Meta-конверсией

Не принимайте работу только по totals в Ads Manager. Нужен controlled event с доступными browser payload, server request, platform response и tracker conversion.

Главное правило: сначала создайте и валидируйте одну business conversion record, затем доставляйте её в Pixel и CAPI. Обе копии ссылаются на одну запись и естественно получают общий identity.

  • facebook capi deduplication
  • дедупликация facebook capi
  • meta event id
  • pixel and capi
  • event_id