Существует минимум 5 возможных способа разместить код контекстной рекламы на сайте, который работает на maxSite CMS. Интересно, вы все их знаете?
Сноска. Я сознательно не конкретизирую код какой рекламной системы мы собрались разместить, т.к. подход к размещению не будет меняться будь то 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.
При рассмотрении первых двух способов размещения рекламного кода я брал за основу самый простой случай – когда надо разместить рекламу на всех страницах сайта. Однако, бывают сайты, на которых нужно довольно выборочно показывать рекламу. Например, отображение сторонней рекламы надо отключить, если на странице происходит подписка на очередной вебинар или рассылку (отключить чтобы не отвлекать от целевого действия ), но на страницах с полезными советами или ответами на вопросы рекламу вполне можно оставить. Как решается такая задача?
Обычно решается с помощью дополнительного программирования. Например, чтобы показывать рекламу на страницах с определённым 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 настроить вызов ушки при наступлении нужного хука. В общем, это и не минус вовсе, наверно.
Скачать описанный компонент можно здесь - http://vizr.ru/page/component-context-ads
Вместо заключения
Ещё остались, как минимум, два элементарных способа: размещение в сайдбаре текстового виджета с рекламным кодом в нём и размещение рекламного кода на главной странице в блоке «текст перед всеми постами». Я не стал включать эти способы в обзор. Во-первых, они вполне очевидны и не требуют лишних пояснений. А во-вторых, хотел получить красивое название статьи.
Материал не является подробной инструкцией. Поэтому, если у вас возникнет желание прочитать более развёрнутый рассказ о каком-то из описанных способов – дайте знать в комментариях! Ну или задавайте свои вопросы. Будем вместе искать ответы
Спасибо за внимание! До новых встреч!
Источник - master-css.com59
- Все отзывы о moneycaptcha в одном месте
- Какой плагин плеера для Maxsite CMS лучше?
- Как я использовал плагин «Прислать статью» для проведения конкурса
- Капча для входа в админку
- Дайджест смены хостинга [со сменой домена], обновления версии CMS (вручную)
- Критика MaxSite CMS. Работа с заблуждениями
- Функция проверки типа страницы
хорошая статья, особенно начинающим вебмастерам, сам прошел путь от вставки кода в шаблон, потом перебрался на ушки, в сочетании с AdInsertion, не знал про плагин Контекстная реклама, нужно будет попробовать насколько он удобен, т.к. очень интересный на первый взгляд.
Наверное можно еще этим способом http://maxhub.ru/page/plugin-linkexchange
Как добавить рекламу внизу страницы (после контента) на таких страницах, как архив, комментарии, категории, гостевая, контакты, страница 404?
В общем случае вам нужно изучить соответствующие type-файлы вашего шаблона и найти в них решение. Если у вас шаблон на основе дефолтного, то можно в тех же файлах искать названия type_foreach файлов и, например, создавать такие файлы и размещать код вызова ушки с рекламным кодом. Например, В type-файле archive есть упоминание кода
Из него видно, что нужно в папке type_foreach вашего шаблона создать файл archive-posle.php
То есть создаем файл archive-posle.php с таким содержанием?
Если да, то не понял, в самой паке type_foreach или в этой папке нужно создать еще папку с названием archive-posle и в нее уже кидаем файл archive-posle.php ?