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.那些繁华哀伤终成过往
对于DMIT商家已经关注有一些时候,看到不少的隔壁朋友们都有分享到,但是这篇还是我第一次分享这个服务商。根据看介绍,DMIT是一家成立于2017年的美国商家,据说是由几位留美学生创立的,数据中心位于香港、伯力G-Core和洛杉矶,主打香港CN2直连云服务器、美国CN2直连云服务器产品。最近看到DMIT商家有对洛杉矶CN2 GIA VPS端口进行了升级,不过价格没有变化,依然是季付28.88美元起。...
sharktech怎么样?sharktech (鲨鱼机房)是一家成立于 2003 年的知名美国老牌主机商,又称鲨鱼机房或者SK 机房,一直主打高防系列产品,提供独立服务器租用业务和 VPS 主机,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹,所有产品均提供 DDoS 防护。此文只整理他们家10Gbps专用服务器,此外该系列所有服务器都受到高达 60Gbps(可升级到 100Gbps)的保护。...
iON Cloud怎么样?iON Cloud今天发布了7月份优惠,使用优惠码:VC4VF8RHFL,新购指定型号VPS半年付或以上可享八五折!iON的云服务器包括美国洛杉矶、美国圣何塞(包含了优化线路、CN2 GIA线路)、新加坡(CN2 GIA线路、PCCW线路、移动CMI线路)这几个机房或者线路可供选择,有Linux和Windows系统之分,整体来说针对中国的优化是非常明显的,机器稳定可靠,比...