Google analytics 大查询中的GA漏斗分析-“正确”会话计数

Google analytics 大查询中的GA漏斗分析-“正确”会话计数,google-analytics,google-bigquery,Google Analytics,Google Bigquery,谢谢你的光临!如果能在Big Query中重新创建最终GA会话漏斗,我将不胜感激。重点是每个会话的漏斗,在一个会话中有特定的但不一定是顺序访问的页面 解决方案应将会话计数为CONCATfullVisitorId,将CASTvisitStartTime计数为字符串 此外,漏斗的形式应为,只有在会话中完成了前一步时,才能到达每个漏斗步骤。例如,只有在会话期间访问了步骤1-3时,才应计算第四步。但是,这些步骤不需要连续执行 不幸的是,这就是为什么我非常喜欢的东西对我不起作用。它返回totals.vis

谢谢你的光临!如果能在Big Query中重新创建最终GA会话漏斗,我将不胜感激。重点是每个会话的漏斗,在一个会话中有特定的但不一定是顺序访问的页面

解决方案应将会话计数为CONCATfullVisitorId,将CASTvisitStartTime计数为字符串

此外,漏斗的形式应为,只有在会话中完成了前一步时,才能到达每个漏斗步骤。例如,只有在会话期间访问了步骤1-3时,才应计算第四步。但是,这些步骤不需要连续执行

不幸的是,这就是为什么我非常喜欢的东西对我不起作用。它返回totals.visions的访问数。此外,我需要对页面使用REGXP_CONTAINS,因为我的页面上没有用于漏斗步骤的事件或自定义维度。用于每个步骤的原始查询

SUM((SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page' LIMIT 1)) Landing_Page
我试过:

COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE REGEXP_CONTAINS(hits.page.pagePath, r”myfunnelpage”)
然而,根据CONCATfullVisitorId、CASTvisitStartTime和overday_会话的计数,我的漏斗步骤访问实际上超过了我的总“会话”

另一方面,我对@Martin的用户会话印象非常深刻,也非常害怕 据说,当我写这篇文章的时候,有一篇文章应该写下来

我的方法是这样的。但它只返回具有单页视图的会话,而不返回连续的会话:

SELECT
  date,       
  COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewpage") LIMIT 1)) AS product_overview_s1,

  COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE EXISTS(SELECT 1 FROM UNNEST(GA.hitS) WHERE REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewregex")) AND REGEXP_CONTAINS(hits.page.pagePath, cartoverviewregex") LIMIT 1)) AS cart_overview_s2

FROM 
 data as GA,
 UNNEST(GA.hits) AS hits
WHERE hits.type = "PAGE"
AND 
 TRUE IN UNNEST(
  [REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewpage"),
  REGEXP_CONTAINS(hits.page.pagePath, r"cartoverviewregex""]
 )


有什么想法吗?任何能够使用“正确”会话计数重新创建最终大查询漏斗的人?

您可以使用内联子查询检查漏斗的各个步骤:

WITH
  sessions AS (
  SELECT
    (
    SELECT
      hits
    FROM
      UNNEST(hits) hits
    WHERE
      hits.page.pagePath = "/"
    ) first_step,
    (
    SELECT
      hits
    FROM
      UNNEST(hits) hits
    WHERE
      hits.page.pagePath = "/basket"
    ) second_step
  FROM
    `project.dataset.ga_sessions_*`)
SELECT
  COUNT(first_step) sessions_step_one,
  COUNTIF(first_step.hitNumber < second_step.hitNumber) sessions_step_two
FROM
  sessions