Google Analytics フォームからサンクスページの URL が同じ場合はどうすれば・・・。

色々な理由から、フォームあるいは入力内容確認画面からサンクス画面まで URL が全く同じになってしまっていることは、結構あるあるです。
こうした場合、Google Analytics において目標設定が面倒なことになりますね。

この解決策としてよくあるのが、『少なくとも HTML 自体はフォーム・内容確認・サンクスで異なるので、仮想ページビューとしてカウントしよう!』というものですが、これでも解決しないケースはもちろんあります。
例えば、”HTML ヘッダーが全ページ共通で、そもそも Google Analytics の計測タグを個別化できない!” とか、”何か難しそうで無理!” とか。。。まぁ、何も考えないとダブルカウントしてしまったりとかもありますので、何か難しそうという直感は間違ってはいません。
それに、仮想ページビューを使うと、実ファイル名と Google Analytics に載るファイル名に差異が当然できますし、ファイル更新は個別に気にするところが出てくるわけですし、先々のために管理帳票を残しておくとかの手間が付随してきます。

というわけで、システム的にはあまり褒められたことでは無いですが、もっと簡便な方法をお教えします。

仮に、フォームからサンクス画面までの URL が全て /form.php だったとします。
フォーム・内容確認は、次の画面に対して、<form method=”POST” action=”/form.php”>~</form> というようなタグでデータを送信しているはずです。(そうで無い場合もありますが、その場合は使えない方法です。)
このタグ部分を

フォーム <form method=”POST” action=”/form.php?sendto=confirm”>~</form>
内容確認 <form method=”POST” action=”/form.php?sendto=thanks”>~</form>

のようにしてしまいます。尚、? 以降のパラメータは、何の名称と値のセットでもかまいません。既存のフォーム部品の名称と被らないようにしてください。
すると、ブラウザの URL 欄には ? 以降のパラメータも入った形が表示され、画面自体に影響は全くない状況になるはずです。

こうしておくと、Google Analytics には以下の様に記録されます。

フォーム /form.php
内容確認 /form.php?sendto=confirm
サンクス /form.php?sendto=thanks

この状況を作り、後は、Google Analytics の目標 URL に「/form.php?sendto=thanks」を登録すれば OK です!

HTML form タグの method が POST でも、その action 先にパラメータを入れると、そこは GET メソッドとして送信できることを利用した小技です。あ。もちろん、ビューの設定で、パラメータ除外対象にしないようにしてくださいね。
色々面倒である場合は、この方法をどうぞ。