GA4×BigQueryで特定記事のページ滞在時間を計測するSQLクエリ

先日Googleの検索アルゴリズムに関する内部文書が流出して、ページ滞在時間がSEOに影響あるという一般論がこれによって明らかになりました。

参考:Googleのランキングアルゴリズム流出から考えるSEO

しかし、GA4の管理画面では平均エンゲージメント時間しか確認できず、多くの場合この指標は意味ないです。(平均が2分だとしても、最頻値は10秒程度っていうのは往々にしてあるので)

そこで本記事では、BigQueryでGA4の生データを扱って、ユーザーごとに特定記事のページ滞在時間を計測するSQLクエリについて紹介していきます。

本記事の筆者
  • 国立理系修士2年(23歳 | 専攻は機械学習)
  • SEOマーケティング会社で実務を1年ほど経験
  • ブログ運営3年目(月間10,000PVほど)
  • 2025年4月からIT事業会社のデータサイエンティストとして働く予定で、現在はBigQueryを活用したGA4やGSCのデータ分析に注力

GA4×BigQueryにおける基本的なSQLの使い方は下記記事で紹介してますので、参考までにどうぞ<(_ _)>
» GA4とBigQueryを連携するメリット& 基本的なSQLの使い方を解説

また、SQL(BigQuery)スキルを習得するために以下のUdemy講座はおすすめです。
» BigQuery で学ぶ非エンジニアのための SQL データ分析入門

目次

GA4×BigQueryで特定記事のページ滞在時間を計測するSQLクエリ

さっそく下記にSQLクエリを紹介していきます。

SQLクエリ

/*
特定の記事のページ滞在時間を集計
*/

with pageviews as (
  select
    user_pseudo_id,
    timestamp_micros(event_timestamp) as event_timestamp,
    lead(timestamp_micros(event_timestamp)) over (partition by user_pseudo_id order by event_timestamp) as next_event_timestamp,
    (select value.string_value from unnest(event_params) where key = 'page_location') as page_location
  from
    `ga4-bigquery-pj-392206.analytics_342165491.events_*`
  where
    event_name = 'page_view'
    and _table_suffix between '20240501' and '20240531'
)
select
  user_pseudo_id,
  page_location,
  timestamp_diff(next_event_timestamp, event_timestamp, second) as stay_duration
from
  pageviews
where
  page_location = 'https://sgs-prog.com/swell-cafe-homepage-develop1/'
  and next_event_timestamp is not null
  and timestamp_diff(next_event_timestamp, event_timestamp, second) <= 1800 -- 1800秒より上の値は極端なケースとして除外

当サイトの「SWELLでコーポレートサイトを作ってみた!【デザインカンプあり】」という記事のページ滞在時間を計測するクエリとなっています。

実行結果

ユーザーID(user_pseudo_id)ごとにページ滞在時間(stay_duration)を集計することができています。

ちなみに、ページ滞在時間の単位は “秒” です。

ページ滞在時間をグラフで可視化してみる

ページ滞在時間をヒストグラムで可視化してみると、多くのユーザーは0付近に集まっていることがわかります。恐らく多くのWebサイトにおいて、同様の傾向が見られるはずです。

こういったことから、冒頭で述べた平均値が意味ないことがわかるかと思います。

では、どのように改善前と改善後で効果検証を行なっていくのかというと、統計モデルで推論を行うのが一つの手です。ここでは詳しく解説しませんが、以下の書籍で解説されているので、興味ある方は読んでみましょう。

まとめ:特定ページにおけるユーザーの滞在時間を改善しよう!

本記事では、GA4×BigQueryで特定記事のページ滞在時間を計測するSQLクエリについて紹介しました。

GA4の管理画面で表示されるような平均値はほとんどの場合意味がなく、本当の意味での改善は個々のユーザー行動を見ていく必要があります。

本記事を参考に、ページ滞在時間を改善していただけると幸いです。

それでは本記事は以上とします。最後まで読んでいただきありがとうございました。

Thank you for sharing my post !!
  • URLをコピーしました!

スポンサーリンク

目次