微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 解释Google Analytics异步跟踪器

我知道谷歌的异步分析跟踪器是如何工作的.以下代码用于初始化命令数组:
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(
    ['_setAccount','UA-xxxxxxxx-x'],['_trackPageview']
  );
</script>

现在,这是一个标准数组,在加载GA代码后会被替换,并用作存储点击的一种队列.

我的困惑在于想知道如果用户点击导致重新加载的链接(在加载GA javascript之前),这些点击可能会如何持续存在.如果GA代码没有捕获到_gaq对象的那个推送,那么用户点击一个链接并转到一个页面,这个数组每次都没有重新初始化?

在导致刷新的请求中,javascript变量不会持久存在吗?如果是这种情况,那么我们还没有丢失导致页面重新加载的原始点击吗?

非常感谢任何解释.

解决方法

是的,你是对的,如果用户在ga.js加载之前点击了网站,并且已经向Google的服务器执行了__utm.gif请求,那么它将不会跟踪_gaq数组并且该信息将永远消失.但是这个版本代码仍然比旧的同步代码提供了许多好处.

首先,使用此方法加载ga.js不会阻塞.

巧妙地,ga.js的加载是通过JavaScript间接注入的,而不是通过硬编码的<脚本>注入.标签.按照Google Code Blog,

The second half of the snippet
provides the logic that loads the
tracking code in parallel with other
scripts on the page. It executes an
anonymous function that dynamically
creates a element and sets
the source with the proper protocol.
As a result,most browsers will load
the tracking code in parallel with
other scripts on the page,thus
reducing the web page load time.

这意味着ga.js的加载对于大多数现代浏览器以非阻塞方式发生(并且作为一个好处,async =“true”部分,当前在FF 4+,IE10p2+,Chrome 12+,Safari 5.1+,支持正式化此异步).这可以温和地减少加载时间,并且可以轻微降低ga.js加载前发生点击的可能性.

提前排队_gaq阵列的好处是防止竞争条件;之前,如果您在加载ga.js之前尝试进行GA调用(例如,事件跟踪视频播放),则会抛出错误并且事件调用将丢失且永远无法恢复.这样,只要ga.js最终加载,_gaq数组就可以在加载时为所有调用提供服务.

原文地址:https://www.jb51.cc/js/156960.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐