为什么Analytics Reporting Api数据与Google Analytics信息中心不匹配?

时间:2016-07-27 15:27:31

标签: google-analytics google-analytics-api google-analytics-v4

我正在开发一个分析模块,用于从Google Analytics,Facebook和Twitter Analytics API中提取数据。

使用Analytics Reporting Api V4从Google Analytics中提取数据。 Total number of sessions值与我在Dashboard上看到的值不匹配。我使用指标ga:sessions来提取会话数。

在某些情况下,来自报告API的会话数与Dashboard匹配。但不是所有的时间。我发现很难在未经适当解释的情况下从QA获得批准。

我多次检查维度过滤器和报告查询,但找不到任何错误。

在我的报告请求中添加了samplingLevel,但仍看到相同的结果。

ReportRequest totalNumberOfSessions = new ReportRequest().setViewId(VIEW_ID)
                .setDateRanges(Arrays.asList(lifetime))
                .setDimensions(Arrays.asList(custom))
                .setDimensionFilterClauses(Arrays.asList(clause))
                .setMetrics(Arrays.asList(sessions))
                .setSamplingLevel("LARGE");

1 个答案:

答案 0 :(得分:1)

根据https://developers.google.com/analytics/devguides/reporting/core/v4/samples,使用setSegments而不是setDimensionFilterClauses。 像这样:

    String path = "<your_path>";
    SegmentDimensionFilter exactPathDimensionFilter = new SegmentDimensionFilter()
            .setDimensionName("ga:pagePath").setOperator("EXACT")
            .setExpressions(Arrays.asList(path));
    SegmentFilterClause exactPathSegmentFilterClause = new SegmentFilterClause()
            .setDimensionFilter(exactPathDimensionFilter);
    OrFiltersForSegment orFiltersForSegment = new OrFiltersForSegment()
            .setSegmentFilterClauses(Arrays.asList(exactPathSegmentFilterClause));
    SimpleSegment simpleSegment = new SimpleSegment()
            .setOrFiltersForSegment(Arrays.asList(orFiltersForSegment));
    SegmentFilter segmentFilter = new SegmentFilter()
            .setSimpleSegment(simpleSegment);
    SegmentDefinition segmentDefinition = new SegmentDefinition()
            .setSegmentFilters(Arrays.asList(segmentFilter));
    DynamicSegment dynamicSegment = new DynamicSegment().setSessionSegment(
            segmentDefinition).setName("Path pageviews");
    Segment segment = new Segment().setDynamicSegment(dynamicSegment);

    ReportRequest request = new ReportRequest().setViewId(VIEW_ID)
            .setDateRanges(Arrays.asList(dateRange))
            .setMetrics(Arrays.asList(metric))
            .setDimensions(Arrays.asList(new Dimension().setName("ga:segment")))
            .setSegments(Arrays.asList(segment));

此示例使用路径过滤器。您应该根据“子句”变量进行更改。