Макросы в ссылках и страницах
Какие макросы понимает трекер, что вместо них подставляется и как значения кодируются в ссылках и в коде локальных страниц.
Макрос — имя в фигурных скобках, вместо которого трекер подставляет данные клика: {click_id}, {country}, {sub_id_1}. Список макросов есть и в панели: Админ-панель → Макросы, щелчок по строке копирует макрос в буфер. Пункт меню видят владелец и администратор.
Где работают макросы
- В поле URL внешнего оффера и внешнего лендинга.
- В действиях потока Прямой URL, HTML и Показать текст.
- В коде главной страницы локального лендинга или оффера, когда трекер отдаёт её по ссылке кампании или по ссылке перехода на оффер: в
index.htmlи в HTML-ответеindex.php. Остальные файлы и прямые адреса — в разделе Где макросы не подставляются. - В адресах S2S-постбеков. Там свой набор макросов, см. S2S-постбэк в источник и S2S-постбеки кампании и источника.
Синтаксис
Правила раздела относятся к ссылкам, действиям потока и коду страниц.
| Запись | Что означает | Пример |
|---|---|---|
{имя} | Значение с кодированием или экранированием | {keyword} |
{_имя} | То же значение без кодирования и экранирования | {_keyword} |
{имя:аргументы} | Макрос с аргументами после двоеточия | {random:1,100} |
- Имя макроса начинается с латинской буквы и состоит из латинских букв, цифр и знака подчёркивания. Параметр ссылки с другим именем, например
utm-term, макросом не становится. - Неизвестный макрос остаётся в тексте как есть.
- Известный макрос без значения даёт пустую строку. Например,
{city}, когда город не определился. - Встроенный макрос важнее одноимённого параметра ссылки.
Кодирование и экранирование
В ссылках и в действиях потока значение кодируется для URL. Префикс _ вставляет его как есть.
Ключевое слово клика: red shoes & bags
https://offer.example.com/?kw={keyword} → ?kw=red+shoes+%26+bags
https://offer.example.com/?kw={_keyword} → ?kw=red shoes & bagsВ коде локальной страницы значение не кодируется для URL, а экранируется по месту вставки:
- в разметке и в атрибутах — как HTML;
- внутри тега
script, в обработчикахonclickи подобных и в ссылкахjavascript:— как строка JavaScript.
Заключайте значения атрибутов и строки JavaScript в кавычки: обычный макрос вставляет данные, а не исполняемый код.
<input type="hidden" name="subid" value="{click_id}">
<script>var geo = "{country}";</script>Префикс _ в коде страницы отключает экранирование. Значения параметров ссылки присылает посетитель, поэтому {_sub_id_1} и подобные макросы вставят в страницу любой присланный текст, включая теги и скрипты.
Идентификаторы и сущности
| Макрос | Что подставляется | Пример |
|---|---|---|
{click_id} | ID клика. То же дают {subid} и {visitor_code} | k3m9x2pq7wzt |
{campaign_id} | ID кампании. То же — {keitaro_campaign_id} | — |
{campaign_name} | Название кампании. То же — {keitaro_campaign_name} | FB DE Nutra |
{campaign_alias} | Alias кампании из её ссылки | abc1234 |
{stream_id} | ID потока | — |
{offer_id} | ID оффера | — |
{offer_name} | Название оффера | Keto DE |
{landing_id} | ID лендинга. То же — {lander_id} | — |
{landing_name} | Название лендинга. То же — {lander_name} | Quiz v2 |
{ts_id} | ID источника трафика. То же — {source_id} | — |
{traffic_source_name} | Название источника | Facebook |
{affiliate_network_name} | Название партнёрской сети оффера | Network A |
{external_id} | ID клика на стороне рекламной сети: слот external_id в токенах источника | — |
ID кампании, потока, оффера, лендинга и источника подставляются полным идентификатором вида 11111111-2222-3333-4444-555555555555, а не номером #N из списка.
Сеть, устройство, гео
| Макрос | Что подставляется | Пример |
|---|---|---|
{ip} | IP-адрес посетителя | 203.0.113.10 |
{user_agent} | User-Agent. То же — {ua}, {useragent} | Mozilla/5.0 … |
{country} | Двухбуквенный код страны. То же — {country_code} | DE |
{region} | Регион. То же — {region_name} | California |
{city} | Город | Berlin |
{isp} | Провайдер | — |
{connection_type} | Тип соединения. У обычного соединения — пусто | hosting, vpn, tor, proxy |
{device} | Тип устройства. То же — {device_type} | mobile, tablet, desktop, unknown |
{device_model} | Модель устройства | — |
{os} | Операционная система | Android |
{os_version} | Версия ОС | 14 |
{browser} | Браузер | Chrome |
{browser_version} | Версия браузера | 126.0.0.0 |
{language} | Язык браузера. То же — {lang} | en |
{is_bot} | 1, если клик определён как бот, иначе 0 | 0 |
{is_using_proxy} | 1, если тип соединения — hosting, vpn, tor или proxy, иначе 0 | 0 |
{referrer} | Реферер. То же — {referer} | https://example.com/page |
{current_domain} | Домен, на который пришёл клик | track.example.com |
Страна, регион и город берутся из геобаз, тип соединения — из базы IP2Proxy.
Источник и sub_id
| Макрос | Что подставляется | Пример |
|---|---|---|
{source} | Площадка или сайт источника | site123 |
{ad_campaign_id} | ID рекламной кампании | 120210001 |
{creative_id} | ID креатива или объявления | 120210045 |
{keyword} | Ключевое слово | red shoes |
{sub_id_1} … {sub_id_30} | Значение соответствующего sub_id | adset_7 |
{имя_параметра} | Значение любого параметра ссылки кампании | {utm_term} для ?utm_term=… |
Эти значения приходят из параметров ссылки кампании. Токены источника переносят параметр рекламной сети в нужный макрос: значение доступно по слоту, например {sub_id_3}, и по названию токена — см. Порядок обработки клика. Если параметр не пришёл, берётся значение по умолчанию из параметров кампании, когда оно задано.
Без значения {sub_id_N} и {keyword} дают пустую строку. {source}, {ad_campaign_id}, {creative_id} и макрос по имени параметра остаются текстом, если такого параметра в клике нет.
Экономика и конверсия
| Макрос | Что подставляется | Пример |
|---|---|---|
{cost} | Стоимость клика — см. Модели расхода кампании | 0.05 |
{currency} | Валюта стоимости | USD |
{revenue} | Доход конверсии | только в постбеке |
{status} | Статус конверсии | только в постбеке |
{tid} | ID транзакции | только в постбеке |
В ссылках и на страницах {revenue}, {status} и {tid}, а также {profit} и {conversion_time} значения не дают: в момент клика конверсии ещё нет. {revenue}, {status} и {tid} получают значения в исходящих S2S-постбеках. Набор макросов постбека — на странице S2S-постбэк в источник.
Генераторы
| Макрос | Что подставляется | Пример |
|---|---|---|
{random:1,100} | Случайное целое число от первого до второго значения включительно | 57 |
{sample:a,b,c} | Случайный элемент списка через запятую | b |
{date:Y-m-d H:i:s} | Дата и время по заданному формату | 2026-10-04 12:30:05 |
{timestamp} | Unix-время в секундах | 1791117005 |
{random}без двух чисел даёт число от 0 до 999999.{date}без формата используетY-m-d H:i:s. Время берётся по UTC.
Символы формата даты
Y— год, четыре цифры:2026;y— две цифры:26.m— месяц с ведущим нулём:04;n— без нуля:4.d— день с ведущим нулём:09;j— без нуля:9.H— часы в 24-часовом формате,i— минуты,s— секунды.O— смещение часового пояса:+0000;P— с двоеточием:+00:00.T— имя часового пояса:UTC.U— Unix-время:1791117005.
Остальные символы выводятся как есть. Обратный слеш перед символом оставляет его буквой: \Y даёт Y.
Переходы и значения оффера
| Макрос | Что подставляется | Пример |
|---|---|---|
{offer} | Ссылка перехода с лендинга на оффер. То же — {to} | href="{offer}" |
{offer:ID} | Ссылка перехода на конкретный оффер потока. ID — полный идентификатор оффера | href="{offer:ID}" |
{offer_value:имя} | Значение оффера с этим именем | {offer_value:price} |
{offer} и {offer:ID} ставятся в коде локального лендинга — см. Переход с лендинга на оффер и мультиоффер. Значения оффера задаются кнопкой значения в списке офферов — см. Значения оффера. Имя, которого у оффера нет, даёт пустую строку.
Виджеты
Виджеты работают только в HTML-коде локальной страницы. Вместо макроса вставляется готовый блок HTML со стилями и скриптом, поэтому ставьте его один раз в разметке, вне атрибутов, скриптов и комментариев.
Маска телефона
Макрос {phone_mask} добавляет маску телефона для полей input с именем phone:
- выбирает страну по IP посетителя, при неизвестной стране — США;
- проверяет номер при вводе и показывает сообщение на языке браузера: en, ru, es, fr, de, it, pt, nl, pl, tr, uk. Для остальных языков текст английский;
- не даёт отправить форму с неверным номером;
- записывает телефонный код страны в элемент с
id="phonecc", если он есть на странице.
Библиотеки маски загружаются с внешних CDN: cdnjs.cloudflare.com и code.jquery.com.
<form method="post">
<input type="tel" name="phone">
<input type="hidden" name="phonecc" id="phonecc">
<button type="submit">Отправить</button>
</form>
{phone_mask}Экран отправки формы
Макрос {form_loader} при отправке любой формы показывает поверх страницы экран со спиннером и текстом: заявка отправлена, в течение нескольких минут свяжется менеджер, страницу закрывать не нужно. Внешние файлы не подключаются. Язык текста выбирается по языку браузера: en, ru, fr, de, es, pt, it, nl, pl, sv, no. Для остальных языков текст английский.
Где макросы не подставляются
- В файлах
.css,.jsи других, кроме HTML. Значение для скрипта передайте через переменную в HTML-файле, как в примере раздела Кодирование и экранирование. - В ответе PHP, который отдаёт не HTML.
- На страницах, открытых по прямому адресу
/_l/<ID>/…или/_o/<ID>/…: кнопками Просмотр и Открыть ↗ и при переходе с главной страницы на другой файл архива, напримерthanks.html. Клика в таком запросе нет. В файлах.htmlи.htmзаменяются только макросы без аргументов, имя которых совпало с параметром адреса, и виджеты; остальные макросы остаются текстом. В ответ PHP ничего не подставляется.
Чтобы передать значение на вторую страницу архива, добавьте его в ссылку параметром:
<a href="thanks.html?click_id={click_id}">Далее</a>Фигурные скобки CSS и JavaScript в коде страницы не меняются, пока запись в них не совпала с именем макроса. Запись без пробелов, например {status} или {ip}, будет заменена.
Как отдаются локальные страницы и чем прямой адрес отличается от ссылки кампании — на странице Локальный хостинг.