Google API:如何訪問Google Analytics(分析)數據?

在深入研究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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372084.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為什么linux的新得立軟件下載,linux,debian_蝶變(Debian)_Xfce_新立得軟件管理_安裝不上軟件了,怎么處理?,linux,debian - phpStudy...

蝶變(Debian)_Xfce_新立得軟件管理_安裝不上軟件了,怎么處理&#xff1f;(synaptic:9573): GLib-CRITICAL **: g_child_watch_add_full: assertion pid > 0 failed正在預設定軟件包 ...(正在讀取數據庫 ... 系統當前共安裝有 343467 個文件和目錄。)正準備解包 .../libc6-db…

設計模式學習筆記(十六:橋接模式)

1.1概述 將抽象部分與它的實現部分分離&#xff0c;使他們都可以獨立地變化。這就是橋接模式的定義。 抽象類或接口中可以定義若干個抽象方法&#xff0c;習慣上將抽象方法稱作操作。抽象類或接口使程序的設計者忽略操作的細節&#xff0c;即不必考慮這些操作是如何實現的&…

Request的getParameter和getAttribute方法的差別

HttpServletRequest.getParameter("modelName");能取到想要的modelObject嗎&#xff1f;經過測試之后。發現是不能的。后來想想。其它道理挺簡單的&#xff0c;當兩個Web組件之間為轉發關系時&#xff0c;轉發源會將要共享request范圍內的數據先用setAttribute將數據…

Spring Social入門–第2部分

幾周前&#xff0c;我寫了一篇文章&#xff0c;展示了我認為可以使用Spring Social編寫的最簡單的應用程序。 該應用程序讀取并顯示了Twitter用戶的公共數據&#xff0c;并被編寫為Spring Social和社交編碼領域的介紹。 但是&#xff0c;讓您的應用程序顯示用戶的公共數據只是故…

linux靜默刪除文件夾,Linux常用命令10 - unzip

zip 是最廣泛使用的歸檔文件, 除了linux&#xff0c;windows也是非常的廣泛。&#xff0c;支持無損數據壓縮。 zip 文件是包含一個或多個壓縮文件或目錄的數據容器。接下來&#xff0c;我將解釋如何使用 unzip 命令通過命令行解壓縮 Linux 系統中的文件。 還有與之對應就是 zip…

Git學習筆記(一) 安裝及版本庫介紹

安裝Git 最早Git是在Linux上開發的&#xff0c;很長一段時間內&#xff0c;Git也只能在Linux和Unix系統上跑。不過&#xff0c;慢慢地有人把它移植到了Windows上。現在&#xff0c;Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常運行了。 在Linux上安裝Git 首先&#xff…

python基礎:迭代器、生成器(yield)詳細解讀

1. 迭代器 迭代器是訪問集合元素的一種方式。迭代器對象從集合的第一個元素開始訪問&#xff0c;知道所有的元素被訪問完結束。迭代器只能往前不會后退&#xff0c;不過這也沒什么&#xff0c;因為人們很少在迭代途中往后退。 1.1 使用迭代器的優點 對于原生支持隨機訪問的數據…

LazyInitializationException的四種解決方案–第2部分

本文從教程??的第1部分繼續。 使用PersistenceContextType.EXTENDED的有狀態EJB加載收集 該方法只能應用于與Full JEE環境兼容的應用程序&#xff1a;將EJB與PersistenceContextType.EXTENDED一起使用。 檢查下面的代碼&#xff0c;DAO的樣子&#xff1a; package com.ejb…

Linux將硬盤轉化為pv,Linux擴展硬盤 物理卷(PV) 卷組(VG) 邏輯卷(LV)

1、給虛擬機添加兩塊新的sata虛擬硬盤&#xff0c;容量8G和10G# fdisk -l 命令2、分別在這兩個硬盤上建立pvPvcreate /dev/sdb 創建一個物理卷/dev/sdb 磁盤名是 fdisk -l 查詢出來的Pvscan 查看當前所有物理卷Pvdisplay 查看當前所有物理卷的詳情3、創建VG&#xff0c;使得…

ubuntu 16.10 shu rufa meiy ou l e geng xi zhi hou

轉載于:https://www.cnblogs.com/ganmk--jy/p/6035894.html

ZOJ Monthly, November 2012

A.ZOJ 3666 Alice and Bob 組合博弈&#xff0c;SG函數應用#include<vector> #include<cstdio> #include<cstring> #include<algorithm>using namespace std;const int maxn 10000 100; int SG[maxn]; vector<int> g[maxn];int mex(int u) { /…

使用Aspect和Spring Profile進行電子郵件過濾

在Web應用程序開發期間&#xff0c;經常需要發送電子郵件。 但是&#xff0c;有時數據庫中會包含來自生產的數據&#xff0c;并且存在在電子郵件測試執行期間向真實客戶發送電子郵件的風險。 這篇文章將解釋如何避免在沒有在發送電子郵件功能中明確編寫代碼的情況下避免這種情…

紅旗linux 進不去圖形界面,進不了紅旗Linux6.0的圖形界面請高手幫忙

習生 于 2008-11-02 11:08:42發表:引用:原帖由 zhaoruiqi 于 2008-11-2 10:03 發表 我的也是進不了圖形界面&#xff0c;用文本安裝后進系統也一樣正常按rtl的方法對xorg.conf進行修改,已經能進入圖形界面。你看看樓上rtl的回復的能否對你有幫助。zhaoruiqi 于 2008-11-02 10:0…

總結繼承的幾種方式

簡單總結繼承的幾種方式 JavaScript作為一門弱類型的語言&#xff0c;本著精簡的原則&#xff0c;它取消了類的概念&#xff0c;只有對象的概念&#xff0c; 更是有萬物皆對象的說法。在基于類的面向對象方式中&#xff0c;對象&#xff08;object&#xff09;依靠類&#xff0…

Oracle SQL精妙SQL語句講解(二)

- 如果存在就更新&#xff0c;不存在就插入用一個語句實現 DROP TABLE t_mg; CREATE TABLE t_mg(code VARCHAR2(10), NAME VARCHAR2(10)); SELECT * FROM t_mg; MERGE INTO t_mg a USING (SELECT the code code, the name NAME FROM dual) b ON (a.code b.code) WHEN M…

Spring Security –在一個應用程序中有兩個安全領域

這篇博客文章主要是關于Spring Security配置的。 更具體地說&#xff0c;它打算顯示如何在一個Web應用程序中配置兩個不同的安全領域。 第一安全領域是針對瀏覽器客戶端的。 它使我們能夠在登錄頁面中登錄并訪問受保護的資源。 第二安全領域旨在處理來自android應用程序的REST…

基于Activiti工作流引擎實現的請假審核流程

概要 本文檔介紹的是某商用中集成的Activiti工作流的部署及使用&#xff0c;該框架用的Activiti版本為5.19.0。本文檔中主要以一個請假流程為例子進行說明&#xff0c;該例子的流程圖如下&#xff1a; 這是一個可以正常運作的工作流業務了&#xff0c;但是它也有不足的地方&…

linux編譯ffmpeg成so,「ffmpeg」一 mac 環境下編譯ffmpeg,生成so庫文件

1.下載ffmpeg源碼,官網&#xff0c;我這里直接采用git 方式下載&#xff1a;下載ffmpeg.png終端輸入git命令&#xff1a;靜靜等待~最后下載的版本為3.4.6 。image.png這里注意一下&#xff0c;剛開始我用的ndk版本是ndk-17b&#xff0c;在編譯該版本的ffmpeg時始終失敗&#xf…

4Web Service中的幾個重要術語

4.1WSDL: web service definition language 直譯:Webservice定義語言 1.對應一種類型的文件.wsdl 2.定義了webservice的服務端與客戶端應用交互傳遞請求和響應數據的格式和方式 3.一個webservice對應一個唯一的esdl文檔 4.2SOAP: simple object access protocal 直譯:簡單對象訪…

云端:亞馬遜,谷歌應用引擎,Windows Azure,Heroku,Jelastic

您想在云端嗎&#xff1f; 您有很多選擇。 我已經評估或使用了許多方法&#xff0c;因此這里有幾句話。 &#xff08;當我使用Java時&#xff0c;我將包括一些與Java相關的注釋&#xff0c;但大多數情況適用于所有&#xff08;受支持的&#xff09;語言。&#xff09; 但是在深…