Как отслеживать внутренний поиск с опережением ввода в SiteCatalyst

Я планирую, как отслеживать данные внутреннего поиска в Omniture/SiteCatalyst.

Это довольно простой план для стандартной модели «введите термин и получите страницу результатов»: задайте sProps и eVars с терминами, количеством результатов и страницей, с которой выполняется поиск, затем запустите событие успеха для поиска и другой для нажатия на результат поиска.

Для поиска с опережением ввода, когда пользователю выдаются результаты поиска по мере того, как он вводит строку поиска, какова хорошая стратегия обработки времени отправки событий, чтобы вы не получали разные события/записи для писем? 4, 5, 6 и 7 записи поискового запроса?


person Melissa Avery-Weir    schedule 01.03.2013    source источник


Ответы (3)


Наше решение состояло в том, чтобы использовать задержку автозаполнения, чтобы уменьшить количество вызовов. С точки зрения отслеживания, если кто-то делает паузу на 1 секунду (или 500 мс, что угодно), то он, вероятно, на самом деле ожидает результатов автозаполнения, и это является действительным поиском.

С технической точки зрения мы использовали параметр delay в виджете пользовательского интерфейса jQuery.

person Melissa Avery-Weir    schedule 01.10.2013

Стратегия, которую я всегда использовал, заключается в том, чтобы не отслеживать «автозаполнение» поисковых функций. Поместите отслеживание на страницу результатов поиска, как обычно. Или вы говорите, что вся страница результатов поиска выводится по мере ввода пользователем? Если это так... одна вещь, которую вы могли бы сделать, это написать некоторый код, чтобы вывести код Omniture, когда поле поиска теряет фокус.

Еще одна вещь, которую вы можете сделать, это когда посетитель вводит в строке поиска, при каждом нажатии клавиши записывать текущее значение в файл cookie. Затем создайте некоторый код, который запускается при загрузке страницы для поиска этого файла cookie, и, если он существует, извлекайте переменные поиска Omniture и удаляйте файл cookie. В качестве альтернативы вы можете отслеживать текущее значение с переменной сеанса на стороне сервера, поскольку я предполагаю, что эта вещь управляется ajax, и выводить код omn с кодом на стороне сервера, если сеанс var существует. Эти методы будут означать, что события поиска и vars не будут появляться на странице результатов поиска... это, вероятно, не так уж важно, если только у вас нет вспомогательных переменных, которые вы выталкиваете, например, prop/eVar "внутреннего реферера поиска", который отслеживает предыдущую страницу, на которой был посетитель (или страницу, на которой был посетитель, когда выполнял поиск). Так что вам придется помнить об этом и переносить это также.

person Crayon Violent    schedule 09.03.2013

Всякий раз, когда вы выполняете поиск, вы, возможно, знаете о том, что параметр строки запроса добавляется в конец URL-адреса.

Предположим, что www.stackoverfow.com — это веб-сайт, и когда вы выполняете на нем поиск, он будет выглядеть как www.stackoverflow.com?q=yourname , ваше имя — это ключевое слово поиска. Это ключевое слово, которое мы можем зафиксировать в сайт катализатор.

вы можете увидеть google.com при поиске в Интернете для sitecatalyst --- www.google.co.in/search?q=sitecatalyst

Точно так же мы можем использовать параметр строки запроса как q = что-то.


после всего этого мы можем использовать плагин getQueryParam в разделе плагинов файла библиотеки s_code, чтобы получить эту переменную и сохранить ее в переменной sitecatalyst...

пример:-

function s_doPlugins(s) {
var one = s.getQueryParam("q");
if(one)
s.eVar1=one;
}
s.doPlugins=s_doPlugins

вставьте этот код ниже вне раздела плагина

/*
* Returns the value of a specified query string parameter, if found in the current page URL.
*/
s.getQueryParam=new Function("p","d","u",""
+"var s=this,v='',i,t;d=d?d:'';u=u?u:(s.pageURL?s.pageURL:s.wd.locati"
+"on);if(u=='f')u=s.gtfs().location;while(p){i=p.indexOf(',');i=i<0?p"
+".length:i;t=s.p_gpv(p.substring(0,i),u+'');if(t){t=t.indexOf('#')>-"
+"1?t.substring(0,t.indexOf('#')):t;}if(t)v+=v?d+t:t;p=p.substring(i="
+"=p.length?i:i+1)}return v");
s.p_gpv=new Function("k","u",""
+"var s=this,v='',i=u.indexOf('?'),q;if(k&&i>-1){q=u.substring(i+1);v"
+"=s.pt(q,'&','p_gvf',k)}return v");
s.p_gvf=new Function("t","k",""
+"if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'T"
+"rue':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s."
+"epa(v)}return ''");

вы обнаружите, что он захватит ваши результаты поиска

пожалуйста, дайте мне знать в случае дополнительных разъяснений

person Anshul choudhary    schedule 28.11.2014