我知道Google明确建议在内部调用内联分析。但是,在外部文件中调用它有任何潜在的缺陷吗?
我已经为Chrome安装了Google Analytics Debugger,一切正常。我在页面头部的外部js文件中调用它。
答案 0 :(得分:2)
这不是完全 Google建议的内容。
基本上,您可以尽早实例化GA - 这就是说:
var _gaq = _gaq || [];
其余部分,您可以在页面底部加载。
您甚至可以将_gaq =...;
放在页面顶部的外部文件中,然后将其余部分放在底部。
目标是:
谷歌一开始就让_gaq成为一个阵列。然后使用数组的.push(...);
方法向数组添加跟踪(实际上,您只是添加了字符串数组)。
当您添加代码的第二部分时,在页面底部,它将_gaq
数组内的数据保存到保持数组中。然后它将_gaq
变成一个真实的程序,从现在开始.push(...);
在页面上,实际上发送数据等等。
在初始加载完整文件时,_gaq
将运行推送指令数组并将其转换为服务器调用。
他们建议尽可能在页面上启动_gaq
,以便您可以将基于用户的跟踪添加到页面,按钮或其他任何内容......以便最终在程序中 加载到页面底部,GA会跟踪您通过_gaq.push(["_method", "data"]);
添加的所有操作,当它正在运行时,所以你不要错过任何活动。
现在,您不希望将代码的_gaq =...
部分, AND 代码的脚本下载部分放在顶部的页面。下载脚本需要一段时间。
GA正在以正确的方式进行,并且异步加载它,这是完美的......但是您仍然可以通过将后半部分移动到页面底部(或将其放在外部脚本中)来清理它...
所以答案最终是,是的,感觉100%自由地将GA代码移动到外部脚本中,这不会改变它运行的方式。
但您仍应考虑将_gaq=...
的外部脚本放在顶部(这样,如果您要跟踪自定义事件的用户行为,您可以在页面准备好后立即执行此操作 - 但是那么为什么把它放在一个外部脚本中,当它需要时间来加载和执行时,相对于实际的分配,这将花费几微秒,即使在慢速浏览器上?)。
然后将脚本调用向下移动页面(或将其移动到外部文件中,该文件在页面底部引用)。