MaxHub
Полезности по Maxsite CMS

5 способов разместить контекстную рекламу на сайте

Статьи / 5 июля 2014

Существует минимум 5 возможных способа разместить код контекстной рекламы на сайте, который работает на maxSite CMS. Интересно, вы все их знаете? wink

Сноска. Я сознательно не конкретизирую код какой рекламной системы мы собрались разместить, т.к. подход к размещению не будет меняться будь то Adsense, РСЯ, Бегун, тизерная система или какая-то другая рекламная система. Главное, что для монетизации сайта вебмастер выбрал систему и получил от неё JS/HTML-код для размещения на сайте.

1 способ – разместить код в шаблоне

Самый очевидный способ. Для его реализации нужно найти желаемое место в php-коде шаблона и вставить выданный рекламной системой код в это место (при этом важно не забыть оформить переход от php-кода к html-коду). Например, если поставить задачу выводить adsense-код между заголовком статьи и её содержимым, то можно разместить код системы в type_foreach файл info-top.php. Получится нечто такое:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
$p->format('edit', 'Edit', '<div class="right bg-yellow padding5 d-inline-block">', '</div>');
$p->format('cat', ' / ', '<div>', '</div>');
$p->format('date', 'D, j F Y г.', '<div><time datetime="[page_date_publish_iso]">', '</time></div>');
$p->html(NR . '<header>');
    $p->line('[edit][title]');
    $p->div_start('info info-top');
        $p->line('[date][cat]');
# здесь начинается вставка рекламного кода:
?>
<script type="text/javascript"><!--
google_ad_client = "pub-2819962478067849";
/* 468x60, vizr.ru */
google_ad_slot = "4365476481";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<?
# / здесь вставка закончилась
    $p->div_end('info info-top');
$p->html('</header>');
# end file

Чтобы показывать рекламу сразу на всех страницах сайта нужно поправить основной файл шаблона - main.php. Для размещения рекламы только на страницах типа page или только на страницах рубрик и т.п. в подпапке type папки шаблона ищем type-файлы page.php, category.php или файл того типа страниц, который вам нужен.

Более гибко размещать в коде type_foreach-файлов. В этом случае получается легко разместить в одном из предусмотренных автором шаблона мест для кастомизации вывода. Для использования этого метода желательно хорошо ориентироваться в файлах шаблона.

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

Следующий способ значительно снимает минусы первого способа.

2 способ – использовать плагин «Ушки»

В движке есть замечательный плагин «Ушки». Его задача выдавать по вызову содержимое «ушки» в любом запрошенном месте. Ушка может хранить в себе код рекламной системы. Вам остаётся только определить место вызова ушки с кодом. На следующем скриншоте я показал пример сохранения моего кода в ушке с именем «adsense»:

В плагине также есть инструкция по применению, из которой мы видим, что для отображения рекламного кода нужно вызвать ушку «adsense». Если продолжить рассмотрение задачи выводить adsense-код между заголовком статьи и её содержимым с помощью type_foreach файла info-top.php, то получится такой код:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
$p->format('edit', 'Edit', '<div class="right bg-yellow padding5 d-inline-block">', '</div>');
$p->format('cat', ' / ', '<div>', '</div>');
$p->format('date', 'D, j F Y г.', '<div><time datetime="[page_date_publish_iso]">', '</time></div>');
$p->html(NR . '<header>');
    $p->line('[edit][title]');
    $p->div_start('info info-top');
        $p->line('[date][cat]');
        # здесь начинается вставка рекламного кода:    
        if (function_exists('ushka')) echo ushka('adsense');
        # здесь вставка закончилась    
    $p->div_end('info info-top');
$p->html('</header>');
# end file

Таким образом, этот способ позволяет в будущем легко сменить рекламный код, если мы решим перейти в другую рекламную систему (например, поставить вместо Adsense код РСЯ, когда сайт в неё примут). Нам не придётся редактировать файлы шаблона, будет достаточно изменить содержимое ушки adsense.

При рассмотрении первых двух способов размещения рекламного кода я брал за основу самый простой случай – когда надо разместить рекламу на всех страницах сайта. Однако, бывают сайты, на которых нужно довольно выборочно показывать рекламу. Например, отображение сторонней рекламы надо отключить, если на странице происходит подписка на очередной вебинар или рассылку (отключить чтобы не отвлекать от целевого действия wink ), но на страницах с полезными советами или ответами на вопросы рекламу вполне можно оставить. Как решается такая задача?

Обычно решается с помощью дополнительного программирования. Например, чтобы показывать рекламу на страницах с определённым id надо, во-первых, создать ушку, где будут храниться id «правильных страниц», а во-вторых, вместо простого кода вызова ушки использовать такой код:

$show_adsense = array_map('trim', explode(“,”, trim(ushka('adsense_pagesid'))));
if( is_type('page') && in_array($p->page['page_id'],  $show_adsense ) )
{
    echo ushka('adsense');
}

Здесь ушка «adsense_pagesid» хранит (через запятую) id страниц, где реклама должна отображаться. Ушка «adsense» всё также хранит adsense-код.

В принципе, зная php и досконально разобравшись в архитектуре движка можно реализовать условия отображения насколько хватит фантазии любой сложности. Но не всем вебмастерам хочется иметь дело с php-кодом, тем более что решаемые задачи, как правило, довольно стандартны и, по идее, должны иметь «шаблонные решения». А они существуют, и речь о них пойдёт дальше.

3 способ – использовать плагин «AdsCut»

Основная и единственная задача плагина AdsCut заменять в тексте страницы бб-код [cut] на ушку с рекламой. Т.е. рекламный код всё также хранится в ушке, но теперь вам не нужно будет громоздить в шаблоне php-код замены cut на рекламу. У плагина только одна значимая (хотя галочку «включить плагин» тоже можно было бы признать таковой, но она дублирует стандартные возможности движка по выключению плагинов) настройка – имя ушки с кодом рекламы:

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

4 способ – использовать плагин «AdInsertion»

Рассматриваемый плагин кроме возможности выводить рекламу на месте бб-кода [cut] умеет вставлять независимые объявления в начало и конец каждой страницы, а также отключать показ на страницах, которые перечислены в настройках плагина. Ещё умеет отключать показ рекламы на «главной странице» (однако по php-коду текущей версии плагина понятно, что при такой настройке отображение отключается везде, кроме страниц с публикациями).

Интересной возможностью плагина является функция «обёртывания » (при выводе) рекламного кода в специальный DIV-блок, для которого можно задать специальные css-стили.

В целом, установка и настройка плагина проста и очевидна:

Мне остаётся только указать место, где можно скачать плагин AdInsertion.

5 способ – использовать компонент «Контекстная реклама»

Предлагаемый способ в чём-то схож с предыдущими способами, но так как основан на использовании компонентов, имеет свои особенности:

Во-первых, установка компонента. Т.к. компоненты располагаются в специальной папке шаблона, то надо скопировать компонент в неё (а не в папку плагинов).

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

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

  • Чтобы разрешить отображение рекламы (или, наоборот, временно отключить её) теперь нет необходимости (как это было в некоторых предыдущих способах) трогать настройки ушек и т.п. Надо просто поставить (или, соответственно снять) галочку в опции «Включить отображение рекламы».
  • Как и плагин AdInsertion компонент умеет работать с конкретными страницами. Только в компоненте происходит не запрет показа рекламы на определённых страницах, а разрешение. Также использован иной подход к заданию страниц с рекламой – надо указывать ID страниц (которые доступны вебмастеру в админ-панели).
  • В компоненте есть удобная возможность (специальная «галочка») блокировать отображение рекламы при работе сайта на локальном компьютере вебмастера. Она полезна для тех, кто модернизирует сайт на локальной машине, а только потом закачивает его на веб-сервер хостера. Выключать на локальной машине отображение рекламы нужно хотя бы для того, чтобы рекламная система не считала «мусорные » показы и тем самым не портила внутренний CTR-рейтинг рекламной площадки (актуально не для всех систем, но всё же).
  • Возможность использовать дополнительные условия фильтрации отображения рекламы без громоздкого программирования. Конечно, немного знать архитектуру движка и некоторые стандартные функции всё-таки будет нужно.
  • Имеется возможность удобно задавать единый или раздельный рекламный код. Эта возможность особенно полезна, когда, например, есть желание попробовать поработать с рекламным кодом с асинхронной загрузкой.
  • Как и в плагине AdInsertion имеется возможность «обёртывания » (при выводе) рекламного кода в специальный DIV-блок (да и вообще в произвольный html-код).

Третьим важным шагом по установке компонента на сайт является прописывание вызова компонента в шаблоне. Но чтобы вы не пугались, скажу, что программировать вам придётся не больше, чем в случае использования ушек (смотрите 2-ой способ). А то может и меньше (если, например, решите воспользоваться местами вызова, ранее заготовленными разработчиком шаблона). В частности, необходимо разместить (аналогично 2-му способу) в шаблоне такой код:

if ($fn = mso_fe('components/context-ads/context-ads.php')) require($fn);

Как видите, ничего сложного. Достаточно скопировать этот код (он, кстати, приводится в прикладываемом к компоненту файле справки) в нужный type_foreach файл. Всё. После этого шага установки можно открывать сайт и проверять отображение рекламы согласно настроенным условиям.

Изначальной идеей появления компонента «Контекстная реклама» была необходимость вынести из ушек многочисленные настройки отображения рекламы и уменьшить количество обслуживающего кода, который находится в шаблоне. Как видите, компонент решил эти задачи и позволил не засорять шаблон избыточным копипастом рекламного и/или обслуживающего (проверку условий отображения) кода. Все настройки хранятся в одном месте и в удобном виде.

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

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

Благодаря тому, что компоненты не страдают синдромом «неприкосновенности» (которому подвержены стандартные файлы движка и плагинов), также можно решать и более сложные задачи по размещению рекламы на сайте. Просто вам может понадобиться вносить более серьёзные правки в php-код компонента. Так что описанный компонент вполне можно использовать как хорошую заготовку для решения вашей задачи.

Закончить описание пятого способа размещения рекламы хотел бы упоминанием (для объективности стоит это сделать) одного момента, в котором компонент незначительно, но всё-таки уступает описанным ранее плагинам - компонент не может напрямую реагировать на хуки. Однако этот минус можно легко обойти – достаточно разместить код вызова компонента в ушку и с помощь плагина ushki_to_hook настроить вызов ушки при наступлении нужного хука. В общем, это и не минус вовсе, наверно. smile

Скачать описанный компонент можно здесь - http://vizr.ru/page/component-context-ads

Вместо заключения

Ещё остались, как минимум, два элементарных способа: размещение в сайдбаре текстового виджета с рекламным кодом в нём и размещение рекламного кода на главной странице в блоке «текст перед всеми постами». Я не стал включать эти способы в обзор. Во-первых, они вполне очевидны и не требуют лишних пояснений. А во-вторых, хотел получить красивое название статьи. 

Материал не является подробной инструкцией. Поэтому, если у вас возникнет желание прочитать более развёрнутый рассказ о каком-то из описанных способов – дайте знать в комментариях! Ну или задавайте свои вопросы. Будем вместе искать ответы wink

Спасибо за внимание! До новых встреч!

Источник - master-css.com14

Комментариев: 2
  1. хорошая статья, особенно начинающим вебмастерам, сам прошел путь от вставки кода в шаблон, потом перебрался на ушки, в сочетании с AdInsertion, не знал про плагин Контекстная реклама, нужно будет попробовать насколько он удобен, т.к. очень интересный на первый взгляд.

  2. Наверное можно еще этим способом http://maxhub.ru/page/plugin-linkexchange

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)