Google Analytics(分析)仪表板数据和通过python googleapiclient导入的数据不匹配

时间:2018-08-30 07:41:39

标签: python python-3.x google-analytics google-analytics-api google-api-python-client

我在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中签入。也不匹配。

1 个答案:

答案 0 :(得分:1)

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

您可以通过选中响应中的isDataGolden字段来进行检查。

  

指示对此请求的响应是否为金色。如果稍后再询问完全相同的请求将不会产生任何新结果,则数据为金色。

话虽这么说,要使网站上的报告与api返回的数据完全匹配非常困难。您需要索取与生成报告时相同的确切日期,维度和指标,而且很难知道网站上某些报告中使用了哪些维度和指标。

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