Javascript 如何为点击事件实现Omniture自定义链接跟踪?
我期待实现Omniture自定义链接跟踪代码在一个页面的3个链接。我已经收到了一些javascript代码,但不确定我是否需要在页面中使用这些代码,或者是否只需要将其合并到链接的onclick部分 我以前没有这样做过,我试着在这里()和这里阅读 () 但这对我来说没有多大意义 以下是我迄今为止所做的工作:Javascript 如何为点击事件实现Omniture自定义链接跟踪?,javascript,adobe-analytics,Javascript,Adobe Analytics,我期待实现Omniture自定义链接跟踪代码在一个页面的3个链接。我已经收到了一些javascript代码,但不确定我是否需要在页面中使用这些代码,或者是否只需要将其合并到链接的onclick部分 我以前没有这样做过,我试着在这里()和这里阅读 () 但这对我来说没有多大意义 以下是我迄今为止所做的工作: 打开body标签后包含指向s_code.js的链接 二,。Omniture提供的用于跟踪其中一个链接的抓取代码 s.linkTrackVars="eVar45,events";s.linkTr
s.linkTrackVars="eVar45,events";s.linkTrackEvents="event23";s.eVar45="MaturingEquityLines|RenewEquityLOCOverlay"; s.events="event23";s.tl(this,'o','MaturingEquityLines|RenewEquityLOCOverlay');
三,。回顾了Omniture自定义链接跟踪的一个示例
<a href="#" id="community_overlay_trigger" class="delicious" onClick="s.linkTrackVars= s.linkTrackVars+',events,eVar8,prop8,prop13'; s.events='event6'; s.linkTrackEvents='event6'; s.eVar8=s.prop8='delicious'; s.prop13=s.pageName; s.tl(this,'o','Content Share');">delicious</a>
我认为建议我从每个链接
s.linkTrackVars=s.linkTrackVars+',eVar45,events'中删除此代码
要跟踪单击,可以调用.tl()
函数,以下是我的生产环境中的代码:
$(".myDiv a").on("click", function ()
{
var pageName = $(this).text().trim();
if (s && pageName != "") {
s.pageName = originalPageName + ":FAQ:" + pageName
s.tl();
}
});
当然,这是假设s
是omniture全局变量。我还使用特定的数据(直接从我的代码中获得),因此您实际上不需要设置所有这些数据,只需设置pageName或捕获的任何变量。我还使用jQuery作为选择器,不要让它迷惑你,你可以调用一个普通的JavaScript函数,然后调用s.tl()
要调试(跟踪单击),请通过添加以下脚本作为浏览器的书签来使用其调试器:
javascript:void(window.open("","dp_debugger","width=600,height=600,location=0,menubar=0,status=1,toolbar=0,resizable=1,scrollbars=1").document.write("<script language=\"JavaScript\" id=dbg src=\"https://www.adobetag.com/d1/digitalpulsedebugger/live/DPD.js\"></"+"script>"));
javascript:void(window.open(“,”dp_调试器“,”width=600,height=600,location=0,menubar=0,status=1,toolbar=0,resizeable=1,scrollbars=1”)。document.write(“);
只要单击书签就可以跟踪Omniture事件
DigitalPulse调试器:您的代码仍然很好,尽管将其封装在单独的函数中,并在onclick中调用该函数或通过单击事件处理程序附加函数调用(例如Hanlet显示的内容)会更简洁 需要注意的一点是,您可能并不真正希望将这些变量附加到现有的
s.linkTrackVars
值。这可能会产生意想不到的后果,因为请求中包含了大量的内容。例如,假设您在页面上有一些其他单击/链接/自定义跟踪(一些其他东西弹出一个s.tl
调用),并设置了不同的变量。如果你像那样附加到s.linkTrackVars
,而有人已经弹出了另一个代码,它会再次卷起那些其他变量,因为它们会有值
例如,假设您在一个页面上有这两个链接。第一个用于自定义下载跟踪。第二个是你发布的链接:
<a href='someFile.pdf' onclick="s.eVar1='some widget';s.linkTrackVars+=',eVar1';s.tl(this,'o','file downloaded');return false;">some file</a>
<a href="#" id="community_overlay_trigger" class="delicious" onClick="s.linkTrackVars= s.linkTrackVars+',events,eVar8,prop8,prop13'; s.events='event6'; s.linkTrackEvents='event6'; s.eVar8=s.prop8='delicious'; s.prop13=s.pageName; s.tl(this,'o','Content Share');">delicious</a>
如果首先单击下载链接,linkTrackVars
将附加eVar1
,并且您将给出eVar1
一个值。然后,假设您单击第二个链接。由于您正在向linkTrackVars
添加更多值,而不是仅设置相关的vars,eVar1
值将随第二次链接单击一起弹出
现在,在这种情况下,这不是什么大问题,因为这只会真正影响报告中的实例度量,没有人真正关心这一点。但是,如果你将这个场景扩展到你碰巧设置的任何其他VAR,这些VAR应该只在特定时间弹出,那么这可能会导致一些通货膨胀
因此,这里的要点是,通常情况下,除非您知道自己在做什么,或者已经评估了情况,并且确定不会无意中使其他VAR膨胀,否则不应该附加到linkTrackVars
因为您使用的是tl()调用,所以这是一个部分数据调用。意思是,不是整页加载/调用。因此,基本上您发送的是数据的子集。在我的使用中,我通常不附加LinkTrackVar,除非您也希望跟踪它们
因此,这似乎是恰当的
<a href="#" id="community_overlay_trigger" class="delicious">delicious</a>
jQuery('#community_overlay_trigger').bind('click', function(event){
s.linkTrackVars = 'events,eVar8,prop8,prop13';
s.linkTrackEvents='event6'
s.events='event6';
s.eVar8=s.prop8='delicious';
s.prop13=s.pageName || "no pagename given";
s.tl(this, 'o', 'Content Share');
event.preventDefault(); // or return false here
})
jQuery(“#社区覆盖"触发器”).bind('click',函数(事件){
s、 linkTrackVars='events,eVar8,prop8,prop13';
s、 linkTrackEvents='event6'
s、 events='event6';
s、 eVar8=s.prop8='delicious';
s、 prop13=s.pageName | |“未给出页面名”;
s、 tl(该“o”、“内容共享”);
event.preventDefault();//或在此处返回false
})
您可以使用Hanlet建议的调试器,也可以使用firefox调试器。查看“网络”并搜索“指标”,或者获取httpwatch,然后看到您的呼叫正在发出
注意:我假设您正在使用jQuery,所以我使用该约定来处理链接的事件。如果没有jQuery,可以使用原生js代码。非常感谢您提供的调试器。我想这对我很有帮助。这让我非常紧张,因为我无法真正知道它是否工作,但现在我知道了。对于omniture脚本的后期运行,我建议您在Firefox Mozilla中使用HTTP Fox debbuger。如果您使用firebug,则有一个扩展名为omniture(谷歌It),它为omniture添加了一个选项卡(和其他分析跟踪,例如webtrends、google analytics)。我发现使用它比使用“网络”选项卡更容易,因为它只显示这些请求,并为您提供一些友好的格式。在我看来,它比digital pulse更好,因为您必须在每次调用后刷新digital pulse以查看新的请求。我不知道omniture扩展。这将使我的工作更轻松,非常感谢这里要说的是“去你的omniture,去你的adobe。你的分析工具是过时的POS。没有人喜欢你。走开。”
<a href='someFile.pdf' onclick="s.eVar1='some widget';s.linkTrackVars+=',eVar1';s.tl(this,'o','file downloaded');return false;">some file</a>
<a href="#" id="community_overlay_trigger" class="delicious" onClick="s.linkTrackVars= s.linkTrackVars+',events,eVar8,prop8,prop13'; s.events='event6'; s.linkTrackEvents='event6'; s.eVar8=s.prop8='delicious'; s.prop13=s.pageName; s.tl(this,'o','Content Share');">delicious</a>
<a href="#" id="community_overlay_trigger" class="delicious">delicious</a>
jQuery('#community_overlay_trigger').bind('click', function(event){
s.linkTrackVars = 'events,eVar8,prop8,prop13';
s.linkTrackEvents='event6'
s.events='event6';
s.eVar8=s.prop8='delicious';
s.prop13=s.pageName || "no pagename given";
s.tl(this, 'o', 'Content Share');
event.preventDefault(); // or return false here
})