Loading...
X

Как для посетителей, перешедших с Google, показывать AdSense, а для посетителей, перешедших с Яндекс, показывать РСЯ


Теория

Хотя реклама на сайтах по привычке и называется «контекстной» (т.е. содержимое рекламы показывается в зависимости от того, что размещено на странице, от контекста страницы), но на самом деле сейчас значительная доля показываемой рекламы определяется исходя из интересов пользователя.

Самый очевидный способ узнать текущий интерес пользователя – это проанализировать его поисковый запрос, по которому он зашёл на сайт, где ему будет показана реклама. Например, если в строке поиска я ввёл «какая погода в Бангкоке в августе», то исходя из моих интересов мне может быть показана реклама авиабилетов, отелей, туристических фирм и прочее. Даже если я зайду на сайт географической энциклопедии, рассказывающей об особенностях тропического климата рядом с морем.

Много лет назад было время, когда строка реферера содержала текст, который искал пользователь. Но сначала Гугл, а затем и Яндекс стали шифровать эту строку. В результате мы имеем: если посетитель пришёл с поисковой системы Яндекс, то AdSense НЕ ЗНАЕТ по какому именно поисковому запросу зашёл пользователь. Если посетитель пришёл с Google, то в неведении остаётся РСЯ. В результате, теоретически, эффективность каждой партнёрской сети снижается.

Поэтому возникла идея: а что если для посетителей, перешедших с Google, показывать AdSense, а для посетителей, перешедших с Яндекс, показывать РСЯ? В теории, это должно увеличить относительные величины (доход на тысячу показов) сразу для обеих партнёрских сетей. Другого способа, кроме как проверить самому, нет. Поэтому запускаем новый эксперимент!

PHP код для показа различной рекламы в зависимости от referer

О том, как реализовать эксперименты в WordPress, смотрите «Как делать A/B тесты рекламных блоков».

Здесь же я приведу только код вывода рекламного блока в зависимости от реферера. На самом деле, это элементарный код, только помните о том что:

  • иногда значение заголовка referer отсутствует (по разным причинам, например, это прямой заход, а не из поисковой системы)
  • пользователь мог прийти с другого сайта, а не из поисковой выдачи (т.е. заголовок referer установлен, но он не соответствует ни Яндексу, ни Гуглу).

Поэтому нам нужно указать коды рекламных блоков для следующих ситуаций:

  • когда пользователь пришёл с Google
  • когда пользователь пришёл из Яндекс
  • когда пользователь пришёл с другого сайта
  • когда пользователь пришёл неизвестно откуда

Код для вставки в PHP Snippet:

if(isset($_SERVER['HTTP_REFERER'])) {
	$ref=$_SERVER['HTTP_REFERER'];
	$ref_site = parse_url($ref, PHP_URL_HOST);

	if (preg_match("/google/i" , $ref_site))
	{
		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ ГУГЛ';
	}
	elseif (preg_match("/yandex/i" , $ref_site))
	{
		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ ЯНДЕКС';
    }
	else
	{
		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ С ДРУГОГО САЙТА';
	}

}
else
{
	echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА';
}

Вы по своему усмотрению выберите, объявления какой партнёрской сети вы хотите показывать для посетителей не из поисковой выдачи. Например, я будут показывать для таких пользователей блоки РСЯ, поскольку у меня они немного выгоднее.

Помните, что если изначально посетитель пришёл из поисковой системы Google, а затем перешёл на другую страницу вашего сайта, то сначала ему будет показан рекламный блок, предназначенный для пришедших из Гугл, а затем ему будет показан рекламный блок для «пришедших с другого сайта», поскольку теперь в качестве реферера посетителя будет ваш сайт!

О результатах моего эксперимента обязательно напишу! Поэтому оставайтесь на связи!


Рекомендуется вам:


14 observations on “Как для посетителей, перешедших с Google, показывать AdSense, а для посетителей, перешедших с Яндекс, показывать РСЯ
  1. Андрей

    И как результаты? Если сайт кешируется на облаке или плагином нужно делать javascript версию, но при использовании Блоков Ссылок это будет черной меткой. 

     
    Reply
    1. MiAl

      Результаты невнятные: доход от РСЯ — это просто рандом: растёт, падает, остаётся прежним независимо от чего бы то ни было. Даже от показываемых кликов в кабинете.

      Доход от AdSense восстановился - у меня было падение доходности на 1000 показов в 2 раза во время предыдущего A/B теста, когда 50/50 показывал объявление AdSense и РСЯ.

      Учитывая, что я тестировал только один блок и что посещаемость на том сайте около 2,000-2,500 уникумов в сутки, то разница получилась прям копеечная. В общем, хрень, даже неохота делать отдельную статью с результатами.

      По конечному итогу я оставил AdSense под заголовком, и впихнул РСЯ в самых верх, над шапкой.

      нужно делать javascript версию,

      Неееее, вот так бы я точно не стал делать. С помощью JavaScript мы делаем один из двух блоков невидимым или ещё как-то модифицируем код — а это верный способ получить бан аккаунта.

      В РСЯ я вообще начинаю тотально разочаровываться. С одного сайта убрал почти все блоки и точно уберу оставшийся — просто руки не доходят. Сейчас тестирую на трёх сайтах над шапкой + "липкий" блок в боковой панели — результаты смешные. Если осенью как следует не вырастет, то додержку до набора минималки и уберу со всех сайтов. Ну или оставлю по одному блоку, для отслеживавния ситуации.

       
      Reply
      1. Андрей

        Затестил у себя javascript, кстати подгрузка не идет если не выполняется условие. Код объявления не меняет, если не гнатся за подгрузкой блоков как я.  Мои реузльятаты такие: адсен доход от трафика с Я и Г примерно одинаковый, РСЯ - доход с Я значительно выше чем с ПС Г. Возможно это из-за разных позиций в поисковых системах по прибыльным фразам. 

        Кстати, способ с ПХП подойдет для прятания Блоков Ссылок от Яндекса. Раньше подгружал БС через код РСЯ, но неделю назад начали палить такой способ

         
        Reply
        1. MiAl

          ПХП подойдет для прятания Блоков Ссылок от Яндекса

          Блоки ссылок не будут видеть посетители с Яндекса. Но посетители с Толоки (это что-то вроде буксов от Яндекса, где пользователи отвечают на разные вопросы по поводу сайтов) их видеть будут. Также робот и другие способы, которыми Яндекс сканирует и проверяет сайты, будут видеть БС.

          ИМХО, фильтр за малополезный контент (МПК) и блоки ссылок связаны слабо. То есть, учитывая сколько людей про это говорят, связь безусловно есть. Но блоки ссылок это как последняя капля, если контент действительно малополезный. К примеру, этот самый блог, на нём блоки ссылок я поставил несколько месяцев назад (не помню, когда именно), а вот график посещаемости с поисковых систем:

          Понятно, что трафика мало, но и с блоками ссылок рост есть.

          Я на всех своих более-менее популярных сайтах расставил БС — проблем, в том числе с Яндексом, не наблюдаю.

          П.с.: само-собой, я никого не призываю ставить БС — а то потом кто-то будет говорить, что я виноват в каких-то их проблемах. Просто говорю о том, что для меня это норм.

           
          Reply
  2. Андрей WPM

    Задался таким же вопросом, и теперь понимаю, что зря. Статья полезна своим выводом, времени просто так теперь не убью тучу на тесты. Раз эффекта как такового нет, значит и заморачиваться не стоит. Очень полезна для меня статья оказалась, но скорее выводом. 

     
    Reply
  3. MrVector

    Здравствуйте. Подскажите пожалуйста. Как скрыть рекламу Гугл Адсенс от пользователей приходящих из соц сети? Т.е. человек пришел, например, из ВК, и он не видит рекламу от гугла, но затем, переходя по ссылкам в другие разделы сайта, рекламу начинает видеть.

     
    Reply
    1. MiAl

      Приветствую. Примерно так:

      if (isset($_SERVER['HTTP_REFERER'])) {
          $ref = $_SERVER['HTTP_REFERER'];
          $ref_site = parse_url($ref, PHP_URL_HOST);
      
          if (preg_match("/(vk.com)|(facebook.com)|(twitter.com)|(ok.ru)/i", $ref_site)) {
              # ПРИШЕДШИМ ИЗ СОЦ. СЕТЕЙ НИЧЕГО НЕ ПОКАЗЫВАЕМ, ПОЭТОМУ ЗДЕСЬ ПУСТО
          } else {
              echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ С ДРУГИХ САЙТОВ';
          }
      } else {
          echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА';
      }

      НО: далеко не все сайты, в том числе социальные сети, передают HTTP заголовок Referer. Это означает, что пользователь мог прийти из социальной сети, но наш скрипт об этом не знает, поскольку в Referer ничего не написано, поэтому будет показывать «КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА». Это никак не исправить, поскольку зависит не от нас, а от социальной сети.

       
      Reply
      1. MrVector

        Большое спасибо за помощь. Код работает. Дай бог вам счастья здоровья и любви 🙂

         
        Reply
    2. MiAl

      Хотя… поскольку ссылки в социальные сети вы публикуете сами, то в принципе, для пользователей из соц. сетей можно делать специальную ссылку с дополнительным параметром:

      • _https://site.ru/p=10?socialmedia=true
      • _https://site.ru/p=10?cat=phones&filter=new&socialmedia=true

      В этом случае нужно использовать следующий PHP код:

      if (isset($_GET["socialmedia"])) {
          # ПРИШЕДШИМ ИЗ СОЦ. СЕТЕЙ НИЧЕГО НЕ ПОКАЗЫВАЕМ, ПОЭТОМУ ЗДЕСЬ ПУСТО
      } else {
          echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА';
      }

      При этом дополнительный параметр «&socialmedia=true» больше практически ни на что не влияет.

       

       
      Reply
  4. Марианна

    Здравствуйте! Подскажите, пожалуйста, как правильно добавить в эту строку "if (preg_match("/yandex/i" , $ref_site))" другие сайты, например, mail.ru, rambler и т.п.?

     
    Reply
    1. Марианна

      Извините, еще вопрос: не могли бы вы подсказать как сделать так, чтобы тем, кто, к примеру, перешёл на сайт с Google и будет листать другие страницы, показывать объявления именно для Google, а не то, что указываем после "}else {". Видимо, надо установить куки, но вот как это осуществить?

       
      Reply
      1. MiAl

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

        Самое главное, что нужно помнить, что кукиз устанавливаются в HTTP заголовках и после того, как HTTP заголовки отправлены, повторно отправить их для этого же соединения нельзя. Плагин, который я использую (Insert PHP Code Snippet), не подходит для этого, поскольку HTTP заголовки отправляются до того, как до него доходит очередь выполнения.

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

        И, что пожалуй самое главное, точно сказать трудно, но для AdSense посетитель, который пришёл из Google и перешёл по ссылке на другую страницу — это уже не «посетитель, который пришёл из Google». То есть AdSense видит в целом рекламный профиль данного посетителя и отбирает рекламные блоки исходя из его интересов, но последний переход из поисковой системы уже мало на что влияет.

         
        Reply
    2. MiAl

      Приветствую! То, что другие сайты не упоминаются, не означает, что для них не показываются объявления. Пользователи, пришедшие с mail.ru, rambler и прочих попадают в группу «КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ С ДРУГОГО САЙТА».

      Даже те, у кого отсутствует реферер попадают в группу «КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА».

      Другие сайты (поисковые системы) не упоминаются, так как нет особых объявлений для них. Тем не менее, если вам по каким-то причинам нужно, то добавлять можно с помощью блоков elseif:

      	elseif (preg_match("/САЙТ/i" , $ref_site))
      	{
      		# ЗДЕСЬ КОД
          }

      Например:

      if(isset($_SERVER['HTTP_REFERER'])) {
      	$ref=$_SERVER['HTTP_REFERER'];
      	$ref_site = parse_url($ref, PHP_URL_HOST);
      
      	if (preg_match("/google/i" , $ref_site))
      	{
      		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ ГУГЛ';
      	}
      	elseif (preg_match("/yandex/i" , $ref_site))
      	{
      		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ ЯНДЕКС';
          }
      	elseif (preg_match("/mail.ru/i" , $ref_site))
      	{
      		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ MAIL.RU';
          }
      	elseif (preg_match("/rambler/i" , $ref_site))
      	{
      		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ ИЗ RAMBLER';
          }
      	else
      	{
      		echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ С ДРУГОГО САЙТА';
      	}
      
      }
      else
      {
      	echo 'КОД ОБЪЯВЛЕНИЯ ДЛЯ ПРИШЕДШИХ НЕИЗВЕСТНО ОТКУДА';
      }

       

       
      Reply

Leave Your Observation

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

wp-puzzle.com logo