Adobe Analytics - 用户点击数据跟踪实现

在Adobe Analytics中,我们可以对用户每一次的链接或按扭点击发送自定义跟踪数据。在《Adobe Analytics - 利用跟踪技术优化数字化营销》中已经介绍了s.t()函数和s.tl()函数,在这里我们会详细介绍在网页中发送数据的具体应用。

s.t()内部调用过程

s.t()是发送数据的核心函数,它将会发送在s.linkTrackVars中包含的所有字段的值,并会检查s.Integrate中包含的对象(Genesis Integration,集成模块),获取第三方应用数据;随后会检查s.usePlugins值是否为true,以决定是否调用s.doPlugins()函数,在这个函数中,我们可以添加一些自定义的值。

//启用s.doPlugins()插件
s.usePlugins = true;
s.doPlugins() = function () {
s.eVar26 = “TOB34324”;
}
s.t();

s.tl()发送自定义数据

更加灵活的方式是通过s.tl()结合s.linkTrackEvents和s.linkTrackVars发送自定义数据,s.tl()最终也是通过调用s.t()发送到SiteCatalyst.

//不跟踪任何变量
s.linkTrackEvents = “None”;
s.linkTrackVars = “None”;
//定义跟踪的变量
s.linkTrackEvents = “event1, event2”;
s.linkTrackVars = “eVar1, prop1, events”;
//发送自定义数据
s.tl(this, “o”, “Purchase”);

自动跟踪站外链接和文件下载

s.trackDownloadLinks=true
s.trackExternalLinks=true
s.linkDownloadFileTypes=”exe,zip,wav,mp3,mov,mpg,avi,doc,pdf,xls”
//设置站内链接规则,满足条件的不会被视为站外,如tel,email
s.linkInternalFilters=”javascript:,mysite.com,tel:,mailto:,”
s.linkLeaveQueryString=false

使用自定义代码跟踪

将数据发送代码通过点击事件添加到链接或按钮上:

link = document.getElementById(“view”);
if (window.attachEvent) {
window.attachEvent(“onClick”, linkTracking);
} else if (window.addEventListener) {
window.addEventListener(“click”, linkTracking, false);
}

function linkTracking(event) {
s.eVar1 = “PID3432423”;
s.events = “event1”;
s.linkTrackEvents = “event1”;
s.linkTrackVars = “eVar1, events”;
s.tl(event.target, “o”, “View Product”);
}
当链接本身有一个a.href属性并且在当前窗口打开页面时,由于浏览器会执行a.href请求,onclick事件会被取消。我们可以在onclick事件中设置取消a.href请求,并在数据发送成功后使用Javascript进行浏览器跳转。s.tl()提供了这样的接口:

<a onclick=”s.tl(this, ‘o’, ‘View Product’, null, ‘navigate’), return false;” href=”other.html”>View</a>

但当我们使用添加事件的方式时,在函数内部必须写入禁用a.href,为了确保数据发送成功,最好同时启用s.useForcedLinkTracking,这样浏览器会等待,并设置一个timeout:

function linkTracking(event) {
if (event.preventDefault) {
event.preventDefault(); //禁用a.href,适用于非IE浏览器
}
s.eVar1 = “PID3432423”;
s.events = “event1”;
s.linkTrackEvents = “event1”;
s.linkTrackVars = “eVar1, events”;
s.useForcedLinkTracking = true; //强制浏览器等待
s.forcedLinkTrackingTimeout = 500; //最大值
s.tl(event.target, “o”, “View Product”, null, “navigate”);
return false;
}

Image Request

在检查HTTP Request时,我们可以看到s.t()最终请求了一个Image Request,URL如下示例:

http://metrics.mysite.com/b/ss/mysiteprod/1/H.25.4/s93761715427972?AQB=1&ndh=1&t=13%2F10%2F2013%2019%3A25%3A28%203%20-480&fid=5300B42B029F813C-221430CD902315A3&vmt=4BD129AD&ns=mysite&cdp=3&pageName=in%3Aec%3Ahomepage&g=http%3A%2F%2Fwww.mysite.com%2F&ch=in%3Aami%3Ahomepage&server=mysite.com&events=event32&c1=ec%3Ahomepage&v1=DIRECT&c2=ec&c3=homepage&v8=D%3Dc9&c9=9%3A25%20PM%7CWednesday&v44=DIRECT&c49=D%3Dg&c50=45&c51=repeat&v51=repeat&v75=333476683.0&h1=ec%7Chomepage&s=1440x900&c=24&j=1.6&v=Y&k=Y&bw=1439&bh=434&p=Shockwave%20Flash%3BChrome%20

所以我们也可以通过直接请求一个Image Request完成数据发送,在这个请求中描述数据类型参数名称为pe,类型分类:

  • 下载:lnk_d
  • 跳出站点:lnk_e
  • 自定义点击:lnk_o
    发送一个Image Request:
    <img src=”http://mysite.112.2o7.net/b/ss/mysiteprod/1/H.25.3--NS/0?pe=lnk_e?pev1=othersite.com?pev2=Offsite%20Link" width=”1” height=”1” border=”0” />

    Image Request的原理是,在Web服务器上缓存一个1像素的图片,通过对这个图片添加HTTP Request Header参数的请求,最终在Web服务器上生成一条访问日志。目前几乎所有的在线跟踪都是基于这样的日志请求方式,以支撑最大性能的数据请求响应。而所有的后端数据挖掘及分析工作,正是基于这个访问日志为基础来完成。
© 2018 Silent River All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero