Почему реферальный хвост некоректно работает?

$_SERVER['HTTP_REFERER'] - работает если я перехожу с гугл, а если я перехожу с метки UTM нет
$utm = $output['utm_term'] - адекватно извлекает метку

Написал сниппет
Код сниппета:
<?php
@session_start();

if(isset($_SERVER['HTTP_REFERER'])){
  if($_SESSION["referer"] == '') $_SESSION["referer"] = $_SERVER['HTTP_REFERER'];
}

//$referer = "http://xxx.ru/xxx?utm_source=yandex&utm_medium=cpc&utm_campaign=17188546&utm_content=1823884480&utm_term=%D0%B1%D0%BB%D0%B5%D1%84%D0%B0%D1%80%D0%BE%D0%BF%D0%BB%D0%B0%D1%81%D1%82%D0%B8%D0%BA%D0%B0&yclid=1826291325305359810"; //(isset($_SESSION["referer"]))? $_SESSION["referer"]  : 'Реферальная ссылка не определена' ;
$referer = $_SERVER['HTTP_REFERER'];
if (stristr($referer, 'yandex.ru')) { $search = 'text='; $crawler = 'Yandex'; }
if (stristr($referer, 'rambler.ru')) { $search = 'words='; $crawler = 'Rambler'; }
if (stristr($referer, 'google.ru')) { $search = 'q='; $crawler = 'Google'; }
if (stristr($referer, 'google.com')) { $search = 'q='; $crawler = 'Google'; }
if (stristr($referer, 'mail.ru')) { $search = 'q='; $crawler = 'Mail.Ru'; }
//if (stristr($referer, 'yahoo.com')) { $search = 'q='; $crawler = 'Yahoo'; }
if (stristr($referer, 'bing.com')) { $search = 'q='; $crawler = 'Bing'; }
if (stristr($referer, 'qip.ru')) { $search = 'query='; $crawler = 'QIP'; }

if (isset($crawler)){
  $phrase = urldecode($referer);
  preg_match('/'.$search.'([^&]*)', $phrase.'&', $phrase_k);
  $phrase = $phrase_k[1];
  $referer =  $crawler;
}

if(isset($crawler)){
  echo 'Ключи: '.$phrase.' Источник: '.$referer;
}else{
  $phrase = urldecode($referer);
  parse_str($referer, $output);
  $utm_source = $output['utm_source'];
  $utm = $output['utm_term'];
  echo ' UTM: '.$utm.'  Источник: '.$referer;
}


Подскажите что можно исправить, чтобы сниппет корректно работал?
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ответы на вопрос 1
REZ1DENT3
@REZ1DENT3
web-developer
$_GET['utm_term'];
Так, как кто пришел в первый раз ещё не получил вашу сессию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы