ech*_*hox 24 javascript tracking google-analytics
是的,我知道你必须将谷歌分析JavaScript嵌入你的页面.
但是如何将收集的信息提交给谷歌分析服务器?
例如,由于浏览器安全设置(跨域脚本编写),因此无法进行AJAX请求.
也许有人已经看过令人困惑的谷歌JavaScript代码?
Thi*_*ker 26
当html页面请求ga.js文件时,http协议会发送大量数据,包括IP,引用,浏览器,语言,系统.没有必要使用ajax.
但仍然有一些数据无法通过这种方式实现,因此GA脚本将图像放入带有其他参数的html中,请看一下这个例子:
http://www.google-analytics.com/__utm.gif?utmwv=4.3&utmn=1464271798&utmhn=www.example.com&utmcs=UTF-8&utmsr=1920x1200&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=10.0%20r22&utmdt=Page title&utmhid=1805038256&utmr=0&utmp=/&utmac=cookie value
这是GA放入HTML 的空白图像,有时称为跟踪像素.
这里有一些好的答案,它们单独倾向于使用一种方法或另一种方法来发送数据.不过,我觉得上述答案中缺少一个有价值的参考资料,并涵盖了所有方法.
谷歌指的是发送数据"传输机制"的不同方法
从Analytics.js文档中,Google提到了它用于发送数据的三种主要传输机制.
这指定了将发送命中的传输机制.选项是'beacon','xhr'或'image'.默认情况下,analytics.js将尝试根据命中大小和浏览器功能找出最佳方法.如果您指定'beacon'并且用户的浏览器不支持该
navigator.sendBeacon方法,则它将根据命中大小回退到'image'或'xhr'.
如果您希望在用户导航离开您的网站之前跟踪事件,而不延迟导航,则此功能非常有用.
如果你很好奇如何强制GA使用特定的传输机制,这里有一个示例代码片段,强制将此事件命中作为"信标"发送:
ga('send', 'event', 'click', 'download-me', {transport: 'beacon'});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
此外,如果您对此主题感到好奇,因为您也希望捕获这些数据并将其发送到您自己的网站,我建议您创建一个绑定到Google Analytics的send,这样您就可以获取有效负载并将其运行到您自己的AJAX中服务器.
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
var payload = model.get('hitPayload');
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/index.php?task=mycollect', true);
xhr.send(payload);
});
});
Run Code Online (Sandbox Code Playgroud)
在不查看代码的情况下,我假设他们的数据是从他们在异步请求中收到的HTTP头中收集的.
请记住,大多数浏览器都会发送操作系统,平台,浏览器,版本,区域设置等数据...而且他们确实拥有IP,因此他们可以猜测您的位置.我假设他们有一些聪明的算法来决定你是否是一个独特的访客.
网站上的时间可能是通过使用onUnload()事件来计算的.
小智 6
Google Analytics网页提供了有关Google Analytics服务器如何收集数据的详细信息.http://code.google.com/apis/analytics/docs/concepts/gaConceptsOverview.html
收集所有Google Analytics数据并将其打包到请求网址的查询字符串中,然后发送到Google Analytics服务器.http请求由Google Analytics JS激活的gif图片(http://www.google-analytics.com/__utm.gif)制作.