页面序列路径BigQuery中的Google Analytics数据

时间:2017-08-22 09:52:12

标签: google-analytics google-bigquery

我正在使用关于某个主题的Google Analytics数据在BigQuery中工作,以了解页面序列路径。这些页面的范围限定为自定义维度(命中级别),并对一组页面进行分组。此外,还包括TimeStamp以获得有关序列的更多见解。

查询(旧版sql):

SELECT 
date,
STRFTIME_UTC_USEC(SEC_TO_TIMESTAMP(visitStartTime + hits.time/1000),"%Y-%m-%d %H:%M:%S") AS TimeStamp,  
concat(fullvisitorid,".", string(visitId)) as sessionsid, 
MAX(IF(hits.customDimensions.index=3, hits.customDimensions.value, NULL)) 
WITHIN hits AS CustomDimension, 
hits.hitNumber as hits.hitNumber, 
visitNumber,    
FROM
TABLE_DATE_RANGE([XXXXXXXX.ga_sessions_], TIMESTAMP('2017-08-01'), 
TIMESTAMP('2017-08-05'))
having sessionsid = "3712616268105648149.1501799276"
ORDER BY
hits.hitNumber AS

结果(基于1个sessionid): Image outcome query

我有两个问题:

1) 在下面的示例中,CustomDimension“Thankyou”是“谢谢”页面。奇怪的是,CustomDimension“thankYou”不止一次被计算在内。在这种情况下,彼此相隔2秒,但在其他情况下有时在同一时刻。 GA跟踪似乎很好,只能发送1次点击(不考虑刷新)。如果我在查询中遗漏了影响此行为的内容,是否有任何想法?

2)页面序列正在启动CustomDimension“ThankYou”。这是订单流程的感谢页面,然后用户继续访问主页。用户在此页面启动并非逻辑。你知道这是否是由查询造成的吗?

希望有人能给我一些建议,让我朝着正确的方向前进。

感谢。

1 个答案:

答案 0 :(得分:0)

相关信息和方便的例子可以在" BigQuery cookbook"在线文档,"命中顺序" sub-chapter。一般模式如下:

SELECT fullfullVisitorID, visitID, visitNumber, hits.hitNumber, hits.page.pagePath
FROM [ ‘Dataset Name’ ]
WHERE hits.type=[ ‘type of hit’ ];

在第一行,您可以识别访客ID和访问ID的唯一组合。每次点击都属于这两个维度的独特组合。 在第一行,您还列出了页面路径的元素。 FROM语句列出了数据源。 在WHERE语句中,您将查询限制为特定类型的命中,以控制您观察到的各种交互。

可以在" LunaMetrics Google BigQuery Recipes"上阅读直接相关的示例。页面,更准确地说是会话中的所有相关页面" query

SELECT
  cur_hit.fullVisitorId AS fullVisitorId,
  cur_hit.visitId AS visitID,
  cur_hit.hits.hitNumber AS cur_hitnumber,
  cur_hit.hits.page.pagePath as cur_pagePath,
  cur_hit.hits.time AS cur_time,
  MAX(prev_hit.hits.hitNumber) AS prev_hitNumber,
FROM
  FLATTEN([google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910], hits) AS prev_hit
INNER JOIN
  FLATTEN([google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910], hits) AS cur_hit
ON
  prev_hit.fullvisitorid = cur_hit.fullvisitorid
  AND prev_hit.visitid = cur_hit.visitid
WHERE
  prev_hit.hits.hitNumber < cur_hit.hits.hitNumber
  AND prev_hit.hits.type = "PAGE"
  AND cur_hit.hits.type = "PAGE"
GROUP BY fullVisitorId, visitID, cur_hitnumber, cur_pagePath, cur_time