如何在 java 中使用 Google Analytics Data API (GA4) 扩展获取值来获取 screenPageViews 的计数?

how to extend the get values while using Google Analytics Data API (GA4) in java to get count of screenPageViews?

感谢您关注我的问题。 当我使用下面的 java 代码从 google 分析中获取信息时,它只显示了 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 中的限制参数,则 RunReportResponse 将仅包含 10 行。对于此报告,这意味着即使您的网站存在更多页面 (37),您在 API 的报告中也只会看到 10 个页面路径。

解决方法是在RunReportRequest的Builder上使用“setLimit”方法。例如,请将请求的构建器更新为以下 return 最多 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 的 pagination mechanism here 的文档。分页指定您希望在响应中看到多少行。在这种情况下,您网站的页面数。

setLimit 方法控制报告响应中的行数并记录在 github here