繁体   English   中英

如何通过 Bigquery 拉取加载速度和跳出率

[英]How to Pull Load Speed and Bounce Rate via Bigquery

我正在尝试通过 Bigquery 使用 Google Analytics 数据编写查询,以了解页面速度对我网站的影响。 有很多研究都在讨论缓慢的网站网站对转换的影响,我希望进行类似的分析(例如)。

目前我有以下查询,但是看起来 hit.time 随着 totals.pageviews 增加。 如果我没记错的话,这一定意味着 hits.time 被注册为网站上的总时间,而不一定是给定页面上的总时间。

SELECT
  ROUND(AVG(totals.pageviews),0) AS avg_page_views,
  CASE 
        WHEN hits.time <= 1000 THEN '0 Second'
        WHEN hits.time BETWEEN 1001 AND 2000 THEN '1 Second'
        WHEN hits.time BETWEEN 2001 AND 3000 THEN '2 Second'
        WHEN hits.time BETWEEN 3001 AND 4000 THEN '3 Second'
        WHEN hits.time BETWEEN 4001 AND 5000 THEN '4 Second'
        WHEN hits.time BETWEEN 5001 AND 6000 THEN '5 Second'
        WHEN hits.time BETWEEN 6001 AND 7000 THEN '6 Second'
        WHEN hits.time BETWEEN 7001 AND 8000 THEN '7 Second'
        WHEN hits.time BETWEEN 8001 AND 9000 THEN '8 Second'
        WHEN hits.time BETWEEN 9001 AND 10000 THEN '9 Second'
        WHEN hits.time BETWEEN 10001 AND 10000 THEN '10 Second'
        ELSE 'More than 10 Seconds'
   END hits.time
FROM
    [session.ga_sessions_20150501]
WHERE
        hits.page.pagePath != ''
        and totals.bounces IS NOT NULL
        AND hits.hitnumber >= 1
        AND hits.time > 0
        AND hits.type = 'PAGE'
        AND hits.page.pagePath LIKE '%/work/apps/business/%'  
GROUP BY 1,2
ORDER BY 1
LIMIT 2000
;

关于如何更改此查询以提高每页速度的任何想法,以便可以将其绘制为转换或跳出率之类的图表? 我知道这些数据存在于 Google Analytics 中,但是我无法通过Bigquery API或 Google Analytics 找到一个好的维度。

提前致谢!

现在这是可能的,我认为它是自原始问题以来添加的。

下面将页面加载时间正确匹配回 GA 界面。

with speed_metrics as (
SELECT
date,
device.browser,
device.operatingSystem,
device.deviceCategory,
geoNetwork.country,
visitorId, 
fullVisitorId,
IF(totals.visits=1,CONCAT(fullVisitorId, CAST(visitId AS STRING)), null) AS 
session_id,
hits.hitNumber,
hits.latencyTracking.pageLoadSample, 
hits.latencyTracking.pageLoadTime,
hits.latencyTracking.pageDownloadTime,
hits.latencyTracking.redirectionTime,
hits.latencyTracking.speedMetricsSample,
hits.latencyTracking.domainLookupTime,
hits.latencyTracking.serverConnectiontime,
hits.latencyTracking.serverResponseTime,
hits.latencyTracking.domLatencyMetricsSample,
hits.latencyTracking.domInteractiveTime,
hits.latencyTracking.domContentLoadedTime
FROM `river-island-clothing-co-ltd.155484603.ga_sessions_20210308`
, unnest (hits) as hits 
)
select 
avg(pageLoadTime) / 1000 as avg_load_time ,
sum(pageLoadTime) / count(distinct (concat(session_id, cast(hitNumber as string)))) / 
1000 as also_avg_load_time
from speed_metrics
where pageLoadSample is not null
LIMIT 1000

需要注意的有用部分是结果是从您的整体浏览量/会话的样本中生成的,请注意 where 子句。 由于这是在命中级别(在这种情况下为综合浏览量),记录数 = 综合浏览量数,因此两个聚合生成相同的结果!

你完全不在这儿。

hits.time意味着别的:

注册此命中时,visitStartTime 之后的毫秒数。 第一次命中的 hits.time 为 0。

因此,测量自访问开始时间以来经过的时间,而不是所有加载时间。 这是发起请求时的请求时间,与 DOM 无关。

AFAIK 没有指标可以为您提供 DOM 加载时间。

架构:

https://support.google.com/analytics/answer/3437719?hl=zh-CN&ref_topic=3416089&vid=1-635792326108722532-2868285191

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM