09 Интеграция рекламы
Рекламный сервер отдаёт рекламу по нескольким маршрутам. Полный список пайплайнов и их параметров описан в dist/server/configs/config.yaml.
| Маршрут | Назначение |
|---|---|
/banner/{block}/{action} |
Статический баннер: img — картинка, click — переход |
/native/{block} |
Нативный формат (JSON) |
/dsp/{block} |
RTB/DSP-запрос |
/inapp/{block} |
Формат для мобильных приложений |
/tracker/{data}.gif |
Трекинг-пиксель |
/postback |
Приём постбеков от сетей |
Во всех примерах ниже https://ads.example.com — публичный адрес вашего рекламного сервера (порт 8071). Идентификатор блока ({block}) показан на странице редактирования блока в админке.
В
dist/server/configs/config.yamlдля output-плагиновwebзадаётся параметрbase— публичный адрес сервера, который подставляется в ссылки трекинга. Укажите там свой домен.
Баннер
Баннер добавляется как обычный HTML-элемент: картинка формируется на лету и оборачивается в ссылку перехода.
<a href="https://ads.example.com/banner/8v0g374le06u49d/click">
<img src="https://ads.example.com/banner/8v0g374le06u49d/img" width="350">
</a>
Размер тега img зависит от размеров картинок в рекламных кампаниях. Стилизовать элемент можно как угодно — главное, чтобы картинка была внутри ссылки. На баннер автоматически наносятся описание и маркировка рекламодателя.
Нативный формат
JSON доступен по адресу https://ads.example.com/native/<block>. Ответ — массив объектов:
[
{
"description": "Веб-разработка на Go",
"information": "Реклама. Рекламодатель ООО «Пример», ИНН 0000000000. erid 2SDnjeP817J",
"image": "https://ads.example.com/files/course.png",
"target": "https://advertiser.example/landing",
"impressions": ["https://ads.example.com/tracker/....gif"],
"clicks": ["https://ads.example.com/tracker/....gif"],
"network": "coffee"
}
]
Поля:
description— текст объявления;information— маркировка рекламы;image— ссылка на изображение;target— целевая ссылка для перехода;impressions— трекинг-пиксели показа;clicks— трекинг-пиксели клика;network— источник рекламы (для сетей, подключённых через медиацию).
Для учёта статистики: вызовите все ссылки из impressions при показе и из clicks при клике. Само объявление ведёт на target.
JS-виджет
Для сайтов есть готовый скрипт server/static/js/coffee.js. Он сам загружает объявление, рендерит его в выбранный контейнер и отправляет трекинг:
<div id="ads-container"></div>
<script src="https://ads.example.com/static/js/coffee.js" async></script>
<script>
window.adsCoffeeCb = window.adsCoffeeCb || [];
window.adsCoffeeCb.push(function () {
window.adsCoffee.render({
renderTo: "ads-container",
placementId: "8v0g374le06u49d",
template: "horizontal" // или "horizontal-marker" / "default"
});
});
</script>
Мобильные приложения
Для Android есть SDK в каталоге sdk/android/ (модуль coffeesdk). Он умеет загружать объявление, показывать его в InAppAdView и отправлять события показа и клика. Формат для приложений отдаётся сервером по маршруту /inapp/{block}.
Постбеки
Маршрут /postback принимает уведомления о конверсиях от партнёрских сетей. Если сеть поддерживает постбеки, укажите в её кабинете URL вашего сервера — так конверсии будут попадать в общую аналитику.