Python中Google Analytics API中按自定义维度进行的Regexp过滤

Python中Google Analytics API中按自定义维度进行的Regexp过滤,python,api,google-analytics,google-analytics-api,Python,Api,Google Analytics,Google Analytics Api,我正在查询Python 2.7中的Google分析API。下面是两个代码示例。第一个可以工作,但不涉及我想要做的过滤。第二段代码不起作用,但表示我尝试根据自定义GA维度的内容过滤结果,在本例中,这是指页面是否包含自定义GA标记 这就是我查询GA API的方式,它可以工作,但不涉及我需要的过滤: import datetime import time from datetime import timedelta # get start and end dates in correct forma

我正在查询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_标记”作为其新闻页面标记之一的页面的度量

使用筛选器运行第二段代码会产生以下错误:

回溯(最近一次呼叫最后一次): 文件“”,第31行,在 文件“build/bdist.macosx-10.7-x86_64/egg/oauth2client/_helpers.py”,第133行,在位置包装中 文件“build/bdist.macosx-10.7-x86_64/egg/googleapiclient/http.py”,第842行,在execute中 GoogleAppClient.errors.HttpError:https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json 返回“未知维度:ga:newsPageTags” 有关详细信息,请参阅。“>

显然,我没有正确地指定自定义维度,我希望有一种方法可以查询GA API以根据自定义标记进行过滤,尽管我还没有找到好的文档来帮助我解决这个问题


谢谢

API中的自定义维度由数字而不是名称指定。例如,您可以按
ga:dimension15
而不是
ga:newsPageTags