• Google AnalyticsのイベントトラッキングでPDFと外部リンクのクリックを測る

Google AnalyticsのイベントトラッキングでPDFと外部リンクのクリックを測る

公開日: 執筆:佐藤

PDFファイルや外部サイトへのリンクを押しても、自社サイトの新しいページビューとしては記録されません。このような操作は、ページビューとして数えず、Google Analyticsのイベントトラッキングで記録します。

実装する前に、何をクリックしたら、どの名前で記録するかを決めます。記録されたイベントが示すのはクリック操作です。PDFを最後まで読んだことや、外部サイトで申し込みを終えたことまでは分かりません。

イベントトラッキングはページを開かない操作を記録する

Google Analyticsの公式説明は、Event Trackingを、ページビューへ直接対応しない訪問者の操作を記録する機能としています。PDFなどのファイルのダウンロード、動的なページの操作、動画の再生が例です。仮想ページビューと違い、イベントを送ってもページビュー数は増えません。

ページビューとイベントは、数えているものが違います。会社案内のHTMLページを開けば、ページビューを記録できます。同じページにある会社案内PDFへのリンクを押した操作は、イベントを設定して記録します。

外部リンクも同じです。自社ページにあるリンクのクリックは、自社ページ側のJavaScriptで記録できます。リンク先で何をしたかは、クリックイベントからは分かりません。ページビューへ置き換えて見かけの閲覧数を増やすより、操作をイベントとして分けた方が、レポートの意味を保てます。

Category、Action、Labelは実装前に名前をそろえる

Event Trackingの公式資料とGoogle DevelopersのGuideによると、_trackEvent()はCategoryとActionを必須引数として受け取り、Label、整数のValue、non-interactionを任意で追加できます。PDFと外部リンクなら、まず次の三項目を決めます。

項目 表すもの PDFの仮例 外部リンクの仮例
Category 操作対象のまとまり Downloads Outbound Links
Action 記録する操作 Click Click
Label クリック先の識別子 /files/service-guide.pdf https://example.net/catalog/

表の値は、実在するサイトの設定や計測結果ではありません。Categoryを対象の種類、Actionを操作、Labelを個別のリンク先としてそろえた、完全な仮例です。

同じPDFをPDF、Download、Catalogのように別々のCategoryへ入れると、あとで合計や比較をしにくくなります。名称はコードを書く担当者だけで決めず、サイト運営側が対応表を保存します。実装を外部へ依頼しても、何を何のために測るかは運営側で管理します。

PDFのクリックは_trackEvent()をリンクから送る

非同期のga.jsを設置しているページでは、PDFリンクを押したときに、_gaqへ_trackEventを追加できます。Google DevelopersのEvent Tracking Guideが示す引数の順序は、Category、Action、任意のLabel、任意のValue、任意のnon-interactionです。次は、先ほどの命名を使った説明用の最小例です。

<a href="/files/service-guide.pdf"
   onclick="_gaq.push(['_trackEvent', 'Downloads', 'Click', '/files/service-guide.pdf']);">
  サービス案内PDF
</a>

このコードは、PDFへのリンクを押した操作をDownloads、Click、ファイルのパスという三つの項目で送ります。Google Analyticsの基本コードと_gaqが、同じページで正しく読み込まれていることが前提です。HTMLへ例を貼るだけでは計測できません。

実装後は、自分で一回クリックし、リンク先のPDFが開くことと、イベントレポートへ意図したCategory、Action、Labelが記録されることを確認します。PDFが開いただけでは、イベントの送信まで成功したとは判断できません。

外部リンクは自社ページにあるクリックだけを測る

Google Analyticsの外部リンク計測の説明によると、自社サイトから外へ向かうリンクは自動では記録されません。計測するリンクへJavaScriptを加え、クリックをイベントとして送ります。

同じ画面で外部サイトへ移る場合、イベントを送る前にページが切り替わることがあります。公式の説明は、遷移を100ミリ秒遅らせ、リンクのonclickでreturn falseを返す例を示しています。次は、公式資料の遷移方法と、前節で決めたCategory、Action、Labelを組み合わせた仮例です。

<script type="text/javascript">
function recordOutboundLink(link, label) {
  _gaq.push(['_trackEvent', 'Outbound Links', 'Click', label]);
  setTimeout(function () {
    document.location = link.href;
  }, 100);
}
</script>

<a href="https://example.net/catalog/"
   onclick="recordOutboundLink(this, 'https://example.net/catalog/'); return false;">
  外部サイトの商品一覧
</a>

この例は、同じ画面で開く通常のリンクだけを対象にしています。target="_blank"を使うリンクや、CtrlキーまたはCommandキーを押しながら開く操作へ、そのまま流用してはいけません。

100ミリ秒の遅延は、イベントの記録を保証するものではありません。ブラウザーを一種類だけ試して終わらせず、実際に利用される環境で、リンクの遷移とイベントの記録を確かめます。

利用者の操作なしに起きるイベントは直帰率から外す

通常のイベントは、直帰率の計算に影響します。利用者がPDFや外部リンクをクリックしたなら、その操作をサイトへの反応として扱えます。一方、利用者が触れていないのに自動で切り替わる画像まで、同じ反応として数えると、直帰率の意味が変わります。

Google Analyticsのnon-interaction eventsに関する説明は、自動スライドショーのような受動的なイベントを、直帰率の計算から外す方法を示しています。_trackEventの最後へtrueを加える例は次の形です。

_gaq.push(['_trackEvent', 'ImageSlider', 'Home', 'Image1', 1, true]);

クリックと自動表示は、発火するJavaScriptが似ていても、利用者の行動としては別です。直帰率を以前と同じ数字へ戻すためにtrueを付けるのではなく、利用者の操作なしに起きるイベントかどうかで決めます。

イベント数と事業上の成果を分けて読む

PDFのクリック数が増えたとしても、資料を読んだ人や問い合わせた人が同じ数だけ増えたとは限りません。外部リンクも、クリック後の到達や成果をイベント数だけでは確認できません。

先に、イベントで確認する範囲を決めます。PDFなら「資料リンクが押されたか」、外部リンクなら「自社ページからリンクが押されたか」です。問い合わせや注文を確認したい場合は、イベント数とは別に、その結果を記録する方法が必要です。

まず、計測したいPDFか外部リンクを一つだけ選びます。Category、Action、Labelの対応表を作り、実装後にリンクの動作とイベントレポートの両方を確認してください。最初のリンクについて、意図したCategory、Action、Labelが試験のたびに同じ形で記録されることを確認してから、対象を広げます。

戻る