在 Google Analytics API 中按自定义维度进行正则表达式过滤 Python
Regexp filtering by custom dimensions in Google Analytics API in Python
我正在查询 Python 2.7 中的 Google 解析 API。下面是两个代码示例。第一个有效,但不涉及我想做的过滤。第二段代码不起作用,但表示我尝试根据自定义 GA 维度的内容过滤我的结果,在本例中是页面是否包含自定义 GA 标签。
这是我查询 GA API 的方式,有效,但不涉及我需要的过滤:
import datetime
import time
from datetime import timedelta
# get start and end dates in correct format
start_date = d1.strftime('%Y-%m-%d')
end_date = d2.strftime('%Y-%m-%d')
# Create ReportRequest object
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'ga:32981293',
'dateRanges': [{'startDate': start_date, 'endDate': end_date}],
'metrics': [{'expression': 'ga:sessions'},
{'expression': 'ga:pageviews'},
{'expression': 'ga:users'},
{'expression': 'ga:exits'},
{'expression': 'ga:avgSessionDuration'},
{'expression': 'ga:avgTimeonPage'},
{'expression': 'ga:sessionsPerUser'},
{'expression': 'ga:percentNewSessions'},
{'expression': 'ga:bounceRate'}],
'dimensions': [{"name": "ga:pagePath"}],
'orderBys': [{"fieldName": "ga:pageviews", "sortOrder": "DESCENDING"}],
'pageSize': 500
}]
}
).execute()
因此,上面的内容可以为我提供一个对象,其中我的页面路径根据综合浏览量进行排序,并且我得到了我要求的相关指标。
我想要做的是添加一个过滤器,以便我只获取包含特定标记的页面路径的信息。在这种情况下,我有一个名为 "News Page Tags" 的自定义 GA 维度,我只想获取具有特定新闻页面标签的页面路径的信息。
这是一种尝试,但没有用。我希望有人可以帮我解决一些语法问题。
import datetime
import time
from datetime import timedelta
# get start and end dates in correct format
start_date = d1.strftime('%Y-%m-%d')
end_date = d2.strftime('%Y-%m-%d')
cur_tag = 'example string'
# Create ReportRequest object
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'ga:32981293',
'dateRanges': [{'startDate': start_date, 'endDate': end_date}],
'metrics': [{'expression': 'ga:sessions'},
{'expression': 'ga:pageviews'},
{'expression': 'ga:users'},
{'expression': 'ga:exits'},
{'expression': 'ga:avgSessionDuration'},
{'expression': 'ga:avgTimeonPage'},
{'expression': 'ga:sessionsPerUser'},
{'expression': 'ga:percentNewSessions'},
{'expression': 'ga:bounceRate'}],
'dimensions': [{"name": "ga:pagePath"},
{"name": "ga:newsPageTags"}],
'orderBys': [{"fieldName": "ga:pageviews", "sortOrder": "DESCENDING"}],
'dimensionFilterClauses': [
{"filters": [{"dimensionName": "ga:newsPageTags",
"operator": "REGEXP",
"expressions": [cur_tag]}]
}
],
'pageSize': 500
}]
}
).execute()
因此,在上面,我添加了 "ga:newsPageTags" 作为第二个维度,目的是过滤页面,以便我只获取将 "cur_tag" 作为其新闻页面之一的页面的指标标签。
运行 使用过滤器的第二段代码产生以下错误:
回溯(最后一次调用):
文件“”,第 31 行,位于
文件 "build/bdist.macosx-10.7-x86_64/egg/oauth2client/_helpers.py",第 133 行,在 positional_wrapper 中
文件 "build/bdist.macosx-10.7-x86_64/egg/googleapiclient/http.py",第 842 行,正在执行
googleapiclient.errors.HttpError:https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json 返回“未知维度:ga:newsPageTags
有关详细信息,请参阅 https://developers.google.com/analytics/devguides/reporting/core/dimsmets。">
显然我没有正确指定我的自定义维度,我希望有一种方法可以查询 GA API 以根据自定义标签进行过滤,尽管我没有找到好的文档帮我解决这个问题。
谢谢!
API 中的自定义维度是按编号而不是名称指定的。因此,例如,您将按 ga:dimension15
而不是 ga:newsPageTags
进行过滤
我正在查询 Python 2.7 中的 Google 解析 API。下面是两个代码示例。第一个有效,但不涉及我想做的过滤。第二段代码不起作用,但表示我尝试根据自定义 GA 维度的内容过滤我的结果,在本例中是页面是否包含自定义 GA 标签。
这是我查询 GA API 的方式,有效,但不涉及我需要的过滤:
import datetime
import time
from datetime import timedelta
# get start and end dates in correct format
start_date = d1.strftime('%Y-%m-%d')
end_date = d2.strftime('%Y-%m-%d')
# Create ReportRequest object
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'ga:32981293',
'dateRanges': [{'startDate': start_date, 'endDate': end_date}],
'metrics': [{'expression': 'ga:sessions'},
{'expression': 'ga:pageviews'},
{'expression': 'ga:users'},
{'expression': 'ga:exits'},
{'expression': 'ga:avgSessionDuration'},
{'expression': 'ga:avgTimeonPage'},
{'expression': 'ga:sessionsPerUser'},
{'expression': 'ga:percentNewSessions'},
{'expression': 'ga:bounceRate'}],
'dimensions': [{"name": "ga:pagePath"}],
'orderBys': [{"fieldName": "ga:pageviews", "sortOrder": "DESCENDING"}],
'pageSize': 500
}]
}
).execute()
因此,上面的内容可以为我提供一个对象,其中我的页面路径根据综合浏览量进行排序,并且我得到了我要求的相关指标。
我想要做的是添加一个过滤器,以便我只获取包含特定标记的页面路径的信息。在这种情况下,我有一个名为 "News Page Tags" 的自定义 GA 维度,我只想获取具有特定新闻页面标签的页面路径的信息。
这是一种尝试,但没有用。我希望有人可以帮我解决一些语法问题。
import datetime
import time
from datetime import timedelta
# get start and end dates in correct format
start_date = d1.strftime('%Y-%m-%d')
end_date = d2.strftime('%Y-%m-%d')
cur_tag = 'example string'
# Create ReportRequest object
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'ga:32981293',
'dateRanges': [{'startDate': start_date, 'endDate': end_date}],
'metrics': [{'expression': 'ga:sessions'},
{'expression': 'ga:pageviews'},
{'expression': 'ga:users'},
{'expression': 'ga:exits'},
{'expression': 'ga:avgSessionDuration'},
{'expression': 'ga:avgTimeonPage'},
{'expression': 'ga:sessionsPerUser'},
{'expression': 'ga:percentNewSessions'},
{'expression': 'ga:bounceRate'}],
'dimensions': [{"name": "ga:pagePath"},
{"name": "ga:newsPageTags"}],
'orderBys': [{"fieldName": "ga:pageviews", "sortOrder": "DESCENDING"}],
'dimensionFilterClauses': [
{"filters": [{"dimensionName": "ga:newsPageTags",
"operator": "REGEXP",
"expressions": [cur_tag]}]
}
],
'pageSize': 500
}]
}
).execute()
因此,在上面,我添加了 "ga:newsPageTags" 作为第二个维度,目的是过滤页面,以便我只获取将 "cur_tag" 作为其新闻页面之一的页面的指标标签。
运行 使用过滤器的第二段代码产生以下错误:
回溯(最后一次调用): 文件“”,第 31 行,位于 文件 "build/bdist.macosx-10.7-x86_64/egg/oauth2client/_helpers.py",第 133 行,在 positional_wrapper 中 文件 "build/bdist.macosx-10.7-x86_64/egg/googleapiclient/http.py",第 842 行,正在执行 googleapiclient.errors.HttpError:https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json 返回“未知维度:ga:newsPageTags 有关详细信息,请参阅 https://developers.google.com/analytics/devguides/reporting/core/dimsmets。">
显然我没有正确指定我的自定义维度,我希望有一种方法可以查询 GA API 以根据自定义标签进行过滤,尽管我没有找到好的文档帮我解决这个问题。
谢谢!
API 中的自定义维度是按编号而不是名称指定的。因此,例如,您将按 ga:dimension15
而不是 ga:newsPageTags