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');    }