在深入研究Google Analytics(分析)API之前,了解一些Google Analytics(分析)术语及其关系总是很有用的。

Google帐户:要访问Google Analytics(分析),用户将需要一个Google帐户,该帐户使用户可以登录多个Google产品,例如Gmail,Blogger,Analytics,Adsense等。[user.01@gmail.com]。

Google Analytics(分析)帐户:当用户想要访问网络分析功能时,他们需要注册此服务。 这是代表分析帐户的唯一ID。 用户仍然可以使用其Google帐户电子邮件地址进行身份验证并登录到Google Analytics(分析)帐户服务。 [例如65421]

Google Analytics(分析)示例帐户

网站资源:网站资源可以称为可以独立跟踪的一个网站。 如果该帐户称为AbcCompany,则一个网站资源可以是abc.com,它引用了用户的个人网站,另一个网站资源可以是abcbiz.com,它引用了用户的商业网站,另一个则可以是abc.mobi,它专门针对他的移动客户。 帐户下的网络媒体资源将具有相同的帐号,但后缀不同。 例如,如果AbcCompany的帐户ID是65421,则abc.com的网络媒体资源可以是UA-65421-1,而abcbiz.com的网络媒体资源可以是UA-65421-2。

Google Analytics(分析)示例属性

使用“属性”选项卡创建新属性:

创建一个新属性

Google Analytics(分析)配置文件:每个网络载体帐户将至少具有一个Analytics(分析)配置文件。 该配置文件可以访问所有分析数据和报告。 每个配置文件将具有唯一的配置文件ID。 配置文件可以具有多个目标,用户,过滤器和资产。

个人资料

配置文件设置选项卡提供了配置文件ID和网站URL的详细信息。配置文件可以有一个或多个用户。

编辑配置文件设置

关系的详细信息在下图中突出显示。

GA用户个人资料帐户关系

什么是OAuth 2.0?

OAuth是授权的开放标准。 它允许用户从一个位置到另一位置共享他们的资源,而无需共享凭据。 OAuth 2.0基于OAuth协议,但是它为Web应用程序,桌面应用程序,移动应用程序等提供了新的身份验证功能,可帮助彼此对话。它们使用令牌而不是实际的用户名和密码来进行交谈并提供授权。

Google API与OAuth2.0有何关系?

Google API使用OAuth 2.0标准提供对其应用程序的访问。 Google使用此协议作为他们的身份验证和授权,尤其是当第三方客户端希望安全地访问Google应用程序数据时。 Google授权在几个高级步骤中起作用:

a)向Google注册应用程序
b)将浏览器重定向到URL
c)从响应中解析令牌 d)将令牌发送到Google授权服务器。 e)使用请求的访问令牌获取Google Analytics(分析)数据。

下图描述了对Google服务器(在本例中为Analytics服务器)进行身份验证和授权所遵循的步骤。

Google Analytics(分析)架构

好了,所有介绍都结束了。 我们将采取行动。 到目前为止,我们已经了解了Google Analytics(分析)数据的各种功能以及授权和认证机制。 现在,我们将详细介绍实现细节。 糟糕...仍然缺少一项。 这一切都是关于我们将从Google Analytics(分析)访问哪些数据以及它们之间的关系。

维度与指标

维度与指标

简单来说,Google Analytics(分析)中的Dimension代表报告中的行,而metrics则代表列。 例如,维度是指国家/地区,浏览器,流量来源,而指标是指访问,新访问者,交易等。

那么我们要如何处理所有这些细节?

问题陈述:我们正在尝试创建一个独立的应用程序,该应用程序将尝试使用OAuth 2.0协议并从Google Analytics(分析)中获取数据。

解:

步骤1:下载并导入Jar文件

首先,我们需要下载并导入以下jar文件:
下载位置: Google客户端API

  • google-api-client-1.8.0-beta.jar –包含Google Analytics(分析)的Core API代码
  • google-oauth-client-1.8.0-beta.jar –包含OAuth客户端代码
  • gson-2.1.jar – Java库,用于将JSON转换为Java对象,反之亦然
  • guava-11.0.1.jar –这个jar包含几个Google的核心库,例如集合,缓存,原始支持,通用注释,字符串处理
  • jackson-core-asl-1.9.4.jar –这是高性能的JSON处理器

步骤2:向Google注册客户应用程序

每个应用程序都必须向Google API注册,以便我们在身份验证和授权过程中使用OAuth 2.0令牌。 要注册应用程序,用户必须登录Google帐户并转到Google API控制台 。

在Google API控制台中,使用左侧菜单创建一个新项目。

创建一个新项目

使用“服务”标签启用Analytics API,以便可以对其进行访问。

启用Analytics API

在“ API访问”标签中,创建OAuth 2.0客户端ID。

创建OAuth客户端ID

创建客户ID的品牌信息

创建品牌信息

选择应用程序类型。 在我们的示例中,我们选择通常在本地系统上运行的“已安装的应用程序”。

选择应用类型

API控制台摘要提供了客户端ID和客户端密钥的详细信息。

Google API控制台摘要

步骤3:授权要求

注册将为您的应用程序提供clientId和clientSecret值,以便它可以与Google API一起使用。 此密钥将避免客户端应用程序共享用户名或密码,而是使用这些密钥。

当执行客户端应用程序时,它会提示用户允许访问,并将用户重定向到Google URL,后者提供了授权代码。 授权代码被反馈到客户端应用程序,然后使用该代码获取访问令牌。

第4步:访问Google Analytics(分析)用户数据

客户端应用程序使用访问令牌来获取Google Analytics(分析)用户的数据。

<< GA示例下载代码 >>

示例代码说明:

从Google API控制台收到的Client ID和Client Secret值需要在程序中复制到此处。

private static final String CLIENT_ID = "XXXXXXXXXX";
private static final String CLIENT_SECRET = "XXXXXXXXX";

生成将用于获取授权码的URL。

String authorizationUrl = new GoogleAuthorizationRequestUrl(CLIENT_ID,REDIRECT_URL, SCOPE).build();

此处,REDIRECT_URL表示授权服务器将用户代理重定向到最终用户授权步骤已完成的绝对URI路径,而SCOPE表示表示的访问请求的范围。 一旦执行了应用程序,即会生成URL。 该网址将询问Analytics(分析)帐户用户是否可以允许访问以获取授权码。 授权码生成后,将在客户端应用程序中使用它来访问Google API令牌。

从控制台读取授权代码:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

使用授权码访问OAuth 2.0令牌:

AccessTokenResponse response = new GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant(netHttpTransport, jacksonFactory, CLIENT_ID, CLIENT_SECRET,authorizationCode, REDIRECT_URL).execute();

初始化Analytics服务对象:

Analytics analytics = Analytics.builder(netHttpTransport, jacksonFactory).setHttpRequestInitializer(googleAccessProtectedResource).setApplicationName(APPLICATION_NAME).build();

获取个人资料详细信息:

Profiles profiles = analytics.management().profiles().list("~all", "~all").execute();

使用API​​查询获取Google Analytics(分析)数据:

Get apiQuery = analytics.data().ga().get("ga:" + profile.getId(), // Table ID ="ga"+ProfileID"2012-03-21", // Start date"2012-05-04", // End date"ga:visits"); // Metrics

设置过滤器:

apiQuery.setFilters("ga:medium==referral");
apiQuery.setMaxResults(100);

执行查询:

GaData gaData = apiQuery.execute();

然后可以使用retrieveData()方法从GaData对象中检索数据。

public static void retrieveData(GaData gaData) {
// Get Row Data
if (gaData.getTotalResults() > 0) {
// Get the column headers
for (ColumnHeaders header : gaData.getColumnHeaders()) {
System.out.format("%-20s",
header.getName() + '(' + header.getDataType() + ')');
}
System.out.println();
// Print the rows of data.
for (List<String> rowValues : gaData.getRows()) {
for (String value : rowValues) {
System.out.format("%-20s", value);
}
System.out.println();
}
} else {
System.out.println("No data available");
}
}

如果您想进一步了解Google Analytics(分析),可以参考我们的文章“ All about Google Analytics(分析) ”。

参考: Google API:如何访问Google Analytics(分析)数据? 从我们的JCG合作伙伴 Mainak Goswami在Idiotechie博客上获得。

翻译自: https://www.javacodegeeks.com/2012/07/google-api-how-to-access-analytics-data.html

Google API:如何访问Google Analytics(分析)数据?相关推荐

  1. 篮球数据API接口 - 【篮球赛事分析数据】API调用示例代码

    分享使用接口调用的示例代码,篮球数据[篮球赛事分析数据]接口 package com.huaying.demo.basketball;import java.nio.charset.StandardC ...

  2. 足球数据API接口 - 【足球赛事分析数据】API调用示例代码

    分享使用接口调用的示例代码,足球数据[足球赛事分析数据]接口 package com.huaying.demo.football;import java.nio.charset.StandardCha ...

  3. 使用OAuth 2.0访问Google API

    参考: https://developers.google.com/identity/protocols/oauth2 使用OAuth 2.0访问Google API 注意:使用Google的OAut ...

  4. Google API大全

    第Ⅰ部分 准备篇--Google API概览 第1章 Google API简介 第2章 Google API的商业价值 第Ⅱ部分 出发篇--Google API站点基础类 第3章 数据交换利器--Go ...

  5. 谷歌的愿景_什么是Google API愿景以及如何使用它

    谷歌的愿景 介绍 (Introduction) This post finds his root in an interesting project of knowledge extraction. ...

  6. 23、Android之使用 Google API 的 GTalk

    使用 Google  API 的 GTalk     关键技能  &  概念 ●  执行一个 Google  API 包装 ●  为 Google 存取配置 XMPP 开发环境设置 ●  执行 ...

  7. 运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法

    每次打开 Chromium,地址栏下方就会提示 "缺少 Google API 密钥,因此 Chromium 的部分功能将无法使用".提示不仅很烦人,并且还无法在 Chromium ...

  8. 使用Angular和API服务器显示相关表中的数据

    Angular是基于Angular JS并扩展其原理的动态Web应用程序的更新框架. 通过CData API Server,您可以为80多个数据源(包括本地数据库和基于云的数据库)生成REST API ...

  9. 使用C++访问Google API

    Google提供了一套基于SOAP的Web API提供给Web开发人员用于让我们可以更加便利的使用Google提供的服务,诸如相册.日历.文档等.可惜Google官方只提供了.net.JAVA.Pyt ...

最新文章

  1. linux 下的lamp的简单安装
  2. android的UI开发工程师指引
  3. 配置Vim的显示样式
  4. Spread Studio for .NET 7: 使用现有数据填充单元格
  5. OpenCV cv :: UMat与DirectX9ex曲面的互操作性的实例(附完整代码)
  6. Kitten编程猫 里的克隆体无法进行边缘检测
  7. 培养有见识的孩子,这6部适合孩子的纪录片,在家也能涨知识!
  8. Redis系列一、redis介绍与安装
  9. 钉钉功能介绍_平棉集团组织召开阿里钉钉办公系统基础功能培训会
  10. php入职头一星期,入职一周就想离职,真的是我太飘了吗?
  11. 【简单粗暴】如何给网页嵌入视频
  12. NLP学习—23.基于Transformer的机器翻译实战
  13. 如何准备数学建模?(附建模必备资料)
  14. 各个浏览器兼容性问题积累
  15. 鸿蒙OS 2.0流畅度实测,真的比安卓差吗?
  16. 使用WinDbg Preview解决Win10系统蓝屏问题
  17. Flutter 核心编程二:Dart基础语法之基本数据类型,数组,方法,Runs,函数闭包,typedef,操作符
  18. C++17之std::visit
  19. 《程序员的思维修炼--开发认知潜能》读书笔记
  20. fn+f12查看接口

热门文章

  1. vue 实现 js css html分离
  2. java 读取 文本块_Java 13:文本块
  3. 如何使用eclemma插件_如何集成和使用EclEmma插件来获得良好的Junit覆盖率
  4. java 枚举内嵌枚举_高度有用的Java ChronoUnit枚举
  5. neo4j 关系属性_Neo4j:特定关系与一般关系+属性
  6. 淘宝客静态单页_单页应用程序的Spring Boot静态Web资源处理
  7. 成为Java流大师–第5部分:将联接的数据库表转换为流
  8. 使用Java从地图中删除元素
  9. 开源mindmap_Java开发人员访谈的MindMap
  10. 坚实原则:Liskov替代原则