如何通过 bigQuery 从谷歌分析中有效地获取价格和 ID
Posted
技术标签:
【中文标题】如何通过 bigQuery 从谷歌分析中有效地获取价格和 ID【英文标题】:How to efficiently get price & id from google analytics through bigQuery 【发布时间】:2021-08-06 11:41:34 【问题描述】:我试图创建一个从 iap 事件中提取几个参数的查询,但我似乎无法让它按我想要的方式工作。我尝试了几种不同的方法,但是在查看多天时发现了性能问题。以下是我最近的尝试,虽然我觉得这是错误的方法,但似乎是最快的。任何建议都会有所帮助。
with purchase_id as (
SELECT event_timestamp, param.value.string_value as product_id
FROM `XXX.analytics_X.events_20210803`,
UNNEST(event_params) AS param
WHERE event_name = "in_app_purchase"
AND (param.key = "product_name")
),
purchase_price as (
SELECT event_timestamp, param.value.int_value as product_price
FROM `XXX.analytics_X.events_20210803`,
UNNEST(event_params) AS param
WHERE event_name = "in_app_purchase"
AND (param.key = "price")
)
SELECT event_timestamp, product_id, product_price
FROM purchase_id as pid
JOIN purchase_price as pp
ON pid.event_timestamp = pp.event_timestamp
我正在寻找的结果是每个事件都有一行,其中包含相关参数。
timestamp | product_id | price |
---|---|---|
1627860223322000 | fun_times | 10 |
1627860223432000 | old_times | 3 |
这是一个标准的谷歌分析表,但为了完整起见,请查看屏幕截图。
【问题讨论】:
请提供样本数据、期望的结果以及对您想要实现的逻辑的清晰解释。没有数据解释的问题很难理解。 抱歉,我只是添加了一个屏幕截图。它只是一个标准的谷歌分析表。 【参考方案1】:最简单的方法是使用模式SELECT <..> FROM UNNEST(<..>)
。
如果您打算在查询中多次使用此模式,您可以定义 TEMP FUNCTION
以使其看起来更简洁:
CREATE TEMP FUNCTION GetParamValue(params ANY TYPE, target_key STRING)
AS (
(SELECT `value` FROM UNNEST(params) WHERE key = target_key LIMIT 1)
);
SELECT
event_timestamp,
GetParamValue(event_params, 'product_id').string_value AS product_id,
GetParamValue(event_params, 'product_price').int_value AS product_price
FROM <Your_table>
WHERE event_name = 'in_app_purchase';
您也可以对user_properties
使用相同的临时函数。
【讨论】:
【参考方案2】:我已经实现了这个,它读起来更好,而且速度略快:
SELECT event_timestamp,
(SELECT value.int_value FROM UNNEST(event_params)
WHERE key = "price" LIMIT 1) AS product_price,
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = "product_id" LIMIT 1) AS product_id,
FROM `XXX.analytics_X.events_20210803`
WHERE event_name = "in_app_purchase"
为了帮助其他人检查这篇文章,真的很有帮助。我一定是第一次错过了。
https://medium.com/firebase-developers/how-to-use-select-from-unnest-to-analyze-multiple-parameters-in-bigquery-for-analytics-5838f7a004c2
【讨论】:
以上是关于如何通过 bigQuery 从谷歌分析中有效地获取价格和 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 BigQuery 连接器将自定义查询从谷歌数据工作室传递到 BigQuery?
用于将数据从谷歌电子表格加载到 bigquery 的独立脚本
如何通过 BigQuery 从 Firebase 分析中获取事件转换