- 2010年11月24日 15:07
- 03.初級メニュー
最近は非同期版でのクリック計測を使うことも多くなってきました。
でも、いちいち手打ちするのは面倒なので(ダブルコーテーションが抜けてるとかがよくあるし)、コピペで使えるタグを貼っておきます。
リンクのクリック数を計測するためのスクリプト
AタグのリンクはもうこれをまるコピペでOK。アクション名が「link」になっているところだけ適当に変えよう。
<a href="#" onclick="_gaq.push(['_trackEvent','click','link',this.href]);">リンク</a>
ダウンロードリンクを計測するためのスクリプト
AタグのダウンロードリンクはもうこれをまるコピペでOK。アクション名が「file」になっているところだけ適当に変えよう。
<a href="#" onclick="_gaq.push(['_trackEvent','download','file',this.href]);">リンク</a>
ここがポイント
イベントラベルをリンク先URLそのものにしているので、いちいち手打ちする必要がなくなる。クリックをイベントにしているのでPVが汚れない。
trackEventの「カテゴリ」「アクション」「ラベル」の使い分け
これ、なかなか難しいです。「ラベル」ってどこまで深掘りすりゃいいのかと思いますが、いったんこんな分類でどうかな。
リンクの場合:
目的:リンクのクリック数を計測したいリンクURLが全部違うという前提だけど、hrefそのもので判別すればいいと思うのでこんな使い分け。それならサイト内リンクでも外部リンクでも同じコードで使えるし。
- category:click
- action:link
- label:リンク先URL
ページ内リンクの場合:
目的:リンクのクリック数を計測したいリンクURLが全部同じだったり「#top」だったり、hrefそのもので判別できない場合は、事前にリンクにid属性を振ったりする必要がありますが、#ハッシュつきURLも基本的には計測できるので、ラベルは同じく「this.href」でOK。
- category:click
- action:page
- label:ページ内リンク先
ダウンロードリンクの場合:
目的:ファイルごとのクリック数を計測したいこれも結局リンク(Aタグ)なので、ページ遷移と同じ考え方で計測できればいいと思う。だけどカテゴリが違うと考えます。アクションは「ファイルのダウンロード」というのだけで固定しておくかな。
- category:download,open,close,
- action:file,up/down/left/right,
- label:リンク先URL
画面操作の場合:
目的:ajax画面での操作を把握したい。ボタンは結局Aタグでできてることがほとんどだと思うんですが、「操作」っていうのは、たとえば「ここを開閉」とか「続きはこちら」みたいな場合だったり、ajax画面での操作を意識しています。
アクションがラベルを意味している感じになるので、ここでは思い切ってlabelは設定なしで。
- category:handle
- action:up/down/left/right,
onclickは「return false;」しないといけないんじゃないの?という誤解
外部サイトにセッション情報を継続させたい場合に使う「_link」メソッドのせいで、すべてのonclickにはreturn falseしないといけないという誤解が出ています。
これはGAを使いこなしている人が陥る罠です。たとえばこんな感じ:
<a href="http://www.yahoo.co.jp/" onclick="_gaq.push(['_link','http://www.yahoo.co.jp']);return false;">外部リンク</a>
これは正しいです。ただし、target="_blank"がついている場合にこれをやると、リンクが作動しません。なぜならリンク処理を「return false」しているから。
でも、別ウィンドウで開く場合にreturn falseを外しただけではダメです。そのままだと「別ウィンドウでパラメータなしで開く」かつ「同じウィンドウでパラメータつきで開く」になってしまいます。
別ウィンドウで開きたいときは、リンク先URLを事前に「_getLinkerUrl」メソッドでパラメータ付与しておきましょう。