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.那些繁华哀伤终成过往
hostodo怎么样?快到了7月4日美国独立日,hostodo现在推出了VPS大促销活动,提供4款Hostodo美国独立日活动便宜VPS,相当于7折,低至$13/年,续费同价。Hostodo美国独立日活动结束时间不定,活动机售完即止。Hostodo商家支持加密数字货币、信用卡、PayPal、支付宝、银联等付款。Hostodo美国独立日活动VPS基于KVM虚拟,NVMe阵列,1Gbps带宽,自带一个...
搬瓦工和Vultr哪个好?搬瓦工和Vultr都是非常火爆的国外VPS,可以说是国内网友买的最多的两家,那么搬瓦工和Vultr哪个好?如果要选择VPS,首先我们要考虑成本、服务器质量以及产品的售后服务。老玩家都知道目前在国内最受欢迎的国外VPS服务商vultr和搬瓦工口碑都很不错。搬瓦工和Vultr哪个稳定?搬瓦工和Vultr哪个速度快?为了回答这些问题,本文从线路、速度、功能、售后等多方面对比这两...
美国服务器哪家平台好?美国服务器无需备案,即开即用,上线快。美国服务器多数带防御,且有时候项目运营的时候,防御能力是用户考虑的重点,特别是网站容易受到攻击的行业。现在有那么多美国一年服务器,哪家的美国云服务器好呢?美国服务器用哪家好?这里推荐易探云,有美国BGP、美国CN2、美国高防、美国GIA等云服务器,线路优化的不错。易探云刚好就是做香港及美国云服务器的主要商家之一,我们来看一下易探云美国云服...