首页 > 解决方案 > 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();
        }
    }

在此处输入图像描述

标签: javagoogle-apigoogle-analytics-apigoogle-api-java-clientgoogle-analytics-4

解决方案


如果未指定 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上。


推荐阅读