или плейсхолдеры, или "заполняйте их, чтобы мы вам заплатили"
В UTM метках кликовой, в API запросах статистики, в cookie sync — везде встречается этот довольно простой концепт.
Макросы — последовательность символов, которую ищет программа в тексте, чтобы заменить её динамическим значением. Впоследствии это значение обрабатывает сервер, которому «принадлежит» изменяемая ссылка.
Довольно простой функционал, но можно запутаться при длинной цепочке людей и систем, через которые нужно передать данные. Поэтому важно разбивать такой путь на шаги и на каждом из них иметь правильный ответ на вопросы «Что искать?» и «На что заменять?».
Макросы кликовой ссылки
1. Рекламодатель → человек из DSP
Текст с макросом:
advertiser.com/utm_source={utm_source}&utm_campaign={utm_campaign}
Инструкция:
{utm_source}замени на source (источник){utm_campaign}замени на campaign (кампанию, иф ю донт ноу вот ай мин)
2. Человек из DSP → интерфейс DSP
Человек понимает, что источник в его ситуации не динамический и его можно заменить самостоятельно, и вспоминает, что в платформе работает макрос вида ${CAMPAIGN_ID}, который будет заменяться на ID кампании при отдаче рекламы пользователю.
Текст с макросом:
advertiser.com/utm_source=mestodlareklami&utm_campaign=${CAMPAIGN_ID}
Инструкция (код):
${CAMPAIGN_ID} заменяй на campaign_id из базы данных
replace(${CAMPAIGN_ID}, campaign_id)
3. Получатель данных
Сайт с Я.Метрикой получит клики по ссылкам:
advertiser.com/utm_source=mestodlareklami&utm_campaign=viewability90
advertiser.com/utm_source=mestodlareklami&utm_campaign=ctr30
И запишет в отчёт значения из параметров utm_source=... и utm_campaign=....
Если там по ошибке останется {utm_source}, то такое значение и будет записано.
Кликовая с редиректом через верификатора и данными от паблишера
1. Рекламодатель → человек из верификатора
Текст с макросом:
advertiser.com/?utm_source={utm_source}
Инструкция:
{utm_source} заменяй на ID паблишера
2. Человек из верификатора → интерфейс верификатора
Текст с макросом:
advertiser.com/?utm_source=![source]
Инструкция (код):
![source] заменяй на source id, который пробросит DSP в нашу редирект ссылку
source_id = request.get_query_param('source_id')
replace(![source], source_id)
3. Человек из верификатора → человек из DSP
Текст с макросом:
verificator.com/adv1?source_id=![source0]
Инструкция:
![source0] заменяй на ID паблишера
4. Человек из DSP → интерфейс DSP
Текст с макросом:
verificator.com/adv1?source_id=${PUBLISHER_ID}
Инструкция (код):
${PUBLISHER_ID} заменяй на pub_id из базы данных
replace(${PUBLISHER_ID}, pub_id)
5. Получатели данных
Верификатор получит переход по ссылке:
verificator.com/adv1?source_id=12
Сайт с Я.Метрикой получит редирект от верификатора на ссылку:
advertiser.com/?utm_source=12
Заглушки vs макросы
На шагах «Человек → Человек» заглушки в тексте — просто указания мест, куда получатель ожидает значение на понятном человеку языке. Они никак не относятся к функционалу системы получателя или отправителя данных и считаются «макросами» условно.
Стандартные для RTB макросы
которые платформы используют при oRTB интеграции:
${AUCTION_PRICE}— SSP заменяет его в DSP ответе на ставку, с которой этот ответ победил в аукционе второй или первой цены.${AUCTION_CURRENCY}— заменяется на валюту числа вauction_price.${AUCTION_ID}— айди аукциона,- и ещё несколько непопулярных.
URL encoding
Если в ссылку попадут пробел, ?, &, / и т.д., она сломается. Для защиты ссылок от депрессии придумали URL encoding: всё кроме латиницы, цифр и - . _ ~ заменяется на % + код символа в UTF-8: пробел становится %20, слэш — %2F, какие ужасы происходят с кириллицей — я вообще молчу.
Так что при ручном вводе нужно использовать онлайн-утилиты, которые закодируют строку, если видите подозрительные символы. Но убедитесь, что вы не энкодите строку повторно, потому что так %20 сломается до %2520.
А вот повторно перечитать мои посты — всегда хорошая идея :)