Contact Form 7のコンバージョン計測をGA4・GTMで設定する方法

Contact Form 7のコンバージョン計測をGA4・GTMで設定する方法
悩みを抱えている人

悩む人

・Contact Form 7の問い合わせ数を計測したいがいまいち理解できなかった
・コンバージョン計測にコードを書く必要はある?

ホームページからの問い合わせが何件あったか。Web集客では、アクセス数以上に気になる数字です。

しかし、WordPressで定番のお問い合わせフォームプラグインContact Form 7では、送信してもページが切り替わりません。そのため「サンクスページが表示されたら1件」という一般的な計測方法が使えません。

とはいえ、サンクスページがなくても計測はできます。GTMを使えばサイトのファイルを編集せずに設定でき、GA4だけで計測する場合はテーマなどにコードを追加します。

本記事では、Googleタグマネージャー(GTM)を使う方法と、GA4だけで設定する方法の両方を解説します。

阿部 武士のアイコン

小さなウェブ集客のミカタ 阿部

GTMとGA4の違いがよくわからない方は、先に以下の記事を読んでおくと理解がスムーズです。
Googleタグマネージャー(GTM)とGoogleアナリティクス(GA4)の違いは?役割と使い分けを解説

あわせて読みたい

Googleタグマネージャー(GTM)とGoogleアナリティクス(GA4)の違いは?役割と使い分けを解説

この記事を読む

サンクスページがなくても問い合わせ送信数は計測できる

問い合わせの計測でよく紹介されるのが、サンクスページ(送信完了ページ)の表示を数える方法です。送信後に「/thanks/」のようなページへ移動させ、そのページが表示された回数を問い合わせ数とみなします。

一方、Contact Form 7は同じページのまま「送信しました」というメッセージを表示する仕組み。ページが変わらないので、ページの表示では数えられません。

そこで今回計測に使うのが、送信が完了した瞬間に発生するイベントです。

サンクスページ方式送信完了イベント方式
必要なものサンクスページ+リダイレクト設定イベントの取得設定のみ
ページ移動ありなし
直接アクセスでの誤計測起こりうる起こらない
サンクスページ方式とイベント方式の違い
阿部 武士のアイコン

小さなウェブ集客のミカタ 阿部

サンクスページのURLを直接開かれると問い合わせとして数えてしまう、というサンクスページ方式の弱点がないのもポイントです。

ボタンのクリックではなく「送信完了」を計測する

よくある間違いが、「送信」ボタンのクリック数を問い合わせ数として数えてしまうこと。

送信ボタンは、入力漏れやメールアドレスの形式ミスでエラーになったときも押されています。1人がエラーで3回押せば、それだけで3件分。これでは実際の問い合わせ数とズレてしまいます。

GA4の拡張計測機能にもフォーム送信を自動で拾う設定がありますが、Contact Form 7のようにページが切り替わらないフォームでは、正確に取れないことがあります。

成果として数えるべきなのは、送信が成功した回数。ここを基準にしましょう。

Contact Form 7の送信完了を計測する仕組み

Contact Form 7は、送信の結果に応じて次のようなイベントをページ上で発生させています。

・wpcf7mailsent:送信に成功したとき
・wpcf7invalid:入力内容にエラーがあったとき
・wpcf7spam:スパムと判定されたとき
・wpcf7mailfailed:メールの送信に失敗したとき
・wpcf7submit:上記すべて(送信ボタンが押されて処理が終わったとき)
阿部 武士のアイコン

小さなウェブ集客のミカタ 阿部

wpcf7submitで計測している記事も見かけますが、上記のとおり、入力エラーやスパムのときにも発生します。送信完了を計測するなら、必ずwpcf7mailsentを使いましょう。

計測の流れはシンプルです。

Contact Form 7の送信完了を計測する流れ
計測の流れ

上の図のように、Contact Form 7が発生させる送信完了イベント「wpcf7mailsent」を受け取り、GA4にイベントとして送るのが基本の流れ。

イベント名は自由につけられますが、Googleが推奨している「generate_lead」を使うのがおすすめです。あとはGA4でキーイベントに設定すれば、問い合わせ数として集計できます。

on_sent_okは古い設定方法

Contact Form 7のバージョン5.0より前は、「その他の設定」にon_sent_okという項目を書き込んで、送信成功時の処理を指定する方法が使われていました。

古い解説記事では今もこの方法が紹介されていることがありますが、on_sent_okはバージョン5.0で廃止済み。古いバージョンを使っている場合はContact Form 7を最新版に更新したうえで、wpcf7mailsentを使いましょう。

GTMを使うか、GA4だけで計測するか

設定方法はタイトルの通り以下の2つがあります。

・GTMを使う方法
・GA4だけの方法

以下にそれぞれの違いを入れたので確認しつつ、実際の計測実装に進んでください。

GTMを使う方法GA4だけの方法
コードの編集最初にGTMのコンテナの設置が必要テーマやプラグインにコードを追加
設定の変更管理画面から可能コードの修正が必要
動作確認プレビューモードで確認できるリアルタイムレポートで確認
向いている人ほかの計測も増やしたい人コードを触れる人、計測は最小限でいい人

すでにGTMを入れているなら、迷わずGTMで設定するのがおすすめ。電話タップやボタンクリックなど、今後ほかの計測を増やすときも同じ管理画面で済みます。

Googleタグマネージャーで計測する方法

GTMとGA4の設置が済んでいる前提で進めます。まだの方は、先に導入を済ませておいてください。

なお、GTMやGA4の設置がまだの方は、設置だけをお任せいただくこともできます(5,000円〜)。

無料:GA4・GTMの設置を相談する

通常1営業日以内に返信します。

またGA4の測定ID(G-から始まる番号)が必要になるのでGA4の「管理」→「データストリーム」から事前に確認しておきましょう。

送信完了イベントを取得する

まずは、Contact Form 7のwpcf7mailsentを受け取って、GTMに知らせるタグを作ります。

  1. GTMを開き、サイドバーの「タグ」をクリックし、右側の「新規」をクリックします。

    GTMのタグ画面
  2. タグの名称は「CF7 – 送信完了リスナー」のようなわかりやすい名前をつけます。

    タグの編集画面
  3. タグの種類をクリックし「カスタムHTML」を選択。次のコードを貼り付けます。

    GTMタグの編集画面
    <script>
        document.addEventListener('wpcf7mailsent', function (event) {
            window.dataLayer = window.dataLayer || [];
            window.dataLayer.push({ event: 'cf7_mailsent', cf7_form_id: event.detail.contactFormId });
        }, false);
    </script>
  4. トリガーは「All Pages」を選び「保存」ボタンを押しましょう。

    GTMトリガーの編集画面

GA4イベントタグとトリガーを作成する

次に、その合図を受け取ったらGA4にイベントを送る設定です。

トリガーの作成

  1. サイドバーの「トリガー」をクリックし「新規」をクリックします。

    阿部 武士のアイコン

    小さなウェブ集客のミカタ 阿部

    トリガーが表示されていない場合、「さらに表示」をクリックすると「トリガー」が表示されます。
    GTMのトリガー編集画面
  2. 「トリガーの種類」をクリックし「カスタム イベント」を選択。

    GTMのトリガー編集画面
  3. トリガーの名称は「CF7 – 送信完了」などわかりやすい名前をつけます。

    GTMのカスタムトリガー編集画面
  4. イベント名に「cf7_mailsent」と入力して保存します。

    GTMのカスタムトリガー編集画面

GA4イベントタグの作成

  1. 「タグ」画面に戻り、さきほどと同様に「新規」をクリックし、「タグの種類」より「Google アナリティクス」→「Google アナリティクス: GA4 イベント」をクリックします。

    GTMタグの種類選択画面
  2. 表示された項目に以下の内容を入力します。

    ・測定ID:GA4の測定ID(G-から始まるもの)
    ・イベント名:generate_lead

    GTMのタグ編集画面
  3. トリガーをクリックし、さきほど作成した「CF7 – 送信完了」をクリックします。

    GTMのトリガー編集画面
  4. タグ名称は「GA4 – CF7送信完了」とし、「保存」ボタンをクリックします。

    GTMタグの編集画面

プレビューモードで確認する

設定が終わったら、公開前にプレビューモードで動作を確認します。

  1. GTMの画面右上の「プレビュー」をクリックします。

    GTMタグ編集画面
  2. 自分のサイトのURLを入力して「リンク」をクリックします。

    プレビュー機能接続画面
  3. 別ウィンドウでサイトが表示されたら右下にタグアシスタントがあることを確認し、問い合わせフォームページに遷移し送信します。

    GTMのプレビュー表示されているサイト
  4. 左側のイベント一覧に「cf7_mailsent」が表示され、GA4イベントタグに回数がついていることを確認します。

    GTMのプレビュー確認画面

あわせて、わざと必須項目を空にして送信し、エラーのときにはタグに回数がつかないことも確認しておきましょう。問題なければ、GTM画面に戻り右上の「公開」で本番に反映します。

GA4だけ(コード)で計測する方法

GTMを使わない場合は、GA4のタグ(gtag.js)が設置されているサイトに、次のコードを追加します。Site Kit by Googleやテーマの設定欄からGA4を設置している場合でも使えます。

送信完了時にGA4へイベントを送る

子テーマのfunctions.phpなどに追加します。

親テーマのfunctions.phpに書くと、テーマの更新で消えてしまいます。子テーマか、コードを追加できるプラグインを使いましょう。

※GTMの中でGA4を設定している場合は、gtag関数がページに存在しないため、このコードでは計測できません。その場合はGTMで計測する方法を使いましょう。

リアルタイムレポートで確認する

コードを追加したら、フォームからテスト送信してみます。

GA4の「レポート」→「リアルタイムの概要」を開き、イベント数のカードに「generate_lead」が表示されれば成功です。

GA4リアルタイムレポート画面

問い合わせ送信をキーイベントに設定する

現状のままでも数はカウントできますが、キーイベントを設定することでさらに集客の分析や広告に活かすことができるので設定していきましょう。

キーイベントとして登録する

  1. GA4の「管理」→「データの表示」→「イベント」を開く

  2. イベント一覧から「generate_lead」を探す

  3. 「キーイベントとしてマークを付ける」をオンにする

イベント一覧に表示されるまでには、最初の送信から1日ほどかかることがあります。すぐ出てこなくても時間を置くことで表示されるので表示されるまで触らずに待ちましょう。

問い合わせ数を確認する方法

キーイベントに設定すると、「レポート」→「エンゲージメント」→「キーイベント」から問い合わせ数を確認できます。

阿部 武士のアイコン

小さなウェブ集客のミカタ 阿部

さらに「集客」のレポートと組み合わせれば、検索・SNS・広告など、どこから来た人が問い合わせにつながったのかまで見えてくるはずです。

問い合わせフォーム計測でよくあるトラブル

まず計測が正常にとれない時は以下の3つが原因となることが多いです。

・GTMの変更を「公開」し忘れていないか
・広告ブロッカーが有効なブラウザでテストしていないか
・イベント名のスペルが、トリガーとタグで一致しているか

またキーイベントを設定してから、GA4の通常のレポートは反映まで24〜48時間かかるため、確認はリアルタイムレポートかDebugViewで行いましょう。

送信数が実際の問い合わせ数と合わない

GA4の数値が多い場合は、スパムが送信成功として通っている可能性があります。

逆に少ない場合は、広告ブロッカーやCookieの同意設定によって計測されていないユーザーがいるため。GA4の数値は「目安」と考え、実際の問い合わせ件数は受信メールで確認するのが確実です。

同じ問い合わせが複数回計測される

よくある原因は次の2つです。

・GTMとfunctions.phpのコードの両方で計測している
・送信完了リスナーのタグに、複数のトリガーが設定されている

特にGA4で計測を行っていてGTMに切り替えたときは、GA4コードの削除忘れに注意が必要です。

ブラウザで重複を確認する方法

  1. F12でデベロッパーツールを開き、Networkタブを選ぶ

    開発ツールのネットワーク画面
  2. フィルタ欄に collect?v=2 と入力する

    開発ツールのネットワーク画面
  3. フォームからテスト送信する

  4. en=generate_lead を含むリクエストが2行あれば二重計測です。ステータスが「204」なら、正常に送信されています。

    開発ツールのネットワーク画面

キャッシュやJavaScript最適化の影響

キャッシュ系のプラグインやサーバーの設定で「JavaScriptの遅延読み込み」を有効にしていると、GTMやgtag.jsの読み込みが遅れ、送信完了イベントを取りこぼすことがあります。

計測がうまくいかない場合は、GTMやgtag.jsのスクリプトを遅延読み込みの対象から除外してみてください。

上記を確認しても計測がうまくいかない場合は、原因の調査からご相談いただけます。

当サイトではどのように問い合わせを計測しているか

当サイトでは、本記事で紹介したGTMの方法でContact Form 7の送信完了を計測しています。そのうえで、運用のために次の2つもあわせて設定しています。

・自分のアクセスやイベント計測を無効にする
・計測が止まったら通知が届くようにする

自分のアクセスやイベント計測を無効にする

方法はいくつかありますが、一番手軽なのがGoogle公式の「Google アナリティクス オプトアウト アドオン」です。

Google Analytics オプトアウト アドオン (by Google)

Chromeなどのブラウザにインストールして有効にするだけで、自分のアクセスやイベントがGA4に送られなくなります。

ただし、アドオンを入れたブラウザではGA4への送信そのものが止まるため、フォームのテスト送信も記録されません。計測を確認したいときは、シークレットウィンドウ(拡張機能は通常オフ)や別のブラウザでテストしましょう。

計測が止まったら通知が届くようにする

プラグインの更新やキャッシュの設定変更をきっかけに、いつの間にか計測が止まっていた、というのは実はよくあるトラブルです。

GA4の「カスタムインサイト」を使えば、問い合わせ数が0件のときにメールで知らせてもらえます。

  1. GA4の「ホーム」の一番下にある「すべての統計情報を表示」を開く

    GA4のホーム画面
  2. 右上の「作成」→「新規作成」を選ぶ

    GA4の分析情報画面
  3. 「ゼロから作成」内の「新規作成」をクリックします。

    GA4のカスタムインサイト作成画面
  4. 評価の頻度を「月別」、指標に「キーイベント」を選び、条件を「次の値以下」にし「0」を入力します。

    GA4のカスタムインサイト作成画面
  5. インサイト名に「問い合わせ0件アラート(月次)」を入力、受信者リストに通知を受け取りたいメールアドレスを入力し右上の「作成」をクリックします。

    GA4のカスタムインサイト編集画面
阿部 武士のアイコン

小さなウェブ集客のミカタ 阿部

通知のメールアドレスに関しては初期値で登録しているアカウント(メールアドレス)がすでに入力されているので、変更なければ追加せずそのまま保存でOKです。

まとめ|Contact Form 7の送信完了はGA4・GTMで計測できる

いつのまにか長編になってしまいましたが、Contact Form 7の計測方法を書いてみました。

最初の設定は少々面倒ですが、お問い合わせの計測ができるのは大きなアドバンテージとなるためぜひトライしてみてください。

特に重要なのは

・ボタンのクリックイベントではなく「送信完了」イベントを計測する
・wpcf7submitではなくwpcf7mailsentを使う

です。

計測の設定、まるごとお任せいただけます

悩みを抱えている人

悩む人

「手順どおりにやったはずなのに、うまく計測できない」
「GTMの画面を触るのが不安で、なかなか手が出ない」

小さなウェブ集客のミカタでは、GA4・GTMの設置を5,000円〜、問い合わせの計測設定込みで15,000円〜(税抜)で承っています。設定後は、問い合わせ数の確認方法もあわせてお伝えします。他社で制作されたサイトでも対応できます。

小さなウェブ集客のミカタ 阿部

この記事を書いた人

大阪を中心に、個人事業主・小さな会社のホームページ制作やWeb集客を支援しています。Web業界には約6年携わっており、会社員時代には100社以上の中小企業サポートを経験してきました。 「Webのことなら、とりあえずミカタに聞いてみよう」と思ってもらえるような、相談しやすい距離感を大切にしています。