我正在使用 Google Java Client Library 开发自定义 Adsense 报告工具适用于Android。我已成功通过身份验证,并且可以对服务器进行 API 调用。但现在当我收到响应时,我不知道如何解析它并向用户正确显示结果。
根据 javaDocs,AdsenseReportsGenerateResponse.getRows()生成一个列表>但我有点迷失如何正确解析它以获得:
-Today's earnings
-Yesterday's earnings
-Last 7 days
-Last month
-From the beginning of time
这是与问题相关的部分代码
Reports.Generate request = adsense.reports().generate(startDate, endDate);
request.setMetric(Arrays.asList("PAGE_VIEWS", "AD_REQUESTS", "AD_REQUESTS_COVERAGE", "CLICKS",
"AD_REQUESTS_CTR", "COST_PER_CLICK", "AD_REQUESTS_RPM", "EARNINGS"));
request.setDimension(Arrays.asList("DATE", "WEEK", "MONTH"));
request.setSort(Arrays.asList("+DATE"));
AdsenseReportsGenerateResponse response = request.execute();
//TODO: Here be dragons
response.getRows();
编辑:这是 javaDoc,其中提到 getRow()
嗯,这个网站上似乎没有人可以提供帮助?!
最佳答案
您应该会发现我们的示例代码很有用:http://code.google.com/p/google-api-java-client/wiki/APIs#AdSense_Management_API
这是打印输出的代码 fragment 。请注意,这是针对命令行应用程序的,但应该很容易适应:
if ((response.getRows() != null) && !response.getRows().isEmpty()) {
// Display headers.
for (AdsenseReportsGenerateResponseHeaders header : response.getHeaders()) {
System.out.printf("%25s", header.getName());
}
System.out.println();
// Display results.
for (List<String> row : response.getRows()) {
for (String column : row) {
System.out.printf("%25s", column);
}
System.out.println();
}
System.out.println();
} else {
System.out.println("No rows returned.");
}
对于获取不同时间段的数据,您可能应该运行不同的报告,而不是将其全部塞入一个报告中,因为这将需要不同的开始日期和结束日期。其工作原理如下:
- 今天的收入:将开始日期和结束日期设置为今天,将维度列表设置为“日期”
- 昨天的收入:将开始日期和结束日期设置为昨天,将维度列表设置为“DATE”
- 过去 7 天:如果您需要每天的数据,则可以将开始日期设置为 7 天前,将结束日期设置为今天,并将维度列表设置为日期。如果您想汇总统计数据,您可能需要自己计算,因为“周”和“月”指的是日历周和月,而不是最近 7 天。
- 上个月:开始日期为上个月 1 日,结束日期为该月最后一天,维度“MONTH”。
- 所有时间:您希望如何汇总?每月?然后将开始日期设置为 1980 年 1 月 1 日,结束日期设置为今天,维度设置为月份。
这篇博文应该有助于更好地理解报告概念:http://adsenseapi.blogspot.com/2011/11/adsense-management-api-diving-into.html
如果您需要其他帮助,请告诉我!
关于java - 在 Android 中解析 List<List<String>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779456/