TikTok Events API: серверні конверсії з Telegram-лійки
Браузерний піксель TikTok бачить клік і більше нічого. Старт бота, вступ у канал, депозит - усе це відбувається всередині Telegram, де піксель не працює, тож оптимізатор TikTok закуповує схожих на тих, хто тапнув, а не на тих, хто заплатив. Leadgram замикає петлю на сервері через Events API 2.0: кожна конверсія йде з нашого бекенду просто у ваш піксель, разом із TikTok Click ID.
Як це влаштовано
Leadgram надсилає по одній події на конверсію на https://business-api.tiktok.com/open_api/v1.3/event/track/ і авторизує запит токеном вашого акаунта в заголовку Access-Token. Піксель адресується своїм Pixel Code; поля рекламодавця в запиті немає взагалі.
Одна деталь визначає, як читати будь-яку звітність на цій сторінці: у TikTok HTTP 200 не означає, що подію прийнято. Вердикт лежить у тілі відповіді, у полі code, і в додатку самого TikTok сказано, що код повернення важливіший за HTTP-статус - відповідь 200 із code: 40002 це невдалий виклик. Leadgram розбирає тіло, тож відхилена конверсія записується як помилка, а не як відправлення. Відмови, яких повтор не виправить (відкликаний токен, чужий піксель, відхилений пейлоад), зупиняються після першої спроби, а не випалюють усі п'ять.
Що підготувати в TikTok
- Відкрийте піксель в Events Manager (Assets → Events → Web Events). Візьміть наявний або створіть новий і виберіть спосіб підключення Events API.
- Скопіюйте Pixel Code. Саме цей ідентифікатор Leadgram надсилає як
event_source_id- не ID рекламодавця і не ID кампанії. - Випустіть access token із правами на цей піксель за інструкцією TikTok щодо автентифікації Events API 2.0. Токен прив'язаний до пікселя, тож у кожного пікселя він свій.
- Перевірте вікно атрибуції. TikTok прирівнює строк життя
ttclidдо CTA-вікна, яке ви задали в Attribution Manager. Leadgram сам клік не «протерміновує», тож діє лише вікно з вашого рекламного кабінету.
Заведіть акаунт у Leadgram
- На сторінці TikTok у розділі рекламних платформ натисніть Додати акаунт.
- Назва акаунта - внутрішня мітка, за якою ви його впізнаєте.
- ID пікселя - той самий Pixel Code із кроку 2 вище.
- Advertiser ID - необов'язковий і потрібен лише вам для обліку. Events API адресує піксель за Pixel Code, тож у запит це значення не потрапляє ніколи.
- Access token - зберігається зашифрованим; інтерфейс показує лише останні 4 символи.
Це вся форма: чотири поля, більше нічого. Тестового коду події та кнопки тестової конверсії в TikTok немає - ця пара існує лише для Meta. Перший доказ, що зв'язка працює, - справжня конверсія на сторінці Доставка конверсій, тож проженіть одну самі до того, як увімкнете трафік.
Прив'яжіть до кампанії
На сторінці Кампанії виберіть майданчик TikTok і впишіть той самий Pixel Code у поле TikTok у кампанії. Збіг має бути точним - саме за цим значенням Leadgram у момент надсилання знаходить потрібні облікові дані. Живий індикатор під полем підтверджує збіг просто під час введення, а банер після збереження повторює вердикт, тож одруківка не пройде мовчки.
Що саме надсилається
- Ім'я події - виводиться з внутрішнього типу:
registration→ CompleteRegistration,deposit/ftd/purchase→ Purchase,bot_start/lead→ Lead,channel_join→ Subscribe,join_request→ SubmitApplication,first_dm→ Contact,land/miniapp_launch→ ViewContent,click→ ClickButton. Заявка і вступ несуть різні імена навмисно: людина, яка подала заявку і потім була схвалена, рухає дві сходинки лійки, а не подвоює одну. Усе, чого в списку немає, у TikTok не йде взагалі:subscription_renewed,subscription_cancelledіcustom_*. Така подія не створює доставки і не дає помилки - вона потрапляє в лічильник «Подія без маппінгу» на картці TikTok. - ClickButton - кастомна подія. Її немає в таблиці Web Standard Events, тож сирі кліки видно в Events Manager для звітності та аудиторій, але оптимізувати кампанію за ними TikTok не вміє. Усі інші імена вище - стандартні події.
- ttclid - TikTok Click ID, спійманий вашим трекінговим посиланням, надсилається без хешування. Це єдиний ідентифікатор, за яким TikTok може нас зіставити, тож клік без нього пропускається, а не надсилається наосліп; пропуск видно на картці майданчика, а не як помилку.
- external_id - SHA-256 від внутрішнього ID кліку Leadgram: хешування цього поля TikTok вимагає обов'язково. Само по собі воно користувача не зіставляє, а пов'язує події одного відвідувача.
- Сума і валюта - лише на Purchase і лише у валюті зі списку, який TikTok підтримує. Невідома валюта змусила б TikTok відхилити всю подію цілком, тож Leadgram надсилає конверсію без суми, а не втрачає її.
- Детермінований ID події дає дедуплікацію на боці TikTok: за збігу
event_source_id, імені події та ID події протягом 48 годин лишається перша копія, решта відкидається. Усі ретраї Leadgram вкладаються в це вікно, тож повтор не може подвоїти конверсію. - Не надсилається: e-mail, телефон та IP. Перші два продукт не збирає, а TikTok чекає сиру публічну IP-адресу, тоді як ми зберігаємо лише її хеш. Надіслати хеш у поле, що чекає адресу, означає погіршити матчинг і збрехати про те, що ми маємо.
Як перевірити
Сторінка «Доставка конверсій» показує доставку в TikTok за секунди після події. На боці TikTok відкрийте вкладку Overview пікселя в Events Manager: щойно доїде перша серверна подія, у Connection Method з'явиться «Server».
Якщо доставок підозріло мало, спершу прочитайте на картці майданчика блок «Пропущено (не надіслано)». Він розбиває пропуски за причинами - немає click ID, подія без маппінгу, майданчик не підключено, - і за ним видно, де справжня діра, а де клік, який і не міг принести ttclid.
Часті граблі
- У полі ID пікселя вставлено ID рекламодавця. Запит адресується за Pixel Code; ID рекламодавця в цьому полі не збігається ні з акаунтом, ні з кампанією.
- Токен відкликано або протерміновано. TikTok відповідає кодом авторизації, і Leadgram позначає доставку невдалою з першої спроби, а не ретраїть хвилинами. Причина видна в рядку доставки: перевипустіть токен і надішліть повторно.
- Meta і TikTok на одній кампанії. Клік, який приніс лише
fbclid, на боці TikTok пропускається за задумом. Це не помилка, а клік, який TikTok і не зміг би зіставити, і він видно в тій самій розбивці пропусків. - Перевизначення імені події в кампанії. Поле Назва події TikTok у діалозі кампанії надсилає рівно те, що ви напишете, - і не для одного типу події, а одразу для всіх подій цієї кампанії, включно з
clickіland, тож уся воронка схлопується в один рядок в Events Manager. Ім'я поза стандартним списком TikTok прийме як кастомну подію: звітність і аудиторії за нею працюють, оптимізація - ні. Це єдине місце, де можна назвати типиcustom_*, і братися за нього варто лише коли кампанія й так звітує про один вид конверсії. - Конверсії відхиляються з помилкою параметра. У таблиці параметрів TikTok об'єкт
pageпозначено як обов'язковий для веб-подій, при цьому три з чотирьох офіційних прикладів веб-пейлоада його не містять. Leadgrampageне надсилає: конверсія відбувається в Telegram, і URL сторінки взяти нізвідки. Якщо ваш піксель усе ж його вимагає, відмова буде видна в рядку доставки, а не мовчки - надішліть нам текст помилки.