使用交易复制 BigQuery 中的内部促销报告
Posted
技术标签:
【中文标题】使用交易复制 BigQuery 中的内部促销报告【英文标题】:Replicate Internal Promotion report in BigQuery with transactions 【发布时间】:2020-04-08 05:26:18 【问题描述】:有人成功地在 BigQuery 中从 GA 复制了内部促销报告吗?
我正在寻找至少包含以下列的报告:日期、促销名称、促销位置、促销点击次数、促销查看次数、交易次数
根据 (https://support.google.com/analytics/answer/6014872?hl=en),交易属性的逻辑看起来相当复杂。在 BQ 的此报告中引入交易是否可能或一个好主意?
“交易如何归因于内部促销报告 将交易归因于内部促销点击或 内部推广视图。
电子商务会话中的每次点击都可以:
0 或 1 次内部推广点击 0 次或更多内部推广查看 内部促销点击归因 如果点击包含单个 内部促销点击,然后该内部促销被记入 交易。
如果会话包含多次内部促销点击,则 最后点击的内部促销将计入交易。
如果点击包含零次内部促销点击,但其中有一次 用户之前的点击确实包括内部促销点击,然后 来自上一次点击的内部促销被记入 交易。
Internal-promotion view attribution 如果以上条件都不满足 为真,但点击包含一个或多个内部推广视图,则 交易记入会话中的所有促销视图。”
【问题讨论】:
你做到了吗?我也面临同样的问题 不,很遗憾没有。但客户明白准确匹配数字是一项挑战。 【参考方案1】:我不确定我是否完全理解了您的问题,但是 GA 上的内部促销归因的逻辑并不复杂,而是难以实施。要跟踪内部促销的交易归因,您需要实施增强型电子商务的渠道,而不是全部,至少是结账和购买。如果有,您需要确保您的产品数据始终如一地通过渠道。 促销归因和列表归因是您可以使用增强型电子商务获得的唯一归因。
我发现的关于增强电子商务实施的最佳材料是guide。你会发现很多关于 GTM 和 GA 的方法来实现这种轨道。
【讨论】:
谢谢,我的目标是在 Google BigQuery 中复制此报告,而不是在实施方面。所以我的意思是,与我遇到的其他任何事情相比,在那里重新创建报告看起来很复杂。 您可以在子查询中使用 UNNEST。我已经制作了一个关于电子商务行为和产品数据的信息。这篇文章对我帮助很大towardsdatascience.com/…【参考方案2】:我设法复制了内部促销,但仅使用了最后一次点击的促销归因。由于我的客户在购买页面上没有促销,我没有费心将促销视图的归因添加到查询中。但是可以通过使用促销名称查询交易命中来添加它。
我使用的逻辑是这样的:
-
获取每个促销活动的所有浏览量和点击量(表promotion_views_and_clicks)
获取点击每个促销的所有会话 ID(表 session_with_promotion_click)
从上一个查询中,获取每个会话最后点击的促销 id(表 last_promotion_click)
获取带有交易 ID 的会话 ID 以及与其关联的收入(表 session_with_transaction)
根据第 3 步中的会话 ID,将每个促销的查看次数和点击次数与交易数据结合起来,过滤促销点击后发生的交易
这是我的代码:
WITH
promotion_views_and_clicks AS (
SELECT
promo.promoName AS promotion_name,
COUNT(hit.promotionActionInfo.promoIsView) AS views,
COUNT(hit.promotionActionInfo.promoIsClick) AS clicks,
FROM
YOUR_DATA,
UNNEST(hits) AS hit,
UNNEST(hit.promotion) AS promo
GROUP BY
promotion_name),
session_with_promotion_click AS (
SELECT
promo.promoName AS promotion_name,
concat(fullvisitorid, cast(visitstarttime AS string), date) AS sessionid,
hit.time AS time,
FROM
`YOUR_DATA`,
UNNEST(hits) AS hit,
UNNEST(hit.promotion) AS promo
WHERE
totals.visits = 1
AND hit.promotionActionInfo.promoIsClick is true
GROUP BY promotion_name, sessionid, time),
last_promotion_click AS (
SELECT
a.*
FROM session_with_promotion_click a
LEFT OUTER JOIN session_with_promotion_click b
ON (a.sessionid = b.sessionid AND a.time < b.time)
WHERE b.sessionid IS NULL),
session_with_transaction AS (
SELECT
concat(fullvisitorid, cast(visitstarttime AS string), date) AS sessionid,
hit.time AS time,
hit.transaction.transactionId AS transactionid,
sum(hit.transaction.transactionrevenue)/1000000 AS revenue
FROM
`YOUR_DATA`,
UNNEST(hits) AS hit
WHERE
totals.visits = 1
AND hit.transaction.transactionid is not null
GROUP BY sessionid, time,transactionid)
SELECT
promotion_views_and_clicks.promotion_name,
promotion_views_and_clicks.views,
promotion_views_and_clicks.clicks,
ROUND(SAFE_DIVIDE(promotion_views_and_clicks.clicks, promotion_views_and_clicks.views),4)*100 AS promotion_CTR,
COUNT(DISTINCT session_with_transaction.transactionid) AS transactions,
ROUND(SUM(session_with_transaction.revenue),2) AS revenue,
ROUND(SAFE_DIVIDE(COUNT(DISTINCT session_with_transaction.transactionid), promotion_views_and_clicks.clicks),4)*100 AS promotion_CVR
FROM promotion_views_and_clicks
LEFT JOIN last_promotion_click ON promotion_views_and_clicks.promotion_name = last_promotion_click.promotion_name
LEFT JOIN session_with_transaction ON last_promotion_click.sessionid = session_with_transaction.sessionid
AND session_with_transaction.time >= last_promotion_click.time
GROUP BY promotion_name, views, clicks
ORDER BY views DESC
【讨论】:
以上是关于使用交易复制 BigQuery 中的内部促销报告的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery,如何复制“转化次数 | (增强)电子商务 |结账行为漏斗报告
BigQuery 中带有会话 ID 的 Google Analytics(分析)交易 ID