Googleアナリティクスの導入から、運用、活用まで、正式なサポートがない初めての人でもゼロから学んでいけるように、丁寧に解説していく。
Googleアナリティクスとは/衣袋教授のGoogleアナリティクス入門講座リンクのクリックやダウンロードをページビューとして計測する! 仮想ページビューの使い方と注意点[第64回]
外部サイトへのリンクのクリックやPDFなどのダウンロードを、ページビューとして計測したい場合がある。その場合には、Googleアナリティクスの、バーチャル(仮想)ページビューという機能を使う。
バーチャル(仮想)ページビューとは、その名のとおり、実際にはページビューでないものを、ページビューとしてカウントするための機能である。
バーチャル(仮想)ページビューには、大きく次の2つの使い方がある。
実際のURL情報を使うと不都合が生じる場合
実際のページ(HTMLファイル)のリクエストとは別の行為を計測したい場合
前者の例としては、異なる内容のページなのにURLが同じようなケースが挙げられる。たとえばカートのシステムなどで、表示しているページの内容が変化しているのに、URLの表示が変化なくまったく同じ場合を体験したことはないだろうか。これはPOSTメソッドという方法を利用してWebサイトとのやり取りをしている場合などで生じる。
Google アナリティクスのトラッキングコードは通常、アドレスバーに表示したURL情報を取得する仕組みなので、このようなケースでは、内容が異なるページに移動していても、同じURLを複数回見たことになってしまう。しかし、計測をする側の視点からは、できれば内容に応じて別のページとして認識してほしいはずだ。
もう1つの利用パターンである後者、すなわち実際のページ(HTMLファイル)のリクエストとは別の行為を計測したい場合の例としては、
- 外部サイトへのリンクのクリック
- ファイルのダウンロード
- Flashコンテンツに対するインタラクティブな動作
などの「行為」を、実際にはページ閲覧ではないけれども何らかのURLにアクセスしたページビューだとみなしてカウントする場合などに利用する。ただ、この手法を使うと、通常のページビュー数などに上乗せになってしまう。ページビュー数にカウントしたくない場合は、「イベントトラッキング」という手法を利用し、イベントとして計測しよう。このイベントトラッキングについては、回を改めて別途解説するので、今回は取り上げない。
計測コードの意味
GoogleアナリティクスでトラッキングするJavaScript命令の基本が_trackPageviewメソッドだ。
_trackPageviewメソッドは、通常は現在のページ情報(表示されたURL)が利用されるが、ここにURL(のディレクトリやファイル名の部分)を指定して実行すると実際のURLの代わりに指定したURLが閲覧ページ名としてレポートに表示されることになる。
仮想ページビューを利用したい場合は、レポートで表示させたい仮想ページの文字列を_trackPageviewで指定するようにカスタマイズする。
具体的に見ていこう。
_trackPageviewメソッドの通常の記述パターンは次のとおりだ。
_gaq.push(['_trackPageview']);
これに対して、実際に閲覧されたページの代わりに、「/click/1.pdf」というPDFを閲覧ページ名としてレポートに表示したい場合は、_trackPageviewメソッドを指定する部分で、カンマに続いて引用符で囲んで「/click/1.pdf」を追記する(赤字部分)。
_gaq.push(['_trackPageview', '/click/1.pdf']);
この例では、赤字部分を追記することで「/click/1.pdf」が1ページビューとカウントされることになる。トラッキングコード全体は、以下のようになる。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-Y']);
_gaq.push(['_trackPageview', '/click/1.pdf']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
以下では、(1)同じURLでページ遷移する場合と、(2)PDFファイルをダウンロードするためのクリック行為をページビューとしてカウントするケースの2つの実装例を紹介する。
実装例1:同じURLでページ遷移するケース
先にも言及したが、カート投入から購入完了ページまでの間でURLが変わらない場合がある。たとえば、URLが次のような対応だったとしよう。
順番 | ページの内容 | URL |
---|---|---|
1 | カートページ | /cart.php |
2 | フォーム入力ページ | /cart.php |
3 | 入力情報確認ページ | /cart.php |
4 | 購入完了ページ | /thanks.php |
この場合は「カートページ」「フォーム入力ページ」「入力情報確認ページ」が同じURLのために区別がつかない(赤字部分)。そこで2番目と3番目のページには次のような仮想ページビューを割り当てて、この3ページを区別できるようにしてみよう。
順番 | ページの内容 | URL | 仮想ページの割り当て |
---|---|---|---|
1 | カートページ | /cart.php | - |
2 | フォーム入力ページ | /cart.php | /cartinput1 |
3 | 入力情報確認ページ | /cart.php | /cartinput2 |
4 | 購入完了ページ | /thanks.php | - |
トラッキングコードへの実装例は以下のとおりだ。
「フォーム入力ページ」のトラッキングコードのカスタマイズ
カスタマイズ前 | _gaq.push(['_trackPageview']); |
---|---|
カスタマイズ後 | _gaq.push(['_trackPageview', '/cartinput1']); |
通常は「カスタマイズ前」のようにしている部分を、「カスタマイズ後」のように、仮想ページビュー名を入れたトラッキングコードと入れ替える。
入力情報確認ページのトラッキングコードのカスタマイズ
こちらも同様で、下記のように該当部分の記述を変更する。
カスタマイズ前 | _gaq.push(['_trackPageview']); |
---|---|
カスタマイズ後 | _gaq.push(['_trackPageview', '/cartinput2']); |
これらのカスタマイズをすることで、「フォーム入力ページ」と「入力情報確認ページ」は、それぞれ別のページとしてページビューがカウントされるようになる。
PDFファイルをダウンロードするケース
HTMLファイルからPDFファイルへ張ってあるリンクをクリックすると、「ファイルとして保存」するように指示されたり、ブラウザ上でそのまま表示されたりする。これらの動作をページビューとしてカウントしたいとしても、PDFファイルにトラッキングコードの実装はできない。
そこで、PDFファイルのダウンロードや表示を、ページビューとしてカウントしたい場合は、PDFファイルへのダウンロードのリンクをクリックした行為をもって、ファイルのダウンロード回数と疑似的にカウントするといった方法を採るのが一般的だ。
具体的には、クリックという行為に対して、「/click/1.pdf」という仮想ページを1ページビューカウントするように設定することになる。
この場合は、ページ自体のトラッキングコードをカスタマイズをするのではなく、HTMLファイルのソースコードにあるPDFファイルへのリンク部分について、赤字部分を追加で記入する。これが必要な実装コードになる。
<a href="http://www.example.com/download/1.pdf" onclick="_gaq.push(['_trackPageview', '/click/1.pdf']);">PDFのダウンロード</a>
リンクをページビューとしてカウントする場合
この方法は、PDFのダウンロードだけでなく、a要素によるリンクのクリックを仮想ページビューとしてカウントする場合にも用いることができる。
たとえば、あるWebページにhttp://www.example.co.jp/toxfusion.htmlという外部ページへのリンクがあったとして、そのリンクのクリックを、/click/toxfusionというページへの仮想ページビューとしてカウントしたい場合は、次のようになる。
<a href="http://www.example.co.jp/toxfusion.html " onclick="_gaq.push(['_trackPageview', '/click/toxfusion']);">PDFのダウンロード&/a>
リンクの<a>タグをカスタマイズして、外部サイトへのリンクのクリックを仮想ページで取得する場合、1つ1つのリンクに対してカスタマイズを施すのが面倒な場合もある。このような場合には前回も触れたが、JavaScriptライブラリのjQueryを利用して効率よく記述するような方法もあるが、ここではそこまでは言及しない。
筆者の『ユニバーサルアナリティクス版Googleアナリティクス完全マニュアル(PDF)』が発行されました。
筆者が講義を行うGoogle アナリティクス徹底講座も、定期的に開催しています。 → Google アナリティクス ゼミナール
コメント
過去の訪問者数などが0に…?
PDFのダウンロード数を計測したかったので、こちらの掲載内容を試させていただきました。
結果的に対象のPDFのダウンロード数は計測出来ている状態で問題ありませんでした。
しかし、実装後になぜか実装した日以前の4日分の訪問者数・PV数などがすべて0に変わってしまっていました。
原因は不明なのですが、なにか不具合が起きてしまったのでしょうか?
ちなみに実装後の数は問題なく計測出来ており、過去のデータのみが変わってしまっている様子です。
待てばいずれ
編集部の安田です。
個別の事情はわかりませんが、衣袋さんに確認したところ、衣袋さんのアカウントでも先週末のデータがゼロになる現象が今朝ほど起きたものの、どうせ(表示の)バグだろうと放置していたら、そのうち直っていたとのことでした。
基本的に過去データが変わることはありませんから、何かのバグで自然にちゃんとなるだろうと考えておくといいと思います。
一時的なものでした。
ご返信ありがとうございます。
先日0になっていたデータが本日確認したところ直っていました。
問題なさそうです。
ありがとうございました。
よかったです
たまたまデータ表示がおかしくなっているタイミングに遭遇してしまっただけのようで、よかったですね。
私はそういうことになった経験はないですが、それなりに発生しているようです。
日本語インターフェイスの表示がたまに変だったりするのも、待てばそのうち直ると思っているのが、精神衛生上良いようですね。