【问题标题】:How to filter events by 2 or more user properties in Google Data Studio?如何在 Google Data Studio 中按 2 个或更多用户属性过滤事件?
【发布时间】:2019-03-27 19:16:11
【问题描述】:
我已将我的 Firebase 项目与大查询集成以存储 Firebase 分析事件。我正在使用 Data Studio 来可视化数据。我正在尝试根据用户属性过滤事件。我有 3 个用户属性,例如部门、用户名和 app_version。我可以使用任何一个用户属性名称来过滤事件,但我不能使用 2 个或所有三个用户属性来过滤事件。
例如,我试图从使用 v1.8(app_version)并属于工厂(部门)的 John Cena(用户名)那里获取事件。但是没有成功,只要我在过滤器中选择任何一个用户属性,用户属性就会在其他过滤器中消失。
有什么想法、建议吗?
【问题讨论】:
标签:
google-bigquery
firebase-analytics
google-data-studio
【解决方案1】:
好的,我找到了解决方案。我需要将用户属性 UNNEST 到单独的列中。
我使用类似这样的自定义查询创建了一个新数据源:
SELECT *,(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='app_version').string_value AS app_version,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='userName').string_value as userName,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='department').string_value as department
FROM `xxxxxxxxxxx.analytics_yyyyyyyyy.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20180521' AND '20240131';
【解决方案2】:
如果您需要在WHERE 子句中使用用户属性值,您可以执行以下操作:
SELECT *
FROM (
SELECT *,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key = 'app_version').string_value AS appVersion,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='userName').string_value as userName,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='department').string_value as department,
FROM `xxxxxxxxxxx.analytics_yyyyyyyyy.events_*`
WHERE _TABLE_SUFFIX between '20180521' AND '20240131'
) AS TOT
WHERE TOT.appVersion = '2.3.0'
AND TOT.userName = 'Example'
AND TOT.department = 'DepA'