本記事では、BigQueryにエクスポートしたGA4のデータから、サイト内検索が発生したページと検索キーワード、検索数を出すSQLクエリを紹介する。
サイト内検索のイベントについて
GA4では、ページの表示やスクロールなどユーザーがサイト内で起こす行動はすべて”イベント”として記録され、サイト内検索については「view_search_results」というイベントが記録される。
view_search_resultsは、ユーザーがサイト内検索を実行し、検索結果ページが表示された際に計測されるイベントだ。
ただし、計測されるのは拡張計測機能をONにしたうえで、検索結果のURLに含まれるクエリパラメータをGA4で事前設定している場合に限られる。クエリパラメータは、「q」「s」「search」「query」「keyword」の5つがデフォルトで登録されており、これらを使用しているサイトであれば追加の設定は不要だ。
それ以外のクエリパラメータを使用している場合は、拡張計測機能の設定画面から追加登録できる。

GA4管理画面>「データストリーム」>対象のストリームをクリック>拡張計測機能のトグルをONにする
どのページでどのようなキーワードが何回検索されたかを出すSQLクエリ
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_referrer") AS search_occurrence_page,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "search_term") AS search_term,
COUNT(event_name) AS search_count
FROM `analytics_280494569.events_*` -- ご自身のプロジェクト名・データセット名に応じて変更する(`<project>.<dataset>.events_*`)
WHERE event_name = "view_search_results"
AND _table_suffix BETWEEN "20240801" AND "20241130" -- ご自身で抽出したい期間に変更する
GROUP BY 1, 2
ORDER BY search_count DESC;抽出しているデータは、サイト内検索の分析において最も基本的な情報である「どのページで」「どのようなキーワードが」「何回検索されたか」だ。
よってクエリ結果は下のようになる。

たとえば、/looker-studio/alternative-method-for-memo-function/のページで「メモ機能」というキーワードが1回検索されたという意味合いだ。
以下は、GA4のレポートで確認した画面だが、数値はきちんと合っている。

クエリ解説
WHERE句ではview_search_resultsイベントに絞り込みを行っているため、SELECT句で取り出しているいくつかのデータは、view_search_resultsイベントに紐づくイベントパラメータとなる。
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_referrer") AS search_occurrence_page,上のクエリは、どのページでサイト内検索が発生したかを把握するために「page_referrer」というイベントパラメータを抽出している。
page_referrerは、page_locationの前のページを記録するイベントパラメータなのだが、前章でも触れたとおり、view_search_resultsイベントは検索結果ページが表示された段階で発生するため、どのページで検索が起こったかを知るためにはpage_referrerを参照する。
なお、page_locationは検索結果のURLを記録する。

(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "search_term") AS search_term,上のクエリは、「search_term」というイベントパラメータを抽出している。search_termは検索されたキーワードを記録する。
COUNT(event_name) AS search_count上のクエリは、サイト内検索の発生回数をカウントしている。WHERE句ではview_search_resultsイベントに絞り込んでいるため、COUNT(event_name)とすることで、このイベントの数をカウントできる。
おわりに
本記事では、BigQueryにエクスポートしたGA4のデータから、サイト内検索が発生したページ・検索キーワード・検索数を抽出するSQLクエリを紹介した。
「どのページでどのようなキーワードが何回検索されたか」を把握することで、コンテンツの拡充や導線設計、ナビゲーションの改善といったUX向上施策につなげることができる。


