Постбек Keitaro → TikTok Events API
Постбек Keitaro → TikTok Events API нужен, чтобы конверсии с PWA-оффера — лиды, депозиты, покупки — долетали до рекламного кабинета TikTok напрямую с сервера, без потерь из-за блокировщиков и ограничений браузерного пикселя. Server-side передача через Events API работает надёжнее клиентского пикселя и даёт TikTok больше данных для оптимизации показов. Ниже — пошаговая настройка связки с дедупликацией, чтобы конверсия не задваивалась.
Почему одного пикселя TikTok недостаточно
Браузерный пиксель TikTok теряет часть событий из-за блокировщиков рекламы, ограничений приватности в мобильных браузерах и разрыва сессии между кликом по объявлению и депозитом на оффере, который может случиться через день. Events API отправляет событие напрямую с сервера трекера, минуя браузер пользователя, поэтому данные доходят стабильнее и с задержкой в секунды, а не теряются вовсе. Для PWA-вертикалей с длинным циклом, где депозит случается не сразу после установки, это особенно критично — без S2S большая часть поздних конверсий просто не попадёт в оптимизацию.
Подготовка: ttclid, Pixel Code и Access Token
Первым делом нужно ловить ttclid (клик-айди TikTok) из URL-параметра при переходе пользователя на PWA — без него TikTok не сможет сопоставить серверное событие с конкретным показом объявления. В кабинете TikTok Events Manager создаётся или уже существует Pixel Code, а Access Token генерируется отдельно в настройках пикселя для доступа к Events API. Оба значения — Pixel Code и Access Token — понадобятся на стороне Keitaro при настройке потока конверсий.
Настройка постбека в Keitaro
В Keitaro поток конверсий с оффера настраивается через раздел Conversions/Postbacks: создаётся исходящий постбек на endpoint TikTok Events API с подстановкой макросов {clickid} (сюда пишется пойманный ttclid), {status} (сопоставляется с нужным событием — например, CompletePayment для депозита) и {sum} при передаче значения конверсии. Статусы в Keitaro (lead, sale, rejected и другие) стоит явно смэппить на события TikTok, а не слать одно и то же событие на все статусы подряд — иначе TikTok будет оптимизироваться на не тот сигнал. APEX поддерживает S2S-постбеки в связке с Keitaro «из коробки», так что маппинг статусов и передача макросов настраиваются без написания серверного прокси-скрипта.
Дедупликация и проверка, что конверсия не задвоена
Если на лендинге одновременно стоит браузерный пиксель TikTok и настроен серверный Events API, одно и то же событие может задвоиться — TikTok учтёт его дважды в статистике. Решение — единый event_id, который генерируется на стороне трекера и передаётся и в пиксель (если он есть), и в Events API для одного и того же события: TikTok дедуплицирует по этому идентификатору автоматически. После настройки обязательно проверьте связку через тестовый ивент в TikTok Events Manager — там видно, дошло ли событие, с каким статусом и нет ли задвоения.
Частые вопросы
- Что делать, если конверсии из Keitaro не долетают до TikTok?
- Проверьте, что ttclid действительно ловится в трекере (не пустой макрос {clickid}), что Access Token не истёк и что endpoint в постбеке указан без опечаток — в логах Keitaro видно код ответа TikTok на каждый отправленный постбек.
- Как избежать задвоения конверсий между пикселем и Events API?
- Используйте общий event_id для одного и того же события в обоих каналах — пиксель и Events API — тогда TikTok дедуплицирует их сам и посчитает как одну конверсию, а не две.
- Нужен ли браузерный пиксель на лендинге, если S2S уже настроен?
- Пиксель желательно оставить для событий верхней части воронки (просмотр, клик), где нет риска задержки, а критичные конверсии вроде депозита вести через Events API — так вы получаете и охват сигналов, и надёжность доставки.
Клоака, антибот, пуши, сплит-тесты и свои домены — в одном сервисе.
Начать бесплатно