こんにちは、中都です。
GA4でアクセス数は見られる。でも、問い合わせにつながったのか、どのリンクが押されたのかまでは分からない。そんなときに最初に整えたいのが、成果地点・スクロール率・リンククリックの3つのイベント設定です。
動画でも解説しています
こんなお悩みはありませんか?アクセス数の先にある行動を知りたい
- 月次報告で、サイトからの問い合わせ数を示せない。 アクセス数は出せても、成果につながったかをGA4で説明できない。
- 長い記事の、どこまで表示されたか分からない。 内容や長さを変えるにも、判断材料がない。
- どのリンクが押されたか分からない。 メニューと記事末尾のボタンの、どちらを直すべきか迷う。
僕がGA4のコンサルティングをしていた頃も、計測設定が十分にできていないという相談を受けていました。後からAIに分析を頼むとしても、そもそも記録していない行動は振り返れません。
この記事でできるようになること
- Googleタグマネージャー(GTM)で、問い合わせ完了ページや特定リンクのクリックを計測する。
- スクロール到達位置を10%刻みで送り、内部リンクのクリック情報も残す。
- GA4で受信した値を確かめ、探索でページごとのイベント数を見る。
僕の実演画像14枚で、タグの設定からGA4に値が届くところまで説明します。設定値だけでなく、プレビューでタグが動いた場面、GA4へスクロールの値が届いた場面、探索の集計例も載せています。
対象は、GTM・GA4がすでに設置されているサイトです。最後には、計測したデータをSynapse MCPでAIにつなぎ、自然言語で分析する使い方も紹介します。
GA4で最初に設定する3つのイベント
| 計測すること | 知りたいこと | 設定の考え方 |
|---|---|---|
| 問い合わせなどの成果地点 | サイトの目的にあたる行動が起きたか | 完了ページの表示や特定リンクのクリックをイベントにし、成果として扱うものをキーイベントに指定する |
| スクロール到達位置 | ページのどのあたりまで表示されたか | 10%刻みなどで到達イベントと到達率を送る |
| 内部リンクを含むクリック | どのページの、どのリンクが押されたか | リンク先やテキストをイベントの付属情報として送る |
GA4の拡張計測機能にも、scrollとclickがあります。ただし、標準のスクロールは各ページで90%の深さまで表示されたとき、クリックは別のウェブサイトへ移動する離脱クリックが対象です。途中のスクロール到達位置や内部リンクを調べたいなら、標準の計測に設定を足します。Google公式:拡張計測機能イベント
すでに同じ行動を計測しているタグがある場合は、まずその設定を確認してください。同じイベント名でタグを追加すると、1回の操作を重複して数える原因になります。
準備:GTMの変数とGA4の測定IDを確認する
対象サイトにGTMとGA4のGoogleタグが設置され、ページビューが届いている状態から始めます。GTMの編集・公開を行える権限と、GA4のカスタム定義などを設定できる権限も用意してください。まだ基本のGoogleタグがない場合は、先にGoogleタグの設定を済ませます。
1.組み込み変数を有効にする
GTMで対象のウェブコンテナを開き、左メニューの「変数」から「組み込み変数」の「設定」を押します。今回使う次の変数にチェックを入れます。
- ページ:
Page URL、Page Path - クリック:
Click URL、Click Text、Click ID - スクロール:
Scroll Depth Threshold
チェックを入れたら、設定パネルを閉じます。
組み込み変数の一覧に追加されたことを確認してください。後のトリガーやパラメータ設定で、この変数を選べるようになります。
2.自分のサイトの測定IDを控える
GA4の「管理」から「データストリーム」を開き、対象サイトのウェブストリームを選びます。「測定ID」に表示されるG-から始まる値をコピーしてください。
GTMのイベントタグには、この測定IDを使います。画像は僕の実演環境です。画像内のIDやURLを流用せず、ご自身のサイトの値を入力してください。
設定1.問い合わせ完了・特定リンクのクリックを計測する
最初に決めるのは「何を成果とするか」です。フォームの送信完了と、LINEへ移動するリンクのクリックは、意味が違います。別のイベントにしておくと、問い合わせの完了数と、その手前の行動を混ぜずに見られます。
サンクスページの表示をイベントにする
- GTMの「タグ」→「新規」を開き、タグ名を「GA4_問い合わせ完了」などにします。
- 「タグの設定」→「Google アナリティクス」→「Google アナリティクス: GA4 イベント」を選びます。
- 測定IDに自分のサイトのIDを入れ、イベント名を入力します。ここでは設定例として
contact_completeを使います。
画像のイベント名は実演用のtest_contactです。タグ名は管理する人向けのラベル、イベント名はGA4へ送る名前です。本文では、本番の用途が分かりやすいイベント名の例を使います。
- 同じタグの「トリガー」を押し、右上の「+」から新規作成します。
- 種類を「ページビュー」、発生場所を「一部のページビュー」にします。
- 条件の変数に
Page URL、比較に「含む」を選び、フォーム送信後にだけ開く完了ページのURLを入力します。 - トリガーを保存し、作成したトリガーがタグに付いていることを確認して、タグも保存します。
例えば完了ページがhttps://example.com/contact/thanks/なら、そのURLを条件にします。「含む」で別のページまで一致しないかも確認しましょう。URL構成が決まっていれば、Page Pathが/contact/thanks/に「等しい」という条件も選べます。
これは完了ページの表示を数える方法です。再読み込みや直接アクセスでも数えられることがあります。完了ページがないフォームや、送信の成功だけを厳密に数えたい場合は、フォーム側の成功通知を使う実装が必要です。送信ボタンを押しただけで、問い合わせ完了として扱わないようにします。
LINEなど、特定リンクのクリックをイベントにする
もう1つGA4イベントタグを作り、同じ測定IDと、例えばline_clickというイベント名を設定します。続いて新規トリガーで「クリック - リンクのみ」→「一部のリンククリック」を選びます。
対象サイトで計測したいリンクのアドレスをコピーし、条件をClick URLがそのURLを「含む」にします。トリガーとタグを保存したら、対象のリンクだけで配信されるかを後のプレビューで確認します。
ここで取れるのはLINEへの移動リンクを押した回数です。友だち追加やメッセージ送信の完了数ではありません。通常の<a>リンクではないボタンは「リンクのみ」で取れないため、クリック対象の要素に合うトリガーが必要です。Google公式:クリックトリガー
設定2.スクロール率を10%刻みで計測する
標準の90%到達だけでは、30%まで表示されたページと80%まで表示されたページを区別できません。スクロールが取れていると思って安心してしまうと、ここはめちゃめちゃ罠なんですよね。
僕は、後からページを改善したりAIで分析したりするときのために、この途中の行動も残しておきたいと考えています。
スクロール距離トリガーを作る
GA4イベントタグを新規作成し、測定IDとイベント名を入力します。イベント名の例はscroll_depthです。標準のscrollとは別名にすると、後で集計を分けられます。
「トリガー」から新規作成し、「スクロール距離」を選択します。「縦方向スクロール距離」を選び、「割合」に10%刻みの値を入れます。
10,20,30,40,50,60,70,80,90,100
有効化するタイミングは「ウィンドウの読み取り(gtm.load)」、発生場所は、サイト全体が対象なら「すべてのページ」を選びます。特定のLPだけを計測するなら「一部のページ」で対象を絞ります。保存してイベントタグへ戻ってください。
到達した割合をパラメータで送る
イベント名だけを送っても、何%の地点に到達したのか分かりません。タグの「イベントパラメータ」を開き、「パラメータを追加」で次の1行を設定します。
| イベントパラメータ | 値 |
|---|---|
percent_scrolled | {{Scroll Depth Threshold}} |
右側の変数選択ボタンから「Scroll Depth Threshold」を選びます。左側はGA4に送る項目名、右側はGTMがその場で取得する値です。保存後にタグを開き直し、イベント名・パラメータ・スクロールトリガーがそろっているか確認しましょう。
スクロール距離は、文章を読んだことの証明ではありません。短いページでは、読み込み時にすでに見えている地点のトリガーが発動します。端末の画面サイズやページの長さにも影響されるので、PCとスマートフォンを分けて比較すると判断しやすくなります。Google公式:スクロール距離トリガー
設定3.内部リンクのクリックとリンク先を記録する
問い合わせページの閲覧数だけでは、上部のメニューから来たのか、記事末尾のボタンから来たのか分かりません。標準のclickがあるので内部リンクも取れていそうに見えますが、対象は別サイトへの移動です。ここはスクロール以上に、ちょっと罠です。
GA4イベントタグを新しく作り、測定IDとイベント名を設定します。例としてlink_clickを使います。新規トリガーの種類を「クリック - リンクのみ」、発生場所を「すべてのリンククリック」にして保存してください。
「すべてのリンククリック」は、内部・外部の両方のリンクを計測します。内部リンクの使われ方を見るときは、取得した全リンクのデータから自社へのリンク先に絞って集計します。リンク以外のボタンや画像を含む、すべての要素のクリックを取る設定ではありません。
タグの「イベントパラメータ」から、次の3つを追加します。値は組み込み変数の一覧から選び、文字として直接入力しないようにしてください。
| パラメータ名 | 値に選ぶ変数 | 分かること |
|---|---|---|
click_text | {{Click Text}} | リンクのテキスト |
click_url | {{Click URL}} | 移動先のURL |
click_id | {{Click ID}} | クリック要素のHTML上のID |
どのリンクから次のページへ進んだかが残れば、後で調べる材料になります。僕は、AIで分析するハードルが下がっていくからこそ、こういう行動データもなるべく取っておきたいんですよね。
IDがない要素ではclick_idが空になり、同じ文言のボタンはclick_textだけでは区別できません。位置まで区別したい場合は、サイト側で要素に固有のIDを付けるなど、識別できる情報を用意します。
また、URLやリンクの文言にメールアドレスなどの個人情報が入るサイトでは、そのまま送らない設定が必要です。全リンクを対象にする前に実際の値を確認し、必要なら対象リンクを限定してください。
GTMとGA4で確認し、レポートに使える状態にする
GTMでタグが動いたことと、GA4に値が届いたことの両方を確認します。タグの保存だけで終えず、次の順番で確かめてください。
まずGTMのプレビューでタグと値を確認する
GTM右上の「プレビュー」を押し、対象サイトのURLを入力して接続します。開いたサイトでスクロール、リンククリック、フォームの送信完了を順番に試し、Tag Assistantで該当する操作を選びます。
スクロールでは「スクロール距離」のイベントを開き、「変数」にあるScroll Depth Thresholdを確認します。90%に到達した場面なら値は90です。「タグ」では、作成したスクロール用タグが配信されていることを確かめます。
リンククリックも同様に、「リンククリック」を選び、作成したタグが「配信されたタグ」に出るかを見ます。さらにタグの中のパラメータと、変数のClick URLが想定した値になっているか確認してください。
問い合わせ用のタグは、完了ページでは配信され、通常のページでは配信されないことまで確認します。LINE用のタグも、対象のリンクだけで配信されるかを試します。実演画像では既存タグも並んでいますが、ご自身の環境で重複送信がないかを確認してください。
GA4に届いているイベントとパラメータを確認する
タグの配信を確認できたら、GA4の「管理」→「データの表示」→「DebugView」を開き、テスト端末のイベントを見ます。GTMのプレビューモードはデバッグ確認に使えます。イベントを選択し、percent_scrolledやclick_urlなどの値まで確認しましょう。Google公式:DebugViewでの確認
「レポート」→「リアルタイム」でも受信を確認できます。イベント名を押し、パラメータを開くと、送られた値とイベント数が表示されます。
例えばここに表示された「10」「20」「30」はスクロール到達位置です。横の数字はイベント数なので、そのまま人数として読まないでください。
DebugViewにも出ない場合は、送信先の測定ID、Googleタグ、同意設定、ブラウザのブロックなどを確認します。
必要なパラメータをカスタムディメンションに登録する
GA4で「管理」→「データの表示」→「カスタム定義」を開き、「カスタムディメンションを作成」を押します。標準ディメンションとして利用できないclick_text、click_url、必要ならclick_idを登録します。
| 入力欄 | クリック文言を使う場合の例 |
|---|---|
| ディメンション名 | クリックテキスト |
| 範囲 | イベント |
| イベントパラメータ | click_text |
パラメータ名はGTMの左側の欄と同じ文字列にします。{{Click Text}}などの変数名を入れる場所ではありません。
画像はpercent_scrolledを登録する実演ですが、現在のGA4には標準の「スクロール済みの割合」もあります。カスタム定義は、標準項目や既存の定義で使えない項目だけ追加します。
カスタム定義は作成してすぐ探索に使えるとは限らず、データ送信と登録後に24〜48時間ほどかかる場合があります。受信確認とレポートへの反映は分けて考えてください。Google公式:カスタムディメンション
成果地点をキーイベントに指定して、GTMを公開する
問い合わせイベントを作っただけでは、GA4のキーイベントにはなりません。GA4の「管理」→「データの表示」→「イベント」を開き、「最近のイベント」などからcontact_completeを探します。イベント名の横にあるスターを選択し、キーイベントとしてマークしてください。
LINEクリックも成果として追うなら別途指定します。ただし、クリックと問い合わせ完了の意味は分けたままにします。
新しいイベントが一覧にまだ出ない場合は、GTMの公開と受信確認を済ませ、データが処理されてから戻って指定してください。キーイベントの指定は過去へさかのぼって適用されません。Google公式:キーイベントとしてマークする
最後にGTMへ戻り、「公開」へ進みます。「バージョンの公開と作成」を選び、例えば「問い合わせ・スクロール・リンク計測を追加」といった名前を付け、変更一覧を確認して公開します。他の人の未公開変更が混ざっていないかも確認してください。
公開されたバージョンに今回のタグが含まれ、プレビューを終了した通常のアクセスでもGA4へ届くことを確かめれば、設定はひと区切りです。
探索でページごとのスクロール・クリックを調べる
データがたまったら、GA4の「探索」から「自由形式」を作ります。設定した日より前には、今回追加したイベントのデータはありません。探索では、計測開始後の日付と、自分で設定したイベント名を選びます。
スクロールを見る表は、次の組み合わせから始められます。
| 設定箇所 | 入れる項目 |
|---|---|
| 行 | ページタイトル、またはページパス |
| 列 | スクロール済みの割合、または用意したスクロール率のカスタムディメンション |
| 値 | イベント数 |
| フィルタ | イベント名がscroll_depthに完全一致 |
必要な項目を「変数」のディメンション・指標から追加し、「タブの設定」の行・列・値へ入れます。イベント名は、自分がGTMで設定した名前に合わせてください。
画像はページ別に到達位置を並べた実演です。別の刻み幅で計測した既存データも含まれるため、今回の10%刻みの結果と列は異なります。ご自身の表では対象のイベント名で絞り、関係のないイベントの(not set)を混ぜないようにします。
10%から100%まで到達した1回の閲覧は、複数のイベントとして記録されます。各列を合計して閲覧人数にしたり、列の差だけで離脱人数を断定したりはできません。まずは同じページ・同じ端末区分で到達位置の分布を比べ、見直す箇所の候補を探す使い方がよいと思います。
クリックなら、イベント名をlink_clickで絞り、ページパスとクリックテキスト・クリックURLを行に、イベント数を値に置きます。内部リンクだけ見たいときは、自社ドメインへのリンクに絞ってください。「どのページで、どのリンクが押されているか」が見えてきます。
まとめ:まず1つ、計測して確認するところまで進めよう
問い合わせなどの成果地点、スクロールの到達位置、内部リンクのクリック。この3つを整えると、PVだけでは見えなかったページ内の行動を調べる材料が増えます。
最初の一歩は、まだ取れていない行動を1つ設定し、GA4に届くところまで確かめること。全部を一度に整えるのが難しければ、成果地点から始めてください。記録していない過去の行動は、後から取り戻せません。
データを集計する段階では、Synapse MCPでAIに数字を聞く方法も使えます。続けて、その使い方を紹介します。
Synapse MCPなら、GA4のデータを自然言語で分析できる
計測ができたら、今度は「先月よりPVが増えた?」「どの記事がよく見られた?」を知りたくなりますよね。そのたびに探索の項目を選んだり、表を作り直したりするのが大変なら、AIに聞く方法もあります。
そこで使えるのが、GA4とClaude・ChatGPTなどをつなぐSynapse MCPです。最初に接続を済ませれば、探索レポートの作り方を知らなくても、知りたいことを日本語で伝えてデータを調べられます。データの取得はSynapse MCP、表やグラフへの整理は接続したAIが担当します。
「先月と今月のPVを比較して」「どの記事が人気?」と聞いてみる
たとえば、次のように質問できます。これは自分のサイトで試すための質問例です。
| AIへの質問 | 確認できること |
|---|---|
| 先月と今月のPVを比較して。月途中なら日数をそろえ、対象期間と増減率を表にして。 | 比較条件をそろえたPVと増減率 |
| 先月、PVが多かった記事を上位10件教えて。ページパスとPVを付けて。記事URLの範囲は最初に私に確認して。 | 記事のPVランキング。記事以外のページを除いて集計 |
| 7日前から昨日までの、問い合わせ完了・スクロール・リンククリックの件数を見せて。イベント名は私の設定に合わせて確認して。 | 設定済みイベントの件数。人数とは別の集計 |
たとえば9月26日までの数字を見るなら、9月1〜26日と8月1〜26日を比べます。月全体と月途中の数字をそのまま比べないのが大事です。比較元が0なら、増減率は計算できないことも添えてもらいましょう。
ここでいうPVは、ウェブページの表示回数です。GA4と照合するときはプロパティ・期間・指標をそろえます。アプリも含むプロパティでは、ウェブ分を分けて取得する必要があります。Google公式:表示回数などの指標定義
取得が途中までなら、その範囲も示してもらいましょう。ランキングや0件という回答を確かめるために必要です。また、計測していない行動をAIが後から復元することはできません。
実際に、接続したデータがAIの回答とグラフに変わる
GA4の週次レポートをAIで作った実演記事では、GA4とSearch ConsoleをSynapse MCPにつなぎ、Claudeにアクセス状況を聞いています。以下の3枚で、接続から回答・グラフ化までの流れを紹介します。上の月別比較・人気記事の質問例とは別の実演です。
接続後は、CSVを毎回ダウンロードして添付しなくても、普段AIに話しかけるのと同じように自社の数字を聞けます。控えめに言って便利でしかないです。
さらに「GA4のデータをグラフ化して」と伝えると、日別の動きをグラフに整理できます。数字を取り出して終わりではなく、同じ会話で「グラフにして」と続けられるので、増えた日・減った日を確認しやすくなります。
ここから「よく見られたページは?」「レポートにまとめて」と続ける例も、実演記事で紹介しています。
まずは自分のGA4をつなぎ、7日間のPVを聞いてみる
まずは7日間のPVが返ってきて、GA4の数値と合うところまで試してみてください。最初の確認ができれば、次の質問も具体的になります。
- Synapse MCPに登録・ログインし、対象の店舗・案件を選ぶ。まだなければ作成し、GA4を追加する。
- Googleアカウントで認証し、対象のGA4プロパティを選ぶ。
- その店舗・案件のMCPリンクを発行し、接続ガイドに沿ってClaudeまたはChatGPTへ登録する。
- 接続を有効にした会話で、次の質問を送る。
接続済みのGA4プロパティを確認してください。
私が選んだサイトの、7日前から昨日までの日別PVを表にしてください。
ウェブの表示回数を使い、アプリの画面表示とは分けてください。
プロパティ名・ID、開始日・終了日、使った指標名も示してください。
取得できなかったデータは推測で埋めないでください。
数値が返ってきたら、同じプロパティ・期間のGA4の表示回数と照合します。対象期間の日付と取得したPVを、同じ条件のGA4で確認できれば、最初のデータ取得は完了です。データのない日は、未取得なのか計測がなかったのかも確認しましょう。次は「先月と比べて」「記事別に見せて」と質問を広げてみてください。
Synapse MCPでGA4をつなぎ、AIに7日間のPVを聞く →
初めて接続する方は、上の接続ガイドを見ながら進めてください。GA4を閲覧できるGoogleアカウントと、外部接続を利用できるClaude・ChatGPT側のアカウント・設定が必要です。
Synapse MCPのフリーは、新規登録から14日間・3サービスまで、自動課金なしで試せます。最新の条件は料金ページをご確認ください。
