如何使用 Google Analytics 数据在 Bigquery 中获取可用的日期时间字段

Posted

技术标签:

【中文标题】如何使用 Google Analytics 数据在 Bigquery 中获取可用的日期时间字段【英文标题】:How to get a usable datetime field in Bigquery using Google Analytics data 【发布时间】:2019-10-10 11:12:38 【问题描述】:

我正在使用 BigQuery 查询 Google Analytics 并按时间提取交易 ID。我很难使用提供的列创建可用的日期时间字段。 使用下面的查询,我能得到的最接近的是“2019-02-11T19:00:00”,其中不包括分钟。 (秒不重要)

SELECT PARSE_DATETIME('%Y%m%d%H', newtime) AS datetime, orderid
FROM
(SELECT CONCAT(date, newhour, newminute) AS newtime
, Orderid
FROM
(SELECT date
, CAST(h.hour AS STRING) AS NewHour
, CAST(h.minute AS STRING) AS Newminute
, h.transaction.transactionId AS Orderid
FROM `analyticsdata*` LEFT JOIN UNNEST(hits) as h
WHERE h.transaction.transactionId!= ''))

目前我遇到的问题: 如果

以下是未格式化的数据:

|日期 |小时 |分钟 |订购|

|20191010 | 12 | 7 | 12345|

我希望它如何显示:

|日期时间 |订购 |

|2019-10-10T12:07:00 | 12345 |

【问题讨论】:

请提供样本数据和期望的结果。 【参考方案1】:

我总是使用visitstarttime*1000 + hits.time 以毫秒为单位获取会话时间戳,并添加自会话开始以来的毫秒数。您可以将其输入TIMESTAMP_MILLIS() 以获取 UTC 时间戳,您可以将其重新格式化为具有您选择的时区的字符串。

这是一个运行示例:

SELECT 
  fullVisitorId -- identify user
  ,visitstarttime -- identify session per user 
  ,hitnumber -- identify hit

  ,TIMESTAMP_MILLIS(visitstarttime*1000 + time) as hitTimeUTC -- type: timestamp
  ,FORMAT_TIMESTAMP('%c in %Z', TIMESTAMP_MILLIS(visitstarttime*1000 + time), 'Europe/Berlin') as hitTimeBerlin -- type: string

  ,DATETIME(parse_date('%Y%m%d',date),time(hour,minute,0)) localTime

FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170420`, UNNEST(hits) AS h
WHERE 
  ecommerceAction.action_type='6' -- is purchase
LIMIT 100

请务必注意hits.hourhits.minute本地 时间!意思是您在 Google Analytics(分析)界面的视图设置中设置的时间。所以如果你想比较来自不同时区的数据,你必须小心使用它。

【讨论】:

马丁做得非常好! ecommerceactiontype=6 没有返回任何结果,所以我重新应用了检查交易 id 的原始 WHERE 子句不为空 哦,我明白了。 action_type 仅用于增强型电子商务。那你在用旧的吗?【参考方案2】:

您需要包括分钟:

SELECT PARSE_DATETIME('%Y%m%d%H%M', newtime) AS datetime, orderid

注意:这假设小时和分钟值是用零填充的,所以01,而不是1

您可能只是想要:

SELECT DATETIME_ADD(PARSE_DATETIME('%Y%m%d', date), INTERVAL h.hour * 60 + h.minute minute) AS datetime

【讨论】:

以上是关于如何使用 Google Analytics 数据在 Bigquery 中获取可用的日期时间字段的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Google Analytics 数据导出到 Google GCS 存储桶或 BigQuery?

如何将用户的电子邮件/电话/地址上传到Google Analytics?

如何使用DTM将App事件发送到Google Analytics

Google Analytics iOS:它如何跟踪用户?

如何在 Android 应用程序中集成 Google Analytics

如何导出完整的 Google Analytics 历史数据? [关闭]