Google Analytics上手
来源:互联网 发布:js obj defaultvalue 编辑:程序博客网 时间:2024/05/29 17:48
添加到网页中
将以下代码(也称为“JavaScript 跟踪代码段”)添加到您的网站模板是着手使用 analytics.js 的最简单方法。更多请查阅ga文档
<!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics -->
以上代码进行了以下四项操作:
- 创建了一个 < script> 元素,并开始从 https://www.google-analytics.com/analytics.js 异步下载 analytics.js JavaScript 库。
- 初始化了一个全局函数 ga(也称为 ga() 命令队列),您可以通过该函数来安排要在 analytics.js 库加载完毕可供使用时执行的命令。
- 在 ga() 命令队列中添加一条命令,为通过 ‘UA-XXXXX-Y’ 参数指定的媒体资源创建一个新的跟踪器对象。
- 在 ga() 命令队列中添加另一条命令,为当前页面向 Google Analytics(分析)发送网页浏览数据。
换句话说,添加这段脚本之后,直接调用ga的api,就会向ga的后台发送请求。
跟踪代码段可以捕获哪些数据?
在html代码中嵌入这段脚本之后,ga后台就会获得以下信息:
- 用户总共在您网站上停留了多少时间。
- 用户在每个网页上停留的时间以及用户查看这些网页的次序
- 用户点击了哪些内部链接(根据下一个网页浏览的网址得到)
手动发送的跟踪器可以获得以下信息:
- 用户的地理位置。
- 用户使用的浏览器和操作系统。
- 屏幕尺寸以及是否安装了 Flash 或 Java
工作原理
上面嵌入的脚本定义了一个称为“命令队列”的全局函数 ga。之所以称其为命令队列,是因为该函数不会立即执行其中的命令,而是将这些命令加入到队列中,将这些命令的执行被延迟 analytics.js 库加载完成后进行。
我们可以打印出来
console.log(ga.q); // Outputs the following: // [ // ['create', 'UA-XXXXX-Y', 'auto'], // ['send', 'pageview'] // ]
analytics.js 加载完成后,会立即查看 ga.q 数组的内容并依次执行每条命令。然后,ga() 函数将被重新定义以立即执行之后的调用。开发者在使用 ga() 命令队列时无需担心 analytics.js 库是否已完成加载。该模式提供了一种类似于同步代码的简单接口,不用再考虑异步代码。
将命令添加到队列
对 ga() 命令队列的所有调用都使用同一个签名。第一个参数,“命令”,是一个标识特定 analytics.js 方法的字符串。其他参数是要传递给该方法的参数。如果 ga() 命令队列收到一条它无法识别的命令,会直接将其忽略,因此,在调用 ga() 函数时请仔细慎重,因为这些调用几乎不可能报错。
创建跟踪器
跟踪器对象(也称为“跟踪器”)指的是可以收集和存储数据并将这些数据发送给 Google Analytics(分析)的对象。在创建新的跟踪器时,必须指定一个跟踪 ID(与“媒体资源 ID”相同,对应于一个 Google Analytics(分析)媒体资源)和一个 Cookie 网域(指定如何存储 Cookie,推荐值 ‘auto’ 表示自动配置 Cookie 网域。)
创建后,跟踪器对象还会收集关于当前浏览上下文的信息(例如页面标题和网址)、关于设备的信息(例如屏幕分辨率、视口尺寸)以及文档编码。当需要向 Google Analytics(分析)发送数据时,会将跟踪器对象中当前存储的所有信息发送出去。
ga('create', 'UA-XXXXX-Y', 'auto');
和对 ga() 函数的所有调用一样,也可使用字段对象来同时指定所有字段:
ga('create', { trackingId: 'UA-XXXXX-Y', cookieDomain: 'auto', name: 'myTracker', userId: '12345' });
ga事件
事件包含以下组成元素。事件匹配包含每个组成元素的值,这些值都会显示在报告中。
- 类别
- 操作
- 标签(建议选用)
- 值(可选)
例如,可以在自己的网站上设置一个视频“play”按钮,以便它发送包含下列值的事件匹配:
类别:“Videos” 操作:“Play” 标签:“Baby's First Birthday”
通过标签,可以为要跟踪的事件提供额外信息。
与类别和操作一样,系统会提供一个报告,其中显示了您创建的所有标签。可以将标签看作一种途径,通过它可为用户与页面对象的互动创建另一个报告维度。例如,假设要跟踪用户与网页上的 5 个视频播放器的互动情况。所有这些播放器都可以使用“Videos”类别以及“Play”操作,但是每个播放器还可以具备独立的标签(例如电影名称),这样它们在报告中就会显示为不同的元素。
类别:“Videos”,操作:“Play”,标签:“Gone With the Wind” 类别:“Videos”,操作:“Play”,标签:“Huckleberry Finn”
值与其他组成元素不同,因为它是整数而非字符串,所以可用于为被跟踪的网页对象指定数值。例如,您可以通过它来指定以秒为单位的播放器加载时间,还可以在视频播放器播放到特定位置时触发一个美元价值。
类别:“Videos”,操作:“Video Load Time”,标签:“Gone With the Wind”,值:downloadTime
在事件跟踪中,系统会统计用户与被跟踪网页对象的每次互动,且会将其与指定的用户会话相关联。在报告中,“事件总数”计算的是用户与被跟踪网页对象之间的互动总数。
比如说,如果一个用户对某视频上的同一按钮点击了 5 次,那么与该视频相关联的事件总数为 5,唯一身份事件数为 1。
实际编码
可以通过使用 send 命令并将 hitType 指定为 event 来发送事件匹配。针对 event 匹配类型的 send 命令使用以下签名:
ga('send', 'event', [eventCategory], [eventAction], [eventLabel], [eventValue], [fieldsObject])
eventCategory通常是用户与之互动的对象(例如 ‘Video’),eventAction是指互动类型(例如 ‘play’)eventLabel用于对事件进行分类(例如 ‘Fall Campaign’),eventValue是与事件相关的数值
上述命令可改写为:
ga('send', { hitType: 'event', eventCategory: 'Videos', eventAction: 'play', eventLabel: 'Fall Campaign' });
网页跟踪
可以通过网页跟踪来衡量网站上特定网页获得的浏览次数。网页通常对应于整个 HTML 文档,但也可以表现动态加载的内容,这种情况也称为“虚拟网页浏览”。
在执行 send 命令时,会发送跟踪器上存储的 title 和 location 字段(不需要再实际编码),ga使用这些值来向您显示用户访问了哪些网页。
可以通过使用 send 命令并将 hitType 指定为 pageview 来发送网页浏览匹配。针对 pageview 匹配类型的 send 命令使用以下签名:
ga('send', 'pageview', [page], [fieldsObject]);
title网页的标题(例如“首页”),location所跟踪网页的网址,page网址的路径部分。此值应以斜杠 (/) 字符开头。也就是说
ga('send', 'pageview', location.pathname);
也可以通过这样的方式
ga('send', { hitType: 'pageview', page: location.pathname });
修改页面的网址
在某些情况下,要向 Google Analytics(分析)发送的网址与用户浏览器地址栏中显示的网址不同。例如,某个网站包含几个网页,用户可以登录和查看/修改其个人信息。如果此网站为个人信息、帐号信息和通知设置使用不同网页,这些网页可能会使用如下所示的网址(也就是每个用户访问的URL不相同,而我们又要进行统计):
- /user/USER_ID/profile
- /user/USER_ID/account
要解决此问题,可以指定一个 page 值,并移除用户 ID:
if (document.location.pathname.indexOf('user/' + userID) > -1) { var page = document.location.pathname.replace('user/' + userID, 'user'); // Sets the page value on the tracker. ga('set', 'page', page); // Sending the pageview no longer requires passing the page // value since it's now stored on the tracker object. ga('send', 'pageview'); }
- Google Analytics上手
- Google Analytics
- Google Analytics
- Google Analytics
- google Analytics
- Google Analytics
- google analytics
- Google Analytics
- Google Analytics
- Google Analytics
- Google Analytics
- Google analytics 试用记
- Google Analytics服务真好用
- analytics -- Google 的使用。
- Google Analytics截图
- 删除Google Analytics账号
- Google Analytics 2.0
- Google Analytics API发布
- 如何在Intellij IDEA中拉svn分支?
- 网络基础
- loadrunner测试流程
- 第7周【项目2
- 第七周项目一 建立顺序环形队列算法库
- Google Analytics上手
- Rhyme/Linux userdel用户删除命令
- 第五周 项目2
- php端对跨域访问的支持
- 12个js技巧
- SVM之问题形式化
- 如何在eclipse中安装git?
- ssm框架 数据库读写分离
- 怎样解决在ie中table 的th td设置宽高度不起作用