javascript - 使用事件的轨道链接 - 竞赛条件

标签 javascript angularjs google-analytics dom-events adobe-analytics

我正在构建 AngularJS 应用程序,这些应用程序具有公共(public) header ,其中包含指向每个应用程序的链接:

<a href="https://app1.company.com">App1</a>
<a href="https://app2.company.com">App2</a>

每个应用程序都在自己的子域上运行,当用户单击标题上的链接时,页面会重定向到该应用程序。

我必须使用链接跟踪用户操作,例如Omniture 的 onClick 事件(但问题也适用于 Google Analytics)。当我添加调用函数将事件发送到 Omniture 的 onClick 事件时,例如:

<a href="https://app1.company.com" ng-click="trackLink('header-app1')">App1</a>

trackLink()是AngularJS服务的一个函数,简单实现:

trackLink: function (eVar8Code) {

    s = this.getSVariable(s);

    s.eVar8 = eVar8Code;
    s.prop28 = s.eVar8;

    this.sendOmnitureMessage(s, send, false);

    return s;
  },

该函数异步执行并立即返回。然后标准链接的行为开始:页面被重定向到“href”属性中定义的 URL。新页面加载速度非常快(大约 70 毫秒),但 AJAX 对 Omniture 的请求尚未执行:都是异步的。

我认为使用事件作为链接是不正确的方法,应该使用查询参数,例如:

<a href="https://app1.company.com?iLink=header-app1">App1</a>

但很难说服一些人。

跟踪链接事件的良好做法是什么?

最佳答案

更改您的函数以包含较短的超时(可能您也可以让它返回 false 以抑制默认链接行为,并通过位置对象进行重定向)。

Google Analytics 已命中回调,这些回调在发送对 Google 的调用后执行,您可能需要查看 Adob​​e Analytics 是否有类似的东西(因为这可用于在发出跟踪调用后进行重定向)。

事件跟踪和查询参数是否可以互换取决于您的用例(它们当然测量不同的东西)。然而,事件跟踪是一种广为接受的链接跟踪方式。

关于javascript - 使用事件的轨道链接 - 竞赛条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181087/

相关文章:

javascript - 用于捕获 Universal Analytics 链接点击事件的 Jquery 脚本

javascript - Meteor、Iron Router 和 Google Analytics 嵌入 API

javascript - 'Dive into python' 的 jquery 等价物是什么?

javascript - 如何显示溢出:hidden content using jQuery/JS when a user clicks on an image?

javascript - 使用 angular.js 路由手动刷新时仍然得到 'Not Found'

javascript - AngularJS 自定义指令 : how to update parent variable specified in ng-model?

javascript - 获取用户可见的所有 html 控件?

javascript - 滑动响应导航 - 加载和响应页面时闪烁

javascript - 如何动态设置 Angularjs select 的值?

cookies - iFrames + Google Analytics + Cookies + P3P