首页 > 解决方案 > Google Analytics Dashboard Data 和通过 python googleapiclient 导入的数据不匹配

问题描述

我在 Google Analytics(分析)仪表板中有一个自定义报告。我也通过 python googleapiclient 获取这些数据。但是仪表板和这之间的数据不匹配。通过 python 获得的数据点始终存在约 10% 的差异。

这是报告对象的格式。

def get_report(analytics, token):
        return analytics.reports().batchGet(
            body={
                'reportRequests': [
                    {
                        'viewId': VIEW_ID,
                        'dateRanges': [{'startDate': '1daysAgo', 'endDate': '1daysAgo'}],
                        'metrics': [
                            {'expression': 'ga:users'},
                            ........
                        ],
                        'dimensions': [
                            {'name': 'ga:date'},
                            {'name': 'ga:hour'},
                                ....
                        ],
                        'pageSize': 100000,
                        'pageToken': token,  
                        'samplingLevel': 'HIGH',
                    }]
            }
        ).execute()

我相信采样不是问题,因为 report.get('samplesReadCounts') 返回 None。

可能是什么问题呢?签入 query-explorer 。也不匹配。

标签: pythonpython-3.xgoogle-analyticsgoogle-analytics-apigoogle-api-python-client

解决方案


这可能与延迟有关。大多数情况下,您不应该尝试从 Google Analytics 请求昨天的数据,这些数据至少在 24 -48 小时内还没有完成处理。

您可以通过检查响应中的isDataGolden字段来检查这一点。

指示对此请求的响应是否为黄金。如果在稍后的时间点询问完全相同的请求不会产生任何新结果,那么数据就是黄金。

话虽如此,很难让网站上的报告与 api 返回的数据完全匹配。您需要请求与构建报告相同的确切日期、维度和指标,并且很难知道网站上的某些报告中使用了哪些维度和指标。

即使将 sampliingLevel 设置为 HIGH 也不会阻止采样。


推荐阅读