有没有办法让Omniture捕获通过ajax加载的url /页面作为“加载”事件而不是“点击”事件?

时间:2014-03-31 18:41:12

标签: ajax adobe-analytics

我目前正在开发一个基于Ajax的移动网站项目,但我无法让Omniture正常工作。以下是该问题的简要细节。

  • 假设移动网站有多个页面,例如example.com/a,example.com/b,example.com/c,example.com/d,example.com/e,example.com/f等
  • 网站的每个页面都有Omniture的代码,例如:

    <html><head></head><body>
    <script type="text/javascript" src="//domain-and-path-to-omniture-code-files/s_code.js">
    <script type="text/javascript">
    s.pageName = "blah";
    // some other ... s.blahBlah ... properties here...
    /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
    var s_code=s.t();if(s_code)document.write(s_code);
    </script>
    <div id="content">SOME CONTENT</div>
    </body>
  • 用户打开浏览器并打开一个网址/页面,例如example.com/a

  • 页面(example.com/a)有多个链接指向同一页面上的内容,如#topic1,#topic2,#topic3等,还有指向该网站其他静态页面的链接,例如example.com/b,example.com/c,example.com/d等

  • 我使用jQuery来控制这些链接上的点击事件。

    • 当用户点击命名链接时,如#topic1,#topic2等,页面将被动画/平滑滚动到目标元素/内容部分;触发Omniture的“s.tl()”功能,以跟踪/捕获具有相关/必需细节的点击事件。

    • ##这就是问题区## 当用户点击指向其他静态页面的链接时,例如example.com/b,example.com/c等,而不是允许浏览器进行完整的页面加载,目标页面的Ajax版本被加载到内容持有者(通过Ajax版本,我的意思是说该页面只有极少的标记/内容和不是整个html / head / common-css / js包含/ etc)

现在的问题是,当页面正常加载时,Omniture会将其正确捕获为“加载”事件,但是当它通过JavaScript / Ajax加载时,Omniture会将其捕获为“点击”事件!

页面的Ajax /版本,不再包括Omniture库“s_code.js”JS(原因很明显,它已存在于父/主页面上)。除了必需的内容外,此页面还只有一个脚本标记,用于为新页面设置所需的“s.blahBlah”值,并调用“s.t();”。

我还尝试将Omniture代码保存在一个已经加载了父页面的公共JS文件中,并且只在Ajax调用/函数中设置所需的“s.blahBlah”值(也在一个全局/已加载的JS文件),但Omniture仍然将其捕获为“点击”事件。

// s.tl(); ... gets captured as a click event
// s.t(); ... on normal page load... gets captured as a load event
// s.t(); ... after DOM-ready/page loaded via Ajax... gets captures as a click event

任何想法!如何让Omniture捕获加载事件?是否有像“s.l()”这样的函数或者按需触发Omniture的“加载”事件。

1 个答案:

答案 0 :(得分:1)

问题不在于Omniture错误捕获它,而是我用来查看请求的工具&#34; Omnibug&#34;

Omnibug 0.5.448记录所有&#34; s.t()&#34;在页面加载事件之前进行的调用为Omniture&#34;加载&#34;事件和任何&#34; s.t()&#34;之后发出的呼叫被捕获为&#34;点击&#34;事件

显然,我不是唯一一个面临这个问题的人。其他人已经向Omnibug(https://github.com/simpsora/omnibug/issues/4)的开发人员报告了这个问题,并且他已经修复了Omnibug 0.5.500的新版本。

Omnibug 0.5.500的新版本捕获了所有&#34; s.t()&#34;呼叫为&#34;加载&#34;事件正确和所有&#34; s.tl()&#34;打电话给&#34;点击&#34;事件

谢谢!