【问题标题】:Pagination on Google Analytics using Java使用 Java 在 Google Analytics 上进行分页
【发布时间】:2020-06-03 03:12:04
【问题描述】:

我正在使用 Java 实现从 Google Analytics 中提取数据,我正在遵循以下示例:https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-java

我设法提取了我需要的数据,但我不知道如何使用其客户端设置start-index。您可以在下面看到我对默认实现所做的更改。我可以设置页面大小,但我不知道如何设置start-index

public GetReportsResponse getReport(String dateStart, String dateEnd) throws IOException {

        String[] metricsArr = {"ga:users", "ga:newUsers", "ga:sessions", "ga:totalEvents"};
        String[]  dimensionsArr = {"ga:eventLabel","ga:eventCategory","ga:eventAction", "ga:country", "ga:countryIsoCode", "ga:dateHourMinute"};

        // Create the DateRange object.
        DateRange dateRange = new DateRange();
        dateRange.setStartDate(dateStart);
        dateRange.setEndDate(dateEnd);

        // Create the Metrics object.
        ArrayList<Metric> metrics = new ArrayList<Metric>();
        for(String item : metricsArr){
            Metric m = new Metric().setExpression(item).setAlias(item.replace("ga:", ""));
            metrics.add(m);
        }

        ArrayList<Dimension> dimensions = new ArrayList<Dimension>();
        for(String item : dimensionsArr){
            Dimension d = new Dimension().setName(item);
            dimensions.add(d);
        }

        // Create the ReportRequest object.
        ReportRequest request = new ReportRequest()
                .setViewId(this.VIEW_ID)
                .setDateRanges(Arrays.asList(dateRange))
                .setMetrics(metrics)
                .setDimensions(dimensions)
                .setFiltersExpression("ga:eventCategory=@NOTICE,ga:eventCategory==Document,ga:eventCategory==Document reader")
                .setPageSize(10000);

        ArrayList<ReportRequest> requests = new ArrayList<ReportRequest>();
        requests.add(request);

        // Create the GetReportsRequest object.
        GetReportsRequest getReport = new GetReportsRequest().setReportRequests(requests);

        // Call the batchGet method.
        GetReportsResponse response = service.reports().batchGet(getReport).execute();

        // Return the response.
        return response;
    }

我怎样才能做到这一点,以便我可以浏览所有页面并提取所有项目?

【问题讨论】:

    标签: java google-analytics google-analytics-api google-api-java-client


    【解决方案1】:

    报告 API V4 使用页面令牌。来自报告 API 的回复将返回下一页的令牌,请参阅 nextPageToken。使用它,您可以进行完全相同的调用,但使用上一个回复中的 nextpagetoken 更新请求中的 pageToken。请注意,您对报告 API 进行的第一次调用不会将页面令牌附加到请求,并且最后一页不会设置 nextpagetoken。

    希望对你有帮助。

    【讨论】:

    • 谢谢,就是这样。调试时,我只看到一个整数,对我来说没有多大意义,但这就是它的完成方式。
    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多