【发布时间】:2018-12-06 16:09:38
【问题描述】:
我正在尝试按页面路径过滤数据,这在大多数情况下都很简单。但是,我得到了一个意外的结果:
data = service.data().ga().get(
ids='ga:' + profile_id,
start_date='2018-06-15',
end_date='yesterday',
metrics='ga:sessions,ga:newUsers,ga:sessionDuration,ga:goal12Completions,ga:goal4Completions,ga:goal5Completions,ga:bounces,ga:users',
dimensions='ga:date,ga:sourceMedium,ga:userType,ga:country,ga:region,ga:city,ga:pagePath',
sort='ga:date',
filters='ga:pagePath=~/path1/path2.*',
start_index=index,
max_results=10000).execute()
return data
Analytics 中的数据具有如下结构的页面数据:
- domain.com/path1/path2/
- domain.com/path1/path2/some
- domain.com/path1/path2/extra
- domain.com/path1/path2/parameters
我希望上面的过滤器为这些页面结构中的每一个返回数据,但是,它只返回在路径 2 之后具有参数的页面的数据:
- domain.com/path1/path2/some
- domain.com/path1/path2/extra
- domain.com/path1/path2/parameters
我尝试了各种方法来过滤这些数据,包括:
filters='ga:pagePath=@/path1/path2'
filters='ga:pagePath=@/path2'
我还尝试将搜索字符串作为变量传递到产生相同结果的过滤器中。
我还在查询资源管理器中对其进行了测试,结果与我的脚本相同。但是,在 GA 的高级过滤器区域中过滤相同的正则表达式会给我从上面第一个项目符号列表中得到的结果。我还将一些数据放入了一个文本文件并对其进行了正则表达式搜索,这给了我所有预期的结果。
我的下一步是测试删除特定指标以查看是否存在导致问题的组合,但根据文档不应该存在。
对调试或过滤器更正的后续步骤有什么建议吗?
【问题讨论】:
-
你的正则表达式看起来是正确的。您确定您的 pagePath 值仅是 /path1/path2 吗?将过滤器更改为 filters='ga:pagePath=~/path1.*' 会发生什么?
-
从那以后我做了很多挖掘工作,核心问题是将 pagePath 作为一个维度与除日期之外的任何其他维度混合。维度和指标资源管理器表明它应该是可能的,但这就是问题的根源。只做 path1 的问题在于它是我真正关心的 path2。也就是说,我只尝试了 path2 无济于事。我确信要么存在不允许的未记录混合物,要么 API 中的某个地方存在错误。它返回匹配的数据,但只包含在 path2 之后的 URL。
-
您可能知道,如果其中一个维度未定义,则不会返回任何行。您是否有可能包含某些行未定义的维度,从而消除了 path2?
-
我继续使用尺寸
pagePath和sourceMedium对其进行了测试,结果相同。 GA 中的每条记录都至少记录了这一点,因此那里不应该存在空值。我还尝试了从原始帖子单独使用pagePath到相同结果(路径+城市、路径+区域等)的所有组合。在某些情况下,唯一具有返回未定义/空结果值的维度是region。
标签: python google-analytics-api