Возможности кода рекламного блока
Вы можете использовать дополнительные функции и изменять некоторые настройки, работая непосредственно с кодом рекламного блока.
За вызов рекламы в коде отвечает функция Ya.Context.AdvManager.render
.
- Мы не рекомендуем неопытным пользователям самостоятельно вносить изменения в код вызова рекламных блоков. Изменение любых переменных и функций, кроме описанных на данной странице, может привести к ошибкам в работе блоков Рекламной сети и, следовательно, к снижению дохода.
- Код блока нельзя использовать в качестве альтернативного кода в других рекламных системах.
Срезы статистики
В коде блока вы можете дополнительно задать идентификатор среза и собирать отдельную статистику по срезам. Идентификатор среза задается в отдельной переменной:
Имя переменной | Описание | Тип данных |
---|---|---|
statId | Идентификатор среза | Число от 1 до 1 000 000 000 |
Имя переменной | Описание | Тип данных |
---|---|---|
statId | Идентификатор среза | Число от 1 до 1 000 000 000 |
Задайте идентификатор среза в коде вызова рекламы при размещении на сайте, например:
Ya.Context.AdvManager.render({
blockId: "R-A-123456-1",
renderTo: "yandex_rtb_R-A-123456-1",
statId: 34567, // идентификатор среза
});
Идентификатор среза для блока R-A-123456-1
в примере — 34567
. Его можно указывать и в других блоках, тогда вы сможете просмотреть для этих блоков сгруппированную статистику. Размещая блок R-A-123456-1
на других страницах, вы можете указать другой идентификатор среза, чтобы просматривать статистику отдельно для каждого места размещения.
Ограничение высоты в баннерах
По умолчанию текстово-графические объявления формата Адаптивный полностью занимают обрамляющий контейнер. Регулировать высоту блока можно с помощью параметров
height
(высота) и max-height
(максимальная высота).
Рекомендуемые значения максимальной высоты блоков:
- в мобильной версии сайта — не менее 70 и не более 90 vh;
- в десктопной версии сайта при размещении на боковых панелях — не менее 40 и не более 60 vh.
<div id="yandex_rtb_R-I-677833-1" style="max-height: 80vh;">
<div style="height: 72vh;"></div>
</div>
<script>
window.yaContextCb.push(()=>{
Ya.Context.AdvManager.render({
renderTo: 'yandex_rtb_R-I-677833-1',
blockId: 'R-I-677833-1'
})
})
</script>
Настройка темы
Тема (светлая или темная) задается в интерфейсе Рекламной сети Яндекса при создании или редактировании блока. Также вы можете управлять темой блока через код вставки с помощью параметра darkTheme
:
darkTheme: false
— применяется светлая тема;darkTheme: true
— применяется темная тема. Блоки в темной теме отличаются не только фоном, но и цветом текста, рамки, кнопок и других элементов рекламы.
При добавлении параметра darkTheme
настройки темы, заданные в интерфейсе, игнорируются.
Управление темой блока через код будет удобным для сайтов с динамической темой. Например, с помощью JavaScript можно задавать разные значения параметра darkTheme
: в зависимости от времени суток, выбранной пользователем темы сайта или браузера.
Пример кода рекламного блока с темной темой:
Ya.Context.AdvManager.render({
blockId: "R-A-123456-1",
renderTo: "yandex_rtb_R-A-123456-1",
darkTheme: true
});
Размещение Floor Ad или Top Ad одновременно с Лентой
Одновременно показывать Ленту, Floor Ad и Top Ad на одном экране нельзя. Настройте callback-функцию observer
, чтобы удалить Floor Ad или Top Ad в момент, когда Лента попадет в зону видимости.
- Пример кода вызова рекламы с функцией observer
-
<div id="yandex_rtb_R-A-588461-101"></div> <script> window.yaContextCb.push(() => { Ya.Context.AdvManager.renderFeed({ blockId: 'R-A-588461-101', renderTo: 'yandex_rtb_R-A-588461-101' }) }) window.yaContextCb.push(() => { Ya.Context.AdvManager.render({ blockId: 'R-A-588461-98', type: 'тип рекламного блока' // topAd или floorAd }) }) const feed = document.getElementById('yandex_rtb_R-A-588461-101'); // ID из поля renderTo const callback = (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { Ya.Context.AdvManager.destroy({blockId: 'R-A-588461-98'}); } }); }; const observer = new IntersectionObserver(callback, { threshold: 0, }); observer.observe(feed); </script>
Callback-функции в коде вызова рекламы
В код вызова рекламы можно добавить сallback-функции:
- onClose
-
Чтобы узнать, в какой момент реклама была закрыта, при размещении блока добавьте callback-функцию
onClose
. Функция доступна для полноэкранного блока и блоков Top Ad, Floor Ad.Вы можете задать действие, которое будет вызвано после закрытия баннера, в соответствии с вашей бизнес-логикой. Например, таким действием может быть вызов другого рекламного блока. Для этого впишите код с действием в
onClose
.Пример кода вызова рекламы с функцией onClose<!-- Yandex.RTB R-A-588461-68 --> <script>window.yaContextCb.push(()=>{ Ya.Context.AdvManager.render({ type: 'тип рекламного блока', // fullscreen, topAd или floorAd blockId: 'R-A-588461-68', onClose: () => { // действие, выполняемое сайтом после закрытия баннера } }) })</script
- onError
-
Callback-функция onError вызывается, если в ходе выполнения запроса произошла ошибка. При вызове передаются параметры:
type
— тип ошибки. Может иметь значения:- error — не получилось загрузить рекламный блок;
- warning — рекламный блок загружен, но с ошибкой.
code
— код ошибки.text
— текстовое описание ошибки.
Коды возможных ошибок и их значенияТип ошибки Код ошибки Что означает Как исправить error
DESKTOP_FULLSCREEN
Произошла попытка загрузить мобильный блок с полноэкранным отображением на десктопной версии сайта. Рекламные блоки с полноэкранным отображением можно использовать только для мобильной версии сайта. error
CONTAINER_NOT_FOUND
Не удалось найти контейнер для загрузки рекламы. Контейнер не найден или при загрузке кода, или после получения данных с рекламой от сервера. Такая ошибка обычно возникает на страницах с динамическим содержимым. error
BLOCK_NOT_FOUND
Вызов рекламы произошел, но блок с указанным идентификатором не найден. Проверьте код вызова рекламы, полученный в интерфейсе Рекламной сети Яндекса. Убедитесь, что идентификатор блока указан верно. error
PAGE_NOT_FOUND
Вызов рекламы произошел, но сайт с указанным идентификатором не найдена. Проверьте код вызова рекламы, полученный в интерфейсе Рекламной сети Яндекса. Убедитесь, что идентификатор блока указан верно. error
WRONG_DOMAIN
Домен, с которого произошел вызов рекламы, не указан в настройках сайта. Проверьте, что домен, на котором вы разместили рекламный блок, указан в настройках сайта.
Если домен не указан, добавьте новый сайт с этим доменом и создайте блок для этого сайта. Зеркала можно добавить к уже существующим сайтам.
error
PAGE_DISABLED
Вызов рекламы произошел, но указанный сайт не работает. Проверьте статус в сайта в интерфейсе Рекламной сети Яндекса. Сайт может быть остановлен, заархивирован или заблокирован за нарушение Правил участия в Рекламной сети Яндекса. error
UNKNOWN_BLOCK_TYPE
Произошла попытка загрузить неизвестный тип блока. Проверьте код вызова рекламы в интерфейсе Рекламной сети Яндекса. Идентификатор блока должен начинаться с букв R, D или Y. error
TOO_SMALL_CONTAINER
В контейнер для загрузки рекламы нельзя вписать ни один из форматов указанного блока. Проверьте размеры контейнера для загрузки рекламы. Минимальный размер контейнера — 160 х 50 пикселей. error
VIDEO_ERROR
Ошибка при загрузке видеорекламы. Проверьте размеры контейнера для загрузки рекламы. Минимальный размер — 320 х 180 пикселей. warning
CONTAINER_IS_HIDDEN
Произошла попытка загрузить рекламу в контейнер размером 0 x 0 пикселей (например, со стилем display:none
).Скрытый контейнер замедляет загрузку рекламы. Рекомендуем вставлять рекламные блоки в видимые контейнеры. Тип ошибки Код ошибки Что означает Как исправить error
DESKTOP_FULLSCREEN
Произошла попытка загрузить мобильный блок с полноэкранным отображением на десктопной версии сайта. Рекламные блоки с полноэкранным отображением можно использовать только для мобильной версии сайта. error
CONTAINER_NOT_FOUND
Не удалось найти контейнер для загрузки рекламы. Контейнер не найден или при загрузке кода, или после получения данных с рекламой от сервера. Такая ошибка обычно возникает на страницах с динамическим содержимым. error
BLOCK_NOT_FOUND
Вызов рекламы произошел, но блок с указанным идентификатором не найден. Проверьте код вызова рекламы, полученный в интерфейсе Рекламной сети Яндекса. Убедитесь, что идентификатор блока указан верно. error
PAGE_NOT_FOUND
Вызов рекламы произошел, но сайт с указанным идентификатором не найдена. Проверьте код вызова рекламы, полученный в интерфейсе Рекламной сети Яндекса. Убедитесь, что идентификатор блока указан верно. error
WRONG_DOMAIN
Домен, с которого произошел вызов рекламы, не указан в настройках сайта. Проверьте, что домен, на котором вы разместили рекламный блок, указан в настройках сайта.
Если домен не указан, добавьте новый сайт с этим доменом и создайте блок для этого сайта. Зеркала можно добавить к уже существующим сайтам.
error
PAGE_DISABLED
Вызов рекламы произошел, но указанный сайт не работает. Проверьте статус в сайта в интерфейсе Рекламной сети Яндекса. Сайт может быть остановлен, заархивирован или заблокирован за нарушение Правил участия в Рекламной сети Яндекса. error
UNKNOWN_BLOCK_TYPE
Произошла попытка загрузить неизвестный тип блока. Проверьте код вызова рекламы в интерфейсе Рекламной сети Яндекса. Идентификатор блока должен начинаться с букв R, D или Y. error
TOO_SMALL_CONTAINER
В контейнер для загрузки рекламы нельзя вписать ни один из форматов указанного блока. Проверьте размеры контейнера для загрузки рекламы. Минимальный размер контейнера — 160 х 50 пикселей. error
VIDEO_ERROR
Ошибка при загрузке видеорекламы. Проверьте размеры контейнера для загрузки рекламы. Минимальный размер — 320 х 180 пикселей. warning
CONTAINER_IS_HIDDEN
Произошла попытка загрузить рекламу в контейнер размером 0 x 0 пикселей (например, со стилем display:none
).Скрытый контейнер замедляет загрузку рекламы. Рекомендуем вставлять рекламные блоки в видимые контейнеры. Пример кода вызова рекламы с функцией onErrorYa.Context.AdvManager.render({ blockId: 'R-I-106712-1', renderTo: 'block_container', onError: (data) => { console.log('type', data.type); // Тип ошибки: error или warning console.log('code', data.code); // Код ошибки (см. значение выше) console.log('text', data.text); // Текстовое описание ошибки // Обработка ошибки со стороны сайта } });
- onRender
-
Сallback-функция
onRender
позволяет получить информацию о том, произошла ли отрисовка рекламы на клиенте и какая именно реклама была отрисована. Функция принимает параметрdata.product
с одним из двух значений:direct
— в блоке были показаны объявления Директа;rtb
— в блоке была показана медийная реклама.
Сallback-функцию
onRender
нужно добавить в качестве последнего параметра функции Ya.Context.AdvManager.render.Пример кода вызова рекламы с функцией onRenderYa.Context.AdvManager.render({ blockId: "R-A-123456-1", renderTo: "yandex_rtb_R-A-123456-1", onRender: (data) => { console.log(data.product); } })
Показ своей рекламы в блоке
- Получите код блока в интерфейсе Рекламной сети Яндекса (в настройках блока нажмите).
- Разместите код вызова рекламы и код блока на сайте.
- В код блока добавьте код своей рекламы в качестве последнего параметра в функции Ya.Context.AdvManager.render .
Ya.Context.AdvManager.render({
blockId: 'R-A-123456-1',
renderTo: 'yandex_rtb_R-A-123456-1',
}, () => {
// код вызова своей рекламы в блоке
})
Показ рекламы в лентах с бесконечной прокруткой
Для показа рекламы в лентах с бесконечной прокруткой можно использовать один и тот же рекламный блок, в котором изменяется название контейнера renderTo
. Уникальный идентификатор блока blockId
, полученный в конструкторе, остается неизменным.
<div id="yandex_rtb_R-A-123456-1-1"></div>
<script>window.yaContextCb.push(()=>{
Ya.Context.AdvManager.render({
blockId: "R-A-123456-1",
renderTo: "yandex_rtb_R-A-123456-1-1", // в конце названия ставится 1
})
})</script>
<div id="yandex_rtb_R-A-123456-1-2"></div>
<script>window.yaContextCb.push(()=>{
Ya.Context.AdvManager.render({
blockId: "R-A-123456-1",
renderTo: "yandex_rtb_R-A-123456-1-2", // в конце названия ставится 2
})
})</script>
Эксперименты над рекламой c Varioqub
Эксперименты над рекламой, размещенной на сайте, можно проводить с помощью Varioqub. Этот инструмент позволяет создавать эксперимент со множеством вариантов и менять не только элементы и верстку сайта, но и сравнивать между собой разные рекламные блоки и их настройки. В результате эксперимента доступна статистика по показателям, которые помогают определить, какой вариант является наиболее эффективным с точки зрения монетизации и пользовательских метрик. Подробнее читайте в Справке Эксперименты Varioqub.
Обратиться в службу поддержки
Если вы не нашли нужную информацию, проверьте список частых вопросов или напишите нам.
Рекламный код был только что установлен. Роботу Рекламной сети Яндекса требуется некоторое время, чтобы проиндексировать страницу и привязать рекламные объявления.
Код вызова рекламы установлен неправильно. Проверьте, что код JavaScript для вызова рекламных блоков установлен верно. Не изменяйте код при копировании. При копировании кода ваш текстовый редактор может прерывать и переносить длинные строки — JavaScript-код с такими строками может работать некорректно.
Неверный код для сайта. Убедитесь, что установленный код вызова рекламных блоков создан именно для этого сайта, а не для одного из других ваших сайтов.
Сайт запрещен для индексирования. Сайт должен быть доступен для индексирования роботом Рекламной сети Яндекса —
YandexDirect
. Если индексирование сайта или его отдельных страниц запрещено (например, в файлеrobots.txt
), то робот не сможет проиндексировать содержимое страниц и подобрать для них релевантные объявления.Текст закрыт тегом
<noindex>
. Убедитесь, что на странице есть текст и что он не закрыт тегом<noindex>
. К страницам без текста не получится подобрать тематическую рекламу.В кеше браузера старая информация. Обновите страницу — нажмите CTRL + F5 (Windows) или Command + R (Mac).
Проблемы с показом объявлений могут возникнуть по нескольким причинам: