使用交易复制 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 导出/复制内部错误

通过 Bigquery 复制热门转化路径

BigQuery 中带有会话 ID 的 Google Analytics(分析)交易 ID

使用 Java 从 BigQuery 到 BigQuery 表的表复制中的 JSON 解析错误

从 Bigquery 中的查询复制表