Вставка рекламных кодов AdSense после каждого N абзаца в Django

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

В большинстве случаев автоматические объявления AdSense справляются с этой задачей достаточно эффективно, но те, кто хочет лучшего, чистого и точного размещения объявлений, всегда могут настроить или указать конкретные места для объявлений. Для размещения рекламных кодов между контентом нам понадобится пользовательский фильтр шаблонов Django, который мы создадим ниже.

Пользовательский фильтр шаблона, который мы собираемся создать, может вставлять различные рекламные коды AdSense после каждого N-го абзаца контента в блоге/веб-сайте Django.

Создание необходимых файлов и объявлений

Прежде всего, позвольте мне указать все файлы, которые нам нужно создать для достижения нашей цели. Мы будем создавать 6 различных рекламных кодов In article от AdSense. Также я предполагаю, что у вас уже есть приложение Django внутри вашего проекта с именем blog (оно может быть другим, но в этом руководстве мы будем рассматривать его как blog), и у вас должна быть готова папка templates.

Теперь, внутри приложения blog, создайте папку templatetags, внутри которой мы создадим два файла, а именно:

  1. ad_filter.py (здесь мы создадим наш фильтр) Теперь перейдите в папку templates и создайте подпапку adsense, внутри этой папки мы будем хранить наши рекламные коды AdSense в файлах .html и, следовательно, мы создадим шесть различных файлов .html, а именно:
  2. inarticle1.html
  3. inarticle2.html
  4. inarticle3.html
  5. inarticle4.html
  6. inarticle5.html
  7. inarticle6.htmlВнутри каждого из HTML-файлов, которые мы только что создали, мы вставим различные рекламные коды, сгенерированные AdSense, например.
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-your_adsense_id"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-your_adsense_id"
     data-ad-slot="unique_code"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
Войти в полноэкранный режим Выйти из полноэкранного режима

Аналогичным образом вы можете поместить все сгенерированные рекламные коды в разные HTML-файлы внутри директории templates/adsense.

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-your_adsense_id"
     crossorigin="anonymous"></script>
Войти в полноэкранный режим Выйти из полноэкранного режима

Обратите внимание, что если вы уже один раз поместили вышеперечисленное в шапку вашего базового шаблона или куда-либо еще, то вам не нужно помещать их снова в каждый рекламный код (по умолчанию они включены, но вы должны удалить лишние коды). Например, если вы вставили содержимое в inarticle1.html, как показано выше, то начиная со следующего файла и далее, вы можете просто поместить рекламные коды, например:

<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-your-adsense-id"
     data-ad-slot="unique_code"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
Войти в полноэкранный режим Выход из полноэкранного режима

Разработка фильтра шаблона

Теперь у нас есть наши рекламные коды, нам нужен фильтр, чтобы разместить их соответствующим образом. Прежде всего, мы импортируем необходимый модуль для чтения HTML-файлов, содержащих рекламные коды. После этого мы определим и зарегистрируем наш шаблонный фильтр в файле ad_filter.py.

from django import template
from django.template.loader import render_to_string

register = template.Library()

@register.filter
def inarticle_ads(value):
    # Render the adsense code placed in html files
    ad_code = []
    ad_code.append(render_to_string("adsense/inarticle1.html"))
    ad_code.append(render_to_string("adsense/inarticle2.html"))
    ad_code.append(render_to_string("adsense/inarticle3.html"))
    ad_code.append(render_to_string("adsense/inarticle4.html"))
    ad_code.append(render_to_string("adsense/inarticle5.html"))
    ad_code.append(render_to_string("adsense/inarticle6.html"))

    # set adcode picker
    j = 0

    # Break down content into paragraphs
    paragraphs = value.split("</p>")

    # insert after every 5th paragraph
    for i in range(len(paragraphs)):
        if i % 5 == 0:
            paragraphs[i] = paragraphs[i] + ad_code[j]
            if j < 5:
                j += 1
            value = "</p>".join(paragraphs)
    return value
Вход в полноэкранный режим Выход из полноэкранного режима

В приведенной выше функции inarticle_ads() я сначала прочитал все рекламные коды и добавил их в список в виде строк. Затем я разделил содержимое по

поскольку каждый абзац заканчивается тегом, здесь мы получим общее количество абзацев. Теперь мы запустим цикл for до последнего абзаца и вставим рекламные коды только после каждого 5-го абзаца, включая 0-й (вы можете исключить 0-й абзац, если хотите, с помощью простого оператора if, как показано ниже).

. . .
if i % 5 == 0:
    if i == 0:
        continue
. . .
Вход в полноэкранный режим Выход из полноэкранного режима

Чтобы добавить рекламные коды в абзац, я просто использовал функцию split() для абзацев, а затем добавил рекламные коды после них, после чего рассматривал все как единое целое. Этот процесс повторяется до последнего абзаца, после чего мы получаем единое целое, т.е. наш контент, но с рекламными кодами, размещенными после каждого 5-го абзаца.

Теперь, чтобы получить различные рекламные коды, мы использовали другую переменную j и использовали ее для итерации различных кодов в списке ad_code, и мы обновляли переменную j только тогда, когда мы использовали рекламный код и пока не достигли последнего рекламного кода (здесь 5-й код в списке, начиная с 0).

Использование фильтра шаблонов на нашем контенте

Теперь, чтобы использовать фильтр шаблона, который мы только что создали, перейдите к шаблону вашего блога, который содержит контент, и используйте фильтр, как показано ниже:

{% extends 'base.html' %}
{% load ad_filter %}

{% block body %}
  {% blog.title %}
  {% blog.thumbnail %}
  {% blog.body|inarticle_ads|safe %}
{% endblock body %}

Войти в полноэкранный режим Выйти из полноэкранного режима

Проверьте свою страницу сейчас, вы должны увидеть, что ваши объявления отображаются на желаемых позициях. Если вы находитесь в среде разработки, вы можете использовать простые HTML-коды вместо рекламных кодов (например.

—This is a Placeholder for Ad—

) для проверки работы фильтра шаблонов.

Надеюсь, руководство помогло вам достичь того, о чем вы думали. Спасибо Тиму Каманину за идею. Если вы нашли ее полезной, пожалуйста, поделитесь с другими и поставьте лайк статье на моем блоге.

Оцените статью
Procodings.ru
Добавить комментарий