Пара тапок » direct http://paratapok.ru Блог о веб-разработке Sun, 18 Dec 2022 12:14:48 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.3.34 Как узнать откуда пришли на сайт: Яндекс поиск, Гугл поиск, Директ, Адвордс? http://paratapok.ru/frontend/2639_kak-uznat-otkuda-prishli-na-sajt-yandeks-poisk-gugl-poisk-direkt-advords/ http://paratapok.ru/frontend/2639_kak-uznat-otkuda-prishli-na-sajt-yandeks-poisk-gugl-poisk-direkt-advords/#comments Fri, 24 Nov 2017 14:04:51 +0000 http://paratapok.ru/?p=2639 Читать далее →]]> Если вы являетесь владельцем сайта, то вы можете получать трафик из поисковых систем (yandex, google) и с контекстных площадок (direct, adwords). Иногда требуется в зависимости от источника трафика показывать определенные данные на сайте или учитывать источник в собственной системе аналитики. Чтобы узнать откуда пришли на сайт (Яндекс поиск, Гугл поиск, Директ или Адвордс), Вам поможет следующий php-скрипт:

$reffer = $_SERVER['HTTP_REFERER'];

if(strpos($reffer, "yandex")!= 0 && strpos($reffer, "доменное_имя_вашего_сайта")== 0)
{
	if(!empty($_GET['yclid']))
	{
		echo('direct');
	}
	elseif(!empty($_GET['utm_source']) && $_GET['utm_source'] == 'yandex')
	{
		echo('direct');
	}
	else
	{					
		echo('yandex');
	}	
}
elseif(strpos($reffer, "google")!= 0 && strpos($reffer, "доменное_имя_вашего_сайта")== 0)
{	
	
	if(!empty($_GET['gclid']))
	{
		echo('adwords');
	}
	elseif(!empty($_GET['utm_source']) && $_GET['utm_source'] == 'google')
	{
		echo('adwords');
	}		
	else
	{
		echo('google');
	}	

}

Попробуем объяснить, что делает скрипт. В переменной $_SERVER[‘HTTP_REFERER’] содержится урл сайта, с которого был осуществлен переход. Из поиска и директа Яндекса в качестве этого урла будет его адрес. Но для определения посетителя из Директа необходимо учитывать $_GET переменные: метки (utm) или переменную для метрики yclid.

UTM-метки задаются при создании и редактировании объявлений в личном кабинете при настройке рекламных кампаний.

Переменную для метрики yclid можно включить, указав галочку вот тут:

Но учтите, что при выборе данной галочки UTM-метки (utm_source) работать не будут. В данном скрипте сделал учёт обоих случаев, чтобы работало и с галочкой, и без нее (тут требует установка утм-меток в объявлении).

При переходе из поиска и адвордса Гугла в качестве урла в $_SERVER[‘HTTP_REFERER’] будет его адрес. Но для определения посетителя из Адвордса необходимо учитывать $_GET переменные: метки (utm) или переменную для гугланалитикса gclid. В этом случае при настройке объявлений в рекламной кампании утм-метки задаются точно также. Учёт обоих переменных в скрипте также предусмотрен.

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

session_start();
		
$config = array(
'direct' => 'direct',
'adwords' => 'adwords',
'yandex' => 'yandex',
'google' => 'google',
'0' => 'это по умолчанию, при прямом заходе на сайт',
);

$currentParam = $config['0'];

$reffer = $_SERVER['HTTP_REFERER'];

if(strpos($reffer, "yandex")!= 0 && strpos($reffer, "доменное_имя_вашего_сайта")== 0)
{
	if(!empty($_SESSION['currentParam']))
		$_SESSION['currentParam'] = '';
	
	
	if(!empty($_GET['yclid']))
	{
		$currentParam = $config['direct'];
	}
	elseif(!empty($_GET['utm_source']) && $_GET['utm_source'] == 'yandex')
	{
		$currentParam = $config['direct'];
	}
	else
	{					
		$currentParam = $config['yandex'];
	}

	
}
elseif(strpos($reffer, "google")!= 0 && strpos($reffer, "доменное_имя_вашего_сайта")== 0)
{
	
	if(!empty($_SESSION['currentParam']))
		$_SESSION['currentParam'] = '';
	
	
	if(!empty($_GET['gclid']))
	{
		$currentParam = $config['adwords'];
	}
	elseif(!empty($_GET['utm_source']) && $_GET['utm_source'] == 'google')
	{
		$currentParam = $config['adwords'];
	}		
	else
	{
		$currentParam = $config['google'];
	}	

}

if(empty($_SESSION['currentParam']))
{
	$_SESSION['currentParam'] = $currentParam;
}
]]>
http://paratapok.ru/frontend/2639_kak-uznat-otkuda-prishli-na-sajt-yandeks-poisk-gugl-poisk-direkt-advords/feed/ 1