Java调用Google Analytics API实现网站统计
Java调用Google Analytics API实现网站统计简介
Google Analytics是著名互联网公司Google为网站提供的数据统计服务。可以对目标网站进行访问数据统计和分析并提供多种参数供网站拥有者使用。Google Analytics功能非常强大只要在网站的页面上加入一段代码就可以提供的丰富详尽的图表式报告。
注册
要使用Google Analytics先需要有一个google帐号然后到下面链接登录http://www.google.com/analytics
登录成功后会看到这个Summary的统计页面。如果是首次登陆不会有统计网站需要增加监控网站。
Java调用Google Analytics API实现网站统计
配置跟踪站点
基本信息填写完成后将进入如下页面
Java调用Google Analytics API实现网站统计
Google Analytics会生成一段验证的Javascript需要把这段Javascript拷贝到你需要跟踪页面的</body>标记之前一般都是放在index页面上。
查看监测结果
以上步骤介绍如何调用Google Analytics但是如何才能获取网站分析工具的数据并且和其他系统的数据进行自定义度量的计算呢答案是使用GA提供的API接口。在自定义报表中你能想到的几乎所有维度和指标都可以通过API接口轻松获取只需要修改下面代码指定的参数再设计你希望的数据返回格式就可以轻松把GA的数据抽取到你的数据仓库中然后尽情的享用
代码分析与实现import com.google.gdata.cl ient.analytics.AnalyticsService;import com.google.gdata.cl ient.analytics.DataQuery;import com.google.gdata.data.analytics.AccountEntry;import com.google.gdata.data.analytics.AccountFeed;import com.google.gdata.data.analytics.DataEntry;import com.google.gdata.data.analytics.DataFeed;
Java调用Google Analytics API实现网站统计
import com.google.gdata.uti l .AuthenticationException;import com.google.gdata.uti l .ServiceException;import java. io. IOException;importjava.net.MalformedURLException;import java.net.URL;publ ic classGoogleAnalytics {
//使用Cl ientLogin方法访问Google Analytics。其中两个常量分别存储用户名和密码。private staticfinal String CLIENT_USERNAME="test@163.com";//Google帐号private static final String CLIENT_PASS="123456"; //Google密码private static final String TABLE_ID="ga:715123";//此帐号有权访问的Google Analytics配置文件的TABLEIDpubl ic void myTest() {try{
/*
*系统创建服务对象。服务对象的参数是一个代表应用程序名称的字符串。随后系统将采用setUserCredentials方法来处理
*Google Analytics 分析授权。
*/
//Service ObjecttoworkwiththeGoogleAnalyticsData ExportAPI .
AnalyticsService analyticsService=new
AnalyticsService("gaExportAPI_acctSample_v2.0");
//Cl ient Login Authorization.analyticsService.setUserCredentials(CLIENT_USERNAME,CLIENT_PASS);
//Get data fromtheAccount Feed.getAccountFeed(analyticsService); //获取帐号信息
//Accessthe Data Feed if theTable Id has been set.if(!TABLE_ID. isEmpty()) {
//Get profi ledata fromthe Data Feed.getDataFeed(analyticsService); //获取数据信息包括"指标"和"维度"
}
}catch(AuthenticationException e) {
System.err.println("Authentication fai led: "+e.getMessage());return;
}catch(IOException e) {
System.err.println("Network errortrying to retrieve feed: "
+e.getMessage());return;
Java调用Google Analytics API实现网站统计
}catch(ServiceException e) {
System.err.println("AnalyticsAPI responded with an error message: "
+e.getMessage());return;
}
}
**
*获取帐号fe e d
*@param analyticsService
*@throws IOException
*@throws MalformedURLException
*@throws ServiceException
*/private static void getAccountFeed(AnalyticsService analyticsService)throws IOException,MalformedURLException,ServiceException{
//Construct query from a string.
URLqueryUrl=new
URL("https://www.google.com/analytics/feeds/accounts/default?max-results=50");
//Make requesttotheAPI .
AccountFeed accountFeed=analyticsService.getFeed(queryUrl,AccountFeed.class);
//Outputthedatatothescreen.
System.out.println("--------Account Feed Results--------");for (AccountEntry entry:accountFeed.getEntries()) {
System.out.println("\nAccount Name ="
+entry.getProperty("ga:accountName")
+"\nProfi le Name ="+entry.getTitle().getPlainText() //配置文件名称
+"\nProfi le Id ="+entry.getProperty("ga:profi leId") //配置文件编号
+"\nTable Id ="+entry.getTableId().getValue()); //配置文件的TableId
}
}
**
*获取指标和维度信息
*@param analyticsService
*@throws IOException
*@throws MalformedURLException
*@throws ServiceException
Java调用Google Analytics API实现网站统计
*/private static void getDataFeed(AnalyticsService analyticsService)throws IOException,MalformedURLException,ServiceException{
//Create a query usingthe DataQueryObject.
DataQuery query=new DataQuery(new
URL("https://www.google.com/analytics/feeds/data"));query.setStartDate("2011-10-01"); //要统计的数据的起始时间query.setEndDate("2011-10-30"); //要统计的数据的结束时间query.setDimensions("ga:pageTitle,ga:pagePath"); //要统计的维度信息query.setMetrics("ga:pageviews,ga:bounces,ga:visits,ga:visitors"); //要统计的指标信息query.setSort("-ga:pageviews");query.setMaxResults(10);query.setIds(TABLE_ID);
//Makea requesttotheAPI .
DataFeed dataFeed=analyticsService.getFeed(query.getUrl(),
DataFeed.class);
//Outputdatatothescreen.
System.out.println("-----------Data Feed Results----------");for (DataEntry entry:dataFeed.getEntries()) {
System.out.println("\nPage Title="
+entry.stringValueOf("ga:pageTitle")+"\nPage Path ="
+entry.stringValueOf("ga:pagePath")+"\nPageviews浏览量 ="
+entry.stringValueOf("ga:pageviews")+"\nga:bounces="
+entry.stringValueOf("ga:bounces")+"\nga:visits访问次数="
+entry.stringValueOf("ga:visits")+"\nga:visitors访问人数="
+entry.stringValueOf("ga:visitors"));
}
}
}
注意
1、使用任意方式main()或servlet调用这个class的myT est()方法即可。
2、使用过程需要修改的参数
(1)CLI ENT_US ERNAM E GA的Google账号
(2)CLI ENT_PAS S Google账号的登录密码
Java调用Google Analytics API实现网站统计
(3)TABLE_ID Google账号有权限访问的配置文件ID
3、 自定义报表的维度和指标
(1)setStartDate为开始时间 setEndDate为结束时间
(2)setDimens ions是要统计的维度信息
(3)setMetrics是要统计的指标信息
4、 Java开发过程需要的jar包下载地址http://code.google.c om/p/gdat a-jav a-client/downl oads/list本文原创 y hcz 由于总结时间仓促如有不足之处敬请谅解
Java调用Google Analytics API实现网站统计
下面是诗情画意的句子欣赏不需要的朋友可以编辑删除
谢谢
1.染火枫林琼壶歌月长歌倚楼。岁岁年年花前月下一尊芳酒。水落红莲唯闻玉磬但此情依旧。
2.玉竹曾记凤凰游人不见水空流。
3.他微笑着在岁月的流失中毁掉自己。
4.还能不动声色饮茶踏碎这一场盛世烟花。
5.红尘嚣浮华一世转瞬空。
6.我不是我你转身一走苏州里的不是我。
7.几段唏嘘几世悲欢可笑我命由我不由天。
8.经流年梦回曲水边看烟花绽出月圆。
9.人生在世恍若白驹过膝忽然而已。然我长活一世却能记住你说的每一话。
10.雾散梦醒我终于看见真实那是千帆过尽的沉寂。
11.纸张有些破旧有些模糊。可每一笔勾勒每一抹痕迹似乎都记载着跨越千年万载的思念。
12.生生的两端我们彼此站成了岸。
13.缘聚缘散缘如水背负万丈尘寰只为一句等待下一次相逢。
14.握住苍老禁锢了时空一下子到了地老天荒
15.人永远看不破的镜花水月不过我指间烟云世间千年,如我一瞬。
16.相逢一醉是前缘风雨散飘然何处。
17.虚幻大千两茫茫一邂逅终难忘。相逢主人留一笑不相识又何妨。
18.天下风云出我辈,一入江湖岁月催;皇图霸业谈笑间,不胜人生一场醉。
19.得即高歌失即休多愁多恨亦悠悠今朝有酒今朝醉 明日愁来明日愁。
20.直道相思了无益未妨惆怅是清狂。
21.看那天地日月恒静无言;青山长河世代绵延;就像在我心中你从未离去也从未改变。
Java调用Google Analytics API实现网站统计
22.就这样吧从此山水不相逢。
23.人天自两空何相忘何笑何惊人。
24.既不回头,何必不忘。 既然无缘,何须誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
25.有缘相遇,无缘相聚,天涯海角,但愿相忆。有幸相知,无幸相守,苍海明月,天长地久。
26.相见得恨晚相爱的太慢进退让我两难。缘过了远分缘过了聚散是否回头就能够上岸
27.天凉了,凉尽了天荒地老了,人间的沧桑爱哭了,这么难舍心都空了,想放不能放。天亮了,照亮了泪光泪干了,枕边地彷徨
28.心微动奈何情己远.物也非,人也非,事事非,往日不可追
29.渺渺时空,茫茫人海,与君相遇,莫失莫忘。
30.如果换我先开口 日子是否还一样细水长流
31.也许是前世的姻也许是来生的缘错在今生相见徒增一段无果的恩怨
32.人道海水深不抵相思半。海水尚有涯相思渺无畔。
33.醉眼看别人成双作对
34.无人处暗弹相思泪。
35.终于为那一身江南烟雨覆了天下容华谢后不过一场 山河永寂。
36.千秋功名一世葬你玲珑社稷可笑却无君王命。
37.凤凰台上凤凰游负约而去一夜苦等从此江南江北万里哀哭。
38.嗟叹红颜泪、英雄殁人世苦多。 山河永寂、怎堪欢颜。
39.风华是一指流砂苍老是一段年华。
40.夜雨染成天水碧。有些人不需要姿态也能成就一场惊鸿。
41.你要记得紫檀未灭我亦未去。
42.谁在岁月里长长叹息。
43.汉霄苍茫牵住繁华哀伤弯眉间命中注定成为过往。
44.红尘初妆 山河无疆。 最初的面庞碾碎梦魇无常命格无双。
45.江南风骨天水成碧天教心愿与身违。
46. 山河拱手为君一笑。
47.如是颠簸生世亦无悔。
48.荏苒岁月覆盖的过往 白驹过隙匆匆的铸成一抹哀伤。
49.那被岁月覆盖的花开一切白驹过隙成为空白。
50.褪尽风华我依然在彼岸守护你。
51.那些繁华哀伤终成过往
昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...
BuyVM测评,BuyVM怎么样?BuyVM好不好?BuyVM,2010年成立的国外老牌稳定商家,Frantech Solutions旗下,主要提供基于KVM的VPS服务器,数据中心有拉斯维加斯、纽约、卢森堡,付费可选强大的DDOS防护(月付3美金),特色是1Gbps不限流量,稳定商家,而且卢森堡不限版权。1G或以上内存可以安装Windows 2012 64bit,无需任何费用,所有型号包括免费的...
racknerd怎么样?racknerd商家最近促销三款美国便宜vps,最低只需要9.49美元,可以选择美国圣何塞、西雅图、纽约和芝加哥机房。RackNerd是一家成立于2019年的美国高性价比服务器商家,主要从事美国和荷兰数据中心的便宜vps、独立服务器销售!支持中文工单、支持支付宝和微信以及PayPal付款购买!点击直达:racknerd官方网站INTEL系列可选机房:加利福尼亚州圣何塞、芝加...