Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为点击事件实现Omniture自定义链接跟踪?_Javascript_Adobe Analytics - Fatal编程技术网

Javascript 如何为点击事件实现Omniture自定义链接跟踪?

Javascript 如何为点击事件实现Omniture自定义链接跟踪?,javascript,adobe-analytics,Javascript,Adobe Analytics,我期待实现Omniture自定义链接跟踪代码在一个页面的3个链接。我已经收到了一些javascript代码,但不确定我是否需要在页面中使用这些代码,或者是否只需要将其合并到链接的onclick部分 我以前没有这样做过,我试着在这里()和这里阅读 () 但这对我来说没有多大意义 以下是我迄今为止所做的工作: 打开body标签后包含指向s_code.js的链接 二,。Omniture提供的用于跟踪其中一个链接的抓取代码 s.linkTrackVars="eVar45,events";s.linkTr

我期待实现Omniture自定义链接跟踪代码在一个页面的3个链接。我已经收到了一些javascript代码,但不确定我是否需要在页面中使用这些代码,或者是否只需要将其合并到链接的onclick部分

我以前没有这样做过,我试着在这里()和这里阅读 () 但这对我来说没有多大意义

以下是我迄今为止所做的工作:

  • 打开body标签后包含指向s_code.js的链接
  • 二,。Omniture提供的用于跟踪其中一个链接的抓取代码

    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
    })