Откуда пришел лид
Здравствуйте. Возник вопрос: необходимо, чтобы при получении данных с отправленной формы приходил отчет, откуда пришел посетитель на сайт. Реализовано ли такое дополнение для MODX Revo?
Комментарии: 7
В рево не знаю.
В метрике настроить цели на работу с формой и потом смотреть, окуда пришел лид.
В метрике настроить цели на работу с формой и потом смотреть, окуда пришел лид.
В метрике я могу смотреть, это да, но есть задание — при получении формы с данными пользователя должна приходить информация, откуда пришел пользователь. При посещаемости 6000+ искать вручную не айс… Как я выяснил, в web среде такой метод называют «реферальный хвост». Информации об этом очень мало.
- Получить реферара
- Определить поисковую систему
- Получить поисковый запрос или ссылку переход с которой был осуществлен
- Записать в cookie или в сессию результат
- В нужном месте собрать
Делается очень просто, опишу алгоритм и набросаю от руки, поднимать наработки долго.
Алгоритм:
Пишем сниппет:
Запускаем в шаблоне, перед <!DOCTYPE>, далее если используется Formit, создаем сниппет-hook и записываем в него следующую конструкцию (как пример):
Итог: получаем плейсхолдер [[+referer]], который содержит всю необходимую информацию по рефереру. Код от руки, естественно требует доработок, но вроде нигде не ошибся.
Алгоритм:
Пишем сниппет:
$referer = $_SERVER['HTTP_REFERER'];
setcookie('referer', $referer, mktime(0, 0, 0, 1, 1, 2015));
if (stristr($referer, 'yandex.ru')) {
$search = 'text='; $crawler = 'Yandex';
}
else if (stristr($referer, 'rambler.ru')) {
$search = 'words='; $crawler = 'Rambler';
}
else if (stristr($referer, 'google.ru')) {
$search = 'q='; $crawler = 'Google';
}
else if (stristr($referer, 'google.com')) {
$search = 'q='; $crawler = 'Google';
}
else if (stristr($referer, 'mail.ru')) {
$search = 'q='; $crawler = 'Mail.Ru';
}
else if (stristr($referer, 'bing.com')) {
$search = 'q='; $crawler = 'Bing';
}
else if (stristr($referer, 'qip.ru')) {
$search = 'query='; $crawler = 'QIP';
}
if (isset($crawler)) {
$phrase = urldecode($referer);
preg_match('/'.$search.'([^&]*)/', $phrase.'&', $phrase2);
$phrase = $phrase2[1];
}
setcookie('phrase', $phrase, mktime(0, 0, 0, 1, 1, 2015));
Запускаем в шаблоне, перед <!DOCTYPE>, далее если используется Formit, создаем сниппет-hook и записываем в него следующую конструкцию (как пример):
$output = '';
foreach ($_COOKIE as $k => $v) {
if (0 === strpos($k, 'utm')) $output .= "$k: $v \n";
}
$hook->setValue('referer', $output);
return true;
Итог: получаем плейсхолдер [[+referer]], который содержит всю необходимую информацию по рефереру. Код от руки, естественно требует доработок, но вроде нигде не ошибся.
пользуюсь piwik.org/, умеет. надо лишь настроить цели
При включенном pdoparser плейсхолдер [[#SERVER.HTTP_REFERER]] выведет адрес страницы, с которой пришел пользователь
Спасибо! Ушел воплощать.
Помог парсер и [[#SERVER.HTTP_REFERER]]. Способ через сниппеты сохранил, спасибо за науку!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.