竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier

512月/118

Google Analytics基本异步跟踪代码运作原理

图一:Google Analytics基本异步跟踪代码
图一:Google Analytics基本异步跟踪代码

Google Analytics异步跟踪代码,以基本跟踪代码作为数据跟踪与传递的基础。在此基础之上,根据网站业务数据需求,您可以自定义设置跨域跟踪、添加直接流 量站点、添加搜索引擎设置、事件跟踪、虚拟跟踪等功能。异步基本跟踪代码,作为数据跟踪与传递的基础,肩负着向Google Analytics服务器传递网站访客访问数据的重大责任。

知其然,才能知其所以然。了解了GA的运作原理,才能对其更好的运用,否则心里会老是有一块茫然(在我心里,就是这样的Google <wbr>Analytics基本异步跟踪代码运作原理)。到底Google Analytics基本异步跟踪代码,是如何运作的呢,如何将我们网站访客的数据呈现在各类报告中的呢?本文将对其运作原理做详细介绍。

图二:队列
图二:队列

原理说明

异步代码加载速度快、数据更准确的功劳都应归功于_gaq对象,它采用队列“先进先出”的数据结构,先按照先后顺序收集好各类命令及函数的API调用,以便ga.js加载完成后按照同样的顺序处理这些调用请求,即“谁先申请,先被收集,而后先被处理”。

Google Analytics API的调用

API调用时采用_gaq.push方法,将API调用申请推送到_gaq对象队列中被收集。而被推送收集的API调用包括:JavaScript命令数 组、函数。其中,命令数组由被调用的跟踪器对象方法名称、传送给跟踪器对象方法的参数组成,也就是我们设置的各类定制跟踪,包括事件跟踪、跨域跟踪、添加 搜索引擎等等。

图三:_gaq对象及API调用
图三:_gaq对象及API调用
推送命令数组(申请API调用)
_gaq.push(['setAccount', 'UA-XXXXX-X']);

推送函数(申请API调用)
_gaq.push(function() {
var pageTracker = _gat._getTrackerByName('myTracker');
var link = document.getElementByIdx_x('my-link-id');
link.href = pageTracker._getLinkerUrl('http://example.com/');
});

_gaq跟踪器对象的创建

当页面中第一个命令数组以_gap.push方法,申请API调用时会执行以下流程:
首先,调用var _gaq = _gaq || [];,创建_gaq跟踪器对象(并通过_gaq.push(['setAccount', 'UA-XXXXX-X']);绑定到指定的GA网络载体ID),同时各类跟踪器对象方法处于可调用状态,包括事件跟踪、跨域跟踪等方法;
其次,推送新建的_gaq跟踪器对象方法,传递相应参数,提交API调用申请。
最后,其余跟踪方法的API调用申请都被推送收集到_gap对象时,会调用_gaq.push(['_trackPageview']);执行最后一次推送,并由此方法提交将全部API调用申请提交给ga.js处理。

Ga.js处理各类API调用

在各类API申请被收集的同时,以下代码会判断站点的网络协议(安全 HTTP 协议或标准 HTTP 协议),并调用访客缓存中的ga.js(若有)或从GA服务器下载ga.js。ga.js加载完成后,会立即处理所有API调用申请、更新/读取访客cookie数据。

(function() {
var ga = document.createElement_x('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName_r('script')[0]; s.parentNode.insertBefore(ga, s);
})();

Google Analytics数据传输日志

 


图四:Google Analytics访客Cookie参数
图四:Google Analytics访客Cookie参数

Ga.js将所有所得数据,包括访问者IP、网站域名、请求URI、页面名称、访客浏览器/操作系统信息、事件设置、自定义变量设置、访客ID、访问次 数、访问时间、流量来源等等,赋给对应的utm变量,并将所有utm参数值对作为__utm.gif图片调用参数,写入到GA服务器端__utm.gif 图片的调用日志中,向GA服务器发送数据。GA再对日志进行数据处理、分析,生成我们所看到的各类报告。

http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&utmhn=example.com&utmcs=ISO-8859-1&utmsr=1280x1024&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=9.0 r115&utmcn=1&utmdt=GATC012 setting variables&utmhid=2059107202&utmr=0&utmp=/auto/GATC012.html?utm_source=www.gatc012.org&utm_campaign=campaign+gatc012&utm_term=keywords+gatc012&utm_content=content+gatc012&utm_medium=medium+gatc012&utmac=UA-30138-1&utmcc=__utma=97315849.1774621898.1207701397.1207701397.1207701397.1;...

 


Google Analytics utm.gif请求参数表

变量 说明 示例值
utmac 帐户字符串。在所有请求中显示。 utmac=UA-2202604-2
utmcc Cookie 值。此请求参数将发送从网页中请求的所有 Cookie。 utmcc=__utma=117243.1695285.22;+ __utmz=117945243.1202416366.21.10. utmcsr=b| utmccn=(referral)| utmcmd=referral| utmcct=%2Fissue;+
utmcn 开始一个新的广告系列会话。utmcn 或 utmcr 存在于任何给定请求中。更改广告系列跟踪数据;但不启动新会话。 utmcn=1
utmcr 指示重复的广告系列访问。当对相同链接进行后续点击时,系统就会设置该变量。utmcn 或 utmcr 存在于任何给定请求中。 utmcr=1
utmcs 浏览器的语言编码。有些浏览器不设置此变量,在这种情况下该变量将设置为“-”。 utmcs=ISO-8859-1
utmdt 网页标题,是一个网址编码字符串。 utmdt=analytics page test
utme 可扩展参数 值已编码,用于事件和自定义变量。
utmfl Flash 版本 utmfl=9.0 r48&
utmhn 主机名,是一个网址编码字符串。 utmhn=x343.gmodules.com
utmipc 产品代码。这是给定产品的 SKU 代码。 utmipc=989898ajssi
utmipn 产品名,是一个网址编码字符串。 utmipn=tee shirt
utmipr 单价。在物品级别设置。值为数字且仅使用美国货币格式。 utmipr=17100.32
utmiqt 数量。 utmiqt=4
utmiva 某个物品的不同版本。例如:大、中、小、粉红色、白色、黑色、绿色。字符串为网址编码。 utmiva=red;
utmje 指示浏览器是否启用了 Java 支持。1 表示启用。 utmje=1
utmn 为每个 GIF 请求生成的唯一 ID,用于防止 GIF 图片缓存。 utmn=1142651215
utmp 当前网页的网页请求。 utmp=/testDirectory/myPage.html
utmr 引荐,完整的网址。 utmr=http://www.example.com/aboutUs/index.php?var=selected
utmsc 屏幕颜色深度 utmsc=24-bit
utmsr 屏幕分辨率 utmsr=2400x1920&
utmt 指示请求的类型,包括:事件、交易、物品或自定义变量。如果 GIF 请求中不存在此值,则请求的类型为网页。 utmt=event
utmtci 帐单邮寄地址所在城市 utmtci=San Diego
utmtco 帐单邮寄地址所在国家/地区 utmtco=United Kingdom
utmtid 订单 ID,为网址编码字符串。 utmtid=a2343898
utmtrg 帐单邮寄地址所在区域,为网址编码字符串。 utmtrg=New Brunswick
utmtsp 运费,单位和价格的值。 utmtsp=23.95
utmtst 关联企业。通常用于电子商务中的实体商户。 utmtst=google mtv store
utmtto 总计。单位和价格的值。 utmtto=334.56
utmttx 税款。单位和价格的值。 utmttx=29.16
utmul 浏览器语言。 utmul=pt-br
utmwv 跟踪代码版本 utmwv=1


以上就是Google Analytics基本异步跟踪代码的运作原理啦,可能有点复杂,有什么疑问就给我留言吧,一定知无不言Google <wbr>Analytics基本异步跟踪代码运作原理

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

发布在 邵珠庆

评论 (8) 引用 (0)
  1. This piece of writing will assist the internet users for setting up new blog or even a weblog from start to end.

  2. Hey very nice website!! Man .. Beautiful .. Amazing .. I will bookmark your website and take the feeds also…I am happy to find a lot of useful info here in the post, we need work out more techniques in this regard, thanks for sharing. . . . . .

  3. First of all, allow my family enjoy a person’s command during this matter. Even though this is certainly brand new , nevertheless soon after registering your site, this intellect has exploded extensively. Allow all of us to take hold of one’s rss to help keep in touch with at all probable messages Sincere understand but will pass it on to help admirers and my personal are living members


Leave a comment

还没有引用.