Руководство по HTraffic Query

Введение

HTraffic Query это скрипт позволяющий повысить конверсию на сайте, благодаря адаптации страниц под пользователя. Скрипт позволяет значительно увеличить конверсию и доход. Скрипт работает только на трафике из контекстной рекламы.

HTraffic Query распространяется бесплатно с открытым исходным кодом. Вам не обязательно быть пользователями HTraffic.ru, чтобы использовать этот скрипт.

Версия

Текущая версия: 1.0.1

История версий

  • 1.0.0 Beta — Первая версия.
  • 1.0.1 — исправлен код подключения и совместимость со старыми версиями PHP

Гарантии

Это бесплатный скрипт, который распространяется “как есть”, без каких-либо гарантий. Сейчас техническая поддержка скрипта осуществляется только в комментариях этой страницы и она не гарантирована.

Когда работает?

PHP>=4.3 (99% сайтов). Наличие стандартного расширения MB, который есть на 95% хостингов. Администрация остальных хостингов, обычно, подключает MB по первой просьбе.

Работает когда пользователь пришел со следующих систем:

  • Яндекс Директ. Разбивать ключевые слова не обязательно. Скрипт способен определить запрос по которому приходит пользователь.
  • Google AdWords. Нужно настраивать.
  • Можно настроить под любой другой источник, в котором можно отследить ключевое слово или запрос пользователя. По рефереру или GET параметру.

Что делает?

Все люди разные. Их волнуют разные вещи. Некоторых больше заботит цена, других качество, а у третьего может быть совершенно другой критерий выбора товара. С помощью HTraffic Query вы можете лучше подстроиться под каждого пользователя.

Благодаря скрипту вы можете сделать следующее:

  • Редиректы. Например, если пользователь пришел на главную страницу сайта по запросу содержащему слово “самсунс”, то редирекнуть его на соответствующий раздел сайта. Это значительно уменьшает вероятность того, что пользователь заблудится на сайте или ему просто будет лень искать. Таким образом можно значительно увеличить показатель конверсии. В AdWords редиректы бесполезны, но в Директе незаменимы.
  • Изменение текста страницы. С помощью скрипта вы можете адаптировать страницу под желания пользователя. Например, если пользователь пришел по запросу содержащему “роллеты”, то заменить “жалюзи” на “роллеты”. Или тоже самое с отелем и гостиницей. Другой пример, допустим у нас есть сайт по квартирам посуточно, в зависимости от запроса пользователя можно менять заголовок страницы:
    • “недорого” => “Недорогие квартиры посуточно”
    • “vip” => “Элитные квартиры посуточно”
    • “центр” => “Квартиры посуточно в центре Одессы”
    Таким образом у пользователя создается впечатление, что он нашел именно то, что он искал. В итоге значительно возрастает конверсия.
  • Изменение порядка сортировки по умолчанию. Например, если в запросе пользователя есть слово “недорого”, то сортировать по цене. Дело не только в удобстве пользователя. Посетитель увидев низкие цены в начале списка подумает, что цены у вас низкие, а как можно понять из запроса его волнуют прежде всего цены.
  • Если у вас есть навык программирования, то с помощью скрипта вы можете легко и просто делать множество вещей. Например, разным пользователям показывать разные цены. Если пользователя волнует цена, то можно ее опустить.

Что это даст?

Это увеличит число конверсий при том-же числе кликов и расходах. Это даст намного больше, чем увеличения процента конверсии сужением таргетинга, например добавлением минус-слов. Использование скрипта не исключает использование других методов оптимизации конверсии.

Например, у нас есть 100 кликов в день. CPC=1$, мы покупаем товар за 100$, продаем за 200$. Конверсия у нас равна: 2%. Ежедневная прибыль у нас равна 100 * (200$-100$) * 2% - 100 * 1$ = 200$-100$ =100$.

Если мы увеличим конверсию в два раза за счет минус-слов, то она станет равной 4%, но число кликов уменьшиться вдвое. Ежедневная прибыль станет равной 50 * (200$-100$) * 4% - 50 * 1$ = 200$-50$ =150$.

В случае оптимизации сайта. Конверсия станет = 4%, а число кликов останется прежним. В итоге 100 * (200$-100$) * 4% - 100 * 1$ = 400$-100$ =300$.

При этом не всегда увеличение конверсии минус-словами повышает прибыль. Поскольку вместе с мусором минус-слова вырезают и полезные клики.

Например, у нас есть 100 кликов в день. CPC=0.2$, мы покупаем товар за 100$, продаем за 200$. Конверсия у нас равна: 2%. Ежедневная прибыль у нас равна 100 * (200$-100$) * 2% - 100 * 0.2$ = 200$-20$ =180$.

Допустим после добавления минус-слов конверсия возросла до 4%, а число кликов уменьшилось до 45. Ежедневная прибыль у нас равна 45 * (200$-100$) * 4% - 45 * 0.2$ = 180$-9$ =171$.

Другими словами, безопаснее и эффективнее оптимизировать сайт под трафик, чем трафик под сайт.

Установка

Данное руководство включает в себя решение множества проблем, которые могут возникнуть входе установки. Поэтому не смотря на объем текста в большинстве случаев установка требует не более 5 минут.

  • Скачайте скрипт, распакуйте архив и залейте папку htraffic_query в корень сайта (обычно, www или public_html).
  • Переименуйте файл config_utf8.php или config_cp1251.php (в зависимости от кодировки сайта) в config.php
  • Найдите php файл, который постоянно выполняется например:
    • Для большинства движков в том числе WordPress и DLE: index.php в корне сайта.
    • у Netcat netcat/require/e404.php
    • у PHPBB includes/functions.php
    • у Битрикс bitrix/php_interface/dbconn.php
    • для HostCMS MainClasses.php
    • Файл в котором вы прописывали доступы к БД при установке CMS. Например config.php
    • Посмотрите header.php текущей темы (шаблона сайта)
  • В самое начало этого файла добавьте код:

    Должно получиться что-то вроде:
    <?php //>
    	...
    ?><?php
    Пробелов и энтеров не должно быть между началом файла и <?php //> а также между ?> и следующим за ним <?php

Если будет ошибка файл не найден:

  • Убедитесь что файл называется config.php. Регистр букв важен.
  • Убедитесь, что папка залита в корень сайта. Адрес http://%site.ru%/htraffic_query/config.php не должен выдавать 404 ошибку.
  • Попробуйте код подключения include("htraffic_query/config.php");
  • Попробуйте код подключения <?php include(dirname(__FILE__)."/htraffic_query/config.php");?>
  • Если файл в котором вы подключаете находится не в корне сайта, а на уровень глубже (в подпапке), то используйте <?php include(dirname(dirname(__FILE__))."/htraffic_query/config.php");?>
  • Если на два уровня глубже: <?php include(dirname(dirname(dirname(__FILE__)))."/htraffic_query/config.php");?>
  • И так далее...

Сокращение места

Если у вас мало места на хостинге, то вы можете отключить морфологию в config.php и удалить .bin файлы из папки morf. В этом случае скрипт будет использовать менее точную морфологию — стеминг, но взамен этого занимаемый размер на диске сократится в сотни раз.

Буферизация вывода

С помощью буферизации вывода можно перехватить данные которые отправляет CMS браузеру и изменить их.

Буферизация вывода нужна для замены текста и работы тега hqout. Чтобы ее включить, попробуйте в файле config.php выставить переменную $ob = true; Если сайт перестанет выводиться, то отключите gzip в админке сайта и попросите админа хостинга включить его на уровне Апача.

Если это не поможет. То нужно выставить переменную $ob = false;. Далее нужно найти код, которые выводит текст страницы. И перед ним добавить ob_start();, а после hq::ob_end();.

DLE

В коде подключения перед ?> добавьте ob_start();. В конце файла index.php перед GzipOut(); вставьте hq::ob_end();

Joomla

Найдите строку в файле index.php echo JResponse::toString($mainframe->getCfg('gzip')); и замените ее на

ob_start();
echo JResponse::toString($mainframe->getCfg('gzip'));
hq::ob_end();

PHPBB

В файле includes/functions.php найдите функцию page_footer и замените в ней строку $template->display('body'); на
ob_start();
$template->display('body');
hq::ob_end();

Основанные на smarty

Найдите строку $smarty->display("index.tpl.html"); и замените ее на
ob_start();
$smarty->display("index.tpl.html");
hq::ob_end();
В некоторых случаях вместо index.tpl.html может быть другое значение.

Настройка

Откройте файл config.php. Там объяснены все настройки и приведены примеры. Там вы можете задать замены в тексте, редиректы и прочее.

Для тех кто вообще не знаком с синтаксисом языков программирования. Строка после // это комментарий. Комментарии игнорируется при выполнении скрипта.

Проверка

Чтобы проверить работает ли скрипт раскомментируйте строку HQ::setTestQuery('кондиционеры москва'); в конце файла config.php. Таким образом можно быстро посмотреть на поведение скрипта на любом запросе пользователя.

Подключение AdWords

  • Добавьте в URL целевой страницы в AdWords ?hkey={keyword}, если в нем нет символа ‘?’ или &hkey={keyword} в противном случае
    • http://site.ru/ => http://site.ru/?hkey={keyword}
    • http://site.ru/?page=2 => http://site.ru/?page=2&hkey={keyword}
  • Раскоментируйте строку 'hkey'=>'utf8' в файле config.php

Вставка

Для вставки кода в текст шаблона, вы можете использовать PHP код, если шаблон поддерживает PHP.

<?php
	hq::out(Array(
	   'одесса квартиры'=>'В запросе есть слово Одесса и слово квартиры',
	   'москва'=>'В запросе есть слово Москва',
	   ''=> 'Ни одно из условий не сработало'
	));
?>

Либо используя тег <hqout> имя тега обязательно должно быть в нижнем регистре.

<hqout>
	одесса квартиры=>В запросе есть слово Одесса и слово квартиры
	москва=>В запросе есть слово Москва
	=> Ни одно из условий не сработало
</hqout>

Программирование

Вместо hq::out(...) вы можете использовать hq::match(...) в этом случае результат не будет выводиться. hq::out(...); тоже самое что и echo hq::match(...);

Синтаксис

Синтаксис ключевых слов (критериев) HTraffic Query совпадает с синтаксисом Яндекс Директа.

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

Стоп-слова без символа ‘+’ игнорируются. Например, квартиры в москве тоже самое что и квартиры москва. Если в запросе должно присутствовать слово `в`, вам нужно написать перед ним + квартиры +в москве.

Морфология отключается у слова оператором !. москва !квартиры будет искать москву в любой словоформе и квартиры в той-же словоформе.

Также существуют операторы ( | ). москва (квартиры|комнаты) — запрос должен содержать москву и либо квартиры либо комнаты.

Несколько условий

Несколько условий записываются в массив PHP. В виде ключевое слово => значение

Array(
	'москва квартиры' => 'квартиры',
	'москва офисы' => 'офисы',
	'москва комнаты' => 'комнаты'
)
Значит вывести квартиры, когда запрос соответствует ключу москва квартиры и комнаты, когда ключу москва комнаты.

Обратите внимание, что после всех строк с условиями, кроме последней, должна следовать запятая.


Условия проверяются последовательно. Выполнение прекращается при первом совпадении.

Array(
	'москва'=> 'москва',
	'москва комнаты' => 'комнаты'
)
“Комнаты” никогда не выведется, поскольку если в запросе есть Москва, то выведется Москва. Если в запросе нет слова Москва, то ключевое слово москва комнаты не сработает.


Пустой ключевое слово всегда выполняется. Его можно использовать, чтобы задать текст по умолчанию. Добавив в конец массива ''=>'Текст по умолчанию'.

Array(
	'москва'=> 'Москва',
	'' => 'Ни одно условие не сработало'
)

Сокращенный синтаксис

Если ключевое слово совпадает со значением, то вы можете не писать его.

Array(
	'Москва',
	'Одесса'
)
тоже самое что и
Array(
	'Москва'=>'Москва',
	'Одесса'=>'Одесса'
)


И в сокращенном синтаксисе можете использовать операторы и круглые скобки

Array(
	'(Квартиры|Комнаты) +в !Москве'
)
тоже самое что и
Array(
	'Квартиры +в !Москве'=>'Квартиры в Москве',
	'Комнаты +в !Москве'=>'Комнаты в Москве'
)


Вместо круглых скобок можно использовать фигурные. Разница есть только при использовании сокращенного синтаксиса. Фигурные скобки можно использовать при ошибках.

Array(
  'М{о|а}сква'
)
тоже самое что и
Array(
  'Москва'=>'Москва',
  'Масква'=>'Москва'
)