“第一个”是指应用程序本次运行中的第一个(直到应用程序终止并重新启动),还是跨运行的第一个?
我原以为这些字段只有一个值,但它们通常有两个值。当我运行以下查询时:
SELECT
user_pseudo_id,
COUNT(*) AS the_count
FROM (
SELECT
DISTINCT user_pseudo_id,
user_first_touch_timestamp AS user_first_touch_timestamp
FROM
`noctacam.<my project>.events*`
WHERE
app_info.id = "<my bundle ID>"
ORDER BY
user_pseudo_id)
GROUP BY
user_pseudo_id
ORDER BY
the_count DESC
我发现0.6%的用户的user_first_touch_timestamp有两个不同的值。这是Firebase中的一个bug吗?
同样,对于首次打开时间:
SELECT
user_pseudo_id,
COUNT(*) AS the_count
FROM (
SELECT
DISTINCT user_pseudo_id,
user_properties.value.int_value AS first_open_time
FROM
`noctacam.<my project>.events*`,
UNNEST(user_properties) AS user_properties
WHERE
app_info.id = "<my bundle ID>"
AND user_properties.key = "first_open_time"
ORDER BY
user_pseudo_id)
GROUP BY
user_pseudo_id
ORDER BY
the_count DESC
完全相同的0.6%的用户在此字段中也有两个不同的值。
参考文件:https://support.google.com/firebase/answer/7029846?hl=enhttps://support.google.com/firebase/answer/6317486?hl=en
3条答案
按热度按时间ldioqlga1#
我也开始想知道这两个参数的差异,并发现了这个差异。
从用户属性:
First Open Time
-用户首次打开应用的时间(毫秒,UTC),四舍五入到下一个小时。从BigQuery导出架构:
user_first_touch_timestamp
-用户首次打开应用的时间(微秒)。在我的例子中,四舍五入是不同之处。我设想Firebase由于某种原因需要将X1 M2 N1 X作为用户属性,所以他们只是四舍五入并复制了X1 M3 N1 X。
我知道它仍然没有回答你的全部问题,也没有解释为什么0.6%的用户有两种不同的价值观。我仍然认为这可能会帮助这里的一些人。
jexiocij2#
这两个参数的描述也存在差异:
first_open =“用户在安装或重新安装后首次启动应用”
而first_touch_timestamp**没有提到重新安装时的值更新。**您的0.6%差异很可能是重新安装应用的用户。
yyyllmsg3#
差异在于数据的准确性:User_first_touch_timestamp给出的是准确时间,First_open_time给出的是舍入后的时间。
请看下面的例子:
用户1:用户第一次触摸时间戳:1670263710266000 2022年12月5日星期一20:08:30 GMT+0200首次营业时间:1670266800000 2022年12月5日星期一21:00:00格林尼治标准时间+0200
用户2:用户第一次触摸时间戳:1670248060903000 2022年12月5日星期一15:47:40 GMT+0200首次开放时间:1670248800000 2022年12月5日星期一16:00:00格林尼治标准时间+0200