java - java - 如何在Java中使用Google Analytics Data API(GA4)来扩展获取值以获取screenPageViews的计数?
问题描述
感谢您对我的提问的关注。当我使用下面的 java 代码从谷歌分析获取信息时,它只显示 10 个页面值...实际上,我网站上的总页面是 37 页,我想从 ga4 获取总值。我刚开始学习编程 2 个月前。请帮我解决它。
private void testUpdateGoogleAnalyticsApi() {
String ga4PropertyId = Container.config.getGa4PropertyId();
try (AlphaAnalyticsDataClient analyticsData = AlphaAnalyticsDataClient.create()) {
RunReportRequest request = RunReportRequest.newBuilder()
.setEntity(Entity.newBuilder().setPropertyId(ga4PropertyId))
.addDimensions(Dimension.newBuilder().setName("pagePath"))
.addMetrics(Metric.newBuilder().setName("screenPageViews"))
.addDateRanges(DateRange.newBuilder().setStartDate("2020-12-01").setEndDate("today")).build();
// Make the request
RunReportResponse response = analyticsData.runReport(request);
System.out.println("Report result:");
for (Row row : response.getRowsList()) {
System.out.printf("%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue());
}
} catch (IOException e) {
e.printStackTrace();
}
}
解决方案
如果未指定 RunReportRequest 中的 limit 参数,则 RunReportResponse 将仅包含 10 行。对于此报告,这意味着即使您的网站存在大量页面 (37),您也只会在 API 报告中看到 10 个页面路径。
解决方案是在 RunReportRequest 的 Builder 上使用“setLimit”方法。例如,请将请求的构建器更新为以下内容以返回最多 10,000 行。
RunReportRequest request = RunReportRequest.newBuilder()
.setEntity(Entity.newBuilder().setPropertyId(ga4PropertyId))
.addDimensions(Dimension.newBuilder().setName("pagePath"))
.addMetrics(Metric.newBuilder().setName("screenPageViews"))
.addDateRanges(DateRange.newBuilder().setStartDate("2020-12-01").setEndDate("today"))
.setLimit(10000L).build();
这里有关于这个 API 的分页机制的文档。分页指定您希望在响应中看到多少行。在这种情况下,来自您网站的页面数。
setLimit 方法控制报告响应中的行数,并记录在github上。
推荐阅读
- angular - 如何在角度 8 中解析日期 yyyy-MM-dd
- mysql - 如何在 MongoDB 中生成不在集合中的随机字符串?
- laravel - Laravel Seeding 产生的结果是预期的 3 倍
- python - ImageTk 模块有问题
- c# - 使用 gtk# 将文件从程序和拖放文件拖到任何地方(例如桌面等)
- angular - 延迟 Observable
- visual-studio - 在 Visual Studio 2019 中,通过测试的绿色和白色复选图标有什么区别?
- java - SpringBoot缓存,从@Cacheput方法调用@Cacheable方法不起作用
- php - 比较 2 个 csv 文件并在匹配时突出显示行
- reactjs - 如何处理 onChange ReactJs?里面的细节无法解释