【问题标题】:Why is Analytics Reporting Api data not matching with Google Analytics Dashboard?为什么 Analytics Reporting Api 数据与 Google Analytics Dashboard 不匹配?
【发布时间】:2016-12-01 17:17:13
【问题描述】:

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

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

在某些情况下,来自报告 api 的会话数与仪表板相匹配。但并非总是如此。如果没有适当的解释,我发现很难获得 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");

【问题讨论】:

  • 最常见的原因是数据被采样了,能否确认您的查询是否包含采样数据?
  • @PhilipWalton 采样数据是什么意思?如果你愿意,我可以用代码更新问题。
  • 我认为采样大小应该不是问题。差异在于自定义变量的总会话数。例如,仪表板显示 35 个会话,但 api 为同一自定义变量返回 31 个会话。几乎一半的自定义变量都会发生这种情况。
  • 抽样是唯一常见的原因。如果您的结果没有被抽样,那么在不了解 API 请求与 UI 报告的详细信息的情况下,就不可能知道原因是什么。 FWIW,99% 的时间人们报告这个(对于非抽样报告),原因是 API 请求和报告之间的细微差别。

标签: google-analytics google-analytics-api google-analytics-firebase


【解决方案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));

此示例使用路径过滤器。你应该根据你的“条款”变量来改变它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多