click_id что это и как передать subid через редирект

Click ID и SubID позволяют привязать конверсию к клику. Показываем путь параметров, места потерь и способы сохранить их через редиректы.

Команда TDS Автор
Опубликовано
8 мин Время чтения
Все статьи

Click ID, или click_id, это уникальное значение, которое трекер или рекламная сеть создаёт для каждого клика. SubID (sub1, sub2 и дальше) это метки, которые вы вешаете сами, чтобы потом понимать, откуда пришёл клик: из какой кампании, с какого креатива, с какой площадки. Обе вещи нужны для одного: пройти вместе с посетителем путь от объявления до оффера, чтобы продажу можно было привязать к клику, который её принёс.

Значения создать легко, а потерять ещё легче. Большинство историй вида «в партнёрке лидов больше, чем в трекере» начинается с параметра, который отрезал редирект, зашитая в лендинг ссылка или форма. Ниже весь путь параметра, места, где он обрывается, и короткий скрипт, который удерживает его на лендинге.

Если коротко

Click ID рождается на первом шаге (ваша ссылка в трекере или рекламная сеть) и должен доехать до ссылки оффера в том параметре, который понимает партнёрка. SubID (sub1–sub5) это ваши собственные метки: креатив, площадка, кампания. Чтобы они пережили редиректы, каждый шаг должен переносить строку запроса дальше: метод редиректа, ссылки на лендинге, action формы и любой JavaScript-переход. Перед запуском проверьте цепочку с выдуманным значением.

Что такое click_id и sub1–sub5

Click ID идентифицирует один клик. Трекер создаёт его, когда посетитель попал на вашу ссылку, сохраняет данные клика под этим значением (время, страна, устройство, источник) и позже находит его, когда приходит постбэк. Некоторые источники трафика выдают и свой идентификатор клика и дописывают его в URL. Считайте это отдельным полем: оно полезно, но принадлежит источнику, а не вашему трекеру.

SubID это произвольные метки. Нумерация sub1, sub2 и так до sub5 или больше является привычкой, а не стандартом, и у каждого трекера и партнёрки есть свои нюансы. Типичная раскладка:

  • sub1: источник трафика или рекламный кабинет
  • sub2: кампания
  • sub3: группа объявлений, креатив или площадка
  • sub4: версия лендинга или прелендинга
  • sub5: всё остальное, например номер теста

Click ID отвечает на вопрос «какой именно это был клик». SubID отвечают на вопрос «какого рода был клик». Нужны оба: первый для привязки конверсии, вторые для решения, что масштабировать.

Каким путём идёт параметр

В обычной воронке значение проходит четыре шага:

  1. URL в объявлении. В объявлении стоит ваша ссылка с макросами: https://track.example.com/abc?sub1={campaign}&sub2={placement}. Рекламная сеть подставляет вместо каждого макроса реальное значение в момент клика. Названия макросов у источников разные, берите их из документации источника.
  2. Ссылка трекера или TDS. Ссылка получает строку запроса, создаёт click ID, пишет клик в лог и по правилам выбирает, куда отправить посетителя.
  3. Лендинг. Посетитель приходит с параметрами в адресной строке, читает страницу и нажимает кнопку.
  4. Ссылка оффера. Кнопка ведёт в партнёрку, и click ID должен лежать в том параметре, который она ждёт. У разных партнёрок он называется по-своему: clickid, subid, aff_sub и так далее. Точное имя смотрите в документации вашей сети.

Когда посетитель превращается в лид, партнёрка обращается к вашему URL постбэка и возвращает то же самое значение. Трекер находит клик и добавляет конверсию и доход. Если эта часть у вас ещё не настроена, начните с материала что такое постбэк. Click ID, который не вернулся в постбэке, бесполезен, а постбэк без click ID не к чему привязать.

Где параметры теряются

Каждый шаг это место, где строку запроса можно обрезать. Типичные случаи.

Методы редиректа, которые не переносят query string

Редирект отправляет посетителя на новый URL. Если в правиле записан голый адрес без параметров, посетитель приедет с пустыми руками. В одних настройках входящая строка запроса дописывается к адресу назначения автоматически, в других только если вы это включили, а некоторые методы (meta refresh, JavaScript, iframe) ведут себя иначе, чем обычный 301 или 302. Не гадайте: проверьте каждый используемый метод с выдуманным параметром и посмотрите на адресную строку после перехода. С UTM-метками происходит то же самое, подробности в статье как сохранить UTM при редиректе.

Ссылки на лендинге без параметра

Самая частая причина. Страница открылась с ?sub1=...&clickid=..., а кнопка по-прежнему ведёт на https://offer.example.com/go. Параметры остаются в адресной строке и до оффера не доезжают. Лечится скриптом ниже.

Формы

Если на лендинге есть форма, которая отправляет данные в оффер, параметры из адреса страницы вместе с ней не поедут. В форме нужны скрытые поля с click ID и SubID, которые заполняются из URL страницы. Форма, которая сначала отправляет данные на ваш сервер, а потом делает редирект, даёт ту же проблему на шаг позже.

JavaScript-редиректы

Скрипт вида window.location = "https://offer.example.com" отправляет посетителя на чистый URL. Адрес назначения нужно собирать вместе с входящими параметрами, а не заменять ими.

Кодирование символов в URL

Значение с символом &, #, пробелом или кириллицей может сломать строку запроса, если его не закодировать. Название площадки news&sport превращается в два параметра, и вторая половина молча пропадает. В значения макросов стоит класть только безопасные символы, а при сборке URL в коде кодировать их.

Переходы между доменами

Cookie и localStorage между доменами не ходят. Если воронка идёт с домена трекера на домен лендинга и дальше на домен оффера, данные между ними переносит только URL. Не рассчитывайте, что cookie, поставленная на первом домене, прочитается на последнем.

Как дописать параметры на лендинге

Этот скрипт копирует строку запроса текущей страницы во все внешние ссылки, которые вы пометили атрибутом data-pass. Параметры, которые уже есть в ссылке, он сохраняет и не перезаписывает.

Код
<a href="https://offer.example.com/go?offer=123" data-pass>Получить оффер</a>

<script>
(function () {
  var incoming = new URLSearchParams(window.location.search);
  try {
    // запоминаем для следующей страницы многостраничного лендинга
    if (window.location.search.length > 1) {
      sessionStorage.setItem("tds_qs", window.location.search);
    } else {
      var saved = sessionStorage.getItem("tds_qs");
      if (saved) { incoming = new URLSearchParams(saved); }
    }
  } catch (e) {}

  document.querySelectorAll("a[data-pass]").forEach(function (a) {
    var url = new URL(a.href, window.location.href);
    incoming.forEach(function (value, key) {
      if (url.searchParams.has(key) === false) {
        url.searchParams.set(key, value);
      }
    });
    a.href = url.toString();
  });
})();
</script>

Несколько замечаний. Поставьте скрипт в конец страницы, чтобы ссылки к моменту запуска уже существовали. Кодированием значений занимается URLSearchParams. Блок с sessionStorage нужен для лендингов из нескольких страниц: у второй страницы строки запроса уже нет, и она берёт сохранённую. Если оффер ждёт click ID под другим именем, переименуйте параметр в скрипте: прочитайте clickid из входящих и запишите его под именем, которое хочет сеть.

Для формы добавьте по скрытому полю на каждый параметр и заполните их из того же объекта URLSearchParams до отправки.

Как называть sub-параметры

Выберите схему один раз и держитесь её во всех кампаниях. Отчёт настолько понятен, насколько понятны метки, которые в него попали.

  • Фиксированный смысл у каждой ячейки. Если sub3 это креатив, то он креатив во всех кампаниях. На следующей неделе не превращайте его в площадку.
  • Коротко, строчными, без пробелов. cr_video_12 переживёт кодирование, Креатив видео №12 нет.
  • ID лучше названий. Берите числовой идентификатор источника, если он есть, а читаемое имя держите в своих заметках.
  • Оставьте ячейку под тесты. Одна ячейка под номер теста избавит от смены схемы на ходу.
  • Проверьте ограничение длины. Некоторые партнёрки режут или отклоняют длинные значения. Загляните в документацию сети, прежде чем класть туда длинную строку.

Типичные потери и что с ними делать

Где ломается Симптом Что делать
Редирект без строки запроса Лендинг открывается без параметров в адресе Включить передачу параметров для этого редиректа или собрать адрес назначения с макросами
Зашитая ссылка в кнопке На странице параметры есть, в оффере нет Дописывать их скриптом выше
Форма без скрытых полей Лиды приходят с пустым click ID Добавить скрытые поля, заполняемые из URL страницы
JavaScript-переход на чистый URL В тесте на десктопе работает, на живом трафике теряется Собирать адрес назначения из location.search
Неэкранированные спецсимволы Значение обрезается на первом & или # Использовать безопасные символы в макросах, кодировать значения в коде
Передача через cookie между доменами На одном домене работает, на следующем пусто Передавать всё в URL
Не то имя параметра для партнёрки В партнёрке конверсии без subid Сверить точное имя с документацией сети по офферу и постбэку

Проверка за пять минут до того, как потратите бюджет

  1. Откройте свою ссылку в браузере с выдуманными значениями, например ?sub1=test_a&sub2=test_b.
  2. После каждого шага смотрите на адресную строку. На лендинге значения должны быть на месте.
  3. Нажмите кнопку и посмотрите на URL оффера. Click ID и ваши sub-значения должны лежать в параметрах с теми именами, которые использует сеть.
  4. Найдите этот клик в логе кликов трекера и убедитесь, что sub-значения записались.
  5. Повторите на телефоне и ещё хотя бы в одном браузере: встроенные браузеры приложений иногда ведут себя иначе.

В TDS.SO входящие параметры можно использовать и как условие правила (параметры URL входят в 20+ условий), а каждый клик попадает в лог со временем, страной, устройством, реферером и статусом. Метод редиректа выбирается для ссылки из 10+ вариантов, поэтому его можно сменить и повторить проверку, не трогая объявление. Учёт конверсий по постбэкам, доход и ROI находятся в бете, а часть про click ID работает так же, как описано выше.

Частые вопросы

Чем click ID отличается от SubID?

Click ID уникален для каждого клика и нужен, чтобы привязать конверсию к этому клику. SubID это метка, которую выбираете вы, и она повторяется на множестве кликов, например один и тот же номер креатива у тысяч посетителей. Многие называют SubID оба понятия, а некоторые партнёрки именуют параметр с click ID как subid, так что читайте документацию своей сети.

Сколько sub-параметров нужно?

Для большинства схем хватает трёх-пяти: источник, кампания, креатив, лендинг и один запасной. Чем больше ячеек, тем проще запутаться. Добавляйте новую, только когда есть вопрос, на который старые ответить не могут.

Почему в партнёрке конверсия с пустым subid?

Клик дошёл до оффера без значения. Сначала проверьте ссылки на лендинге, форму и JavaScript-переходы, потом убедитесь, что имя параметра совпадает с тем, что ждёт сеть.

Можно ли передать click ID через лендинг, который я не контролирую?

Только если эта страница сама переносит строку запроса дальше. Если нет, нужен собственный шаг воронки под вашим контролем или редирект, который отправляет посетителя сразу в оффер.

Чтобы проверить, как ведут себя ваши ссылки, создайте ссылку в разделе редиректов, выберите метод и прогоните проверку из пяти шагов выше. Что именно записывается по каждому клику, видно на странице аналитики.

Статья была полезной?
Команда TDS Автор

Гайды и разборы о маршрутизации, фильтрации ботов и трекинге от команды TDS.SO.

Все статьи автора
Читайте дальше

По теме

Все статьи
Аналитика 7 мин

Атрибуция конверсий в арбитраже: модели, окна, click ID

11 ноя 2026 · Команда TDS
Аналитика 6 мин

S2S постбэк или пиксель: что выбрать арбитражнику

11 ноя 2026 · Команда TDS
Аналитика 8 мин

Постбэк: что это и как настроить S2S постбэк

10 ноя 2026 · Команда TDS

Проверьте
на своём трафике

Привяжите Telegram-бота и получите 3 дня бесплатно, один раз на аккаунт.

Создать аккаунт