Назад к оглавлению

Статья 16

МАКРОСЫ

или плейсхолдеры, или "заполняйте их, чтобы мы вам заплатили"

В 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.

А вот повторно перечитать мои посты — всегда хорошая идея :)