我一直在编写一个Python脚本,为YTD的特定视图提取GA数据.在这段时间里,我有一个机器人流量,它在视图中被过滤掉了,但在4月22日仍然有一个很好的流量块.我想使用一个段过滤器和ga:BrowServerVersion,并排除该流量.不幸的是,我遇到了以下错误:
<;HttpError 400在请求https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json时返回"接收到无效的JSON有效负载.未知名称"not"at"report\u requests[0].segments[0].dynamic\u segment.user\u segment.segment\u filters[0].simple\u segment.or\u filters\u for\u segment.segment\u filter\u子句[0].dimension\u filter:找不到字段.","description":接收到无效的JSON有效负载."report\u requests[0].segments[0].dynamic\u segment.user\u segment.segment\u filters[0].simple\u segment.或segment\u filters\u for\u segment.segment\u filter\u子句[0]的未知名称"not".维度过滤器:找不到字段.">;
以下是相关代码:
def get_report(analytics, start_date, end_date_delta, pageToken = None):
"""Queries the Analytics Reporting API V4.
Args:
analytics: An authorized Analytics Reporting API V4 service object.
Returns:
The Analytics Reporting API V4 response.
"""
return analytics.reports().batchGet(
body={
'reportRequests': [
{
'viewId': VIEW_ID,
'pageSize': 10000,
'pageToken': pageToken,
'dateRanges': [{'startDate': start_date.strftime("%Y-%m-%d") , 'endDate': (start_date+end_date_delta).strftime("%Y-%m-%d")}],
'metrics': [{'expression': 'ga:pageviews'}, {'expression': 'ga:sessions'}, {'expression': 'ga:pageviewsPerSession'}, {'expression': 'ga:totalEvents'}, {'expression': 'ga:uniqueEvents'}, {'expression': 'ga:timeOnPage'}, {'expression': 'ga:users'}, {'expression': 'ga:newUsers'}],
'dimensions': [{'name':'ga:date'}, {'name':'ga:sourceMedium'}, {'name':'ga:pageTitle'}, {'name':'ga:eventLabel'}, {'name':'ga:eventCategory'}, {'name':'ga:adContent'}, {'name':'ga:segment'}, {'name':'ga:campaign'}, {'name':'ga:dimension8'} ],
'segments':[{
'dynamicSegment':
{
'name': 'Apr Bot Traffic',
'userSegment':
{
'segmentFilters':[
{
'simpleSegment':
{
'orFiltersForSegment':
{
'segmentFilterClauses': [
{
'dimensionFilter':
{
'dimensionName':'ga:browserVersion',
'not':True,
'operator':'EXACT',
'expressions':'80.0.3987.163'
}
}]
}
}
}]
}
}
}]
}]
}
).execute()