Googleタグマネージャーでフォーム送信を計測する方法を初心者向けに解説。フォームトリガー、GA4連携、サンクスページ、Contact Form 7、確認方法までわかりやすく紹介します。
- Googleタグマネージャーのフォーム送信計測とは?
- フォーム送信計測を設定する前に準備するもの
- GTMでフォーム関連の変数を有効にする方法
- GTMのフォーム送信トリガーとは?
- GTMでフォーム送信トリガーを作成する方法
- フォーム送信トリガーだけでは正しく計測できない場合がある
- サンクスページでフォーム送信を計測する方法
- GA4へフォーム送信イベントを送る方法
- フォーム送信イベント名とパラメータの決め方
- GTMのプレビューでフォーム送信を確認する方法
- GA4でフォーム送信イベントを確認する方法
- GA4の標準form_submitイベントとの違い
- お問い合わせフォームの送信を計測する方法
- 資料請求・申込みフォームの計測に活用する方法
- WordPressフォームで計測するときの注意点
- Cocoonでフォーム送信を計測するときの注意点
- フォーム送信イベントが計測できない原因と対処法
- フォーム送信計測を設定するときの注意点
- GTMのフォーム送信計測についてよくある質問
- GTMでフォーム送信を正しく計測して成果を分析しよう
Googleタグマネージャーでフォーム送信を計測したいものの、「送信ボタンをクリックしただけでも成果として数えていいの?」「Contact Form 7やAjaxフォームでも計測できる?」「GA4にはどのイベント名で送ればいい?」と迷う方も多いのではないでしょうか。フォーム計測では、クリックと送信成功を区別することがとても重要です。この記事では、GTMのフォーム変数や送信トリガーの設定、サンクスページを使った計測、GA4へのイベント送信、Tag Assistantでの確認、計測できない場合の対処法まで、初心者向けに順番にわかりやすく解説します。

Googleタグマネージャーのフォーム送信計測とは?
Googleタグマネージャー(GTM)を使うと、お問い合わせ・資料請求・予約・申込みなどのフォーム送信をイベントとして計測できます。
フォーム送信をGA4へ送ることで、単に「ページが見られたか」だけでなく、実際にフォームから行動につながったかを分析できるようになります。
ただし、フォームの仕組みによって計測方法は異なります。通常のHTMLフォーム、Ajax送信、JavaScriptで動くフォーム、サンクスページへ移動するフォームなどがあるため、最初に送信後の動きを確認することが大切です。
フォーム送信計測とは?
フォーム送信計測とは、ユーザーがお問い合わせフォームなどを送信したことをイベントとして記録する方法です。
たとえば、サイトに100人が訪問して、
- 20人がフォーム入力を開始
- 8人が送信
- 5人がお問い合わせ完了
という流れが分かれば、アクセス数だけでは分からない「成果につながった行動」を確認できます。
代表的なフォームには、
- お問い合わせ
- 資料請求
- 見積もり依頼
- 商品・サービス申込み
- 来店予約
- セミナー申込み
などがあります。
GA4の拡張計測にも、フォームへの入力開始を記録するform_startと、フォーム送信を記録するform_submitがあります。Google ヘルプ
GTMでフォーム送信を計測する仕組み
GTMでは、フォーム送信を検知するトリガーと、GA4へデータを送るイベントタグを組み合わせて計測します。
基本的な流れは次のとおりです。
ユーザーがフォームを入力
↓
フォームを送信
↓
GTMのフォーム送信トリガーが発火
↓
GA4イベントタグが動作
↓
GA4へフォーム送信イベントを送信
Google公式では、GTMの「フォームの送信」トリガーを使って、フォーム送信時にタグを配信できると案内されています。Google ヘルプ
GTMのタグ・トリガー・変数など基本的な仕組みについては、「Googleタグマネージャーとは?初心者でもわかる仕組みと導入するメリットを解説」で詳しく解説しています。
フォーム送信を計測すると何が分かる?
フォーム送信を計測すると、サイトからどのくらい成果が発生しているかを確認できます。
たとえば、
| 確認できること | 分析例 |
|---|---|
| フォーム送信数 | 問い合わせが何件あったか |
| フォーム別の成果 | 問い合わせ・資料請求の違い |
| ページ別の成果 | どの記事から送信されたか |
| 入力開始と送信の差 | 途中離脱が多くないか |
| 流入経路別の成果 | 検索・SNS・広告の違い |
GA4のform_startとform_submitを比較すると、「入力を始めたけれど送信しなかったユーザー」が多いかどうかを分析する材料にもなります。Google ヘルプ
送信ボタンクリック計測との違い
ここは特に重要です。
送信ボタンをクリックしたことと、フォーム送信が正常に完了したことは同じではありません。
たとえば、
- 必須項目が未入力
- メールアドレスの形式が間違っている
- 入力内容にエラーがある
- 通信エラーが発生した
場合でも、送信ボタン自体はクリックできます。
そのため、
送信ボタンクリック=問い合わせ成功
として計測すると、実際の成果より多く見える可能性があります。
GTMのフォーム送信トリガーには「妥当性をチェック」という設定があり、有効にすると適切に送信された場合だけトリガーを発火させる仕組みがあります。ただし、AjaxやJavaScriptを利用したフォームでは通常のフォーム送信トリガーで検知できないこともあるため、フォームの実装に合わせた確認が必要です。Google ヘルプ
フォーム送信計測が役立つサイト
フォーム送信計測は、特に「問い合わせ」や「申込み」が成果になるサイトで役立ちます。
たとえば、
| サイト | 計測したいフォーム |
|---|---|
| 企業サイト | お問い合わせ・見積もり |
| 士業サイト | 相談予約 |
| 不動産サイト | 資料請求・内覧予約 |
| スクール | 体験申込み |
| 美容・医療系サイト | 予約・相談 |
| ブログ | お問い合わせ・メルマガ登録 |
単純なアクセス数だけでなく、どのページが実際の成果につながっているかを判断できるのが大きなメリットです。
GA4へフォーム送信イベントを送る基本的な流れ
GTMからGA4へフォーム送信を送る場合は、GA4イベントタグと送信タイミングを決めるトリガーを設定します。
Google公式でも、GTMからGA4イベントを送信する場合は、「Google アナリティクス: GA4 イベント」タグを設定し、イベントを送るタイミングをトリガーで指定する方法が案内されています。Google ヘルプ
たとえば、
イベント名:form_submit
フォームID:contact-form
ページ:お問い合わせページ
のような情報をGA4へ送れば、フォームごとの送信状況を分析できます。
ただし、GA4の拡張計測ですでにform_submitを取得している場合があります。GTMで独自計測を追加する前に、GA4側ですでにフォームイベントが記録されていないか確認しておきましょう。Google ヘルプ
フォーム送信計測を設定する前に準備するもの
フォーム送信計測では、いきなりトリガーを作るのではなく、最初にGTM・GA4・フォームの動作を確認しておくことが重要です。
特にフォームはサイトごとに仕組みが違うため、**「送信後に何が起こるか」**を確認してから計測方法を決めると失敗しにくくなります。
GTMアカウントとコンテナを準備する
まず、対象サイトで利用するGTMアカウントとWebコンテナを準備します。
すでにGTMを導入している場合は、新しく作成する必要はありません。
確認したいのは、
- 対象サイト用のコンテナである
- GTM-IDが正しい
- 編集できる権限がある
ことです。
複数サイトを運営している場合は、別サイトのコンテナを編集しないよう注意しましょう。
WebサイトへGTMを設置する
GTMでタグやトリガーを作っても、Webサイト側にGTMコンテナが設置されていなければ動作しません。
WordPressでは、
- テーマ機能
- GTM対応プラグイン
- コードを直接設置
などの方法があります。
重要なのは、同じGTMコンテナを複数の方法で設置しないことです。
二重設置すると、フォーム送信イベントが重複して送られる原因になることがあります。
GA4を準備する
フォーム送信イベントをGA4へ送る場合は、GA4側も利用できる状態にしておきます。
確認するのは、
- GA4プロパティ
- Webデータストリーム
- 測定ID
- GA4へのアクセス権限
です。
Google公式のGTMイベント設定手順でも、事前にGA4アカウント・プロパティ・Webデータストリーム・GTMの設定を済ませておくことが前提とされています。Google ヘルプ
Googleタグが正しく設定されているか確認する
現在のGTMでは、従来の「GA4設定タグ」はGoogleタグへ移行しています。
Google公式では、従来のGA4設定タグはGoogleタグへ自動アップグレードされ、GA4イベントタグは引き続き利用できると案内されています。Google ヘルプ
確認したいのは、
- 正しい測定IDを使っている
- Googleタグが読み込まれている
- GTMとGA4が正しく連携している
- タグが重複設置されていない
ことです。
Tag Assistantを使って事前に確認しておくと安心です。
計測したいフォームを決める
次に、どのフォームを計測するのか決めます。
たとえばサイト内に、
- お問い合わせ
- 資料請求
- 無料相談
- 予約
という4種類のフォームがある場合、すべて同じ目的とは限りません。
最初から全部を計測するより、
「まずお問い合わせフォームを計測する」
など、重要なフォームから始めると管理しやすいです。
フォームを区別する場合は、GTMのForm IDやForm Classesなどを利用できます。フォーム送信トリガーが発火すると、Form Element・Form Classes・Form ID・Form Target・Form URL・Form Textなどの組み込み変数に値が入ります。Google ヘルプ
フォーム送信後の動きを確認する
フォーム計測で最も重要な準備の1つが、送信後に何が起こるか確認することです。
主なパターンは次のとおりです。
| 送信後の動き | 計測方法の候補 |
|---|---|
| サンクスページへ移動 | ページビューで完了判定 |
| 同じページで完了メッセージ表示 | フォーム・要素表示・カスタムイベントなど |
| Ajaxで送信 | JavaScript・データレイヤーなどを検討 |
| 通常のHTMLフォーム送信 | フォーム送信トリガーを検討 |
たとえば、
/contact/
から送信後に、
/contact/thanks/
へ移動するなら、サンクスページ表示を送信完了として計測しやすくなります。
一方、URLが変わらず「送信しました」と表示されるフォームでは、通常のページビューだけでは完了を判定できません。
この確認をせずに「送信ボタンのクリック」だけで成果を計測すると、入力エラーまで成果として数える可能性があるので注意しましょう。
事前準備チェックリスト
設定を始める前に、次の項目を確認しましょう。
| 確認項目 | チェック内容 |
|---|---|
| GTMアカウント | 利用できる |
| GTMコンテナ | 対象サイト用を確認 |
| GTM設置 | サイトに正常設置 |
| GA4 | 対象プロパティを準備 |
| Googleタグ | 正常に動作 |
| 対象フォーム | 計測するフォームを決定 |
| Form IDなど | 識別できるか確認 |
| 送信方式 | 通常・Ajaxなどを確認 |
| 送信後URL | 変化するか確認 |
| サンクスページ | 有無を確認 |
| GA4標準計測 | form_submit取得済みか確認 |
| Tag Assistant | 接続・確認できる状態 |
準備段階で特に大切なのは、**「フォームを送信したらURLが変わるのか」「同じページのままなのか」**を実際に確認することです。
ここが分かれば、後のトリガー設定で「フォーム送信」「サンクスページ」「別の成功判定」のどれを使うべきか判断しやすくなります。
GTMでフォーム関連の変数を有効にする方法
GTMでフォーム送信を計測するときは、フォームに関する組み込み変数を有効にしておくと、どのフォームが送信されたのかを判別しやすくなります。
主に使うのは、
- Form Element
- Form Classes
- Form ID
- Form Target
- Form URL
- Form Text
です。
これらはフォームトリガーが成立したときに値を取得でき、トリガー条件やGA4イベントパラメータに利用できます。Google公式でも、フォームトリガー成立時にこれらの組み込み変数が使えると案内されています。Google ヘルプ
フォーム変数とは?
フォーム変数とは、送信されたフォームの情報を取得するための変数です。
たとえば、
- フォームのID
- class属性
- 送信先
- フォーム内のテキスト
などを取得できます。
GTMの変数は、トリガー条件を細かく指定したり、タグへ値を渡したりするために使う仕組みです。Google ヘルプ
たとえばお問い合わせフォームに、
id="contact-form"
が設定されていれば、Form IDを使ってそのフォームだけを対象にできます。
GTMの組み込み変数・ユーザー定義変数・データレイヤー変数の違いについては、「Googleタグマネージャーの変数とは?役割と設定方法を初心者向けに解説」で詳しく解説しています。
GTMの「変数」を開く
まずGTMで対象のコンテナを開きます。
左側メニューから**「変数」**を選択してください。
変数画面では、
- 組み込み変数
- ユーザー定義変数
を確認できます。
フォーム関連の変数はGTMにあらかじめ用意されているため、基本的には新しく作成する必要はありません。
「組み込み変数の設定」を開く
「変数」画面で、組み込み変数の欄にある設定を開きます。
フォーム関連の項目から、
- Form Element
- Form Classes
- Form ID
- Form Target
- Form URL
- Form Text
を有効にします。
フォーム送信時にこれらの変数へ値が入ることで、どのフォームが対象だったのか確認しやすくなります。Google ヘルプ
Form Elementを有効にする
Form Elementは、フォームそのもののDOM要素を取得します。
Google公式では、フォームトリガー成立時にgtm.elementを参照し、フォームのDOM要素を返すと案内されています。Google ヘルプ
通常の初心者向け設定では、Form IDやForm Classesほど直接使う機会は多くありませんが、フォーム要素を詳しく判定したいときに役立ちます。
Form Classesを有効にする
Form Classesは、フォームのclass属性を取得します。Google ヘルプ
たとえば、
class="contact-form main-form"
というフォームなら、そのclass情報を条件にできます。
同じページに複数のフォームがあり、共通のclassでまとめて管理したい場合に便利です。
Form IDを有効にする
Form IDは、フォーム要素のid属性を取得します。Google ヘルプ
たとえば、
id="contact-form"
なら、
Form ID equals contact-form
のような条件で、そのフォームだけを対象にできます。
フォームごとに固有のIDが設定されている場合は、Form IDが最も分かりやすい条件の1つです。
Form Targetを有効にする
Form Targetは、フォーム要素のtarget属性を取得します。Google ヘルプ
target="_blank"
などが設定されているフォームなら、その値を取得できます。
通常のWordPressお問い合わせフォームでは使う機会は少なめですが、別ウィンドウや別フレームへ送信するフォームでは確認材料になります。
Form URLを有効にする
Form URLは、フォームに関連するURL情報を取得する変数です。
Google公式の組み込み変数ヘルプでは、フォームトリガー成立時にgtm.elementUrlを取得すると案内されています。Google ヘルプ
フォームの送信先や関連URLを条件として使いたい場合に利用できます。
ただし、フォームの実装によっては想定した値が入らないこともあるため、Tag Assistantで実際の値を確認してから条件に使うのがおすすめです。
Form Textを有効にする
Form Textは、フォーム内の表示テキストを取得します。Google ヘルプ
たとえば、
- お問い合わせ
- 資料請求
- 無料相談
など、フォーム内の表示内容を確認できます。
ただし、表示テキストは変更される可能性があるため、条件指定にはForm IDやForm Classesの方が安定する場合があります。
フォーム変数の役割早見表
| 変数 | 取得する内容 | 主な使い方 |
|---|---|---|
| Form Element | フォームのDOM要素 | 細かな要素判定 |
| Form Classes | class属性 | 同種フォームの判別 |
| Form ID | id属性 | 特定フォームの指定 |
| Form Target | target属性 | 送信先表示方法の確認 |
| Form URL | フォーム関連URL | 送信先などの判定 |
| Form Text | フォーム内の表示テキスト | フォーム内容の判別 |
初心者の方は、まずForm IDとForm Classesを中心に確認すると分かりやすいです。
GTMのフォーム送信トリガーとは?
フォーム関連の変数を有効にしたら、次に「どのフォーム送信でタグを発火させるか」をトリガーで決めます。
GTMには「フォームの送信」トリガーがあり、フォーム送信を検知してタグを動かせます。Google ヘルプ
フォーム送信トリガーとは?
フォーム送信トリガーとは、ユーザーがフォームを送信したときにタグを発火させるための仕組みです。
たとえば、
お問い合わせフォーム送信
↓
フォーム送信トリガーが発火
↓
GA4イベントタグを送信
という流れになります。
GTMでは、タグを動かすには少なくとも1つのトリガーが必要です。Google ヘルプ
GTMのトリガーの種類や条件設定については、「Googleタグマネージャーのトリガーとは?作成方法と使い方をわかりやすく解説」で詳しく解説しています。
「フォームの送信」で計測する仕組み
GTMでは、
トリガー → 新規 → トリガーの設定 → フォームの送信
と進むことで、フォーム送信トリガーを作成できます。Google ヘルプ
フォーム送信を検知すると、
- Form ID
- Form Classes
- Form URL
- Form Text
などの変数へ値が入り、その値を使って特定フォームだけに絞り込めます。
すべてのフォーム送信を計測する方法
サイト内にフォームが1つしかなく、すべてのフォーム送信を対象にしたい場合は、すべてのフォームを対象にする方法があります。
ただし、サイト内に、
- お問い合わせ
- 検索フォーム
- メルマガ登録
- コメントフォーム
などがある場合、すべてを対象にすると不要な送信まで計測する可能性があります。
Google公式でも、フォーム送信が発生すると想定されるページや条件へ対象を絞ることを推奨しています。Google ヘルプ
一部のフォームだけを計測する方法
特定フォームだけを計測したい場合は、一部のフォームを選択し、条件を設定します。
たとえば、
Form ID equals contact-form
とすれば、contact-formというIDを持つフォームだけを対象にできます。
ほかにも、
- Form Classes
- Page URL
- Page Path
などを条件にできます。
フォームが複数あるサイトでは、この方法の方が安全です。
Form IDでフォームを指定する方法
フォームに固有のIDがある場合は、Form IDで絞り込む方法が分かりやすいです。
たとえばHTMLが、
<form id="contact-form">
なら、
Form ID equals contact-form
と設定します。
Form IDはフォーム要素のID属性を取得するため、フォームごとに固有IDが付いているサイトでは条件として使いやすいです。Google ヘルプ
Form Classesでフォームを指定する方法
Form IDがない場合は、Form Classesを使う方法があります。
たとえば、
class="wpcf7-form contact"
のようなフォームなら、class情報を利用できます。
ただし、同じclassが複数フォームで使われている場合は、Form Classesだけでは区別できないことがあります。
その場合は、
Form Classes
+
Page Path
のように複数条件を組み合わせると安全です。
Page URL・Page Pathで対象ページを絞る方法
フォームが特定ページにしか存在しない場合は、URL条件で絞る方法も有効です。
たとえば、
Page Path equals /contact/
と設定すれば、お問い合わせページ上のフォームだけを対象にできます。
Google公式でも、フォームやリンクのトリガーでは、Page Path equals /my/tested/form/pageのように、対象範囲をテスト済みページへ制限する方法を推奨しています。Google ヘルプ
たとえば次のように使い分けられます。
| 条件 | 用途 |
|---|---|
| Form ID | 特定フォームを厳密に指定 |
| Form Classes | 同じ種類のフォームをまとめる |
| Page URL | 特定URLを指定 |
| Page Path | サイト内の特定ページを指定 |
| 複数条件 | フォーム+ページを組み合わせる |
フォーム送信トリガーの選び方早見表
| サイトの状態 | おすすめ条件 |
|---|---|
| フォームが1つだけ | すべてのフォームでも可 |
| 複数フォームがある | Form ID |
| 共通classで管理 | Form Classes |
| 特定ページだけ | Page Path・Page URL |
| 同じフォームが複数ページ | Form ID+Page条件 |
| フォームの実装が特殊 | Tag Assistantで確認して判断 |
フォーム送信トリガーは便利ですが、JavaScriptやAjaxで処理されるフォームでは通常どおり反応しない場合があります。Google公式も、フォームやリンクのトリガーは別のJavaScript処理が介入すると動作しないことがあるため、公開前にプレビューモードでテストすることを推奨しています。
GTMでフォーム送信トリガーを作成する方法
GTMでフォーム送信を計測するには、「フォームの送信」トリガーを作成します。
Google公式では、フォーム送信トリガーを使うと、フォームが送信されたときにタグを発火できると案内されています。フォーム送信後にGA4イベントタグを動かしたい場合、このトリガーが基本になります。 Google ヘルプ
「新規トリガー」を作成する
まずGTMで対象のコンテナを開きます。
左側メニューから、
「トリガー」→「新規」
と進みます。
次に「トリガーの設定」をクリックし、フォーム送信を検知するためのトリガータイプを選びます。
GTMでは、タグを発火させるために少なくとも1つのトリガーが必要です。 Google ヘルプ
「フォームの送信」を選択する
トリガータイプの一覧から、
「フォームの送信」
を選択します。
このトリガーは、フォームが送信されたときに動作します。Google公式でも、フォーム送信トリガーはフォーム送信を検知してタグを配信するための機能として案内されています。 Google ヘルプ
たとえば、
お問い合わせフォーム送信
↓
フォーム送信トリガー発火
↓
GA4イベントタグ発火
という流れになります。
「タグの配信を待つ」とは?
「タグの配信を待つ」は、フォーム送信によって次のページへ移動する前に、GTMのタグが発火する時間を確保するための設定です。
この設定をオンにすると、
- 関連タグの配信が完了する
- 指定したタイムアウト時間が経過する
のどちらか早い方まで、フォーム送信を一時的に待つ仕組みになります。 Google ヘルプ
たとえば、フォーム送信後すぐにサンクスページへ移動する場合、ページ遷移が速すぎるとGA4イベントタグの送信が間に合わないことがあります。
そのようなケースで「タグの配信を待つ」が役立ちます。
「妥当性をチェック」とは?
「妥当性をチェック」は、フォームが適切に送信された場合だけトリガーを発火させるための設定です。
Google公式では、この設定をオンにすると、フォームが正常に送信された場合だけトリガーが発火すると案内されています。オフの場合は、ユーザーが送信を試みた時点で発火します。 Google ヘルプ
たとえば、
- 必須項目が未入力
- メールアドレス形式が不正
- 入力エラーがある
場合でも、送信操作自体は発生します。
そのため、送信成功に近い条件で計測したい場合は、「妥当性をチェック」の有効化を検討するとよいでしょう。
ただし、JavaScriptやAjaxで独自に送信処理されるフォームでは、この設定だけで正確に判定できない場合があります。
すべてのフォームを対象にする方法
サイト内のすべてのフォーム送信を対象にする場合は、トリガーの発生場所で**「すべてのフォーム」**を選択できます。
ただし、サイト内には、
- お問い合わせ
- サイト内検索
- コメント
- メルマガ登録
- ログイン
など、目的の異なるフォームが複数存在することがあります。
そのため、すべてのフォームを対象にすると、不要な送信までGA4へ記録される可能性があります。
Google公式でも、フォーム送信が発生する場所を特定し、「一部のフォーム」で条件を絞る方法を推奨しています。 Google ヘルプ
特定フォームだけを対象にする方法
お問い合わせフォームだけなど、特定のフォームを計測したい場合は、**「一部のフォーム」**を選択します。
たとえば、
Form ID equals contact-form
と設定すれば、contact-formというIDを持つフォームだけを対象にできます。
ほかにも、
- Form Classes
- Page URL
- Page Path
などを条件に使えます。
たとえば、
Page Path equals /contact/
とすれば、お問い合わせページにあるフォームだけに限定できます。
Google公式でも、フォームトリガーは対象ページやフォームを条件で絞ることを推奨しています。 Google ヘルプ
トリガー名を分かりやすく付ける
トリガーを作成したら、後から見ても内容が分かる名前にしましょう。
たとえば、
Form Submit|お問い合わせ
Form Submit|資料請求
Form Submit|/contact/
などです。
「トリガー1」「フォーム2」のような名前では、あとで何を計測しているか分かりにくくなります。
トリガー名は、
種類|対象フォーム|対象ページ
のように統一すると管理しやすいです。
フォーム送信トリガーだけでは正しく計測できない場合がある
GTMのフォーム送信トリガーは便利ですが、すべてのフォームで必ず正しく動くわけではありません。
特に、
- JavaScriptで送信処理するフォーム
- Ajaxフォーム
- ページ遷移しないフォーム
- 独自プラグインで作られたフォーム
では、通常のフォーム送信トリガーが反応しないことがあります。
Google公式でも、フォームの標準的なsubmit動作が変更されている場合は、カスタムイベントトリガーなど別の方法が必要になることがあると案内されています。 Google ヘルプ
送信ボタンクリックと送信成功は別
フォーム計測で最も重要なのは、
送信ボタンを押したこと
と
フォームが正常に送信されたこと
を分けて考えることです。
たとえば、
- 名前が未入力
- メールアドレスに誤り
- 必須チェックが未選択
でも、送信ボタン自体はクリックできます。
そのため、送信ボタンのクリックだけを成果として計測すると、実際の問い合わせ件数より多くなる可能性があります。
クリック計測=送信成功ではない
と覚えておきましょう。
JavaScriptフォームでは通常の送信トリガーが動かない場合がある
最近のフォームでは、JavaScriptを使って送信処理を制御しているケースがあります。
この場合、通常のHTMLフォームで発生するsubmitイベントが使われていなかったり、途中で別のJavaScript処理に置き換えられていたりすることがあります。
Google公式でも、フォームやリンクのトリガーは、別のJavaScriptイベントが処理に介入すると正常に動作しない場合があるため、プレビューモードで確認するよう案内しています。 Google ヘルプ
Ajaxフォームとは?
Ajaxフォームとは、ページ全体を再読み込みせずに、JavaScriptを使ってフォーム内容を送信する仕組みです。
たとえば、
送信ボタンを押す
↓
画面はそのまま
↓
「送信完了しました」と表示
というフォームです。
この方式では、
- サンクスページへ移動しない
- URLが変わらない
- 通常のフォーム送信イベントが発生しない
ことがあります。
そのため、通常のフォーム送信トリガーだけでは正しく検知できない場合があります。
ページ遷移しないフォームに注意する
フォーム送信後にURLが変わらない場合、ページビューだけでは送信成功を判定できません。
たとえば、
/contact/
のまま画面上に、
「お問い合わせを送信しました」
と表示されるケースです。
このような場合は、
- 完了メッセージの表示
- カスタムイベント
- dataLayerへのイベント送信
- フォームプラグイン固有のJavaScriptイベント
などを使って送信成功を判定する方法があります。
Google公式でも、標準的なフォーム送信が変更されている場合は、カスタムイベントトリガーを使う方法が紹介されています。 Google ヘルプ
入力エラーでもクリックは発生する
たとえば、
メールアドレスが未入力
のまま「送信」を押した場合、
- クリックイベント → 発生
- フォーム送信成功 → 発生しない
という状態になります。
そのため、送信ボタンクリックだけを見ると、実際には送信されていない操作まで成果として数えてしまいます。
フォーム成果を正確に分析したい場合は、
- サンクスページ到達
- 正常なform_submit
- 完了メッセージ表示
- カスタムイベント
など、送信成功に近いタイミングを使う方が適しています。
フォームの種類によって計測方法を変える
フォーム送信の計測方法は、フォームの仕組みに合わせて選びましょう。
| フォームの種類 | 計測方法の候補 |
|---|---|
| 通常のHTMLフォーム | フォーム送信トリガー |
| 送信後にサンクスページへ移動 | ページビュー・URL条件 |
| Ajaxフォーム | カスタムイベントなど |
| JavaScriptフォーム | dataLayer・カスタムイベントなど |
| 送信ボタンだけ計測したい | クリックトリガー |
| 完了メッセージを判定したい | 要素表示・カスタムイベントなど |
初心者の方は、まず実際にフォームを送信して、
「URLが変わるのか」「画面内だけ変わるのか」
を確認してください。
その結果から計測方法を選ぶと、誤計測を減らせます。
Google公式でも、フォームトリガーは公開前にプレビューモードでテストし、フォームデータやタグが正常に動作するか確認することを推奨しています。
サンクスページでフォーム送信を計測する方法
フォーム送信後に「お問い合わせありがとうございました」などの専用ページへ移動するサイトでは、サンクスページが表示されたことをフォーム送信完了として計測する方法があります。
通常のフォーム送信トリガーが使いにくい場合でも、送信成功後だけ専用URLへ移動する仕組みなら、ページビューを利用して比較的分かりやすく設定できます。Google公式でも、確認ページなどの閲覧を条件にイベントを送る場合は「ページビュー」トリガーを利用できると案内しています。 Google ヘルプ
サンクスページ計測とは?
サンクスページ計測とは、フォームの送信成功後に表示される専用ページへの到達を、成果として記録する方法です。
たとえば、
/contact/
でお問い合わせフォームを送信し、成功した場合だけ、
/contact/thanks/
へ移動するとします。
この場合は、
フォーム送信成功
↓
サンクスページへ移動
↓
ページビューを検知
↓
GA4イベントタグを発火
という流れで計測できます。
「送信ボタンを押しただけ」ではなく、送信後の完了ページまで到達したことを条件にできる点がメリットです。
フォーム送信後にURLが変わるか確認する
最初に、実際にテスト送信して、送信後のURLを確認しましょう。
たとえば、
送信前https://example.com/contact/
送信後https://example.com/contact/thanks/
のように変われば、サンクスページを条件にできます。
一方で、
のまま「送信しました」と表示されるフォームでは、URLによるサンクスページ計測はできません。
確認するポイントは、
- 送信成功後だけURLが変わるか
- 毎回同じ完了URLになるか
- 入力エラー時には完了ページへ移動しないか
です。
Page Viewトリガーを作成する
サンクスページを計測する場合は、GTMでページビュータイプのトリガーを作成します。
基本的には、
「トリガー」→「新規」→「トリガーの設定」→「ページビュー」
と進みます。
そして「一部のページビュー」を使って、サンクスページだけを対象にします。
Google公式でも、特定の確認ページが表示されたときにイベントを送る場合、ページビュータイプのトリガーを使用できると案内しています。 Google ヘルプ
サンクスページのURLを条件にする
次に、サンクスページのURLをトリガー条件へ設定します。
たとえば、
Page Path equals /contact/thanks/
のように設定します。
URL全体を使う場合はPage URLでも条件を作れますが、ドメイン変更やHTTP・HTTPSなどの影響を受けにくくする目的では、Page Pathの方が扱いやすい場合があります。
設定例は次のとおりです。
| 項目 | 設定例 |
|---|---|
| トリガータイプ | ページビュー |
| 発生場所 | 一部のページビュー |
| 変数 | Page Path |
| 条件 | equals |
| 値 | /contact/thanks/ |
GA4イベントタグを発火させる
サンクスページ用トリガーを作成したら、GA4イベントタグに設定します。
たとえば、
イベント名:form_submit
トリガー:サンクスページ表示
とすれば、サンクスページが表示されたタイミングでGA4へフォーム送信イベントを送れます。
Google公式では、GTMからGA4へイベントを送る場合、「Google アナリティクス: GA4 イベント」タグを設定し、イベント送信のタイミングをトリガーで指定します。 Google ヘルプ
ただし、GA4の拡張計測ですでにform_submitを取得している場合があります。同じ送信をGTMからも送ると意味の重複が起こるため、事前にGA4側を確認しておきましょう。GA4の拡張計測ではform_startとform_submitが自動収集される場合があります。 Google ヘルプ
サンクスページ計測のメリット
サンクスページ計測には、フォーム送信ボタンのクリックだけを計測する方法と比べて、送信成功に近いタイミングを取得しやすいメリットがあります。
たとえば、
- 必須項目未入力
- メールアドレス形式エラー
- 入力内容の不備
がある場合、通常はサンクスページまで移動しません。
そのため、クリックだけを成果とするより、実際の問い合わせ完了件数に近いデータを取得しやすくなります。
サンクスページ計測が向かないケース
サンクスページ方式が使えない、または注意が必要なケースもあります。
たとえば、
- 送信後もURLが変わらない
- Ajaxで完了メッセージだけ表示される
- JavaScriptでフォーム処理される
- 誰でも直接サンクスページを開ける
- ページを再読み込みするとイベントが再発火する
場合です。
特にサンクスページのURLを直接開いた場合や再読み込みした場合にも、ページビュー条件だけならイベントが発火する可能性があります。
そのため、サンクスページ表示=必ず新しいフォーム送信1件とは限らない点は覚えておきましょう。
フォームの実装が標準的でない場合は、Google公式でもカスタムイベントトリガーを使う方法が案内されています。 Google ヘルプ
サンクスページ計測の向き・不向き早見表
| フォームの状態 | サンクスページ計測 |
|---|---|
| 成功後だけ専用URLへ移動 | ◎ 向いている |
| 入力エラー時は移動しない | ◎ 向いている |
| 送信後も同じURL | × URLでは判定不可 |
| Ajax送信 | △ 別方法を検討 |
| 直接URLへアクセス可能 | △ 誤計測に注意 |
| 再読み込み可能 | △ 重複計測に注意 |
GA4へフォーム送信イベントを送る方法
フォーム送信トリガーやサンクスページトリガーを準備したら、次はGA4へイベントを送ります。
GTMでは、イベント名に加えてフォームIDやフォーム名などをイベントパラメータとして送ることで、どのフォームから成果が発生したのかを分析しやすくできます。
GA4イベントタグを作成する
GTMで「新規タグ」を作成し、GA4へイベントを送るタグを設定します。
主に設定する項目は、
- Googleタグ
- イベント名
- イベントパラメータ
- トリガー
です。
Google公式でも、GTMでGA4イベントを設定する場合はGA4イベントタグを作り、イベント送信の条件となるトリガーを設定する手順が案内されています。 Google ヘルプ
GTMとGA4を接続し、GoogleタグやGA4イベントタグを設定する基本手順については、「GoogleタグマネージャーとGoogle Analyticsを連携する方法を徹底解説」で詳しく解説しています。
イベント名を決める
フォーム送信をGA4へ送る場合、代表的なイベント名として、
form_submit
があります。
GA4の拡張計測でもフォーム送信時にform_submitが使われ、form_id・form_name・form_destination・form_submit_textなどの情報が取得されます。 Google ヘルプ
ただし、すでにGA4拡張計測で同じフォームのform_submitが取得されている場合、GTMでも同じイベントを送ると二重計測になる可能性があります。
そのため、
GTMで追加する前にGA4の既存イベントを確認する
ことが大切です。
フォーム送信トリガーを設定する
GA4イベントタグを作成したら、発火条件となるトリガーを割り当てます。
フォームの種類によって、
- フォーム送信トリガー
- サンクスページのPage Viewトリガー
- カスタムイベントトリガー
などを使い分けます。
通常のフォームなら「フォームの送信」、サンクスページ方式なら「ページビュー」というように、送信成功を最も正確に判定できるトリガーを選びましょう。
フォームIDをパラメータへ送る
複数フォームを区別したい場合は、Form IDをGA4へ送ると便利です。
たとえば、
| パラメータ名 | 値 |
|---|---|
| form_id | {{Form ID}} |
と設定します。
お問い合わせフォームのIDがcontact-formなら、
form_id = contact-form
のようにGA4へ送れます。
GA4の拡張計測でも、form_idはフォームDOM要素のHTML id属性を表すパラメータとして使われています。 Google ヘルプ
ただし、フォームにIDが設定されていなければ値を取得できません。Tag Assistantで実際の値を確認してから利用しましょう。
Page URLを確認する
フォームイベントでは、「どのページで発生したか」も重要です。
GA4のWebイベントではページ情報が自動的に取得されるため、単に発生ページを確認したいだけなら、独自にpage_urlを追加しなくても分析できるケースがあります。
たとえば、
/contact//service-a//campaign/
などを比較すれば、どのページがフォーム送信につながっているか判断できます。
特に同じ問い合わせフォームを複数ページに配置している場合、発生ページを確認すると成果の高いページを見つけやすくなります。
フォーム名をパラメータへ送る方法
フォーム名を区別したい場合は、分かりやすい名称をイベントパラメータとして送る方法もあります。
たとえば、
| パラメータ名 | 値の例 |
|---|---|
| form_name | contact |
| form_name | document_request |
| form_name | reservation |
とします。
GA4標準の拡張計測でもform_nameはフォームDOM要素のHTML name属性から取得されるパラメータです。 Google ヘルプ
ただし、GTMの組み込みフォーム変数に「Form Name」が用意されているとは限りません。そのため独自の分かりやすいフォーム名を送りたい場合は、固定値・ユーザー定義変数・データレイヤーなど、サイトの実装に合った方法を使います。
氏名やメールアドレスなど、ユーザーの個人情報をform_nameへ入れてはいけません。
フォーム送信イベント設定例
お問い合わせフォームをGTMからGA4へ送る場合、たとえば次のように整理できます。
| 設定項目 | 設定例 |
|---|---|
| タグ | GA4イベント |
| イベント名 | form_submit |
| form_id | {{Form ID}} |
| form_name | contact |
| 発生ページ | GA4のページ情報を利用 |
| トリガー | フォーム送信またはサンクスページ |
| 確認方法 | Tag Assistant・GA4 DebugView |
送信の流れは次のイメージです。
フォーム送信成功
↓
GTMトリガー発火
↓
GA4イベントタグ発火
↓
form_submitを送信
↓
GA4でフォーム別・ページ別に分析
GA4ではform_startとform_submitを利用して、フォーム入力を始めたユーザーと送信したユーザーを比較できます。Google公式も、この2つのイベントをフォーム利用状況の比較に使えると案内しています。 Google ヘルプ
なお、フォーム関連パラメータをGA4の通常レポートなどで分析したい場合は、必要に応じてカスタムディメンションの作成が必要です。Google公式でも、拡張計測のフォームパラメータをレポートで利用するにはカスタムディメンションを作成するよう案内しています。
フォーム送信イベント名とパラメータの決め方
フォーム送信をGA4へ送るときは、イベント名とパラメータを最初に整理しておくことが大切です。
フォームごとに別々のイベント名を増やしすぎると、GA4のイベント一覧が分かりにくくなります。基本は、イベント名はできるだけ統一し、フォームの違いはパラメータで分けると管理しやすくなります。
イベント名は分かりやすく統一する
イベント名は、何を計測しているのかが分かる名前にしましょう。
ただし、ここで重要な注意点があります。
GA4のform_submitは、拡張計測で使われる予約済みイベント名です。Google公式の命名規則でも、form_submitは予約済みイベント名として案内されています。GTMから独自イベントを新しく送る場合は、form_submitをそのまま独自イベント名として使うより、別名を使う方が安全です。 Google ヘルプ
たとえば、
contact_form_submitlead_form_submitinquiry_submit
などが分かりやすいでしょう。
form_submitの設定例
form_submitは、GA4の拡張計測でフォーム送信時に自動収集されるイベントです。
このイベントには、
- form_id
- form_name
- form_destination
- form_submit_text
などのパラメータが付くことがあります。Google公式でも、form_submitは拡張計測のフォーム操作イベントとして案内されています。 Google ヘルプ
そのため、まずGA4ですでにform_submitが取得されていないか確認しましょう。
すでに取得できているなら、GTMで同じ目的の独自イベントを追加しなくてもよい場合があります。
form_idを活用する
複数フォームを区別したい場合は、form_idが便利です。
たとえば、
| イベント名 | form_id |
|---|---|
| contact_form_submit | contact-form |
| contact_form_submit | document-form |
| contact_form_submit | reservation-form |
のようにすれば、イベント名を増やさずにフォームごとの送信数を分けられます。
GA4標準のフォームイベントでも、form_idはフォームDOM要素のHTML id属性として利用されています。 Google ヘルプ
form_nameを活用する
form_nameも、フォームを判別するのに使えるパラメータです。
たとえば、
- contact
- document_request
- reservation
など、管理しやすい名称を使うと分かりやすいです。
ただし、GA4標準のform_nameはフォームDOM要素のHTML name属性から取得されます。独自に分かりやすい名称を設定したい場合は、固定値やユーザー定義変数などで管理する方法があります。 Google ヘルプ
page_locationを活用する
どのページでフォーム送信が発生したか確認したい場合は、page_locationを活用できます。
GA4のWebストリームでは、page_locationはカスタムイベントを含むすべてのイベントでデフォルト収集されます。 Google ヘルプ
そのため、単に発生ページを知りたいだけなら、独自のpage_urlパラメータを追加しなくてもよいケースが多いです。
たとえば、
/contact//service-a//campaign/
のどこからフォーム送信が発生したかを比較できます。
イベント名をフォームごとに分けすぎない
たとえば、
- contact_submit
- document_submit
- reservation_submit
- consultation_submit
とフォームごとにイベント名を増やすと、イベント一覧が複雑になります。
初心者の方には、
イベント名:lead_form_submit
form_name:contact
form_name:document_request
のように、イベント名を統一してフォームの違いをパラメータで分ける方法が分かりやすいです。
イベントパラメータは、ユーザー行動に追加情報を付けて詳しく分析するために使えます。 Google ヘルプ
GA4のイベント命名ルールに注意する
GA4ではイベント名にルールがあります。
Google公式では、
- 英字で始める
- 英数字とアンダースコアを使う
- スペースを使わない
- 大文字・小文字を区別する
- 予約済みイベント名を使わない
と案内されています。 Google ヘルプ
たとえば、
contact_form_submit
は分かりやすいですが、
Contact Form Submit
のようにスペースを入れるのは避けましょう。
また、
form_submit
は予約済みなので、GTM独自イベントとして新しく設定する場合は別名にするのが安全です。
イベント名・パラメータ設定早見表
| 項目 | おすすめ例 |
|---|---|
| 独自イベント名 | contact_form_submit |
| フォームID | form_id |
| フォーム名 | form_name |
| 発生ページ | page_location |
| 送信先 | 必要に応じてform_destination |
| 管理方法 | イベント名を統一しパラメータで分ける |
GTMのプレビューでフォーム送信を確認する方法
フォーム送信トリガーやGA4イベントタグを設定したら、すぐに公開せず、まずGTMのプレビューモードで確認しましょう。
Google公式でも、フォームやリンクのトリガーは、JavaScriptの影響で正しく動かない場合があるため、公開前にプレビューでテストすることを推奨しています。 Google ヘルプ
プレビューモードを起動する
GTMで対象コンテナを開き、画面右上の**「プレビュー」**をクリックします。
すると、Google Tag Assistantが新しいタブで起動します。
Google公式でも、
GTM → プレビュー → Tag Assistant起動
という流れで確認する方法が案内されています。 Google ヘルプ
Tag Assistantでサイトへ接続する
Tag Assistantが開いたら、フォームがあるページのURLを入力して接続します。
たとえば、
などです。
接続後は、実際のサイトを操作しながら、
- イベント
- タグ
- 変数
を確認できます。
Google公式でも、Tag AssistantにURLを入力して接続し、タグやイベントを検証する方法が案内されています。 Google ヘルプ
実際にフォームへ入力する
次に、実際にテスト用の内容をフォームへ入力します。
たとえば、
- 名前
- メールアドレス
- お問い合わせ内容
などを入力します。
本番サイトでテストする場合は、実際のお問い合わせと区別できるよう、
「GTM計測テスト」
など分かりやすい内容にすると管理しやすいです。
フォーム送信を実行する
フォーム入力後、送信ボタンを押します。
このとき、
- 正常送信
- 入力エラー
- サンクスページへの移動
- 完了メッセージ表示
など、フォームの動作も確認しましょう。
フォーム送信トリガーは「妥当性をチェック」を有効にすると、フォームが適切に送信された場合のみ発火するよう設定できます。 Google ヘルプ
gtm.formSubmitを確認する
標準的なフォーム送信トリガーが正常に検知された場合、Tag Assistantのイベント一覧でフォーム送信に対応する内部イベントを確認できます。
環境によっては、
gtm.formSubmit
として表示されます。
ただし、JavaScriptやAjaxで標準のsubmit動作が変更されているフォームでは、通常のフォーム送信イベントが出ないことがあります。
Google公式でも、標準的なフォーム送信処理が変更されている場合は、カスタムイベントトリガーなど別の方法が必要になることがあると案内されています。 Google ヘルプ
Variablesでフォーム情報を見る
フォーム送信に対応するイベントを選択したら、Variablesを確認します。
主に見るのは、
- Form Element
- Form Classes
- Form ID
- Form Target
- Form URL
- Form Text
です。
フォーム送信トリガーが発火すると、これらの組み込み変数に値が入ります。 Google ヘルプ
たとえば、
Form ID:contact-form
となっていれば、対象フォームを正しく取得できていると判断できます。
Tags Firedを確認する
次に、目的のGA4イベントタグが発火しているか確認します。
たとえば、
GA4|contact_form_submit
というタグを作成している場合、そのタグがTags Firedに表示されているかを見ます。
確認したいのは、
- 目的のタグが発火している
- 対象フォームだけで発火する
- 入力エラー時は不要に発火しない
- サンクスページ方式なら正しいページで発火する
ことです。
二重発火していないか確認する
フォーム送信計測では、同じ送信でイベントが2回以上発生していないかも確認しましょう。
二重発火の主な原因は、
- GTMコンテナの二重設置
- GA4拡張計測のform_submitとGTM独自計測の重複
- 同じGA4イベントタグを複数作成
- 複数トリガーが同時に動いている
ことです。
特に、GA4の拡張計測ではform_submitが自動収集されるため、GTMでも同じ送信を計測すると、意味の近いイベントが重複する可能性があります。 Google ヘルプ
GTMプレビュー確認早見表
| 確認項目 | 見るポイント |
|---|---|
| Tag Assistant接続 | 対象サイトへ接続できる |
| フォーム送信 | 正常に送信できる |
| 内部イベント | gtm.formSubmitなどを確認 |
| Variables | Form IDなどが正しい |
| Tags Fired | GA4イベントタグが発火 |
| 入力エラー | 不要な成果計測がない |
| 二重発火 | 同じ送信で2回送られていない |
| Ajaxフォーム | 通常トリガーが使えるか確認 |
フォーム計測では、**「ボタンを押した」ではなく「送信成功を正しく検知できたか」**を確認することが最も重要です。
GA4でフォーム送信イベントを確認する方法
GTMでフォーム送信イベントを設定したら、次はGA4側で正しく受信できているか確認します。
設定直後は通常レポートよりも、リアルタイムレポートやDebugViewを使うと確認しやすいです。Google公式でも、データ収集の確認にはリアルタイムレポートとDebugViewを利用できると案内されています。 Google ヘルプ
リアルタイムレポートで確認する
GA4を開き、リアルタイムレポートでフォーム送信イベントが届いているか確認します。
たとえばGTM独自イベント名を、
contact_form_submit
としている場合、そのイベントがリアルタイムで表示されれば、GA4へデータが届いていると判断できます。
確認したいのは、
- 設定したイベント名が表示される
- 送信後にイベント数が増える
- テスト送信したタイミングと一致する
ことです。
リアルタイムレポートは、設定直後の動作確認に向いています。 Google ヘルプ
DebugViewで確認する
より詳しく確認したい場合は、DebugViewを使います。
DebugViewでは、デバッグ対象のブラウザや端末から送信されたイベントを時系列で確認できます。 Google ヘルプ
たとえば、
contact_form_submit
を選び、
- form_id
- form_name
- page_location
- その他のイベントパラメータ
が正しく送られているか確認します。
イベントが届いていてもパラメータが空欄なら、GTM側の変数設定やフォームのHTML属性を見直す必要があります。
イベント名を確認する
まず確認したいのは、GTMで設定したイベント名とGA4側のイベント名が一致しているかです。
たとえば、
GTM側contact_form_submit
GA4側contact_form_submit
となっているか確認します。
GA4ではイベント名の大文字・小文字が区別されるため、
contact_form_submit
と
Contact_Form_Submit
は別イベントとして扱われます。
そのため、イベント名は最初に決めたルールで統一しておくことが大切です。
フォームID・フォーム名を確認する
複数フォームを計測している場合は、form_idやform_nameも確認しましょう。
GA4の標準フォームイベントでは、
- form_id
- form_name
- form_destination
- form_submit_text
などのパラメータが利用されます。 Google ヘルプ
たとえば、
| イベント名 | form_id | form_name |
|---|---|---|
| contact_form_submit | contact-form | contact |
| contact_form_submit | document-form | document_request |
| contact_form_submit | reservation-form | reservation |
のように整理すると、フォーム別の成果を比較しやすくなります。
なお、これらのパラメータを通常のレポートで使う場合は、カスタムディメンションの作成が必要になることがあります。GA4公式でも、フォームパラメータをレポートで利用する場合はカスタムディメンションを作成するよう案内しています。 Google ヘルプ
通常レポートへの反映には時間差がある
フォーム送信イベントがリアルタイムやDebugViewで確認できても、通常レポートにはすぐ表示されない場合があります。
Google公式では、レポートやデータ探索で使える形に処理されるまで、24~48時間かかることがあると案内されています。 Google ヘルプ
そのため、
設定直後
→ リアルタイム・DebugView
時間がたった後
→ 通常レポート・データ探索
という使い分けがおすすめです。
フォーム別に送信数を分析する方法
フォーム送信イベントが蓄積したら、フォームごとに比較すると改善に役立ちます。
たとえば、
| フォーム | 入力開始 | 送信 | 見方 |
|---|---|---|---|
| お問い合わせ | 100 | 60 | 比較的送信率が高い |
| 資料請求 | 120 | 40 | 途中離脱が多い可能性 |
| 予約 | 50 | 35 | 送信率が高い |
GA4ではform_startとform_submitを使って、フォーム入力を始めたユーザーと送信したユーザーを比較できます。Google公式も、この2つを比較してフォーム途中の問題を見つける用途を案内しています。 Google ヘルプ
たとえば資料請求フォームだけ送信率が低い場合は、
- 必須項目が多すぎる
- 入力方法が分かりにくい
- エラー表示が分かりにくい
- スマホで入力しづらい
といった問題を確認するとよいでしょう。
GA4の標準form_submitイベントとの違い
GA4には、GTMで独自設定しなくてもフォーム操作を取得できる拡張計測機能があります。
そのため、GTMでフォーム送信イベントを追加する前に、GA4ですでにform_startやform_submitが取得されていないか確認することが重要です。
GA4の拡張計測でもフォーム操作を取得できる
GA4のWebデータストリームで拡張計測が有効になっている場合、フォーム操作として、
form_startform_submit
が自動収集されます。 Google ヘルプ
つまり、すべてのフォームでGTM独自イベントを作らなくても、GA4標準機能だけで必要な情報が取れている場合があります。
まずはGA4のイベント一覧やDebugViewで、
form_start
form_submit
が発生しているか確認しましょう。
GA4標準のform_startとは?
form_startは、ユーザーがセッション内で初めてフォームを操作したときに記録されるイベントです。 Google ヘルプ
主に、
- form_id
- form_name
- form_destination
などの情報を持ちます。
このイベントを見ると、
「フォームを開いただけでなく、実際に入力を始めたユーザー」
を把握できます。
ただし、同じセッション内で同じユーザーが何度もフォームを触った場合でも、form_startは最初の操作を基準に考えるイベントです。
GA4標準のform_submitとは?
form_submitは、ユーザーがフォームを送信したときに記録されるイベントです。 Google ヘルプ
主なパラメータは、
- form_id
- form_name
- form_destination
- form_submit_text
です。
これにより、
「入力開始した人数」と「実際に送信した人数」
を比較できます。
たとえば、
form_start:100
form_submit:60
なら、40人分の差があるため、フォーム途中で離脱している可能性があります。
GTM独自計測との違い
GA4標準計測とGTM独自計測では、自由度が異なります。
| 項目 | GA4標準 | GTM独自計測 |
|---|---|---|
| 設定 | 比較的簡単 | 設定が必要 |
| form_start | 自動取得可能 | 独自設定可能 |
| form_submit | 自動取得可能 | 独自設定可能 |
| 特定フォームだけ計測 | 限定的 | 細かく条件指定可能 |
| サンクスページを条件にする | 別設定が必要 | 設定しやすい |
| Ajax・特殊フォーム対応 | 取得できない場合あり | カスタムイベント等で対応可能 |
| 独自パラメータ | 限定的 | 自由に追加しやすい |
GTMでは、標準フォーム送信がJavaScriptなどで上書きされている場合でも、カスタムイベントトリガーを使って対応できます。Google公式でも、フォームの標準submit動作が変更されている場合の代表的な用途として、カスタムイベントトリガーを案内しています。 Google ヘルプ
GA4標準とGTMを重複させない
ここは特に重要です。
GA4の拡張計測ですでにform_submitを取得している状態で、GTMから同じ送信を独自イベントとして追加すると、分析が分かりにくくなる場合があります。
たとえば、
GA4標準:form_submit
GTM独自:contact_form_submit
のように役割を分ければ整理しやすくなります。
ただし、同じフォーム送信を2種類のイベントで取る必要がなければ、どちらか一方へ整理した方がシンプルです。
特に、
- 標準form_submitで十分なのか
- サンクスページ計測が必要なのか
- Ajaxフォームで標準計測できないのか
を確認してからGTM独自計測を追加しましょう。
どちらを使えばよい?
目的によって選びます。
| 目的 | おすすめ |
|---|---|
| 標準的なフォーム送信を簡単に見る | GA4標準 |
| 入力開始と送信を比較したい | GA4標準 |
| 特定フォームだけを厳密に計測したい | GTM |
| サンクスページ到達を成果にしたい | GTM |
| Ajax・JavaScriptフォームを計測したい | GTM+カスタムイベントなど |
| 独自パラメータを細かく付けたい | GTM |
初心者の方は、まずGA4標準のform_start・form_submitが取れているか確認し、不足する場合だけGTMで補う方法が分かりやすいです。
この順番なら、不要な重複計測を避けやすくなります。
GA4標準とGTMの使い分け早見表
| 確認内容 | GA4標準で十分 | GTM追加を検討 |
|---|---|---|
| 普通のフォーム送信 | ○ | 必要に応じて |
| form_start確認 | ○ | 通常不要 |
| form_submit確認 | ○ | 特殊フォームなら検討 |
| サンクスページ到達 | △ | ○ |
| Ajaxフォーム | △ | ○ |
| 特定フォームだけ厳密に計測 | △ | ○ |
| 独自パラメータ追加 | △ | ○ |
お問い合わせフォームの送信を計測する方法
お問い合わせフォームは、企業サイトやサービスサイトで重要な成果地点の1つです。
単に送信件数だけを見るのではなく、入力開始数・送信数・送信完了率・離脱状況まで確認すると、フォームの使いやすさや導線の問題を見つけやすくなります。
お問い合わせフォームで確認したい指標
お問い合わせフォームでは、主に次の指標を確認します。
- フォーム表示数
- フォーム開始数
- フォーム送信数
- 送信完了率
- 離脱数
- 送信元ページ
- 流入経路
たとえば、フォームページへのアクセスは多いのに送信数が少ない場合は、入力項目や導線に問題がある可能性があります。
逆に、アクセス数は少なくても送信完了率が高ければ、フォーム自体よりも集客や導線を改善する方が効果的かもしれません。
フォーム開始数を確認する
GA4の拡張計測では、フォームへの入力が開始されたときにform_startイベントを取得できる場合があります。
この数値を見ると、
「フォームページを見た人」
と
「実際に入力を始めた人」
を分けて考えられます。
たとえば、
フォームページ閲覧:500
form_start:200
なら、300人は入力を始める前に離脱したことになります。
その場合は、
- フォームが長そうに見える
- 必須項目が多い
- 何を入力すればよいか分かりにくい
- 個人情報の入力に不安がある
といった点を確認するとよいでしょう。
フォーム送信数を確認する
フォーム送信数は、実際にお問い合わせが何件発生したかを見る基本指標です。
GA4標準のform_submitやGTM独自イベントを利用して確認できます。
たとえば、
form_start:200
form_submit:120
なら、80件分の差があります。
この差を見ることで、入力途中で離脱した可能性を把握できます。
ただし、送信ボタンのクリック数だけを成果にすると、入力エラーも含む可能性があるため注意しましょう。
送信完了率を確認する
送信完了率は、フォームを始めたユーザーのうち、どのくらいが送信まで進んだかを見る指標です。
たとえば、
フォーム開始数:200
フォーム送信数:120
なら、
120 ÷ 200 × 100 = 60%
となります。
この数値を記事や期間ごとに比較すると、改善前後の変化も分かりやすくなります。
| 項目 | 件数 |
|---|---|
| フォーム開始 | 200 |
| フォーム送信 | 120 |
| 途中離脱 | 80 |
| 送信完了率 | 60% |
ただし、GA4標準イベントの取得状況やフォームの実装によっては、開始数・送信数が完全に一致しない場合があります。数値は実際の動作確認と合わせて見ましょう。
離脱が多いフォームを見つける
複数のフォームがある場合は、送信完了率を比較すると問題のあるフォームを見つけやすくなります。
たとえば、
| フォーム | 開始数 | 送信数 | 完了率 |
|---|---|---|---|
| お問い合わせ | 100 | 70 | 70% |
| 無料相談 | 120 | 45 | 37.5% |
| 見積もり依頼 | 80 | 55 | 68.8% |
この場合は、無料相談フォームで大きく離脱していることが分かります。
改善候補としては、
- 入力項目を減らす
- 任意項目を増やす
- エラー表示を分かりやすくする
- スマートフォンで入力しやすくする
- 送信ボタンの文言を見直す
などがあります。
お問い合わせ導線の改善に活用する
フォーム送信データは、フォーム自体だけでなく、記事やサービスページからの導線改善にも使えます。
たとえば、
サービスページA → お問い合わせ10件
サービスページB → お問い合わせ40件
なら、ページBの方が問い合わせにつながりやすい可能性があります。
その違いを、
- CTAの位置
- 内部リンク
- ボタン文言
- 説明内容
- 料金情報
- 実績紹介
などと合わせて確認すると、成果の出やすい導線を見つけやすくなります。
資料請求・申込みフォームの計測に活用する方法
GTMとGA4を使えば、お問い合わせだけでなく、資料請求・申込み・予約など、複数のフォーム成果を比較できます。
フォームごとの成果を分けて計測すると、どのサービスやページが実際の行動につながっているかを判断しやすくなります。
資料請求フォームを計測する
資料請求フォームでは、送信件数だけでなく、
- どのページから資料請求されたか
- どの流入元から来たか
- どの資料が選ばれたか
を確認すると効果的です。
たとえば、
サービスA資料請求:50件
サービスB資料請求:20件
なら、サービスAへの関心が高い可能性があります。
フォームIDやフォーム名を使い分ければ、GA4で資料請求ごとの成果を整理できます。
申込みフォームを計測する
申込みフォームは、実際の契約や利用開始につながる重要なフォームです。
たとえば、
- セミナー申込み
- 無料体験
- 会員登録
- サービス申込み
などがあります。
申込みフォームでは、単なるクリックではなく、送信成功や完了ページ到達を成果として計測する方が適しています。
入力エラーや途中離脱を成果として数えないようにしましょう。
予約フォームを計測する
予約フォームでは、
- 来店予約
- 面談予約
- 宿泊予約
- オンライン相談
などを計測できます。
予約フォームは日時選択や複数ステップを含むことが多いため、途中離脱も起こりやすいです。
たとえば、
予約開始:100
予約完了:45
なら、半数以上が途中で離脱しています。
その場合は、
- 日時選択が分かりにくい
- 入力項目が多い
- 空き状況が見づらい
- スマホ操作がしにくい
といった点を確認するとよいでしょう。
フォーム別に成果を比較する
複数のフォームを同じイベント名で計測し、form_idやform_nameで分けると比較しやすくなります。
たとえば、
| フォーム | 送信数 | 目的 |
|---|---|---|
| お問い合わせ | 80 | 相談・質問 |
| 資料請求 | 120 | 情報収集 |
| 無料体験 | 45 | 利用検討 |
| 予約 | 30 | 来店・面談 |
この比較から、ユーザーがどの段階で行動しているかを把握できます。
イベント名をフォームごとに増やしすぎず、パラメータで整理すると管理もしやすくなります。
流入元ごとの送信数を比較する
GA4ではフォーム送信と流入元を組み合わせることで、
- Google検索
- SNS
- 広告
- 他サイト
- 直接アクセス
など、どこから来たユーザーがフォーム送信につながったかを分析できます。
たとえば、
| 流入元 | フォーム送信数 |
|---|---|
| Google検索 | 60 |
| SNS | 20 |
| 広告 | 40 |
| 直接アクセス | 15 |
のように比較できます。
単にアクセス数が多い流入元ではなく、実際に送信へつながる流入元を見ることが重要です。
フォーム送信とコンバージョンを比較する
フォーム送信が重要な成果であれば、GA4ではキーイベントとして扱うこともできます。
たとえば、
- お問い合わせ送信
- 資料請求完了
- 予約完了
などです。
ただし、すべてのフォーム送信を重要成果にする必要はありません。
たとえばメルマガ登録と正式な見積もり依頼では、ビジネス上の重要度が異なります。
そのため、
フォーム送信数
だけでなく、
キーイベント数・売上・契約件数
などと比較すると、より実際の成果に近い分析ができます。
フォーム活用方法早見表
| フォーム | 主に見る指標 | 改善ポイント |
|---|---|---|
| お問い合わせ | 開始数・送信数 | 入力項目・導線 |
| 資料請求 | 送信数・流入元 | 資料内容・CTA |
| 申込み | 完了数 | 入力手順・不安要素 |
| 予約 | 開始数・完了数 | 日時選択・スマホ操作 |
フォーム計測では、「何件送信されたか」だけでなく、「どこから来て、どこで離脱し、どのフォームが成果につながったか」まで見ると改善につなげやすくなります。
WordPressフォームで計測するときの注意点
WordPressでも、Googleタグマネージャーを使ってフォーム送信を計測できます。
ただし、WordPressではフォームプラグインによって送信方法が異なります。通常のページ遷移をするフォームもあれば、AjaxやJavaScriptで同じページのまま送信するフォームもあるため、プラグインごとに送信後の動きを確認してから計測方法を決めることが大切です。
WordPressでもフォーム送信を計測できる
WordPressサイトでも、GTMが正しく設置されていればフォーム送信を計測できます。
たとえば、
- お問い合わせ
- 資料請求
- 予約
- 見積もり依頼
- 無料相談
などのフォームが対象になります。
計測方法としては、
- GTMのフォーム送信トリガー
- サンクスページのPage View
- JavaScriptのカスタムイベント
- dataLayerへのイベント送信
などがあります。
Google公式でも、通常のフォーム送信なら「フォームの送信」トリガーを利用でき、標準の送信動作が変更されている場合はカスタムイベントを利用する方法が案内されています。 Google ヘルプ
Contact Form 7はAjax送信に注意する
Contact Form 7では、Ajaxによるフォーム送信が利用されるため、ページ全体を再読み込みせずに送信結果が表示されることがあります。
この場合、通常のフォーム送信トリガーだけでは、期待どおりに送信成功を判定できないことがあります。
Contact Form 7公式では、Ajax送信時に次のようなDOMイベントが用意されています。
wpcf7mailsent:送信完了し、メール送信も成功wpcf7mailfailed:フォーム送信処理は完了したが、メール送信失敗wpcf7invalid:入力内容に不備があり送信されなかったwpcf7submit:Ajaxフォーム送信処理が完了したときに発生
特に**「問い合わせ送信成功」を計測したい場合は、wpcf7mailsentを利用する方法が分かりやすい**です。 Contact Form 7
たとえば、
Contact Form 7送信成功
↓
wpcf7mailsent発生
↓
dataLayerへイベント送信
↓
GTMカスタムイベントトリガー発火
↓
GA4へイベント送信
という流れで計測できます。
WPFormsなどフォームプラグインごとに動作が異なる
WordPressにはContact Form 7以外にも多くのフォームプラグインがあります。
たとえばWPFormsでは、送信後の確認方法として、
- 成功メッセージを表示
- サイト内の別ページへ移動
- 指定URLへリダイレクト
を選べます。 WPForms
また、WPFormsにはAjax送信を利用する設定もあるため、すべてのフォームが同じ動きをするとは限りません。 WPForms
そのため、
「WPFormsだからこの方法」
と決めつけず、実際にフォームを送信して、
- URLが変わるか
- ページを再読み込みするか
- 成功メッセージだけ表示されるか
- Ajax送信か
を確認することが重要です。
サンクスページへ移動するフォームは計測しやすい
フォーム送信後に、
/contact/thanks/
などの専用ページへ移動する場合は、サンクスページの表示を送信完了として計測しやすくなります。
たとえば、
Page Path equals /contact/thanks/
というトリガーを作れば、サンクスページ表示時にGA4イベントタグを発火できます。
この方法のメリットは、
- 入力エラーでは発火しにくい
- URL条件で設定しやすい
- フォームプラグインへの依存が比較的少ない
ことです。
ただし、サンクスページへ直接アクセスした場合や再読み込みした場合にも発火する可能性があるため、完全に「送信件数=ページビュー数」とは限らない点に注意しましょう。
JavaScriptイベントを利用する方法もある
AjaxフォームやJavaScriptで動くフォームでは、カスタムイベントを使う方法があります。
Google公式では、フォームの標準submitイベントが書き換えられている場合などに、GTMのカスタムイベントトリガーを使う方法を案内しています。 Google ヘルプ
たとえばフォーム送信成功時に、
dataLayer.push()
で独自イベントを送れば、そのイベントをGTMで受け取ってGA4へ送信できます。
ただし、JavaScriptやdataLayerを利用する設定は、コードを誤ると計測できなくなる可能性があります。初心者の方は、まずサンクスページ方式やプラグイン公式のイベントが利用できないか確認するとよいでしょう。
プラグイン更新後は再確認する
フォームプラグインを更新すると、
- HTML構造
- class名
- ID
- Ajax処理
- JavaScriptイベント
などが変更される場合があります。
そのため、以前は正常に動いていたGTM設定でも、更新後に発火しなくなる可能性があります。
特に、
- Contact Form 7
- WPForms
- フォーム関連アドオン
- キャッシュ・最適化プラグイン
を更新した後は、Tag Assistantで再確認しましょう。
WordPressフォーム計測の注意点早見表
| 確認項目 | 注意点 |
|---|---|
| 通常フォーム | フォーム送信トリガーを検討 |
| Contact Form 7 | Ajax・DOMイベントを確認 |
| WPForms | 確認メッセージ・ページ・リダイレクトを確認 |
| サンクスページ | Page Viewで計測しやすい |
| Ajaxフォーム | カスタムイベントも検討 |
| プラグイン更新 | Tag Assistantで再テスト |
Cocoonでフォーム送信を計測するときの注意点
CocoonでもGTMを利用してフォーム送信を計測できます。
CocoonにはGTM-IDを入力する設定欄が用意されているため、テーマファイルを直接編集しなくてもGTMを導入できます。 Cocoon
CocoonでもGTMを利用できる
Cocoonでは、
Cocoon設定 → アクセス解析・認証 → Googleタグマネージャ設定
から、GTM-IDを設定できます。
Cocoon公式でも、
GTM-XXXXXXX
形式のタグマネージャIDを入力して利用する方法が案内されています。 Cocoon
一度GTMを正しく導入すれば、
- フォーム送信
- クリック
- スクロール
- GA4イベント
などをGTM側で管理できます。
GTMコンテナの二重設置を避ける
CocoonでGTM-IDを設定している場合は、同じコンテナを別の方法でも設置しないようにしましょう。
たとえば、
Cocoon設定
+
GTM導入プラグイン
+
header.phpへの直接記述
という状態は避けます。
GTMコンテナが重複すると、
- フォーム送信イベントが二重になる
- GA4イベント数が実際より多くなる
- 原因調査が難しくなる
可能性があります。
またCocoon公式では、GTM-IDが設定されている場合、二重計測を防止するためGTM側が優先される仕様も案内されています。 Cocoon
お問い合わせページだけを対象にする
Cocoonサイトでも、サイト内すべてのフォームを一括計測するより、必要なページへ絞る方が安全です。
たとえば、
Page Path equals /contact/
とすれば、お問い合わせページだけを対象にできます。
これにより、
- サイト内検索
- コメントフォーム
- その他のフォーム
まで誤って計測するリスクを減らせます。
Google公式でも、フォーム送信トリガーでは特定URLなど、フォーム送信が発生すると想定される場所へ条件を絞ることを推奨しています。 Google ヘルプ
キャッシュによる影響を確認する
WordPressでは、キャッシュやJavaScript最適化によって設定変更がすぐ反映されない場合があります。
たとえば、
- GTM設定を変更した
- Contact Form 7を更新した
- トリガー条件を変更した
- JavaScriptを追加した
あとでも、以前のデータがブラウザやサーバー側に残っている場合があります。
そのため、変更後は必要に応じて、
- キャッシュ系プラグイン
- サーバーキャッシュ
- ブラウザキャッシュ
を確認してから再テストしましょう。
フォームプラグインとの組み合わせを確認する
Cocoon自体がフォーム送信方法を決めるわけではありません。
実際の送信処理は、
- Contact Form 7
- WPForms
- その他のフォームプラグイン
などによって異なります。
そのため、Cocoonを利用していても、計測方法はフォームプラグイン側の挙動に合わせます。
たとえば、
Contact Form 7+Cocoon
ならContact Form 7のAjax・DOMイベントを確認し、
WPForms+Cocoon
ならWPFormsの確認メッセージやリダイレクト設定を確認する、と考えると分かりやすいです。 Contact Form 7
Tag Assistantで実際の動作を確認する
最終的には、実際のWordPressサイトでフォームを送信して確認します。
確認したいのは、
- 正しいGTMコンテナが読み込まれている
- 対象フォームでだけタグが発火する
- 入力エラーでは成果タグが発火しない
- 正常送信時にGA4イベントタグが発火する
- 同じ送信で二重発火していない
ことです。
GTMでは、フォーム送信などのイベントをトリガーが検知し、条件に一致した場合にタグが発火します。 Google ヘルプ
Cocoon・WordPress確認早見表
| 確認項目 | 確認内容 |
|---|---|
| GTM設置 | Cocoonなど1つの方法に統一 |
| GTM-ID | 対象コンテナと一致 |
| 対象ページ | お問い合わせページなどに限定 |
| フォームプラグイン | 送信方式を確認 |
| Ajax | 通常トリガーが使えるか確認 |
| キャッシュ | 変更後に反映確認 |
| Tag Assistant | 発火・重複を確認 |
フォーム送信イベントが計測できない原因と対処法
フォーム送信イベントがGA4に表示されない場合は、いきなり設定を作り直すのではなく、
変数 → トリガー → 対象フォーム → GA4イベントタグ → GTM公開 → GA4受信
の順番で確認すると原因を見つけやすくなります。
特にWordPressでは、AjaxやJavaScriptを使ったフォームも多いため、フォームの送信方式によって対処方法が変わります。
フォーム変数を有効にしていない
Form IDやForm Classesなどをトリガー条件やイベントパラメータに使う場合は、対応する組み込み変数を有効にしておきましょう。
主に確認したいのは、
- Form Element
- Form Classes
- Form ID
- Form Target
- Form URL
- Form Text
です。
たとえば、
Form ID equals contact-form
という条件を使いたい場合は、Form IDの値が正しく取得できるかTag Assistantで確認します。
なお、フォーム変数を有効にしていないこと自体が、必ずしもフォーム送信トリガーそのものを停止させるわけではありません。変数を条件やパラメータとして使う場合に必要と考えると分かりやすいです。
フォーム送信トリガーが発火していない
フォーム送信を実行してもGA4イベントタグが動かない場合は、まずトリガーが発火しているか確認します。
Tag Assistantで、
- フォーム送信に関するイベントが発生しているか
- 対象トリガーの条件を満たしているか
- Tags Firedに目的のタグが入っているか
を確認しましょう。
標準的なフォームなら通常のフォーム送信トリガーで計測できますが、AjaxやJavaScriptフォームでは別の方法が必要になる場合があります。
対象フォームの条件が一致していない
トリガーを「一部のフォーム」にしている場合、条件が実際のフォームと一致していなければ発火しません。
たとえば、
Form ID equals contact-form
と設定しているのに、実際には、
contact_form
だった場合は一致しません。
また、
Page Path equals /contact/
としているのに、実際のURLが、
/inquiry/
なら対象外です。
Tag AssistantのVariablesで、実際のForm ID・Form Classes・Page Pathなどを確認してから条件を設定しましょう。
Ajax送信でページ遷移していない
Ajaxフォームでは、送信後もページ全体が再読み込みされず、URLも変わらないことがあります。
たとえば、
送信前:/contact/
送信後:/contact/
のまま、「送信しました」とだけ表示されるケースです。
この場合、
- サンクスページのPage View
- 通常のページ遷移
- 標準的なフォーム送信
だけを前提にしていると、正しく計測できないことがあります。
対処方法としては、
- フォームプラグイン固有のイベント
- カスタムイベント
- dataLayerへのイベント送信
- 完了メッセージの表示判定
などを検討します。
送信エラーでもクリックを計測している
送信ボタンのクリックだけを計測している場合は注意が必要です。
たとえば、
- 名前未入力
- メールアドレス形式エラー
- 必須項目未入力
でも、送信ボタン自体はクリックできます。
つまり、
クリックイベントは発生
していても、
問い合わせは送信されていない
可能性があります。
フォーム成果を計測する場合は、クリックではなく、できるだけ送信成功を確認できるタイミングを使いましょう。
GA4イベントタグが発火していない
フォーム送信トリガーが動いていても、GA4イベントタグが発火していなければGA4には届きません。
確認するポイントは、
- 正しいGoogleタグを利用している
- イベント名が正しい
- トリガーがGA4イベントタグに設定されている
- Tag AssistantのTags Firedに表示される
- 必要なパラメータが取得できている
ことです。
トリガーは正常なのにタグが発火しない場合は、タグ側の設定を確認しましょう。
GTMを公開していない
GTMでは、変更内容を保存しただけでは本番環境に反映されません。
プレビューでは正常に動くのに、通常のサイトアクセスでは計測されない場合は、GTMを公開していない可能性があります。
基本の流れは、
設定保存
↓
プレビュー
↓
動作確認
↓
送信・公開
です。
プレビューだけで安心せず、最後に公開状態を確認しましょう。
別のGTMコンテナを確認している
複数サイトを運営している場合は、別のGTMコンテナを編集していることがあります。
たとえば、
サイトに設置:GTM-AAAAAAA
なのに、
編集しているコンテナ:GTM-BBBBBBB
では設定が反映されません。
確認したいのは、
- GTM-ID
- コンテナ名
- 対象ドメイン
- Tag Assistantに表示されるコンテナ
です。
GA4標準イベントと重複している
GA4の拡張計測でフォーム操作が有効なら、form_startやform_submitがすでに取得されている場合があります。
そこへGTMから同じ目的のイベントを追加すると、
- GA4標準form_submit
- GTM独自イベント
が両方発生することがあります。
重複している場合は、
- GA4標準だけで十分か
- GTM独自計測が本当に必要か
- イベント名を分けるか
を整理しましょう。
キャッシュが残っている
WordPressでは、GTMやJavaScriptを変更しても、キャッシュの影響ですぐ反映されない場合があります。
確認したいのは、
- WordPressキャッシュ
- サーバーキャッシュ
- ブラウザキャッシュ
- JavaScript最適化
です。
設定変更後は必要に応じてキャッシュを更新し、再度Tag Assistantで確認しましょう。
フォーム送信が計測できないときのチェック表
| 原因 | 確認場所 | 対処 |
|---|---|---|
| フォーム変数未確認 | Variables | 必要な変数を有効化 |
| トリガー未発火 | Tag Assistant | 条件を確認 |
| Form ID不一致 | Variables | 実際の値へ修正 |
| Ajax送信 | フォーム動作 | カスタムイベント等を検討 |
| クリックだけ計測 | クリックタグ | 送信成功へ変更 |
| GA4タグ未発火 | Tags Fired | タグ設定を確認 |
| GTM未公開 | GTM管理画面 | 公開する |
| 別コンテナ | GTM-ID | 正しいIDを確認 |
| GA4標準と重複 | GA4イベント | 役割を整理 |
| キャッシュ | WordPress等 | 更新後に再確認 |
フォーム送信計測を設定するときの注意点
フォーム送信は、問い合わせや申込みなど重要な成果につながるデータです。
そのため、単にイベントが発生すればよいのではなく、**「本当に送信成功を表しているか」「二重計測していないか」「個人情報を送っていないか」**まで確認することが大切です。
送信ボタンクリックだけで成果と判断しない
送信ボタンのクリックは、ユーザーが送信を試みたことしか分かりません。
たとえば入力エラーがあってもクリック自体は発生します。
そのため、
送信ボタンクリック数=問い合わせ件数
とは考えないようにしましょう。
クリック計測は、
「送信しようとした行動」
を見るデータとして使い、実際の成果は送信成功で判断するのが安全です。
送信成功を確認できる方法を優先する
可能であれば、次のような送信成功に近いタイミングを計測しましょう。
- サンクスページ到達
- 正常なフォーム送信イベント
- 完了メッセージ表示
- フォームプラグイン固有の成功イベント
- dataLayerへ送られた成功イベント
たとえば、
「お問い合わせありがとうございました」ページへ到達
したタイミングなら、ボタンクリックだけより成果に近いデータになります。
フォームごとにイベント名を増やしすぎない
複数フォームがあるからといって、
- contact_submit
- reservation_submit
- document_submit
- estimate_submit
など、イベント名を細かく増やしすぎると管理しにくくなります。
たとえば、
イベント名:lead_form_submit
form_name:contact
form_name:reservation
のように、イベント名を統一し、フォームの違いをパラメータで分ける方法もあります。
これならGA4のイベント一覧を整理しやすくなります。
GA4標準イベントとの重複を避ける
GA4の拡張計測でform_submitが取得できている場合は、GTM独自イベントを追加する必要がないこともあります。
GTMを追加するなら、
- 特定フォームだけ計測したい
- サンクスページを成果にしたい
- Ajaxフォームを正確に計測したい
- 独自パラメータを追加したい
など、追加する目的を明確にすることが大切です。
個人情報をGA4へ送らない
フォームでは個人情報を扱うことが多いため、イベントパラメータには特に注意が必要です。
GA4へ、
- 氏名
- メールアドレス
- 電話番号
- 住所
- 問い合わせ本文
など、個人を識別できる情報を送らないようにしましょう。
分析に必要なのは、
- form_id
- form_name
- page_location
- フォーム種類
など、個人を特定しない情報で十分です。
メールアドレスや電話番号をパラメータに入れない
たとえば、
email = user@example.com
phone = 090xxxxxxxx
のようなイベントパラメータをGA4へ送る設定は避けましょう。
また、URLのクエリパラメータに個人情報が含まれる仕組みも注意が必要です。
フォーム送信計測では、誰が送信したかではなく、どのフォームがどこから送信されたかを分析するようにします。
フォーム送信数だけで評価しない
フォーム送信数だけでは、サイト改善の判断材料として十分ではありません。
たとえば送信数が少ない場合でも、
- フォーム閲覧自体が少ない
- form_startが少ない
- 入力開始後に離脱している
- CTAまで到達していない
など、原因は異なります。
そのため、
| 確認する指標 | 分かること |
|---|---|
| フォームページ閲覧 | フォームまで来た人数 |
| form_start | 入力開始した人数 |
| 送信数 | 完了した人数 |
| CTAクリック | フォームへ進もうとした行動 |
| 流入元 | どこから来たか |
| キーイベント | 重要成果の発生 |
のように複数指標を組み合わせて判断しましょう。
公開前に必ずプレビューする
GTM設定を変更したら、いきなり公開せずTag Assistantでテストします。
確認したいのは、
- 正常送信時にタグが発火する
- 入力エラー時に成果タグが発火しない
- 正しいForm IDを取得している
- GA4イベントタグが1回だけ発火する
- GA4標準イベントと不要に重複していない
- 対象外フォームでは発火しない
ことです。
フォーム送信は成果データに直結するため、**「発火したか」だけでなく「正しいタイミングで1回だけ発火したか」**まで確認しましょう。
フォーム送信計測の注意点早見表
| 注意点 | 対策 |
|---|---|
| クリックだけで成果判定 | 送信成功を基準にする |
| イベント名が多すぎる | パラメータで整理 |
| GA4標準と重複 | 事前に既存イベント確認 |
| 個人情報を送信 | IDやフォーム種類だけ利用 |
| 送信数だけで評価 | 開始数・流入元も確認 |
| Ajaxフォーム | 専用イベント等を確認 |
| 公開前確認不足 | Tag Assistantでテスト |
GTMのフォーム送信計測についてよくある質問
ここでは、Googleタグマネージャーでフォーム送信を計測するときに、初心者の方が迷いやすいポイントをまとめます。
特に大切なのは、送信ボタンをクリックしたことと、フォーム送信が正常に完了したことは別だと理解することです。
フォーム送信計測は無料ですか?
はい。通常のGoogleタグマネージャーとGA4を使ったフォーム送信計測は、基本的に無料で利用できます。
たとえば、
- お問い合わせ
- 資料請求
- 予約
- 見積もり依頼
などの送信イベントをGTMからGA4へ送るだけなら、追加料金はかかりません。
ただし、外部の有料フォームサービスやサーバーサイドGTMなどを利用する場合は、別途費用が発生することがあります。
GA4だけでもフォーム送信を計測できますか?
はい。GA4の拡張計測では、フォーム操作に関するform_startやform_submitを取得できる場合があります。
そのため、GTMで独自イベントを作る前に、まずGA4で、
- form_start
- form_submit
がすでに取得されていないか確認しましょう。
標準計測で目的を満たせるなら、無理にGTM設定を追加する必要はありません。
送信ボタンのクリックだけでも計測できますか?
はい。GTMのクリックトリガーを使えば、送信ボタンのクリック自体は計測できます。
ただし、
送信ボタンクリック=送信成功
ではありません。
たとえば必須項目が未入力でもボタンはクリックできます。
そのため、問い合わせ件数や申込み件数として使うなら、
- 正常なフォーム送信
- サンクスページ到達
- 送信完了イベント
- 完了メッセージ表示
など、送信成功に近い地点を計測する方が適しています。
Contact Form 7でも計測できますか?
はい。Contact Form 7でもフォーム送信を計測できます。
ただし、Ajaxで送信される場合があるため、通常のフォーム送信トリガーだけでは期待どおりに動かないケースがあります。
その場合は、Contact Form 7が用意しているJavaScriptのイベントなどを利用して、送信成功をGTMへ伝える方法があります。
実際の設定では、Tag Assistantで正常送信時だけタグが発火しているか確認しましょう。
Ajaxフォームでも計測できますか?
はい。Ajaxフォームでも計測できます。
ただし、Ajaxではページ全体を再読み込みせず、URLも変化しないことがあります。
そのため、
- カスタムイベント
- dataLayer
- フォームプラグイン固有イベント
- 完了メッセージの表示
などを利用して送信成功を判定します。
Ajaxフォームでは「ページが変わらないから計測できない」のではなく、計測方法をフォームの仕組みに合わせることがポイントです。
複数のフォームを同時に計測できますか?
はい。複数のフォームを同時に計測できます。
たとえば、
- お問い合わせ
- 資料請求
- 無料相談
- 予約
を1つのサイトで計測することも可能です。
フォームごとの違いは、
- Form ID
- Form Classes
- form_id
- form_name
- Page Path
などを使って区別できます。
イベント名を細かく増やしすぎず、パラメータで整理すると管理しやすくなります。
フォームごとの送信数を確認できますか?
はい。
たとえば共通イベントを、
lead_form_submit
として、
form_name = contact
form_name = reservation
のように分ければ、フォーム別の送信数を比較できます。
| フォーム | 送信数の例 |
|---|---|
| お問い合わせ | 80 |
| 資料請求 | 120 |
| 予約 | 35 |
このように整理すると、どのフォームが実際の成果につながっているか分かりやすくなります。
サンクスページがない場合はどうすればよいですか?
サンクスページがなくても計測できます。
たとえば、
- フォーム送信トリガー
- JavaScriptイベント
- カスタムイベント
- dataLayer
- 完了メッセージ表示
などを利用できます。
送信後も同じページのままなら、URLではなく**「送信成功時に何が起きるか」**を確認することが重要です。
フォーム送信をキーイベントにできますか?
はい。フォーム送信がサイト運営上の重要な成果であれば、GA4でキーイベントとして扱うことができます。
たとえば、
- お問い合わせ完了
- 資料請求完了
- 予約完了
- 申込み完了
などです。
ただし、単なる送信ボタンクリックをキーイベントにすると、入力エラーまで成果として含む可能性があります。
キーイベントには、実際の成果に近いイベントを選びましょう。
タグを削除すると過去データも消えますか?
いいえ。
GTMからフォーム送信タグを削除しても、すでにGA4へ収集された過去のイベントデータが自動的に消えるわけではありません。
タグを削除すると、基本的にはその後の新しいイベント送信が停止します。
過去データを削除したい場合は、GA4側で別のデータ削除手続きが必要です。
フォーム送信計測FAQ早見表
| 質問 | 答え |
|---|---|
| 無料で使える? | 基本的に無料 |
| GA4だけでも可能? | 標準フォーム計測が利用できる場合あり |
| クリックだけでも可能? | 可能だが送信成功とは別 |
| Contact Form 7対応? | 可能。Ajaxに注意 |
| Ajaxフォーム対応? | 可能。カスタムイベントなどを検討 |
| 複数フォーム対応? | 可能 |
| フォーム別分析可能? | form_id・form_nameなどで可能 |
| サンクスページなしでも可能? | 可能 |
| キーイベントにできる? | 重要な送信なら可能 |
| タグ削除で過去データ消失? | 自動では消えない |
GTMでフォーム送信を正しく計測して成果を分析しよう
Googleタグマネージャーを使うと、お問い合わせ・資料請求・申込み・予約などのフォーム送信をGA4へイベントとして送信できます。
ただし、フォームの種類によって計測方法は異なります。通常のフォーム送信トリガーだけでなく、サンクスページ、Ajax、JavaScriptイベントなどを使い分けることが重要です。
特に、ボタンクリックをそのまま送信成功と判断しないことが、正確な成果計測につながります。
今日覚えておきたい重要ポイント3つ
今回の記事で特に覚えておきたいのは、次の3点です。
- 送信ボタンクリックとフォーム送信成功は別
- GA4標準のform_submitが取得されていないか最初に確認する
- Tag AssistantとGA4で送信成功時に1回だけ計測されるか確認する
フォーム送信は問い合わせや申込みなど重要な成果データになるため、正確さを優先しましょう。
フォーム送信計測の手順早見表
基本的な流れは次のとおりです。
| 順番 | 作業内容 | 確認ポイント |
|---|---|---|
| 1 | 計測するフォームを決める | 問い合わせ・資料請求など |
| 2 | 送信方法を確認 | 通常・Ajax・サンクスページ |
| 3 | フォーム変数を有効化 | Form IDなど |
| 4 | トリガーを作成 | 送信・ページビュー等 |
| 5 | GA4イベントタグ設定 | イベント名・パラメータ |
| 6 | Tag Assistantで確認 | 正常送信で発火 |
| 7 | 入力エラーでも確認 | 成果タグが発火しない |
| 8 | GTMを公開 | 保存だけで終わらせない |
| 9 | GA4で受信確認 | リアルタイム・DebugView |
| 10 | 成果分析 | フォーム別・流入元別 |
初心者の方は、**「送信方法確認 → トリガー設定 → プレビュー → GA4確認」**の順番で進めると分かりやすいです。
フォーム計測方法の選び方早見表
| フォームの状態 | おすすめ計測方法 |
|---|---|
| 通常のHTMLフォーム | フォーム送信トリガー |
| 送信後に専用ページへ移動 | サンクスページ |
| Ajaxフォーム | カスタムイベント等 |
| JavaScriptフォーム | dataLayer・カスタムイベント |
| 完了メッセージ表示 | 要素表示・専用イベント等 |
| 送信ボタンだけ見たい | クリックトリガー |
「どの方法が一番優れているか」ではなく、そのフォームで送信成功を正しく判定できる方法を選ぶことが大切です。
フォーム変数の使い分け早見表
| 変数 | 主な役割 |
|---|---|
| Form Element | フォーム要素そのもの |
| Form Classes | class属性を取得 |
| Form ID | id属性を取得 |
| Form Target | target属性を取得 |
| Form URL | フォーム関連URLを取得 |
| Form Text | フォーム内テキストを取得 |
初心者の方は、まずForm IDとForm Classesを確認すると、特定フォームを絞り込みやすくなります。
GA4標準計測とGTM計測の違い
| 項目 | GA4標準 | GTM独自計測 |
|---|---|---|
| 設定の手軽さ | 比較的簡単 | 設定が必要 |
| form_start | 自動取得できる場合あり | 独自設定可能 |
| form_submit | 自動取得できる場合あり | 独自設定可能 |
| フォーム指定 | 限定的 | 細かく指定可能 |
| サンクスページ | 別設定 | 設定しやすい |
| Ajax対応 | 取得できない場合あり | 柔軟に対応可能 |
| 独自パラメータ | 限定的 | 追加しやすい |
まずGA4標準イベントを確認し、足りない部分だけGTMで補うと、重複計測を防ぎやすくなります。
フォーム送信が計測できないときのチェックリスト
計測できない場合は、次の順番で確認しましょう。
- フォーム変数を必要に応じて有効にしている
- フォーム送信トリガーが発火している
- Form ID・Classesなどの条件が一致している
- Ajaxフォームかどうか確認した
- 送信ボタンクリックだけを成果にしていない
- GA4イベントタグがTags Firedに表示される
- 正しいGTMコンテナを使用している
- GTMを公開している
- GA4標準イベントと重複していない
- キャッシュ更新後に再確認した
- GA4のDebugViewで受信を確認した
「GTMで発火しているのか」「GA4まで届いているのか」を分けて確認すると原因を見つけやすくなります。
GTMフォーム送信計測の設定完了チェックリスト
最終的に、次の項目まで確認できれば基本設定は完了です。
- 計測対象のフォームを決めた
- フォームの送信方式を確認した
- GA4標準form_submitの有無を確認した
- 必要なフォーム変数を有効にした
- 適切なトリガーを作成した
- イベント名を整理した
- form_id・form_nameなどを必要に応じて設定した
- 個人情報をイベントへ送っていない
- 正常送信時にだけ成果タグが発火する
- 入力エラー時の挙動を確認した
- 二重発火していない
- Tag Assistantでテストした
- GA4のDebugViewで確認した
- GTMを公開した
特に、正常送信時に1回だけ発火するかを最後まで確認することが重要です。
次に読むおすすめGTM関連記事
フォーム送信計測を理解したら、GTM全体の仕組みやGA4との連携方法も確認しておくと、イベント設定を管理しやすくなります。
「Googleタグマネージャー完全ガイド|導入からタグ設定まで初心者向けに徹底解説」
「GoogleタグマネージャーとGoogle Analyticsを連携する方法を徹底解説」
参考元:
- Googleタグマネージャー ヘルプ
- Google Analytics ヘルプ
- Contact Form 7 公式ドキュメント
- Cocoon公式マニュアル
※GTMのフォーム送信トリガー、GA4のform_start・form_submit、AjaxフォームやWordPress環境での注意点について、各公式情報を中心に確認しているため、信頼性は高い内容です。
まとめ
Googleタグマネージャーを使うと、お問い合わせ・資料請求・申込みなどのフォーム送信をGA4へイベントとして記録できます。設定では、フォーム変数・送信トリガー・GA4イベントタグを正しく組み合わせることが基本です。ただし、送信ボタンのクリックと実際の送信成功は別なので、サンクスページや送信完了イベントを使って判定することが重要です。設定後はTag AssistantやGA4のDebugViewで確認し、重複計測や個人情報の送信にも注意しましょう。


