我在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中签入。也不匹配。
答案 0 :(得分:1)
这可能与延迟有关。在大多数情况下,至少有24 -48小时未完成处理的数据,您不应该尝试从Google Analytics(分析)中请求昨天的数据。
您可以通过选中响应中的isDataGolden字段来进行检查。
指示对此请求的响应是否为金色。如果稍后再询问完全相同的请求将不会产生任何新结果,则数据为金色。
话虽这么说,要使网站上的报告与api返回的数据完全匹配非常困难。您需要索取与生成报告时相同的确切日期,维度和指标,而且很难知道网站上某些报告中使用了哪些维度和指标。
即使将sampliingLevel设置为HIGH也不会阻止采样。