3 горизонтальные линии, бургер
3 горизонтальные линии, бургер

3 горизонтальные линии, бургер
Удалить все
ЗАГРУЗКА ...

Django приложение для управления рекламных блоков от РСЯ

Часы
09.10.2025
/
Часы
09.10.2025
Глазик
58
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Джанго приложение
Джанго приложение

Вступление

Комплексное Django-приложение для управления и отображения рекламных блоков от Яндекса с широким спектром настроек.
Уже встроенные фичи:
  1. Различные типы рекламных блоков: Поддержка баннеров, полноэкранной рекламы, рекламы в нижней части экрана, рекламы в верхней части экрана, каруселей и рекламы в изображениях
  2. Таргетинг на платформу: показ рекламы на определенных платформах (настольных компьютерах, мобильных устройствах или кроссплатформенных).
  3. Гибкая настройка: управление местоположением, частотой показа и правилами размещения рекламы.
  4. Интеграция с промежуточным ПО: автоматическая вставка рекламы в шаблоны на основе правил представления и шаблонов.
  5. Настраиваемые шаблоны: расширяемая система шаблонов для различных форматов рекламы.
  6. Контекстная зависимость: интеллектуальное размещение рекламы с интеграцией контекстных данных.
  7. Поддержка пагинации: автоматическая вставка рекламы между страницами с контентом.

Обзор моделей

Это приложение работает с использованием четырёх моделей: модели для рекламных блоков (YandexAdBlock), модели для местоположения этих рекламных блоков (YandexAdLocation), модели для конфигурации блоков (YandexAdBlockConfiguration, которая определяет, какие единицы измерения использовать) и модели для текущей конфигурации (YandexCurrentAdBlockConfiguration, которая определяет, какую конфигурацию использовать на сайте).
Рассмотрим каждую модель отдельно.

YandexAdBlock

Определяет отдельные рекламные блоки со свойствами:
  1. Типы рекламных блоков:
  2. banner — адаптируется под размер обрамляющего контейнера. Один и тот же блок можно размещать одновременно на разных версиях сайта, и он будет показан на всех устройствах.
  3. fullscreen — отображается на весь экран. Для каждой версии сайта нужно создать отдельный блок.
  4. floorAd — фиксируется в нижней части экрана поверх содержимого сайта. Для каждой версии сайта нужно создать отдельный блок.
  5. topAd — фиксируется в верхней части экрана поверх содержимого сайта только на мобильных устройствах.
  6. feed — отображается в виде ленты объявлений. Один и тот же блок можно размещать одновременно на разных версиях сайта, и он будет показан на всех устройствах.
  7. inImage — отображается поверх изображений на сайте. Один и тот же блок можно размещать одновременно на разных версиях сайта, и он будет показан на всех устройствах.
  8. Триггеры запросов на отрисовку(То есть момент, когда нужно отрисовать рекламу)
  9. on-load значит при загрузке страницы
  10. on-intersection значит при первом вхождении на экран
  11. Platform Targeting:
  12. Desktop — только для десктопа
  13. Mobile — только для мобильных устройств
  14. Cross-platform — на обоих
Также, чтобы связать вновь созданную запись с блоком, созданным в РСЯ, необходимо скопировать и вставить предоставленный идентификатор, например, R-A-17293858-16.

YandexAdLocation

Привязывает блоки рекламного объявления к определённым местам на вашем сайте. Вы должны указать их самостоятельно. Например, вы решили разместить объявление на главной странице и вставляете следующее:
{% if isYandexAdManagerMiddlewareConnected %} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "HOME_FIRST_VISIBLE" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock%} {% endif %} {% endfor %} {% endif %}
При создании новой записи в базе данных необходимо указать свое местоположение как HOME_FIRST_VISIBLE и выбрать блок для отображения.

YandexAdBlockConfiguration

Группирует места размещения рекламы и определяет частоту показа страниц пагинации, если таковые имеются.

YandexCurrentAdBlockConfiguration

Модель Singleton для управления текущей активной конфигурацией рекламы.

Installation

Это приложение Django доступно на PyPI и может быть загружено с помощью этой команды:
pip install django-yandex-ad-manager
После установки приложения его необходимо подключить и настроить для корректной работы. Добавьте его в INSTALLED_APPS и MIDDLEWARE.
INSTALLED_APPS = [ # ... 'django_yandex_ad_manager.apps.YandexadmanagerConfig', # ... ] MIDDLEWARE = [ # ... 'django_yandex_ad_manager.middleware.AdManagerMiddleware', # ... ]
Поскольку это промежуточное ПО, необходимо предварительно указать, для каких шаблонов (и представлений) стоит провести работу по определению рекламных мест. Необходимо указать два массива:
YANDEX_AD_MANAGER__ALLOWED_VIEWS = ('home', 'article', 'tool', 'tool_main') YANDEX_AD_MANAGER__ALLOWED_TEMPLATES = ('PagiScroll/base_post_list.html', 'Post/basic--post_preview-article.html', 'Post/basic--post_preview-note.html', 'Post/basic--post_preview-tool.html' )
Готово. Всё установлено и настроено. Осталось только применить миграции и собрать статические файлы.
python manage.py migrate python manage.py collectstatic
Теперь мы точно всё сделали. Теперь осталось подготовить ваши Django-шаблоны для использования промежуточным программным обеспечением YandexAdManager.

Настройка шаблонов

Для начала нам нужно подключить шаблон заголовка. Добавьте его в раздел заголовка базового шаблона (тег <head>):
{% if isYandexAdManagerMiddlewareConnected %} {% include 'YandexAdManager/admanager_header.html' %} {% endif %}
Затем включите скрипты и стили:
{% block styles %} {% if isYandexAdManagerMiddlewareConnected %} {% include 'YandexAdManager/admanager_styles.html' %} {% endif %} {% endblock %} {% block scripts %} {% if isYandexAdManagerMiddlewareConnected %} {% include 'YandexAdManager/admanager_scripts.html' %} {% endif %} {% endblock %}
block scripts и block styles — это функции моего сайта, просто не забудьте включить необходимые шаблоны, где они будут доступны промежуточному программному обеспечению. То есть там, где вы хотите показывать рекламу.

Настройка мест размещения рекламы

Осталось только решить, где мы хотим показывать рекламу. Для этого выберите место, где вы хотите разместить рекламу, и вставьте следующий код:
Блоки ниже следует использовать в тех случаях, когда вы хотите, чтобы ваша реклама отображалась. Это не относится к рекламным блокам без контейнеров (topAd, floorAd, fullscreen, inImage).

Одно рекламное место

{% if isYandexAdManagerMiddlewareConnected %} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "AD_LOCATION_NAME" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock%} {% endif %} {% endfor %} {% endif %}
При создании еще одной записи в базе данных через панель администратора вставьте в поле с названием локации — AD_LOCATION_NAME.

Несколько мест размещения рекламы

Если на одной странице размещено несколько рекламных мест, использующих один и тот же рекламный блок, вам необходимо использовать переменную-unificator, чтобы обеспечить корректную работу с API Яндекса и избежать путаницы.
{% if isYandexAdManagerMiddlewareConnected %} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "AD_LOCATION_ONE" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock unificator="home_first_visible" %} {% endif %} {% if adlocation.adlocation_name == "AD_LOCATION_TWO" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock unificator="home_second_visible" %} {% endif %} {% endfor %} {% endif %}
Или так:
{% if isYandexAdManagerMiddlewareConnected %} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "AD_LOCATION_ONE" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock unificator="home_first_visible" %} {% endif %} {% endfor %} {% endif %} {% if isYandexAdManagerMiddlewareConnected %} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "AD_LOCATION_TWO" %} {% include 'YandexAdManager/admanager_element.html' with adblock=adlocation.adblock unificator="home_first_visible" %} {% endif %} {% endfor %} {% endif %}

Расположение рекламы на страницах пагинации

Если вы хотите, чтобы реклама появлялась, например, на страницах пагинации между статьями, используйте этот шаблон:
{% if isYandexAdManagerMiddlewareConnected %} {# Ads between articles in pagination #} {% for adlocation in adlocations %} {% if adlocation.adlocation_name == "ON_PAGISCROLL_ARTICLES_BETWEEN_PAGES" %} {% include 'YandexAdManager/admanager_element_in_pagination.html' with page=page adblock=adlocation.adblock %} {% endif %} {% endfor %} {% endif %}

Рекомендации

  1. Используйте описательные унификаторы для отслеживания эффективности рекламы в разных местах.
  2. Тестируйте на нескольких устройствах при использовании таргетинга на платформу.
  3. Отслеживайте плотность рекламы, чтобы избежать перегрузки пользователей.
  4. Используйте загрузку на основе пересечений для повышения эффективности.
  5. Настройте подходящие типы объявлений для разных контекстов контента.

Если реклама не показывается

  1. Проверьте правильность настройки промежуточного ПО.
  2. Убедитесь, что параметр isYandexAdManagerMiddlewareConnected имеет значение True в шаблонах.
  3. Убедитесь, что места размещения рекламы правильно настроены в панели администратора.
  4. Проверьте консоль браузера на наличие ошибок JavaScript.


Примечание: этот пакет официально не связан с Яндексом. Это поддерживаемая сообществом интеграция Django для Рекламной сети Яндекса.

Похожие инструменты

Часы
25.04.2025
/
Часы
21.05.2025
/
Джанго приложение
Парсер
Глазик
271
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Это инструмент представляет собой Django-приложение, которое генерирует "Содержание" той страницы, на которой оно установленно. Из-за особенности устройства Django-фреймворка, вся генерация происходит на сервере, то есть SSR-метод рендеринга. Так же данное приложение создаёт анкорные ссылки на собранные главы, при наличии атрибута id у последних.
Часы
27.04.2025
/
Часы
21.05.2025
/
Джанго приложение
Глазик
377
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Это Django-приложение, которое генерирует "Хлебные крошки"(breadcrumbs) той страницы, на которой оно установленно. Из-за особенности устройства Django-фреймворка, вся генерация происходит на сервере, то есть SSR-метод рендеринга.

Не забудь поделиться, лайкнуть и оставить комментарий)

Отзывы

(0)

captcha
Отправить
ЗАГРУЗКА ...
Сейчас тут пусто. Буть первым (o゚v゚)ノ