【问题标题】:Page sequence paths Google Analytics data in BigQueryBigQuery 中的页面序列路径 Google Analytics 数据
【发布时间】:2017-08-22 09:52:11
【问题描述】:

我正在 BigQuery 中使用 Google Analytics 数据处理某个主题,以了解页面序列路径。这些页面的范围为自定义维度(命中级别),其中包含一组页面。此外,还包括时间戳以获得有关序列的更多信息。

查询(旧版 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”是“Thank you”页面。奇怪的事实是,CustomDimension “thankYou” 被多次计算。在这种情况下,彼此间隔 2 秒,但在其他情况下,有时在同一时刻。 GA 跟踪似乎很好,只能发送 1 次命中(不考虑刷新)。如果我在查询中遗漏了影响此行为的内容,有什么想法吗?

2) 页面序列开始于 CustomDimension “ThankYou”。这是订单流程的感谢页面,然后用户继续访问主页。用户从这个页面开始是不合逻辑的。不知道是不是查询造成的?

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

谢谢。

【问题讨论】:

  • 我能给出的最佳建议是开始使用standard sql 版本而不是旧版本。在标准中理解这些结果要容易得多。
  • 您确定这些页面浏览之间没有事件吗?可能会在 SELECT 中添加 hits.type 以确保。
  • @Willian:谢谢,我将转向标准 SQL
  • @maggieto:感谢这个好提示!确实触发了其他类型的事件。

标签: google-analytics google-bigquery


【解决方案1】:

相关信息和方便的示例可在“BigQuery 食谱”在线文档“命中序列”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 食谱”页面上阅读直接相关的示例,更准确地说是“会话中的所有相关页面”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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多