Надёжная настройка Facebook Ads — это не самый длинный UTM-шаблон. Передайте три стабильных ID Meta в именованные поля трекера, используйте sub ID для плейсмента и источника и проверьте итоговый URL на реальном клике.
Для DarkCore вставьте эту строку в поле URL parameters на уровне объявления:
campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&sub1={{placement}}&sub2={{site_source_name}}
Если собираете полный destination URL вручную, перед первым параметром нужен ?:
https://go.example.com/?campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&sub1={{placement}}&sub2={{site_source_name}}
В специальном поле параметров Meta начальный ? обычно не нужен — платформа добавляет его сама. В полном URL должен быть ровно один ?, а все следующие параметры разделяются через &.
Что на самом деле означает «Facebook sub ID»
В Meta нет отдельного макроса sub_id. Sub ID — это поле вашего трекера или партнёрской сети, значение которого можно заполнить динамическим параметром Meta.
sub1={{placement}}
sub1 принадлежит DarkCore, а {{placement}} — Meta. Во время клика платформа подставляет фактическое значение, и трекер получает, например:
sub1=facebook_feed
Для campaign, ad set и ad ID в DarkCore есть отдельные поля. Не тратьте на них три универсальных sub-слота.
Рекомендуемый маппинг Meta → DarkCore
| Входной параметр | Значение Meta | Что идентифицирует | Зачем это поле |
|---|---|---|---|
campaign_id | {{campaign.id}} | Кампанию | Стабильный ключ для отчётов и расходов |
adset_id | {{adset.id}} | Адсет | Стабильный ключ аудитории и биддинга |
ad_id | {{ad.id}} | Объявление | Самый детальный стабильный ключ |
sub1 | {{placement}} | Feed, Stories, Reels и другие плейсменты | Срез для маршрутизации и прибыльности |
sub2 | {{site_source_name}} | Facebook, Instagram, Messenger или Audience Network | Отделяет источник инвентаря от плейсмента |
Справочник динамических URL-параметров Meta также содержит {{campaign.name}}, {{adset.name}} и {{ad.name}}. Используйте названия как читаемые метки, но не как основные ключи: их можно изменить, продублировать или использовать повторно. Для объединения кликов, расходов и конверсий надёжнее ID.

Если нужны и названия, добавьте их после стабильных полей:
campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&sub1={{placement}}&sub2={{site_source_name}}&sub3={{campaign.name}}&sub4={{adset.name}}&sub5={{ad.name}}
Не заменяйте ими ID.
Где здесь fbclid
fbclid и sub ID решают разные задачи:
fbclid— идентификатор конкретного клика Meta. Когда он есть во входном URL, DarkCore сохраняет его для непрерывности клика и атрибуции.campaign_id,adset_idиad_idописывают структуру рекламного кабинета.sub1–sub10— ваши гибкие бизнес-измерения: плейсмент, источник, угол креатива, код байера или батч.
Не помещайте fbclid в sub1 и не создавайте его из ad ID. Реальный click ID должна передать Meta; макросы нужны для контекста кампании.
Если Pixel и Conversions API могут отправить одно бизнес-событие, держите click context отдельно от общего event identity и пройдите чеклист дедупликации Facebook CAPI до запуска.
Как DarkCore переносит значения дальше
При первом запросе DarkCore читает именованные поля кампании и sub1–sub10. Затем значения можно использовать в Track Link:
https://affiliate.example/click?cid={click_id}&campaign={campaign_id}&adset={adset_id}&ad={ad_id}&placement={sub1}&source={sub2}
Не смешивайте два синтаксиса:
- Meta подставляет
{{ad.id}}и{{placement}}до перехода на лендинг. - DarkCore сохраняет значения и подставляет
{ad_id},{sub1}и{click_id}в исходящий URL.
Если в DarkCore пришёл буквальный {{ad.id}}, макрос не раскрылся на стороне Meta. Если в партнёрский URL ушёл {sub1}, проверяйте исходящий Track Link.
Вторая половина цепочки разобрана в материалах как отслеживать Facebook-конверсии партнёрских офферов и что такое S2S-постбек.
Если сеть просит {subid}, {aff_sub} или другой незнакомый токен, перед копированием шаблона откройте гайд про click ID, sub ID и макросы постбека.
Pass/fail-проверка перед запуском
Не принимайте настройку «на глаз». Проведите один реальный или платформенный тест-клик и заполните таблицу фактами.
| Тест | Ожидаемый факт | Pass? |
|---|---|---|
| Финальный URL | Один ?, затем корректные key=value через & | ☐ |
| Подстановка макросов | Нет буквальных {{campaign.id}}, {{ad.id}} и других токенов Meta | ☐ |
| Стабильные ID | campaign_id, adset_id, ad_id содержат числовые ID | ☐ |
| Плейсмент | В sub1 фактический плейсмент, а не захардкоженная догадка | ☐ |
| Источник | sub2 разделяет Facebook, Instagram и другой инвентарь | ☐ |
| Запись клика | Те же значения есть в клике DarkCore | ☐ |
| Исходящий URL | {click_id} и нужные поля подставились ровно один раз | ☐ |
| Тестовая конверсия | Один постбек привязан к тому же клику без дубля выручки | ☐ |

Типичные ошибки
- Нет
?перед первым параметром в полном URL. Тогдаsub1становится частью path, а не query string. - Всё хранится только в UTM. UTM полезны для веб-аналитики, но трекеру нужны детерминированные поля для маршрутизации и постбеков.
- Названия используются как ключи. Rename делит историю, одинаковые названия смешивают разный трафик.
- Перепутаны синтаксисы.
{{ad.id}}принадлежит Meta,{ad_id}— исходящему Track Link в DarkCore. - Проверен только редирект. Успешная загрузка страницы не доказывает атрибуцию. Нужна полная цепь: входные ID → сохранённый клик → исходящий URL → одна конверсия.
FAQ
Какой Facebook-макрос ставить в sub1?
В рекомендуемой схеме — sub1={{placement}}. Для campaign, ad set и ad ID есть отдельные поля.
Можно ли передавать название вместо campaign ID?
Название можно добавить как метку, но основным ключом оставляйте {{campaign.id}}.
fbclid — это Facebook sub ID?
Нет. fbclid идентифицирует отдельный клик Meta, а sub ID хранит выбранное вами измерение.
Сколько sub ID поддерживает DarkCore?
DarkCore принимает sub1–sub10 и отдаёт их в Track Links как {sub1}–{sub10}.
Если Meta-трафик проходит через устанавливаемую воронку, продолжите с разбором PWA-приложений в арбитраже. Перед выбором платформы используйте сравнение PWA-сервисов: там один и тот же маршрут проверяется от рекламного клика до постбека и повторной конверсии.