SiteCatalyst:跟踪Webkit浏览器上的自定义链接

时间:2013-05-03 09:36:45

标签: web-analytics web-analytics-tools adobe-analytics

我的查询是我有一个重定向到另一个页面的链接。在webkit浏览器中,如何在重定向发生之前强制执行sitecatalyst服务器调用(脚本执行)?

我正在使用sitecatalyst作为门户网站。我有 配置自定义链接调用以包含doneAction参数 在webkit浏览器上成功完成呼叫(如Adobe指南中所述)。

按钮onClick事件的自定义链接代码如下:

<script language="javascript" >
function search(keyword)
{
var s=s_gi('testing');
s.linkTrackVars="prop11,events";
s.linkTrackEvents="event6";
s.prop11=keyword;
s.events="event6";
s.tl(this,'o','Search',navigate());

window.location=searchresults.html;
}
</script>

<script language="javascript" >
function navigate()
{
return false;

/*To induce a delay to ensure that image request is sent to Adobe before the
user leaves the page.(As given in Adobe guide - code release H.25))
Code version H.25 (released July 2012) includes an overloaded
track link method ( s.tl ) that forces WebKit
browsers to wait for the track link call to complete.)*/
}
</script>

然而,即便在此之后,我在自定义链接跟踪中遇到错误。重定向发生在呼叫完成之前。

请帮助。在此先感谢。

此致 Harshil

3 个答案:

答案 0 :(得分:5)

好的,首先,你如何实现它有很多问题。以下是它应该如何显示的示例:

<a href="searchresults.html" onclick="search('someKeyword');return false;">search</a> 

<script type='text/javascript'>
function search(keyword) {
  var s=s_gi('testing');
  s.linkTrackVars="prop11,events";
  s.linkTrackEvents="event6";
  s.prop11=keyword;
  s.events="event6";
  s.tl(this,'o','Search',null,navigate);
  return false;
}

function navigate(){
  window.location="searchresults.html";
}
</script>

一些要点

  • 您实际上并未发布链接或您正在使用的任何调用search函数的链接,因此我将链接显示为示例。
  • 您将navigate函数作为第4个参数传递,它应该是第5个参数(使用null或空字符串作为第4个占位符)
  • 应该是navigate而不是navigate()。你这样做的方式是调用函数并将函数的结果作为参数传递。 s.tl需要函数的实际函数或引用,它将调用函数。公平地说,Adobe文档被拼错:它显示包含在引号中的示例不起作用。
  • 重定向应放在navigate中,而不是search中。

答案 1 :(得分:1)

用javascript函数替换链接href

function trackLink(e) {
    nextUrl = e.href;
    e.href = "javascript:sendData('" + nextUrl + "')";
}

function sendData(url) {
    s.tl(this, "o", "Link Name", null, function() {
        window.location.href = url;
    });
}

或尝试以下

function sendData(obj) {
    s.tl(obj, "o", "Link Name", null, "navigate");
    return false;
}
<a href="new.html" onclick="sendData(this);return false;">Link</a>

答案 2 :(得分:0)

链接跟踪是一种恐龙形式的跟踪,因为如果您没有在用户体验之前进行分析,这些数字几乎不准确。我不明白的是,为什么不在下一页而不是链接上测量这个,除非你无法控制下一步?

关于你的问题:关于如何在执行事件之前阻止链接跟踪的前几个例子非常可靠,但请记住,如果你有其他JS代码绑定,请确保不要破坏它。至于语法,您可以将所有变量作为对象传递给s.tl函数,而无需为s-object设置linkTrackVars和linkTrackEvents,如果您在动态页面上使用代码,则可能会对事件产生负面影响。

E.g。

...  
var data = {
   linkTrackVars="prop11,events",
   linkTrackEvents="event6",
   prop11=keyword,
   events="event6"
};
s.tl(this, "o", "Search", data, "navigate");
...

注意:您无法在标准报告中实际使用道具和事件。根据您在Crayon评论中粘贴的代码,我可以看到您正在使用eVars,因此我认为该示例并不准确。