Одними из самых кликабельных мест любого сайта или блога является контент. За полезным текстом пользователи приходят на сайт и размещение рекламных блоков (например, Adsense или Яндекс) непосредственно в теле статьи — может значительно повысить доход сайта.
Но, даже если сайт не монетизируется сторонней рекламой, для коммерческих сайтов имеет смысл размещать в контенте рекламные блоки, которые ведут на страницы услуг или товаров. Это значительно повышает конечную конверсию сайта. Пример таких рекламных блоков вы можете увидеть и на данной странице.
Я достаточно долго использовал методы вставки рекламных блоков на сайт wordpress, описанные у сторонних разработчиков. Но, не один из них не подходил на 100%. Потому, был написан собственный код, с алгоритмом вставки которого я поделюсь в данной статье.
При разработке данного метода размещения рекламных блоков стояли задачи:
1) Возможность вставки ЛЮБОГО количества рекламных блоков в тело статьи (если сайт состоит из статей по 10-20 тысяч знаков — в такую статью можно достаточно оправданно поставить 4-5 и более разнохарактерных блоков рекламы)
2) Возможность не показывать рекламные блоки на нужных страницах (например, если рекламный блок ведёт на внутреннюю страницу сайта «Услуги» — показывать его на этой странице бессмысленно)
3) Возможность вставки блока непосредственно в конце статьи. Например, если разместить в такой блок форму подписки — процент прочитавших полезную статью и подписавшихся сразу после её прочтения, значительно вырастет.
4) Все эти возможности должны быть реализованы без использования плагинов, чтобы не нагружать хостинг.
Алгоритм вставки рекламных блоков в тело статьи:
1) В админке вордпресса идём в «Внешний вид -> Редактор -> Функции темы (functions.php)»
2) Вставляем в самый конец файла следующий код:
function les_insert_advertise($content){ global $post; if(!is_single()) return $content; //Страницы на которых не будет показываться реклама $exept_url=array('http://site.ru','http://site.ru/stranica'); if(in_array(get_permalink($post->ID),$exept_url)) return $content; //Количество символов, после которого будет вставлена реклама. Первый блок будет вставлен через 10 символов, второй - через 135 после первого, третий через 10 после второго $adv_counts=array(10,135,10); //HTML рекламных блоков. Первый блок прижат к правому краю, второй к левому. $adv_blocks=array('<div style="float:right;margin:0 0 10px 0;">1 блок</div>', '<div style="float:left;margin:0 10px 0 0;">2 блок</div>', '<div align="center">3 блок</div>'); $text=$content; $result=''; foreach($adv_counts as $key => $value){ if($value>=strlen($text)) break; if($value!=0){ $result=$result.substr($text,0,$value); $text=substr($text,$value); $sp=explode(' ',$text,2); $result=$result.$sp[0].' '.$adv_blocks[$key].' '; if(isset($sp[1])) $text=trim($sp[1]); else{ $text=''; break; } } else $result=$result.' '.$adv_blocks[$key].' '; } if($text!='') $result.=$text; return $result; } add_filter('the_content', 'les_insert_advertise', -10);
В принципе, всё понятно, но на всякий случай поясню:
1) Вместо http://site.ru и http://site.ru/stranica — вставляем адреса страниц своего сайта, на котором не нужно показывать рекламные блоки
2) Вместо (1000,1350,1200) — вставляем промежутки между блоками, которые наиболее подходят структуре Ваших статей. Если поставить первой цифрой 0 — блок будет вставляться в самое начало статьи.
3) Вместо
'<div style="float:right;margin:0 0 10px 0;">1 блок</div>', '<div style="float:left;margin:0 10px 0 0;">2 блок</div>', '<div align="center">3 блок</div>'
вставляем собственно код рекламных или конверсионных баннеров.
Можно сделать любое количество рекламных блоков на странице, просто добавьте через запятую промежутки и рекламные коды в соответствующие строчки.
Если Вам нужно добавить рекламный блок в самый конец статьи — вставьте в конце файла function.php ещё вот такой код:
function les_insert_post_end_advertise($content){ global $post; if(!is_single()) return $content; $exept_url=array('http://site.ru','http://site.ru/stranica'); if(in_array(get_permalink($post->ID),$exept_url)) return $content; $adv_block='<div>Блок рекламы в конце записи</div>'; return $content.$adv_block; } add_filter('the_content', 'les_insert_post_end_advertise', -9);
Исключаемые страницы и блок рекламы настраивается аналогично предыдущему коду.
На сегодня всё — до встречи!
Не вставляет после 10 символов первый блок, вставляет только после 1-го абзаца. А можно сделать чтобы именно после 10 символов вставляло?
Функция специально так написана, чтобы после нужного числа символов искала конец абзаца, а не рвала слова на куски. Задача вставки именно после количества символов — проще. 🙂
Достаточно заменить
$result=$result.substr($text,0,$value);
на
$result=$result.substr($text,0,$value).$adv_blocks[$key];
А эту часть просто выкинуть:
$sp=explode(‘
‘,$text,2);
$result=$result.$sp[0].’
‘.$adv_blocks[$key].’
‘;
if(isset($sp[1]))
$text=trim($sp[1]);
else{
$text=»;
break;
}
Просто ОГРОМНЕЙШЕЕ спасибо за этот код! Наконец-то что-то стоящее среди тонн скопипащенных функций… И именно то, что было нужно!
Всегда, пожалуйста 🙂