添加维度过滤器时,不会返回任何结果(Python-API)

时间:2018-10-23 08:14:07

标签: google-analytics google-analytics-api

我目前有一个Python脚本,该脚本正在与广告系列相关的URL列表中运行,并且我正尝试在一些不同维度上交叉引用这些URL。

这是我当前拥有的代码:

def get_demographics(analytics, page_path):
    return analytics.reports().batchGet(
        body={
            'reportRequests': [{
                'viewId': view_id,
                'dateRanges': [{'startDate': '2018-01-01', 'endDate': 'today'}],
                'metrics': [{'expression': 'ga:pageviews'}],
                'dimensions': [{'name': 'ga:userAgeBracket'}],
                'dimensionFilterClauses': [{
                    'filters': [
                        {
                            "dimensionName": "ga:pagePath",
                            "expressions": [page_path]

                        }
                    ]
                }
            ]
        }]
    }
    ).execute()

但是,当我运行代码时,它总是返回0个结果。

我启用了受众特征,并且尝试了以下操作:

  • 将页面浏览量更改为会话
  • 尝试不同的维度(例如性别)
  • 删除过滤器-实际上确实可以给我结果,但是我当然需要过滤器才能知道我在哪个页面上

我相信我可以交叉引用它们,因为当我通过查询浏览器运行它时,它会输出预期结果,并且当我将过滤器和尺寸添加到Google表格中并使用Google表格插件时,结果再次出现正确。

虽然这两种方法都是可行的,但我必须这样做的次数才有意义使其自动化。

[edit:只是要说,如果我也删除维度,它也可以工作,但又再次破坏了目的-因此问题似乎出在维度和DimensionFilterClauses之间,但我不知道为什么]

[编辑2:包括查询浏览器的图像以使用相同的维度/指标等进行显示。]

enter image description here

2 个答案:

答案 0 :(得分:0)

维度过滤条件:https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#DimensionFilter

我认为您缺少运算符或默认为正则表达式,请尝试“精确”。

'dimensionFilterClauses': [{
                    'filters': [
                        {
                            "dimensionName": "ga:pagePath",
                            "operator": "EXACT",
                            "expressions": [page_path]

                        }
                    ]

答案 1 :(得分:0)

显然,这已降至个人可识别信息的数据阈值。

由于某些页面的观看率低,因此显示0个结果。我注意到,在页面浏览量高得多(几千)的页面上,浏览量更明显。

根据数据阈值部分here