Что такое ttclid и почему без него трекинг не работает
Kаждый клик по рекламе TikTok добавляет к ссылке параметр ttclid. TikTok использует его как идентификатор клика и ориентируется именно на него, когда решает, какому креативу и какой аудитории засчитать результат.
Задача арбитражника — пронести ttclid через всю цепочку редиректов: от объявления до лендинга, от лендинга до оффера, от оффера до постбека обратно в TikTok. Если параметр потеряется на любом из этапов, например из-за редиректа без передачи query-строки, конверсия останется «осиротевшей». Она произойдёт, но TikTok о ней не узнает.
Трекер должен автоматически подхватывать ttclid из URL входящего клика и хранить его вместе с остальными параметрами клика (sub ID, GEO) до момента, когда придёт постбек о конверсии.
Events API: передаём конверсии без браузерного пикселя
Пиксель TikTok работает на стороне браузера и фиксирует события клиентской стороны: просмотр страницы или покупку. Но в арбитраже трафика конверсия часто происходит не на лендинге, а глубже — на стороне оффера или партнёрской сети, куда браузерный пиксель физически не достаёт.
Events API закрывает эту дыру. Он позволяет отправлять события конверсии на сервера TikTok напрямую, server-to-server, минуя браузер пользователя. Для вызова нужен access token и ttclid того клика, к которому относится конверсия.
Server-side трекинг через Events API устойчивее к блокировщикам рекламы и ограничениям cookie в браузерах, потому что события идут не через JS-скрипт на странице, а через серверный вызов API.
Postback: мост между трекером и TikTok
Постбек — уведомление, которое трекер отправляет в TikTok в момент регистрации конверсии. Схема такая: пользователь кликает по объявлению, трекер сохраняет ttclid, пользователь доходит до оффера и совершает целевое действие, оффер или партнёрка присылает постбек трекеру, трекер формирует вызов Events API с нужным ttclid и отправляет его в TikTok.
Чтобы постбек сработал, в TikTok должен быть настроен Events API с токеном доступа, а в трекере — правильно сопоставлены типы событий (регистрация или покупка) с событиями, которые ожидает TikTok.
Дедупликация: как не задвоить конверсии
Если рекламодатель использует одновременно и браузерный пиксель на лендинге, и Events API с постбеком, одна конверсия может прилететь в TikTok два раза: через пиксель и через API. Статистика раздувается, CPA считается неверно, а оптимизация показов начинает работать на искажённых данных.
Решение — event ID. Каждому событию конверсии присваивается event ID, одинаковый для пиксельного и серверного вызова. TikTok видит совпадающий event ID и засчитывает событие один раз, даже если получил его из двух источников.
Почему TikTok не засчитывает конверсии: частые причины
Если в кабинете TikTok Ads конверсии не отображаются или их меньше, чем происходит на самом деле, причина почти всегда в одном из звеньев цепочки:
- ttclid потерялся при редиректе. Промежуточная страница или трекер не передал query-параметры дальше по цепочке.
- Токен доступа к Events API истёк или привязан не к тому пикселю. API просто не принимает события.
- Постбек настроен на неверный URL или тип события. Трекер шлёт постбек, но событие не совпадает с тем, что настроено в TikTok.
- Задержка между кликом и конверсией превышает окно атрибуции. Если оффер подтверждает конверсию через несколько дней, а окно атрибуции в TikTok короче, событие не засчитается.
- Конверсия отправлена без ttclid. Например, система пытается привязать к рекламной кампании событие от пользователя, который пришёл органически.
Чтобы найти проблему, прогоните тестовый клик через всю связку: обычно видно сразу, на каком шаге параметр или событие пропадает — на стороне лендинга, трекера или на передаче в Events API.