Пиксель TikTok (TikTok Pixel) - код на сайте, который передает в рекламный кабинет действия посетителей из браузера: просмотр товара, корзину, заявку, покупку. Events API отправляет те же события с сервера и не зависит от блокировщиков рекламы и ограничений cookie. Когда оба канала передают одно событие с общим event_id, TikTok считает его один раз, и конверсии получаются полными без задвоений. Порядок настройки: создать пиксель в Events Manager, поставить его через GTM или партнерскую интеграцию, настроить стандартные события с параметрами, подключить Events API и проверить каждое событие до запуска кампании.
Ошибку в пикселе TikTok редко видно в день установки: она всплывает через пару недель, когда кампания уже обучилась на неполных данных, а отчет кабинета не сходится с CRM. Гайд написан для маркетолога или разработчика, который ставит TikTok Pixel под кампании на продажи и заявки, и для владельца бизнеса, у которого TikTok и CRM показывают разные цифры. Установка пикселя - один из шагов подготовки к запуску, общий порядок описан в обзоре рекламы в TikTok. Интерфейс и справка TikTok сверены в сентябре 2026 года, скрины сняты на тестовом пикселе, который стоит на этом сайте через GTM.
Events Manager - раздел Ads Manager для источников данных и событий. Вход через левое меню Ads Manager: раздел Assets, пункт Events Manager (интерфейс на сентябрь 2026). На странице самого Events Manager пока остается старая шапка с верхним меню, как на скрине ниже. При первом входе раздел просит подтвердить личность кодом на почту или телефон. Источники бывают пяти видов: сайт, мобильное приложение, офлайн-продажи, CRM и мессенджеры (Messaging). Для сайта создается пиксель, и к нему же подключается Events API, поэтому браузерные и серверные события одного сайта собираются в одном источнике и в одной таблице. Приложения подключаются через MMP, у них свой порядок настройки.
Внутри пикселя пять вкладок. «Обзор» (Overview) показывает воронку и таблицу событий. На вкладке тестовых событий (Test events) события появляются сразу после срабатывания, а фильтр Connection method отделяет браузерные от серверных. «Диагностика» (Diagnostics) собирает карточки с ошибками: в чем проблема, насколько она серьезна, какие события и объявления задеты. Остальные две вкладки - журнал изменений и настройки, где лежат доступы, cookie, расширенное сопоставление и токен для сервера. Время в журнале переключается между местным и UTC. Это пригодится при сверке с CRM.
Создается пиксель из рекламного кабинета, а доступом к нему удобнее управлять через Business Center (бизнес-центр). Если сайт рекламируют из двух кабинетов или через агентство, пиксель держат в бизнес-центре и выдают кабинетам доступ: схема описана в статье про Business Center. Если кабинета еще нет, начните с регистрации и настройки Ads Manager: там же задается часовой пояс, который понадобится при разборе расхождений с CRM.

TikTok Pixel создается кнопкой подключения источника данных (Connect data source). Экраны идут в таком порядке:

TikTok рекомендует ставить пиксель и Events API вместе (справка TikTok на сентябрь 2026), а на экране выбора канала пишет, что у рекламодателей со связкой CPA лучше на 15%. Выбор связки на старте ни к чему не обязывает: если сервер еще не готов, пиксель заработает один, а токен для Events API создается в настройках пикселя позже. Зато список событий с первого дня проектируется под два канала, с общими именами и event_id, и через месяц, когда дойдут руки до сервера, переделывать разметку не придется.

Один сайт - один пиксель: все кабинеты и агентства, которые рекламируют сайт, работают с ним через общий доступ. Когда у каждого кабинета свой пиксель, история событий дробится. Аудитории собираются из части посетителей, а новая кампания учится с нуля. Поддомен оформления заказа или платежная страница на своем домене получают тот же пиксель, иначе покупка уйдет в другой источник.
Кто настраивал пиксель Meta, узнает схему: базовый код, стандартные события, параметры, серверный канал рядом. Различаются имена событий и формат товаров в параметрах. Как устроен пиксель Meta и его конверсии, разобрано в кластере Meta Ads.
От способа установки зависит, кто потом правит события: в GTM это делает маркетолог без релиза сайта, партнерскую интеграцию обновляет платформа, а код в шаблоне сайта трогает только разработчик.
В GTM ведут два пути, оба описаны в справке TikTok (сентябрь 2026). Первый запускается из Events Manager: при создании пикселя вы выбираете Google Tag Manager среди партнеров, даете доступ к аккаунту Google и указываете контейнер и рабочую область. TikTok сам создаст теги, триггеры и переменные. Второй путь ручной: в GTM открываете шаблоны, находите в галерее шаблон TikTok Pixel от TikTok и собираете теги своими руками.
Ручной путь дольше, зато каждый тег на виду и понятно, откуда он берет данные. Контейнер собирается так:
AddToCart на событии корзины из dataLayer, SubmitForm на успешной отправке формы
Базовый код идет отдельным тегом, потому что шаблон TikTok Pixel его сам не ставит. На тестовом контейнере для этой статьи тег события из шаблона без базового тега не сработал: предпросмотр показал ошибку «ttq not found». В списке событий шаблона (версия от 8 сентября 2026) пока стоят старые имена: CompletePayment вместо Purchase и SubmitForm вместо Lead. TikTok засчитывает их под новыми именами.
Если на сайте уже размечена электронная торговля под GA4, отдельный dataLayer для TikTok не нужен. Сумма, валюта и товары берутся из тех же переменных, для этого в шаблоне есть поле Google Analytics E-commerce Data Layers.
Теги проверяют в режиме предварительного просмотра. Откройте сайт через него и пройдите путь покупателя. Базовый тег должен сработать один раз на каждой странице, тег события - один раз на своем действии. Два срабатывания Purchase на заказ - это два триггера на одно событие. Такое задвоение появится в отчете еще до Events API.
На платформе с интеграцией TikTok пиксель ставится без кода: в админке подключается приложение TikTok, и события уходят сами. В списке партнеров TikTok (обновлен в декабре 2025, сверен в сентябре 2026) пиксель вместе с Events API подключают Shopify, WooCommerce, Wix, PrestaShop, OpenCart и Adobe Commerce. У BigCommerce, Ecwid и плагина для WordPress интеграция дает только пиксель. Набор событий в таких приложениях фиксирован. После подключения проверьте его в тестовых событиях.
Tilda в списке партнеров TikTok нет, и рабочий путь для нее - GTM: ID контейнера указывается в настройках сайта, в разделе «Аналитика», а дальше действует схема из блока про GTM. Код пикселя можно вставить и в HTML-код для HEAD в тех же настройках, но тогда каждое событие придется дописывать кодом. Заявку на Tilda отмечают по успешной отправке формы. Клик по кнопке для этого не годится: он срабатывает и тогда, когда поля заполнены с ошибкой и заявка не ушла.
Базовый код в head каждой страницы и вызовы ttq.track в шаблонах сайта оправданы, когда события знает только бэкенд: одностраничное приложение, личный кабинет, своя корзина. В остальных случаях удобнее GTM: правка события не ждет релиза.
Стандартные события - действия с именами, которые заранее задал TikTok. По ним TikTok строит отчеты, оптимизирует кампании и собирает аудитории. Свои события (custom events) нужны для действий вне списка. Имя своего события не должно совпадать с зарезервированными: Checkout, Registration и еще около десятка имен TikTok сам переводит в стандартные.
Стандартные события по таблице в справке TikTok на сентябрь 2026 (таблица обновлена в апреле 2026), сгруппированные по воронке:
ViewContent, SearchAddToWishlist, CustomizeProduct, AddToCartInitiateCheckout, AddPaymentInfo, PurchaseLead, Contact, Schedule, FindLocation, SubmitApplication, ApplicationApprovalCompleteRegistration, StartTrial, Subscribe, DownloadИмена менялись. С 1 мая 2025 года TikTok переименовал SubmitForm в Lead, а CompletePayment в Purchase. Старые имена работают и в отчетах показываются под новыми, но для нового пикселя TikTok просит ставить Lead и Purchase. ClickButton и PlaceAnOrder убраны из документации и отключатся в 2027 году, хотя в шаблоне GTM и мастере событий на сентябрь 2026 они еще встречаются. В таблице справки заявка до сих пор записана как SubmitForm: это то же событие, что и Lead.
Чтобы оптимизировать кампанию на ценность и считать ROAS, событию нужны сумма и валюта, товарным событиям еще и данные о товаре. TikTok рекомендует для ViewContent, AddToCart и Purchase один набор параметров: value, currency, content_type, content_ids, quantity, description. В мастере событий Events Manager часть полей называется иначе: content_id и num_items. Товары удобнее передавать массивом contents, где у каждой позиции свой content_id, количество и цена, как в примере покупки в интернет-магазине в США:
ttq.track('Purchase', {
value: 149.90,
currency: 'USD',
content_type: 'product',
contents: [
{content_id: 'SKU-2041', content_name: 'Кроссовки', quantity: 1, price: 149.90}
]
}, {event_id: 'order-58213'}); Формат параметров проверяет Pixel Helper. value - число без знака валюты, пробелов и запятых: 149.90, не «$149,90». Код валюты из трех букв передается всегда вместе с суммой. Кабинеты в моих проектах работают в USD, и сумму в событиях я передаю в той же валюте, чтобы ROAS в отчете не зависел от курса. content_type принимает только product или product_group. content_id одного товара совпадает во всех событиях: в просмотре, корзине и покупке. Третий аргумент с event_id нужен для дедупликации.
Набор событий зависит от модели бизнеса. Для интернет-магазинов я ставлю классическую цепочку ViewContent, AddToCart, InitiateCheckout, Purchase: по ней видно, на каком шаге уходят покупатели, и для оптимизации кампании есть из чего выбрать событие. У сайта услуг цепочка короче. ViewContent ставится на страницы услуг и цен, Contact на переходы в мессенджер и звонки, Lead на отправку формы. Запись на процедуру в клинике Дубая или на пробное занятие в школе Минска удобнее отмечать как Schedule.
Какое событие выбрать для оптимизации и сколько конверсий нужно для выхода из этапа обучения, разобрано в статье о запуске первой кампании.
Выберите тип бизнеса, и конструктор соберет события по воронке: когда отправлять каждое и какие параметры передать.
Список событий появится здесь, когда выберете тип бизнеса.
Браузерный пиксель теряет часть событий. Блокировщики рекламы режут запросы к TikTok. Браузеры ограничивают срок хранения cookie и доступ к ним. Покупатель закрывает вкладку раньше, чем загрузится страница «Спасибо», или платит на странице банка и на сайт уже не возвращается. Доля потерь зависит от аудитории и сайта. Проверенной общей цифры нет. Events API отправляет события с сервера сайта, из CRM или платежной системы, так что подтвержденная оплата доходит до TikTok, даже если браузер ее не передал.
Способы подключения, которые описывает TikTok (справка, сентябрь 2026):
Я подключаю Events API через серверный контейнер GTM. Веб-контейнер на сайте к этому моменту уже стоит, серверный принимает из него те же события и раздает их в TikTok, Meta и GA4, и один сервер обслуживает все площадки.
Токен доступа создается в настройках пикселя, в блоке Events API, кнопкой Generate access token. TikTok показывает его один раз и не хранит, поэтому токен сразу копируют в хранилище секретов сервера. Токен дает право отправлять события в ваш пиксель, поэтому хранится только на сервере: в браузерном коде, в веб-контейнере GTM или в публичном репозитории его прочитает кто угодно и засорит пиксель ложными покупками. Если токен утек или потерялся, создайте новый кнопкой Generate again и замените его во всех интеграциях.

Серверное событие не знает, кто его совершил. Чтобы связать его с кликом или показом, в событие добавляют идентификаторы (документация Events API на сентябрь 2026):
ttclid - метка клика, TikTok дописывает ее к ссылке объявления. Сайт сохраняет метку в свой cookie при первом заходе, иначе при повторном визите ее в адресе уже не будетttp - значение cookie _ttp, которое ставит пиксель. Это еще одна причина держать пиксель рядом с серверомexternal_id (ваш ID клиента) передаются хешем SHA-256. Почту перед хешированием приводят к нижнему регистру, казахстанский номер к формату E.164: +77011234567Без этих полей серверное событие почти не связывается с рекламой и в отчет по кампании не попадает. Минимальный запрос с покупкой выглядит так:
{
"event_source": "web",
"event_source_id": "ID пикселя",
"data": [{
"event": "Purchase",
"event_time": 1790000000,
"event_id": "order-58213",
"user": {"email": "хеш SHA-256", "phone": "хеш SHA-256",
"ttclid": "из cookie сайта", "ttp": "из cookie _ttp",
"ip": "203.0.113.7", "user_agent": "строка браузера"},
"properties": {"value": 149.90, "currency": "USD"}
}]
} Формат запроса и полный список полей описаны в документации Events API 2.0 для разработчиков.
Для пикселя ту же задачу решает расширенное сопоставление (Advanced Matching). В автоматическом режиме пиксель находит почту и телефон в заполненных формах и хеширует их в браузере до отправки, в ручном вы передаете их кодом. Я включаю расширенное сопоставление на всех проектах. На сайтах для США к нему добавляются баннер согласия и Consent Mode в GTM. Своего режима согласия у TikTok нет, поэтому тегу пикселя в GTM задается дополнительная проверка, и он срабатывает только после разрешения посетителя. Для других стран передачу персональных данных, даже хешированных, сверьте с политикой обработки данных сайта и местными правилами.
Самые ценные серверные события приходят из CRM. Заявка превращается в сделку через дни или недели, и только CRM знает, какой лид заплатил. Форма передает в CRM скрытыми полями ttclid и _ttp. Когда сделка переходит в стадию оплаты, CRM отправляет в Events API событие с этими идентификаторами и суммой. В Events Manager события из CRM заводятся отдельным набором и сопоставляются со стандартными, после чего их можно выбрать для оптимизации.
У Meta серверный канал называется Conversions API, и логика у него та же: токен, хешированные данные, общий ID события. Как это устроено у Meta, показано в статье про Events Manager и CAPI, передача стадий сделки - в материале о связке Meta с CRM.
Одна покупка при связке пикселя и Events API приходит в TikTok дважды: из браузера и с сервера. TikTok склеивает копии, если у них совпадают пиксель, имя события и event_id. Копия, пришедшая в течение 5 минут после первой, объединяется с ней: недостающие поля, например почта из серверного события, дописываются в первое событие. Копии, пришедшие позже, но в пределах 48 часов, отбрасываются. Через 48 часов то же событие считается новым (справка TikTok, правило обновлено в мае 2025 и сверено в сентябре 2026).
Дедупликация не нужна, если каналы передают разные события: AddToCart идет из браузера, Purchase только с сервера. Как только одно событие отправляется по двум каналам, event_id обязателен с обеих сторон.
Значение event_id задается один раз, в момент действия. Для покупки подходит номер заказа, который знают и страница «Спасибо», и сервер, а для заявки номер генерируют при отправке формы и кладут в dataLayer, откуда его забирают тег пикселя и серверный тег:
// номер генерируется один раз, в момент отправки формы
var eventId = 'lead-' + Date.now() + '-' + Math.random().toString(36).slice(2, 8);
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'lead_submit',
event_id: eventId
});
// тег пикселя передает eventId в ttq.track, серверный тег - в поле event_id Двойной счет дают три ошибки. Самая частая: каждый тег генерирует свой event_id, и значения расходятся. Бывает, что не совпадают имена: пиксель шлет Purchase, а сервер свое событие order_paid. Если тег из шаблона GTM отправляет CompletePayment, сервер отправляет то же имя. Иногда event_id есть только с одной стороны. При каждой из трех ошибок TikTok видит две покупки там, где была одна, и кампания на ценность учится на завышенном доходе.
Склейку проверяют тестовым заказом. На вкладке тестовых событий видно, из какого канала пришла каждая копия, а в дневной статистике должна остаться одна покупка. При разных event_id диагностика покажет предупреждение.
Проверку проходят до запуска кампании и по каждому событию. Инструментов три: Pixel Helper, тестовые события и диагностика.
Pixel Helper (расширение для браузера) ставится из магазина Chrome (справка TikTok, сентябрь 2026). На странице сайта он показывает, найден ли пиксель, его ID, какие события сработали и с какими параметрами. Ошибки расширение делит на три уровня:
head, ID пикселя не найден, собственные cookie выключеныvalue есть символы, сумма передана без валюты, content_type вне двух допустимых значений
Расширение видит только браузерные события. Серверную часть Pixel Helper не покажет, даже если она работает. В рабочую статистику Events Manager события попадают через 5-10 минут, об этом расширение пишет прямо в окне.
Вкладка тестовых событий в Events Manager показывает события сразу после срабатывания и не смешивает их с рабочей статистикой. Для браузера откройте сайт по ссылке с вкладки и пройдите путь посетителя. В серверный запрос добавляется тестовый код (test_event_code) с той же вкладки. Серверные события отбираются фильтром Connection method. Для разбора серверного запроса там же есть Payload Helper: он проверяет структуру и показывает, какого поля не хватает. После проверки тестовый код из серверной отправки убирают, иначе рабочие события не попадут в статистику.

Вкладка диагностики собирает найденные проблемы в карточки: суть, серьезность, затронутые события и объявления, порядок исправления. Решенная проблема уходит из списка не сразу, обновление занимает до 24 часов. Отдельно TikTok оценивает качество сопоставления, то есть насколько уверенно находит пользователей по переданным данным. Низкая оценка на Purchase - повод проверить, доходят ли в событие почта, телефон и ttclid.

После установки проверка идет в таком порядке:
Purchase: сумма без символов, код валюты, ID товаровРасхождение между TikTok, CRM и GA4 есть почти всегда, и само по себе оно не говорит об ошибке в пикселе. Системы по-разному решают, какую покупку засчитать и на какую дату.
Окна атрибуции. TikTok засчитывает конверсию, если она случилась в течение окна после клика или показа, и по умолчанию это 7 дней после клика и 1 день после просмотра. Окно задается в группе объявлений: по клику 1, 7, 14 или 28 дней, по просмотру 1 или 7 дней либо выключено. После публикации группы окно не меняется (по справке TikTok на сентябрь 2026). GA4 видит только визиты на сайт и по умолчанию делит ценность между каналами по модели на основе данных. Покупка, которую TikTok записал себе, в GA4 может достаться поиску или прямому заходу.
Дата засчитывания. Стандартный столбец конверсий в Ads Manager относит покупку ко дню клика или показа. CRM записывает сделку днем оплаты. Клик в понедельник и оплата в четверг попадут в отчеты разных дней, а на границе месяца в разные месяцы. У TikTok есть метрика Real-time Conversions: она считает по дате самого события и по логике ближе к CRM.
Конверсии после просмотра. Человек посмотрел ролик, не кликнул и через несколько часов купил, найдя магазин в поиске. TikTok засчитает покупку в окне просмотра, а GA4 и CRM о ролике не знают. Если тот же человек видел рекламу в Meta, покупку себе запишут обе площадки, и сумма конверсий по площадкам превысит число заказов.
Дубли. Без event_id или с разными именами событий пиксель и Events API дают две покупки на один заказ. Признак - покупок в TikTok почти вдвое больше, чем в CRM.
Потери браузера. Обратная картина: при одном пикселе без Events API TikTok показывает меньше покупок, чем было. Разрыв растет, если в аудитории много блокировщиков рекламы или оплата уходит на внешнюю страницу банка.
Часовые пояса. Часовой пояс кабинета задается при создании, у GA4 и CRM он может быть свой. Кабинет по времени Нью-Йорка и CRM по времени Алматы расходятся на 9-10 часов, и вечерние заказы переезжают в соседний день.
Отмены и возвраты. Пиксель срабатывает на странице «Спасибо» и не знает, что заказ потом отменили или вернули. CRM такие заказы вычитает, TikTok оставляет в статистике. Туда же попадают проверочные заказы, сделанные без тестового кода.
Как сверять цифры:
Как разные модели делят ценность между каналами, разобрано в статье о чтении атрибуции. У Meta похожая логика окон, ее настройка описана в статье про окно атрибуции.
Lead и Purchase, в шаблоне GTM пока SubmitForm и CompletePayment: TikTok сводит их к новым самvalue и currency стоят в каждом денежном событии, content_id одинаковый по всей воронкеevent_id в пределах 48 часовДля сайта нужен. Пиксель ставит cookie _ttp и собирает браузерные данные, по которым TikTok связывает серверные события с пользователями. Events API без пикселя работает, но сопоставляет хуже. TikTok рекомендует связку.
Через GTM, потому что Tilda нет среди партнерских интеграций TikTok. Контейнер подключается в настройках сайта, пиксель и события настраиваются в GTM. Серверную часть Tilda своими средствами не передает, для нее нужен серверный GTM или Events API Gateway.
Главная причина - не загружается страница «Спасибо»: оплата прошла на странице банка, и покупатель не вернулся на сайт. Другие причины - событие привязано к клику по кнопке, в имени события ошибка, код пикселя стоит вне head. Надежнее всего отправлять Purchase с сервера по уведомлению платежной системы.
Поставить можно, но посетители разных сайтов смешаются в одних аудиториях и в данных для обучения кампаний. Поэтому у каждого сайта свой пиксель. Исключение - отдельный домен оформления заказа того же магазина.
Ориентир из справки TikTok на сентябрь 2026 - около 50 конверсий на группу объявлений, после них цена конверсии стабилизируется. Срок справка не называет, в разборах Journify и Mega Digital эти 50 считают за первые 7 дней. Если покупок меньше, кампанию оптимизируют на событие выше по воронке, например InitiateCheckout или AddToCart.
Сначала уберите из сравнения покупки после просмотра. CRM о них не знает. Если разрыв остался, проверьте дедупликацию на тестовом заказе и вычтите из данных TikTok отмены.
Да. Из событий пикселя собирается пользовательская аудитория: все посетители сайта, те, кто добавил товар в корзину, или покупатели за 30 дней. Как ее собрать, показано в статье про таргетинг и аудитории.
Это счетчик от TikTok на вашем сайте. Он замечает, что сделал посетитель после рекламы: открыл товар, положил в корзину, оставил заявку, купил, и сообщает об этом рекламному кабинету. По этим данным TikTok ищет людей, похожих на покупателей, и считает, сколько продаж принесла кампания.