Google Analyticsで離脱リンクを自動計測する方法
サイト内の閲覧や遷移だけでなく、サイト外へのリンク(exit link=outbound link=離脱リンク)のクリック数も計測したくなりました。ページの離脱率が高いのは、内容がつまらないために去っているのではなく、より興味を深めるために外部サイトへのリンクをクリックしているのかもしれません。また、掲載したリンクが役立っているかも知りたいところです。タイトルや紹介文はニーズに合致しているのか?リンクの数は適切だったのか?
イマイチなonClick方式
...Google Analyticsを普通に導入した状態では、この離脱リンクを解析できません(Yahooアクセス解析やWoopra、Clicky有料版は可能)。調べると、離脱リンクのAタグにonClickを記述する方式が見つかりますが、いちいち全てのリンクを書き換えるのは面倒なだけでなく、間違えても目視確認できないので気付きにくく、漏れやミスが発生しがちです。計測方法を変更する場合は、もう一度離脱リンクを書き換える必要も生じてしまいます。
離脱リンクを自動で計測する方法
そこで、当サイトでは外部サイトへのリンクを自動検出して測定する処理を一つのJavaScriptファイルで一元管理することにしました。 コンテンツ管理と同じで、正規化&一元化すると変更や管理が楽になります。
実際のJavaScriptコード
ついでに、下記の対応も加えてあります。
- 離脱リンクの種類を判別して「外部サービスにある自分のコンテンツ」「寄稿記事」「関連団体」「Drupal関連」などに自動分類
- Yahoo!アクセス解析(Yahoo! Web Analytics)の「目標アクション」もセット
2009-11-13 コード修正:
- IEの場合はpathnameの最初に「/」が含まれないという問題に対応
- 記事の趣旨に関係ない部分を削除しシンプル化
2009-12-13 コード修正:
- ややこしくなるので404エラーページの場合は擬似URLとして計測する部分を削除(関連記事)
レポートの見え方
カテゴリ>アクション>ラベル という3レベルで集計ができます。
- カテゴリ:Exit Links(離脱リンク)
- アクション:離脱リンクを下記のように自動分類
- MyContent:SlideShareなどに掲載している自分のコンテンツへのリンク
- MyArticle:寄稿した記事へのリンク
- MyOrg:自分の所属または関係する団体へのリンク
- Webnode:Webnode関連のサイトへのリンク
- Drupal:Drupal関連のサイトへのリンク
- ExternalSites:その他の外部サイトへのリンク
- ラベル:URL (長いので「https://」と「?」以降は削除)
計測結果は、次のように表示されます。これは2番目の「アクション」の単位なので、分類ごとの合計クリック数が表示されています。
図:Google Analyticsでのイベントアクションのレポート:
「ExternalSites」をクリックすると、「ラベル」つまりURLの内訳が分かります。指標はユニークイベント数にしたので、重複クリックは除外されています。
図:Google Analyticsでのイベントラベルのレポート:
「利用状況」のタブをクリックすると、外部サイトへのリンクをクリックするに至るまでのセッション内の行動をさかのぼり、平均閲覧ページ数や平均サイト滞在時間、新規ユーザー率が表示されます。
2行目の例では、サイトに訪れて14分間、10ページを閲覧した後にリンクをクリックして離脱した、と分かります。
3行目の場合は、Googleなどでガートナーの記事に直接たどり着き、他のページを閲覧しないで41秒後にサイトを去ったようです。いわゆる直帰ですが、41秒かけて記事を読んでくれたので、お役に立てたようです。
図:Google Analyticsでのイベントラベルの詳細レポート:
SiteCatalystの場合
SiteCatalystの場合は、LinkHandlerというプラグインを使うと離脱リンクの計測が簡単にできます。というより、職場でサイトカタリストとLinkHandlerを使って離脱リンクを計測していて、当サイトでもGoogle Analyticsで同じことを実現したかったので今回のスクリプトを書きました。
2009-12-13追記
- 最近公開されたgaAddonsというライブラリでも同じように自動で離脱リンクを計測できます。