资料:
https://support.google.com/analytics/?hl=zh-Hans&rd=1#topic=3544906
http://www.google.com/intl/zh-CN_ALL/analytics/learn/index.html
https://www.google.com/analytics/web/?hl=zh-CN&pli=1#management/Settings/a33188438w60394633p61766834/%3Fm.page%3DDeleteSelf/
https://console.developers.google.com/project/apps~crypto-plane-536?redirected=true%3Fauthuser&redirected=true
https://support.google.com/analytics/answer/1009618?hl=zh-Hans&ref_topic=1102143
帐户、用户、媒体资源和视图的层次结构
通过 Google Analytics(分析),您可以收集并报告有关您的媒体资源所获得的访问者流量的信息。媒体资源可以是网站、移动应用或博客 -- 即任何通过网络或移动应用获得流量的网页或屏幕。要通过 Google Analytics(分析)收集此信息,您需要完成以下几个步骤:
- 注册 Google Analytics(分析)帐户。
- 将您的媒体资源添加到相应帐户。
- 将 Google Analytics(分析)跟踪代码添加到您的媒体资源。
本文将介绍帐户、媒体资源、视图和用户等 Google Analytics(分析)元素在功能和组织结构方面的关系。
首先,让我们来看看这些实体在 Google Analytics(分析)结构中的相互关系。
帐户:Google Analytics(分析)的入口,它是整个组织结构的最高层级。
媒体资源:网站、移动应用、博客等。一个帐户可以包含一个或多个媒体资源。
视图:报告的入口;它是指来自媒体资源的访问者数据的一个经过定义的视图。您可以授予用户访问视图的权限,这样用户便可以查看基于该视图数据的各种报告。一个媒体资源可以包含一个或多个视图。
用户:您可以为帐户添加多个用户,还可以为用户分配四种不同的权限(管理用户、修改、协作或阅读和分析),并且可以在帐户级、媒体资源级和数据视图级分配不同的权限。用户获得的权限决定了他们可以进行哪些操作,以及他们能否访问报告。
帐户
您至少需要拥有一个 Google Analytics(分析)帐户,才能访问 Google Analytics(分析),并确定要跟踪的媒体资源。至于如何管理帐户与媒体资源之间的关系,则完全取决于您自己。您可以采用一个帐户/一个媒体资源的一对一关系,也可以采用一个帐户/多个媒体资源的一对多关系。您可以注册多个 Google Analytics(分析)帐户。如果您还没有帐户,请在此处注册一个。
媒体资源
在 Google Analytics(分析)帐户中,您可以添加若干要从中收集访问者数据的媒体资源。当您向帐户中添加媒体资源时,Google Analytics(分析)会生成跟踪代码,供您用以从相应媒体资源收集数据。跟踪代码包含一个唯一的 ID,可用于标示来自相应媒体资源的数据,方便您在报告中加以识别。另外,Google Analytics(分析)还会为您添加的每个媒体资源创建一个未经过滤的视图。
视图
视图是关于某个媒体资源数据的一个经过定义的视角,可用于访问相应媒体资源的各种报告。
例如,在一个媒体资源中,您可能拥有如下视图:
- 一个包含 www.example.com 的所有数据的视图
- 一个仅包含 www.example.com 所获得的 AdWords 流量的视图
- 一个仅包含 www.sales.example.com 等子域所获得的流量的视图
您可以通过应用过滤器来定义视图中的数据。
在您向帐户中添加媒体资源后,Google Analytics(分析)会为该媒体资源创建首个视图。首个视图中不含过滤器,因而该视图中包含关于该媒体资源的所有数据。为了确保始终能够获取特定媒体资源的所有数据,请不要删除这一未经过滤的首个视图。
您可以创建其他视图,并通过应用过滤器来在其中分别指定您所关注的特定数据子集。
创建视图后,您就可以针对自视图创建日期起的特定数据生成报告。例如,如果您在 6 月 1 日创建了视图,您就可以针对 6 月 1 日之后的数据生成报告,但无法针对 6 月 1 日之前搜集的任何数据生成报告。
如果需要针对某个视图的创建日期之前的数据生成报告,则可以使用未经过滤的首个视图,然后使用日期范围和其他控件分离出特定的信息。但是要注意不能对首个视图应用过滤器。
如果您删除某个视图,就会失去其中的数据,而且再也无法恢复。只要您觉得今后可能还会使用某个数据视图生成报告,就不要删除相关视图。
要在 Google Analytics(分析)中查看报告,首先需要选择具体视图。尽管 Google Analytics(分析)提供了一组默认的报告,但只有与相应视图所识别的数据相匹配的那些报告才会显示内容。
用户
您可以向 Google Analytics(分析)帐户添加用户。此操作可以在帐户、媒体资源或视图级别进行,您还可以限制这些用户在每个级别的访问权限。在添加用户时,您根据其所注册的 Google 帐户电子邮件地址来对其进行识别,然后为其分配相应的权限。依照您所分配的权限,该用户可以管理其他用户、执行管理任务(如创建其他数据视图和过滤器),还可以查看报告数据。
1个账号account对应多个媒体资源
1个媒体资源对应多个视图(组合应用多个过滤器,就成了视图)
这个account不是登录账户,不是acount, password pairs。
它只表示一个逻辑层次。。
account, res, view可以比作database, table, view。
一个database有多张table,一个table有多个view。
account里可以管理user,这些user才是google登录账号,它们才是account, password pairs。
表示哪些user可以使用这个account。
官方的示例代码是基于oauth2的,授权的时候要弹出浏览器窗口让用户手动授权。
这不适合后台跑的程序,所以要使用service account来提供credential。
api及示例代码:
https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide#samples
1.创建service account。
https://console.developers.google.com/project/apps~crypto-plane-536/apiui/credential
点击oauth下面的'create new client id'。在打开页面中选择‘Service account’选项。然后点击’create client ID‘。
生成后会提示下载一个 .p12文件,将它存好。
生成后
Email address | 743724047076-nfom4maeem4q7nbqd8pnho0u71d6ps36@developer.gserviceaccount.com |
---|
以@developer.gserviceaccount.com结尾的email也要记好,等下要用到。
官方的示例代码的HelloAnalyticsApiSample.java中将
Credential credential = authorize();改成Credential credential = authorize2();
并增加authorize2()方法。
使用上刚才的 .p12文件和email。
private static Credential authorize2() throws Exception {
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("743724047076-nfom4maeem4q7nbqd8pnho0u71d6ps36@developer.gserviceaccount.com")
.setServiceAccountScopes(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY))
.setServiceAccountPrivateKeyFromP12File(new File("e:/code/code/import/f0fdba8e1dc906c515e621cd88584c6a3e720cb9-privatekey.p12"))
//.setServiceAccountUser("quidsitraffic@gmail.com")
.build();
/* // set up global Plus instance
Plus plus = Plus.builder(httpTransport, JSON_FACTORY)
.setApplicationName("Google-PlusServiceAccountSample/1.0")
.setHttpRequestInitializer(credential).build();*/
return credential;
}
跑起来会提示:
There was a service error: 403 : User does not have any Google Analytics account.
则要打开https://www.google.com/analytics/web/?hl=zh-CN&pli=1#management/Settings/a555486w932349p38258674/%3Fm.page%3DDeleteSelf/
在’用户管理‘里把刚才的email添加进去,就行了。
ManagementApiReferenceSample.java里使用在console里下载的json(Download json)就可以授权了?
如果可以,当然比前一个方法更简单。
https://support.google.com/analytics/answer/1102152?hl=zh-Hans&ref_topic=1102143
示例帐户结构
由于帐户、媒体资源和视图之间的关系可以有多种形式,因此您应当根据您自己或您的公司的需求来最合理地对其加以组织。
例如:
- 如果您希望为个人的网站和博客收集数据,则可以创建一个包含两个媒体资源的帐户,并为每个媒体资源创建必要的视图:一个媒体资源(和相关联的视图)用于您的网站,另一个媒体资源(和相关联的视图)用于您的博客。
- 如果您只希望为公司的网站收集数据,则可以使用仅包含一个媒体资源的单个帐户,并在其中创建一个或多个视图。如果您的公司有不同的部门,各自希望跟踪其在网站中所负责的区域,您可以为每个部门创建一个视图,并将每个视图配置为只包含相关的数据。
- 如果您为分属多个客户的多个网站管理 Google Analytics(分析)帐户,则可以采取多种方法:
- 为每个客户创建一个 Google Analytics(分析)帐户,然后在每个帐户中创建所需数量的媒体资源和视图。运用这种组织方式,您可以让客户访问各自的 Google Analytics(分析)帐户,确保他们不会看到彼此的数据。
- 仅创建一个帐户,但在其中为每个客户建立单独的媒体资源和视图。您可以通过权限来限制用户对相关媒体资源和视图的访问。但这种方法的缺陷就是存在潜在的风险,如果您随后在帐户级别为用户分配权限,则该用户会看到此帐户中的其他客户的媒体资源和视图中的数据。