当我包含多个维度时,我目前使用 Google 搜索控制台 API 得到不可预测的结果。我认为有几个不同的问题是相关的。我将提供每个示例。
首先,返回的行数根据 rowLimit 变化。在你判断之前,听我说完。当我发出一个 rowLimit 为 5,000 的请求时,我得到 3836 行。当我将 rowLimit 减少到 1000 时,我得到 674 行。当 rowLimit 为 1000 时,我显然希望获得 1000 行。
这是我的测试脚本。我将排除身份验证部分,因为它显然可以正常工作。
def execute_request(service, property_uri, request):
return service.searchanalytics().query(
siteUrl=property_uri, body=request).execute()
service = build('webmasters', 'v3', http=http)
site = 'http://www.example.com'
# Request using 5000 rowLimit
request = {
'startDate': '2017-03-19',
'endDate': '2017-03-19',
'dimensions': ['query', 'page', 'country', 'device'],
'rowLimit': 5000
}
results = execute_request(service, site, request)
print request
print 'total number of rows', len(results.get('rows', []))
# Request using 1000 rowLimit
request = {
'startDate': '2017-03-19',
'endDate': '2017-03-19',
'dimensions': ['query', 'page', 'country', 'device'],
'rowLimit': 1000
}
results = execute_request(service, site, request)
print request
print 'total number of rows', len(results.get('rows', []))
这打印:
{'startDate': '2017-03-19', 'endDate': '2017-03-19', 'dimensions' ['query', 'page', 'country', 'device'], 'rowLimit': 5000}
total number of rows 3836
{'startDate': '2017-03-19', 'endDate': '2017-03-19', 'dimensions': ['query', 'page', 'country', 'device'], 'rowLimit': 1000}
total number of rows 674
下一个问题可能是相关的。我希望当我增加维度的数量时——越来越细化——更多的行将可用,而不是更少。
保持 5000 的固定 rowLimit,如果我提出包含一个维度的请求,我会得到 4988 个结果。当我包括所有四个维度时,我得到 3836 行。我希望在包含更多维度时至少获得尽可能多的行。
为简洁起见,我不会包含我用于此测试的测试脚本。它与上面的几乎相同。但我将包含结果,以便您查看请求和返回的行数。
{'startDate': '2017-03-19', 'endDate': '2017-03-19', 'dimensions': ['page'], 'rowLimit': 5000}
total number of rows 4988
{'startDate': '2017-03-19', 'endDate': '2017-03-19', 'dimensions': ['query', 'page', 'country', 'device'], 'rowLimit': 5000}
total number of rows 3836
如果我做错了什么,或者这似乎是 API 的错误,这将很有帮助。提前致谢。