Как эффективно вставить рекламу в статью на сайте wordpress без использования плагинов

Одними из самых кликабельных мест любого сайта или блога является контент. За полезным текстом пользователи приходят на сайт и размещение рекламных блоков (например, 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);

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

На сегодня всё — до встречи!

 

4 комментария для “Как эффективно вставить рекламу в статью на сайте wordpress без использования плагинов

  1. Не вставляет после 10 символов первый блок, вставляет только после 1-го абзаца. А можно сделать чтобы именно после 10 символов вставляло?

    1. Функция специально так написана, чтобы после нужного числа символов искала конец абзаца, а не рвала слова на куски. Задача вставки именно после количества символов — проще. 🙂
      Достаточно заменить
      $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;
      }

  2. Просто ОГРОМНЕЙШЕЕ спасибо за этот код! Наконец-то что-то стоящее среди тонн скопипащенных функций… И именно то, что было нужно!

Добавить комментарий для admin Отменить ответ

Ваш адрес email не будет опубликован.

Пролистать наверх

Быстрая заявка на консультацию

  1. Заполняем поля (можно просто имя и любой удобный для Вас контакт: почта и/или страница vk и/или ватсап);
  2. Очень хорошо, если вы сможете заполнить и отправить бриф (скачать)
  3. Жмём «Отправить» ;
  4. В течении 24 часов (обычно намного быстрее) – я с Вами свяжусь, а далее всё обсудим и спланируем.
Всегда рад сотрудничеству! C уважением, Николай.