我正计划如何在Omniture / SiteCatalyst中跟踪内部搜索数据。
对于标准“输入术语并获取结果页面”模型,这是一个相当直接的计划:使用术语,结果计数和搜索的页面设置sProps和eVars,然后触发成功事件用于搜索,另一个用于点击搜索结果。
对于提前输入搜索 - 用户在搜索栏中键入时会获得搜索结果 - 处理事件提交时间的好策略是什么,这样您就不会得到不同的事件/搜索字词条目的字母4,5,6和7的条目?
答案 0 :(得分:2)
我们的解决方案是利用自动完成的延迟来减少通话次数。从跟踪的角度来看,如果有人暂停1秒(或500毫秒,无论如何),那么他们可能实际上正在等待自动完成结果,这构成了有效的搜索。
从技术角度来看,我们利用了jQuery UI小部件上的delay
option。
答案 1 :(得分:0)
我一直使用的策略是不跟踪“自动完成”搜索功能。在搜索结果页面上输入与正常情况相同的跟踪。或者您是说在用户输入时输出整个搜索结果页面?如果是这种情况......你可以做的一件事就是在搜索字段失去焦点时编写一些代码来弹出Omniture代码。
您可以做的另一件事是,当访问者在搜索栏中输入内容时,在每个按键上,将当前值写入cookie。然后让一些代码在页面加载时运行以查找该cookie,如果存在,则弹出Omniture搜索变量并清除cookie。或者,您可以跟踪服务器端会话变量的当前值,因为我假设这是ajax驱动的,如果session var存在,则输出带有服务器端代码的omn代码。这些方法意味着搜索事件和变量不会在搜索结果页面上弹出...这可能不是什么大不了的事,除非你有弹出的支持变量,比如“内部搜索引用者”prop / eVar跟踪访问者所在的上一页(或访问者在执行搜索时所在的页面)。所以你必须牢记这一点并将其结合起来。
答案 2 :(得分:0)
每当您进行搜索时,您可能会发现在URL末尾添加查询字符串参数的概念。
假设www.stackoverfow.com是网站,您何时在其上执行搜索,那么它将像 www.stackoverflow.com?q=yourname ,您的名称是searchkeyword.This关键字我们可以在sitecatalyst中捕获。
你可以在互联网上搜索网站催化剂时看到google.com --- 的 www.google.co.in/search?q=sitecatalyst 强>
以同样的方式,我们可以使用查询字符串参数作为q = something。
例如: -
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 ''");
&#13;
您会发现它会捕获您的搜索结果
如果有更多说明,请告诉我