我的“应用程序”是一个在Google地图上显示项目的网页(myPage.html)。因此,这不是用户在多个页面之间导航的场景。
因此我使用事件来跟踪交互。但是,我发现相信我在统计数据中看到的东西很奇怪。
我已经检查了事件的语法,看起来没问题。
_gaq.push(['_trackEvent', 'MyApp', 'ChangeTav', newTab]);
_gaq.push(['_trackEvent', 'MyApp', 'Load', 'itemType', loadTime]);
....
我想知道的是,我确实将数组添加到_gaq
对象,但这些实际上何时发送?如果用户关闭浏览器会发生什么?有没有办法让我“强制”发送这些价值观?
反过来说,用户在页面上停留了一段时间,价值被添加到_gaq
,但我如何确保他们不会迷路?
- 更新 -
通过推送我只需将数组添加到数组中,或者这是错误的?所以在这个特殊时刻没有任何反应,我没有看到任何回调或重写方法。如果我遗失了某些内容,请更正。
- 更新2 -
http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html
使用同步还是异步似乎有所不同。对于异步(我正在使用)......
要将API调用推送到队列,必须将其从传统的JavaScript语法转换为命令数组。 命令数组只是符合特定格式的JavaScript数组。命令数组中的第一个元素是要调用的跟踪器对象方法的名称。它必须是一个字符串。其余元素是您要传递给跟踪器对象方法的参数。这些可以是任何JavaScript值。
当我使用var _gaq = _gaq || [];
执行init时,它将成为一个数组。但是,我从来没有看到值从队列中删除(_gaq),所以我认为它们永远不会被发送。
---好的,我们走了---
http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html#_gaq.push
此函数名为push,以便在Analytics完全加载之前可以在_gaq的位置使用数组。在加载Analytics时,命令将被推送/排队到阵列上。 当Google Analytics完成加载时,它会使用_gaq对象替换数组并执行所有排队的命令。对_gaq.push的后续调用将解析为此函数,该函数在按下时执行命令。
答案 0 :(得分:1)
我相信,只要你打电话就会发送。前提是_gaq已初始化。取决于您放置GA初始化代码的位置。
答案 1 :(得分:0)
您所指的.push
方法仅适用于数组。使用对象,您可以自己定义它,而不是覆盖任何东西。
js中的数组不能有自定义索引/标签,如果有,则它们是对象。
如果你跑
var a= {"a":"b"};
var b = ['a','b'];
b.push("c");
a.push("c","d");
您将收到错误,函数a.push未定义。 a是对象,b是数组。 push函数仅存在于Array的原型中。
要观察何时跟踪内容,您可以使用Firebug中的Net面板并检查所请求的_utm.gif文件。