Настройка Reddit Conversions API - Pixel ID, токен и дедупликация
Что покрывает Conversions API Reddit
Настройка Reddit Conversions API - это документированный серверный канал доставки: ваш сервер отправляет конверсии напрямую в Reddit, не полагаясь на браузерный пиксель. Официальная документация покрывает источники web, app и offline - что важно для арбитражных воронок, где конверсия приземляется на оффер-странице, которую вы не контролируете: трекер фиксирует конверсию, и именно серверное событие доносит её до Reddit. Общий контекст, почему этот канал переживает браузерные ограничения, - в server-side tracking.
Три ограничения из документации Reddit определяют любую настройку. Первое: события нужно отправить в течение семи дней после конверсии, то есть задержавшийся постбек поднять можно, но не бесконечно. Второе: потолок rate limit - 1,000 запросов в секунду, 10,000 событий в секунду и 1,000 событий на запрос; для одной воронки это с огромным запасом, но становится актуальным, когда вы пачкой разгребаете бэклог трекера после простоя. Третье: если вы держите Reddit Pixel вместе с API - а Reddit рекомендует именно связку - дедупликация событий обязательна.
Возьмите Pixel ID и conversion access token
Откройте гайд Direct Integration Reddit, выберите Configure data source, затем Conversions API и Set up manually. Если для бизнес-аккаунта нет ни пикселя, ни API, Reddit предложит путь Conversions API Only. Скопируйте Pixel ID с того же экрана - он определяет, какой бизнес-аккаунт получает конверсии, и входит в URL эндпоинта.
Токен генерируется там же кнопкой Generate Access Token. Дайте ему имя, сгенерируйте и сразу скопируйте: Reddit предупреждает, что значение нельзя получить позже, и потерянный токен означает генерацию нового. В best practices Reddit рекомендует conversion access token вместо developer access token - он бессрочный и проще в создании: никакого графика ротации раз в два месяца, как у cost-sync токенов в экосистеме Meta.
Храните оба значения на сервере. Они будут жить в вашем скрипте доставки или конфигурации инструмента - токен в клиентском бандле это утечка креденшелов, а не сокращение настройки.
Отправьте событие в эндпоинт v3
Цель - https://ads-api.reddit.com/api/v3/pixels/<pixel_id>/conversion_events, где Pixel ID встраивается в URL. Запрос авторизуется conversion access token как bearer-токеном - референс-сэмпл Reddit отправляет заголовки Authorization: Bearer <token> и Content-Type: application/json. Корректный запрос возвращает подтверждение об успешно обработанных событиях. Каждый элемент массива events несёт:
event_at- таймстамп конверсии, к которому применяется семидневное окно;action_source- где случилась конверсия:WEBSITE,PHYSICAL_STOREили app-источники; параметр влияет на отчётность по источникам, и Reddit отмечает, что событиямPHYSICAL_STOREне следует содержать идентификаторы устройств;type- объект с полемtracking_typeвродеPURCHASEилиLEAD, либоCUSTOMсcustom_event_nameдо 64 регистрозависимых UTF-8 символов (в дашборде видны только 20 последних кастомных событий);event_source_url- рекомендуется дляWEBSITE-событий: Reddit извлекает из него домен для отчётов, а click ID в URL работает фолбэком, когда параметрclick_idне передан.
Весь payload оборачивает массив events в объект верхнего уровня data - форма взята из референс-сэмпла Reddit, урезана до полей, которые разбирает этот гайд:
{
"data": {
"events": [
{
"click_id": "3184742045291813272",
"event_at": 1514764800000,
"action_source": "WEBSITE",
"event_source_url": "https://www.example.com/checkout?rdt_cid=3184742045291813272",
"type": { "tracking_type": "PAGE_VISIT", "custom_event_name": "PromotionEvent" },
"metadata": { "conversion_id": "H72B9A4YXQ", "currency": "USD", "value": 10.99 },
"user": { "ip_address": "192.0.2.1", "external_id": "7c73f2ae-a433-4d7b-9838-f467da98f48e" }
}
]
}
}Match keys едут внутри user, поля выручки и conversion_id - внутри metadata: те же объекты, на которые ссылаются буллеты выше.
Значения tracking_type - среди полей, изменившихся между CAPI v2 и v3. Reddit ведёт гайд миграции, а отправка одних и тех же событий через обе версии вызывает двойной счёт - выберите одну версию и держите пайплайн доставки консистентным.
Match keys: что передавать и как хэшировать
Match keys - идентификаторы, по которым Reddit привязывает конверсию к показу или клику. Рекомендация Reddit прямая: передавать как можно больше, настоятельно рекомендованы IP-адрес и click ID, плюс email, телефон и user agent. Click ID (rdt_cid) добавляется к URL лендинга при клике по рекламе Reddit, поэтому воронка должна поймать его в момент клика, а слой доставки - передать как click_id; дисциплина та же, что для fbclid в разборе потерь клик-идентификаторов.
Идентификаторы можно передавать без хэша или пред-хэшированными, и если хэшируете, правила жёсткие:
- Email: lowercase, без точек в local part, без всего после плюса, затем SHA-256 - пример Reddit показывает, что
[email protected]и[email protected]дают одинаковый хэш. - Телефон: обязательны код страны и региона, добавочный номер удалён, все нецифровые символы вырезаны, ведущий
+сохранён, затем SHA-256. - Mobile ID: IDFA - заглавные hex-цифры с дефисами, AAID - строчные с дефисами, до хэширования.
- Каждый хэш - 64 строчных hex-символа.
Различия канонизации между платформами ломают мульти-сетевые связки; общие правила нормализации те же, что в хэшировании user data для CAPI, но сверяйте специфику каждой сети, а не переиспользуйте один билдер payload вслепую.
Дедупликация: сначала conversion_id, потом сессии
Связка Reddit Pixel и Conversions API - рекомендованная конфигурация, и одна конверсия часто срабатывает с обеих сторон. Дедупликация Reddit запускается ежечасно и помечает дубликатом событие меньшего качества: побеждает событие с большим числом метаданных и match keys, а при равенстве отбрасывается более позднее.
Метод conversion ID предпочтителен: генерируйте уникальный conversion_id на каждую конверсию - номер заказа для покупок или хэш таймстампа, типа события и ключевых параметров - и передавайте одно значение и из пикселя, и из серверного события. Reddit предупреждает: один ID на слишком много событий пометит реальные конверсии как дубликаты и съест атрибуцию.
Без conversion_id Reddit откатывается на session-based дедуп: сессия - поток событий одного пользователя, где между соседними событиями прошло не больше пяти минут, и Reddit выбирает один источник-победитель на сессию. Этому методу нужны UUID или external ID на всех событиях пикселя и API, и он работает только внутри одного action source канала. Два практических дедлайна действуют в обоих случаях: события должны приехать в течение двух дней, чтобы дедупликация их обработала, а лог дедупа хранится семь дней. Механика из той же семьи, что дедупликация пикселя и CAPI в экосистеме Meta - общий ключ, консистентный нейминг, активны оба канала.
Проверьте, прежде чем лить бюджет
Официальная рекомендация - верифицировать события до продакшена. События с узнаваемыми, но кривыми значениями - телефон с пробелами, email с display-name - принимаются, но в панели тестирования Events Manager появляются предупреждения, и каждое - match key, работающий ниже своих возможностей. Панель event deduplication показывает, позволяет ли сквозная передача conversion_id корректно объединять пары событий, а не молча удваивать счёт.
Для самого пайплайна доставки Reddit документирует обработку ошибок для битых запросов, проблем авторизации и rate limit; ответ 429 означает откатиться и батчить, а не долбить ретраями. Привычка валидации та же, что в экосистеме Meta - тестовые события до масштабирования - и она ловит классические отказы рано: не тот Pixel ID, протухший токен или схему conversion_id, которую шлёт только одна сторона пары.
Если не хотите держать этот пайплайн на себе, MOST доставляет постбеки трекера в Conversions API Reddit - вместе с Meta, TikTok, Pinterest, Snapchat и OpenAI - беря на себя хэширование, ретраи и дедупликацию под каждую сеть. Для одного лендинга и ручного workflow бесплатный Pixel Activator закрывает доставку в Reddit тем же способом.
