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