Возможности кода рекламного блока

Вы можете использовать дополнительные функции и изменять некоторые настройки, работая непосредственно с кодом рекламного блока.

За вызов рекламы в коде отвечает функция Ya.Context.AdvManager.render.

Внимание

  • Мы не рекомендуем неопытным пользователям самостоятельно вносить изменения в код вызова рекламных блоков. Изменение любых переменных и функций, кроме описанных на данной странице, может привести к ошибкам в работе блоков Рекламной сети и, следовательно, к снижению дохода.

  • Код блока нельзя использовать в качестве альтернативного кода в других рекламных системах.

Срезы статистики

В коде блока вы можете дополнительно задать идентификатор среза и собирать отдельную статистику по срезам. Идентификатор среза задается в отдельной переменной:

Имя переменной Описание Тип данных
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
});
Пример рекламного блока Top Ad с темной темой

Размещение 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
                    "platform": "touch"
            })
    })
    window.yaContextCb.push(() => {
            Ya.Context.AdvManager.render({
                    "blockId": "R-A-588461-109",
                    "type": "тип рекламного блока", // topAd или floorAd
                    "platform": "desktop"
            })
    })
    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'
                                    }), // blockId для мобильной версии
                                    Ya.Context.AdvManager.destroy({
                                            blockId: 'R-A-588461-109'
                                    }); // blockId для десктопной версии
                    }
            });
    };
    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 — тип ошибки. Может иметь значения:

    1. error — не получилось загрузить рекламный блок;
    2. 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).

Скрытый контейнер замедляет загрузку рекламы. Рекомендуем вставлять рекламные блоки в видимые контейнеры.

Пример кода вызова рекламы с функцией onError
Ya.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.

Пример кода вызова рекламы с функцией onRender
Ya.Context.AdvManager.render({
    blockId: "R-A-123456-1",
    renderTo: "yandex_rtb_R-A-123456-1",
    onRender: (data) => { console.log(data.product); }
})

Показ своей рекламы в блоке

Если на аукционе для вашего блока не нашлось подходящего предложения, вы можете показывать в нем свою рекламу. Для этого добавьте код вызова своей рекламы к коду блока.

  1. Получите код блока в интерфейсе Рекламной сети Яндекса (в настройках блока нажмите Получить код → Скопировать в буфер обмена).

  2. Разместите код вызова рекламы и код блока на сайте.

  3. В код блока добавьте код своей рекламы в качестве последнего параметра в функции Ya.Context.AdvManager.render .

Пример кода со вставкой своей рекламы
Ya.Context.AdvManager.render({
    blockId: 'R-A-123456-1',
    renderTo: 'yandex_rtb_R-A-123456-1',
}, () => {
    // код вызова своей рекламы в блоке
})

Если на аукционе не нашлось подходящего предложения, выполнится альтернативный код, и своя реклама будет показана на месте рекламного блока (не через iframe). Показы своей рекламы не учитываются в статистике Рекламной сети Яндекса.

Примечание

У блоков Рекламной сети Яндекса, которые создаются из Adfox, не может быть кода вызова своей рекламы. Если в таком блоке не удалось подобрать рекламу от Рекламной сети Яндекса, запрос возвращается в Adfox и право показа переходит к другим монетизаторам или собственным промокампаниям. Подробнее о схеме подбора рекламы в Adfox.

Показ рекламы в лентах с бесконечной прокруткой

Для показа рекламы в лентах с бесконечной прокруткой можно использовать один и тот же рекламный блок, в котором изменяется название контейнера 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.

Сбор контекста страницы для таргетинга рекламы

Для анализа контекста используется только текстовое содержимое страницы, видимое пользователю. Функциональность не предназначена для сбора персональных данных посетителей сайта. Код вставки не анализирует скрытые поля, формы ввода, пароли, платежные данные или другую информацию, недоступную пользователю на странице.

Собранный контекст применяется только для тематического таргетинга рекламы: например, для определения категории страницы, ключевых тем или общего содержания материала.

Рекомендация по использованию

Мы рекомендуем отключать сбор контекста страницы, если рекламный блок размещается на страницах, где в открытом виде может находиться приватная, чувствительная или иная информация, которую вы не хотите использовать для подбора рекламы.

Например, это могут быть страницы личных кабинетов, страницы с пользовательскими сообщениями, заказами, обращениями в поддержку, медицинской, финансовой или другой конфиденциальной информацией.

Отключение сбора контекста

Сбор контекста страницы можно отключить с помощью параметра disableGrab в коде вставки:

Ya.Context.AdvManager.render({
    blockId: "R-A-123456-1",
    renderTo: "yandex_rtb_R-A-123456-1",
    disableGrab: true
});

После отключения рекламный блок продолжит работать, но текст страницы не будет анализироваться и использоваться для контекстного таргетинга рекламы.

Обратиться в службу поддержки

Если вы не нашли нужную информацию, проверьте список частых вопросов или напишите нам.

Я установил код, но объявления не показываются

Проблемы с показом объявлений могут возникнуть по нескольким причинам:

  • Рекламный код был только что установлен. Роботу Рекламной сети Яндекса требуется некоторое время, чтобы проиндексировать страницу и привязать рекламные объявления.

  • Код вызова рекламы установлен неправильно. Проверьте, что код JavaScript для вызова рекламных блоков установлен верно. Не изменяйте код при копировании. При копировании кода ваш текстовый редактор может прерывать и переносить длинные строки — JavaScript-код с такими строками может работать некорректно.

  • Неверный код для сайта. Убедитесь, что установленный код вызова рекламных блоков создан именно для этого сайта, а не для одного из других ваших сайтов.

  • Сайт запрещен для индексирования. Сайт должен быть доступен для индексирования роботом Рекламной сети Яндекса — YandexDirect. Если индексирование сайта или его отдельных страниц запрещено (например, в файле robots.txt), то робот не сможет проиндексировать содержимое страниц и подобрать для них релевантные объявления.

  • Текст закрыт тегом <noindex>. Убедитесь, что на странице есть текст и что он не закрыт тегом <noindex>. К страницам без текста не получится подобрать тематическую рекламу.

  • В кеше браузера старая информация. Обновите страницу — нажмите Ctrl + F5 (Windows) или Command + R (Mac).

Написать в чат

Написать в Telegram Перейти в Telegram

Написать письмо

Написать в WhatsApp Перейти в WhatsApp


Также вы можете перейти на сервис