このページでは、Googleアナリティクス4(GA4)で ボタンのクリック や ページのスクロール を計測するための基本的な考え方と実装例をまとめています。
GA4を導入したい(基本) ができている前提で、静的HTMLサイトでも使いやすい最低限のイベント計測 を中心に解説します。
このページの対象とゴール
このページは、次のような方を想定しています。
- すでに GA4タグ(gtag.js) はサイトに入っている
- 「予約ボタン」「お問い合わせボタン」などのクリック が何回押されているか知りたい
- トップページやアクセスページの スクロール状況 をざっくり把握したい
- タグマネージャーではなく、なるべくシンプルなJavaScriptだけで対応したい
読み終わるころには、次の状態を目指します。
- メインのボタンに クリックイベント を仕込めている
- GA4のイベントレポートで、どのボタンがどれくらい押されているか を確認できる
- スクロールの計測方法(自動計測と簡易的な方法)のイメージがつかめている
「サイト内のすべてのクリック」を追いかけるのではなく、予約・問い合わせ・メニューPDFダウンロードなど「お店の成果に近い動き」だけ に絞って計測するのがおすすめです。
前提:GA4タグ(gtag.js)が入っているか確認する
クリックやスクロールのイベントを送る前に、サイトに GA4タグ(gtag.js) が正しく設置されている必要があります。
<head> 内に、次のようなコードが入っているかを確認してください。
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
G-XXXXXXXXXX の部分は、実際の測定IDになっているはずです。まだ入っていない場合は、先にGA4を導入したい(基本)を済ませてください。
クリック計測の基本方針
GA4でクリックを計測する方法はいくつかありますが、Templyでは次のような方針をおすすめしています。
- 重要なボタン・リンクだけを対象にする(予約・問い合わせ・メニューなど)
- HTML側に
data-*属性で「イベント名」を書いておく - 共通のJavaScriptで、対象のクリックをまとめてGA4に送る
onclick="..." を1つ1つのボタンに書くよりも、HTMLに「何のクリックか」だけ書いておき、JavaScriptは共通ファイルにまとめると管理しやすくなります。
STEP1:重要なボタンに「イベント名」を付ける
まず、計測したいボタンやリンクに data-gtag-event という属性を付けます。
HTML側の例:予約ボタン・問い合わせボタン
<!-- 予約ボタン(ヘッダー) -->
<a href="/reserve/" class="btn btn-primary" data-gtag-event="reserve_click_header">
ご予約はこちら
</a>
<!-- お問い合わせボタン(フッター) -->
<a href="/contact/" class="btn btn-secondary" data-gtag-event="contact_click_footer">
お問い合わせ
</a>
data-gtag-event の値(ここでは reserve_click_header など)が、GA4に送る イベント名 になります。
reserve_click より、reserve_click_header のように「予約+クリック+場所」 が分かる名前にしておくと、レポートを見たときに迷いにくくなります。
STEP2:共通のスクリプトでGA4イベントを送信する
次に、先ほどの data-gtag-event が付いたリンクをクリックしたときに、GA4へイベントを送る共通スクリプトを用意します。
JavaScriptの例(共通ファイルに追加)
たとえば assets/js/main.js のような共通JSファイルに、次のようなコードを追加します。
document.addEventListener('DOMContentLoaded', function () {
// data-gtag-event を持つ全てのリンクを取得
var trackedLinks = document.querySelectorAll('[data-gtag-event]');
trackedLinks.forEach(function (link) {
link.addEventListener('click', function () {
var eventName = link.getAttribute('data-gtag-event');
if (typeof gtag === 'function' && eventName) {
gtag('event', eventName, {
'event_category': 'temply_click',
'event_label': link.href || window.location.pathname
});
}
});
});
});
このスクリプトにより、data-gtag-event を持つリンクがクリックされると、temply_click というカテゴリで GA4 にイベントが送信されます。
if (typeof gtag === 'function') という一文を入れておくことで、何らかの理由で GA4タグが読み込めなかったときも、JavaScriptエラーでページが止まらないようにしています。
スクロール計測の考え方
スクロールの計測にはいくつかの方法がありますが、Templyでは次のような整理がおすすめです。
- 「ページの下のほうまで読まれているか」をザックリ知りたい → スクロール量のイベントを送る
- 「特定のセクションが表示されたか」を知りたい → そのセクションを通過したタイミングでイベントを送る
スクロールイベントを細かく分けすぎるとレポートが複雑になります。
まずは 「ページの80%ぐらいまでスクロールしたら1回記録する」 程度から始めるのが現実的です。
スクロール80%到達を1回だけ記録する例
ここでは、ページの80%付近までスクロールしたときに1度だけイベントを送る簡易的な例を紹介します。
JavaScriptの例(共通ファイルに追加)
document.addEventListener('DOMContentLoaded', function () {
var hasFiredScrollEvent = false;
function handleScrollEvent() {
if (hasFiredScrollEvent) return;
var scrollTop = window.scrollY || window.pageYOffset;
var docHeight = document.documentElement.scrollHeight - window.innerHeight;
var scrollRatio = docHeight > 0 ? (scrollTop / docHeight) : 0;
if (scrollRatio >= 0.8) {
hasFiredScrollEvent = true;
if (typeof gtag === 'function') {
gtag('event', 'scroll_depth_80', {
'event_category': 'temply_scroll',
'event_label': window.location.pathname
});
}
}
}
window.addEventListener('scroll', handleScrollEvent);
});
このスクリプトは、ページの80%以上までスクロールされたタイミングで、scroll_depth_80 というイベントを1回だけ送信します。
全ページで同じスクロールイベントを入れても構いませんが、まずは「トップページ」「セールスレター」「アクセスページ」など、重要なページだけ から始めるのがおすすめです。
GA4でイベントが入っているか確認する
実装ができたら、GA4管理画面でイベントが記録されているか確認しましょう。
- 自分でサイトにアクセスし、予約ボタンをクリックしたり、ページを下までスクロールする
- GA4管理画面で「レポート」→「リアルタイム」を開く
- 画面下部の「イベント」に、
reserve_click_headerやscroll_depth_80などが表示されるか確認 - しばらく時間が経ったら、「レポート」→「エンゲージメント」→「イベント」でも集計を確認
イベント名は、後から一覧で見たときに「何を表しているのか」すぐ分かることが重要です。
クリック・スクロールともに、命名ルールをメモに残しておくと安心です。
次のステップ:GA4でできることを少しずつ広げる
クリック・スクロールの計測ができたら、「予約フォームの送信」や「外部予約サイトへの遷移」など、もう一歩踏み込んだ動きも追いかけていきましょう。
アクセス解析(GA4)の設定を進める
サイトに来た人の動きや人気ページを把握したい場合は、GA4の導入とイベント計測を設定しておくと便利です。
埋め込み〜レスポンシブ〜軽量化を整理する
「とりあえず表示する」ところから、「スマホでも見やすく、できるだけ軽い」状態まで、一度流れを振り返っておくと安心です。
Search Console関連の設定を見直す
Search Consoleの基本設定・サイトマップ・インデックス状況をセットで押さえておくと安心です。
Googleマップと相性の良い設定
実店舗を運営している場合は、Googleマップ上に表示される店舗情報も一緒に整えておくと効果的です。


