首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用事务在BigQuery中复制内部提升报告

问用事务在BigQuery中复制内部提升报告
EN

Stack Overflow用户
提问于 2020-04-08 05:26:18
回答 2查看 710关注 0票数 1

有人成功地复制了BigQuery中GA的内部推广报告吗?

我正在寻找至少包含以下列的报告: date、promoName、promoPosition、promo_clicks、promo_views、transactions

根据(https://support.google.com/analytics/answer/6014872?hl=en),属性事务的逻辑看起来相当复杂。这是一个甚至可能或一个好主意,把交易在这份报告在烧烤?

“内部促销报告如何将事务属性归因于内部促销单击或内部促销视图。 电子商务会话中的每一次攻击都可以有: 0或1内部促销点击0或更多的内部促销视图内部促销点击属性,如果一个命中包括一个内部促销点击,然后该内部促销是信用交易。 如果会话包含多个内部升级单击,则最后单击的内部升级将被计入事务处理。 如果一个点击包括零的内部促销点击,但该用户以前的一个点击确实包括一个内部促销点击,那么来自上一次点击的内部升级是事务的功劳。 如果上述条件中没有一个条件为真,但命中包含一个或多个内部提升视图,则事务将被记入会话中的所有促销视图。“

EN

回答 2

Stack Overflow用户

发布于 2020-05-15 18:45:36

我不确定我是否完全理解你的问题,但是GA的内部提升属性的逻辑并不是那么复杂,而是很难实现。要跟踪内部促销的事务属性,您需要执行增强电子商务的漏斗,而不是全部,而是至少结帐和购买。如果您有它,您需要确保您的产品数据始终通过漏斗。推广属性和列表属性是您可以使用增强电子商务获得的唯一属性。

关于增强电子商务实现,我发现最好的材料是指南。你会发现很多关于GTM和GA e实现这种轨道的方法。

票数 1
EN

Stack Overflow用户

发布于 2021-12-11 13:19:56

我成功地复制了内部晋升,但只在上一次晋升时点击了属性。由于我的客户在购买页面上没有促销,所以我没有费心地通过促销视图添加属性到查询中。但是,可以通过查询带有升级名称的事务命中来添加它。

我使用的逻辑是这样的:

  1. 获取每个促销的所有视图和单击(表promotion_views_and_clicks)
  2. 获取每次升级时单击的所有会话ids (表session_with_promotion_click)
  3. 从前面的查询中,获取每个会话单击的最后一个升级id (表last_promotion_click)。
  4. 获取具有事务it及其链接的收入的会话it(表session_with_transaction)
  5. 结合每个升级的视图和单击以及基于步骤3中的会话ids的事务数据,过滤升级单击后发生的事务。

这是我的代码:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61093854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档