本文共 4627 字,大约阅读时间需要 15 分钟。
首先,申请Google帐号和Google Analytics服务,并将统计代码放入你想统计的网站中一段时间,确保你的Google Analytics中已有数据。
在Google Analytics中,进入你的配置文件修改界面,如图,记下红色标记的数字,这是你的“Table ID”。
下面代码是我根据Google官方文档修改并注释的一段代码,就可以实现访问量等信息的统计了。
package cn.edu.KFC.bean;import com.google.gdata.client.analytics.AnalyticsService;import com.google.gdata.client.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;import com.google.gdata.util.AuthenticationException;import com.google.gdata.util.ServiceException;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;public class GoogleAnalytics { // 使用ClientLogin 方法访问Google Analytics。其中,两个常量分别存储用户名和密码。 private static final String CLIENT_USERNAME = "anyone@gmail.com"; //Google 帐号 private static final String CLIENT_PASS = "1234567"; //Google 密码 private static final String TABLE_ID = "ga:715123"; //此帐号有权访问的Google Analytics配置文件的TABLE ID public void myTest() { try { /* * 系统创建服务对象。服务对象的参数是一个代表应用程序名称的字符串。随后,系统将采用 setUserCredentials 方法来处理 * Google Analytics(分析)授权。 */ // Service Object to work with the Google Analytics Data Export API. AnalyticsService analyticsService = new AnalyticsService("gaExportAPI_acctSample_v2.0"); // Client Login Authorization. analyticsService.setUserCredentials(CLIENT_USERNAME, CLIENT_PASS); // Get data from the Account Feed. getAccountFeed(analyticsService); //获取帐号信息 // Access the Data Feed if the Table Id has been set. if (!TABLE_ID.isEmpty()) { // Get profile data from the Data Feed. getDataFeed(analyticsService); //获取数据信息(包括"指标"和"维度") } } catch (AuthenticationException e) { System.err.println("Authentication failed : " + e.getMessage()); return; } catch (IOException e) { System.err.println("Network error trying to retrieve feed: " + e.getMessage()); return; } catch (ServiceException e) { System.err.println("Analytics API responded with an error message: " + e.getMessage()); return; } } /** * 获取帐号feed * @param analyticsService * @throws IOException * @throws MalformedURLException * @throws ServiceException */ private static void getAccountFeed(AnalyticsService analyticsService) throws IOException, MalformedURLException, ServiceException { // Construct query from a string. URL queryUrl = new URL("https://www.google.com/analytics/feeds/accounts/default?max-results=50"); // Make request to the API. AccountFeed accountFeed = analyticsService.getFeed(queryUrl, AccountFeed.class); // Output the data to the screen. System.out.println("-------- Account Feed Results --------"); for (AccountEntry entry : accountFeed.getEntries()) { System.out.println("\nAccount Name = " + entry.getProperty("ga:accountName") + "\nProfile Name = " + entry.getTitle().getPlainText() //配置文件名称 + "\nProfile Id = " + entry.getProperty("ga:profileId") //配置文件编号 + "\nTable Id = " + entry.getTableId().getValue()); //配置文件的Table Id } } /** * 获取指标和维度信息 * @param analyticsService * @throws IOException * @throws MalformedURLException * @throws ServiceException */ private static void getDataFeed(AnalyticsService analyticsService) throws IOException, MalformedURLException, ServiceException { // Create a query using the DataQuery Object. 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); // Make a request to the API. DataFeed dataFeed = analyticsService.getFeed(query.getUrl(), DataFeed.class); // Output data to the screen. 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")); } }}最后,使用任意方式(main()或servlet)调用这个class的myTest()方法即可。
注意:
转载地址:http://uwnpi.baihongyu.com/