firebase - GA/Firebase 与 GBQ/Tableau 活跃用户的差异
问题描述
我正在研究一些应用程序指标,并且无法将 Google BigQuery 中的“活跃用户”数字与 Firebase 和 Google Analytics 联系起来。我还将数据从 GBQ 提取到 Tableau 中。
GBQ查询——
SELECT event_date, COUNT(DISTINCT user_id)
FROM `MyTable..events_*`,
UNNEST( event_params) as event
WHERE event_name in ('user_engagement')
GROUP BY event_date
ORDER BY event_date ASC
我还尝试了来自Firebase Sample Queries的第 N 天 Active Users 查询。
/**
* Builds an audience of N-Day Active Users.
*
* N-day active users = users who have logged at least one user_engagement
* event in the last N days.
*/
SELECT --event_date,
COUNT(DISTINCT user_id) AS n_day_active_users_count
FROM
-- PLEASE REPLACE WITH YOUR TABLE NAME.
`MyTable..events_*`
WHERE
event_name = 'user_engagement'
AND _TABLE_SUFFIX = '20191220';
当我运行上面的查询时得到的结果是 13,929,它与 Tableau 中的数字相匹配。但是,当我在 Firebase 或 Google Analytics 仪表板中过滤到那一天时,我得到 17,726。您也可以在下表中看到这一点。
Tableau Logic - 我像这样创建了一个名为 DAU 的计算字段,
{ FIXED [Event Date]: COUNTD(IF [event_name] = 'user_engagement' THEN [user_id] END)}
Tableau 和 GBQ 产生相同的数字。但是,我在 Google Analytics 和 Firebase 仪表板中看到 1 天活跃用户的不同数字。我已经在网上浏览了大量资源,但由于时间戳等原因,我无法弄清楚为什么我的数字与通常的差异相差甚远。
我对 GA/Firebase 和 GBQ 应用程序也很陌生,所以我不太确定我做错了什么或者我的解释是否不正确。任何想法对我来说都是一种学习。
谢谢!
解决方案
至于 BigQuery N-Days active users 查询,我建议构建与示例完全相同的查询结构,以便具有与Firebase仪表板数据类似的行为:
报告中的指标与您用于报告的日期范围内的最后一天相关。例如,如果您的日期范围是 1 月 1 日到 1 月 28 日:
1 天活跃用户数:1 月 28 日(日期范围的最后一天)在您的网站或应用上发起会话的唯一用户数。
7 天活跃用户数:从 1 月 22 日到 1 月 28 日(您的日期范围的最后 7 天)在您的网站或应用程序上发起会话的唯一用户数。
不幸的是,我没有您完全相同的数据来进行一些尝试和错误测试,但我会开始尝试这样的事情:
SELECT --event_date,
COUNT(DISTINCT user_id) AS n_day_active_users_count
FROM
-- PLEASE REPLACE WITH YOUR TABLE NAME.
`MyTable..events_*`
WHERE
event_name = 'user_engagement'
AND event_timestamp >
UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 1 DAY))
AND _TABLE_SUFFIX = '20191220';
为了在“20191220”这一天获得“user_engagement”事件的 1 天活跃客户。请注意,选择了固定的日期范围,但没有为您上次查询中的事件选择 N 天间隔。
这里有一些关于 _TABLE_SUFFIX 伪列过滤的进一步参考。
推荐阅读
- c - C程序模拟一个简单的计算器
- python-3.x - npyscreen 上的 NPSApp 和 StandardApp 有什么区别?
- watchkit - watchOS可以单独连接BLE设备吗?
- arrays - 如何从结构数组中获取值?(C)
- django - 线程 django-main-thread 中的异常 - 错误
- ios - 在 UITableView Drag&Drop 中如何获取触摸的位置
- java - 运行应用程序时出现 IntelliJ noclassdeffounderror
- swift - 如何使用结构中的数据更改按钮的文本?
- java - 如何 .add 到 ArrayList