Откуда пришел лид

Здравствуйте. Возник вопрос: необходимо, чтобы при получении данных с отправленной формы приходил отчет, откуда пришел посетитель на сайт. Реализовано ли такое дополнение для MODX Revo?
Дмитрий Коробов
10 февраля 2014, 08:07
modx.pro
5
3 434
0

Комментарии: 7

Евгений
10 февраля 2014, 13:42
0
В рево не знаю.
В метрике настроить цели на работу с формой и потом смотреть, окуда пришел лид.
    Дмитрий Коробов
    10 февраля 2014, 14:24
    -1
    В метрике я могу смотреть, это да, но есть задание — при получении формы с данными пользователя должна приходить информация, откуда пришел пользователь. При посещаемости 6000+ искать вручную не айс… Как я выяснил, в web среде такой метод называют «реферальный хвост». Информации об этом очень мало.
      Виталий Валерьевич
      10 февраля 2014, 14:49
      4
      0
      Делается очень просто, опишу алгоритм и набросаю от руки, поднимать наработки долго.

      Алгоритм:

      1. Получить реферара
      2. Определить поисковую систему
      3. Получить поисковый запрос или ссылку переход с которой был осуществлен
      4. Записать в cookie или в сессию результат
      5. В нужном месте собрать

      Пишем сниппет:

      $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]], который содержит всю необходимую информацию по рефереру. Код от руки, естественно требует доработок, но вроде нигде не ошибся.
      Алексей
      10 февраля 2014, 16:09
      +1
      пользуюсь piwik.org/, умеет. надо лишь настроить цели
        Руслан Кундиус
        10 февраля 2014, 17:22
        +3
        При включенном pdoparser плейсхолдер [[#SERVER.HTTP_REFERER]] выведет адрес страницы, с которой пришел пользователь
          Дмитрий Коробов
          11 февраля 2014, 04:17
          0
          Спасибо! Ушел воплощать.
            Дмитрий Коробов
            11 февраля 2014, 12:06
            0
            Помог парсер и [[#SERVER.HTTP_REFERER]]. Способ через сниппеты сохранил, спасибо за науку!
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              7