かえラボBlog

かえラボBlogはラナデザインアソシエイツのテクニカルチームが運営する技術系ラボプロジェクトです

RaNa design associates, inc.

2011年12月 :: Archives

December 28, 2011

Ajax遷移するページのページビューをGoogle Analyticsで計測する

Category :

Ajaxで他のページを取ってきて、コンテンツをガリガリ書き換えてしまうようなサイトを先日案件で作ったのですが、従来の方法ではGoogle Analyticsで遷移先のページビューを取得できないことに気づいて、実験を行ってみました。

20111228_googleanalytics.png

実験のために作成したデモがこちらです。

Google Analytics Demo

何をやっているかを解説していきます。

以下のような部分がAjaxでページを書き換える処理の例です。
今回はjQuery 1.7.1を使うことを前提にしてコードを書いています。"ul a"セレクタ(いかにもやっつけですが。。)で選択されたa要素をクリックすると、href属性値で指定されたURLをAjaxリクエストし、その内容で <div id="contents"/> の中身を書き換えちゃうよ、というものです。

$(function() {
    $(document).on('click', 'ul a', function (e) {
        if (this.href) {
            $.ajax(this.href, {
                dataType: 'html',
                success: function(data) {
                    $('#contents').empty().html(data);
                }
            });
        }
        e.preventDefault();
    });
}); 

Google Analyticsの設定を行っていきましょう。
まずはhead要素内で普通にトラッキングコードを埋め込みます。

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-TRACKINGID']);
_gaq.push(['_trackPageview']);
(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>

UA-TRACKINGIDの部分は適切なトラッキングIDに置き換えてください。

さて、本題です。
Ajaxで読むページのページビューを取るには、_trackPageview()という機能を使います。リンクをクリックしたイベントをトリガーに、このコードを呼び出してやればOK。
それが以下のコードです。

$(function() {
  $(document).on('click', 'a', function () {
    if (_gaq && this.href) {
      _gaq.push(['_trackPageview', this.href]);
    }
    return true;
  });
});

.on()というメソッドはjQuery 1.7の新機能なので、古いバージョンのjQueryを使わなければいけない場合、.live()とか使えばいいと思います。

$('a').live('click', function() { ...

という感じに。
なお、今回はhref属性値に目的のURLがセットされているのが前提のコードになっています。もし特定のページを計測したい場合、this.hrefの部分は特定の文字列に置き換えても問題ないです。

_gaq.push(['_trackPageview', '/contact/email.html']);

というようになりますね。

リアルタイムレポートでページビューを確認する

Google Analyticsはリアルタイムなレポート機能を実装してきました。ログインして、リニューアルされたUIになっていたら、その機能が使えます。(まだ使えない人はここから申し込めるみたいですね)

20111228_googleanalytics2.jpg

メニューの「リアルタイム」→「コンテンツ」を選択し、ページ中央の「ページビュー数(直前の30分間)」をクリックします。これで、直近30分間のページビュー数をリアルタイムにウォッチしている状態になるので、先ほどのデモなどをいじくってこちらで確認する、ということができます。Ajaxで読むページのURLが、ページビュー数としてカウントされているかどうかを確認しましょう。

弊社は本日が仕事納めです。
今年は震災などがあり大変な年になりましたが、来年はよりよい年となるよう、この場を借りてお祈り申し上げます。
来年もどうぞよろしくお願いいたします。

December 9, 2011

『WebデザイナーのためのjQuery入門』を献本いただきました

Category :

WebデザイナーのためのjQuery入門

出版されたばかりのjQuery本を著者の高津戸さん(@Takazudo)より献本いただきました。ありがとうございます! タイトルの通り、本書はWebデザイナーなどのプログラミング初心者のための本であり、著者曰く

本書は、「自分でコードを書けるようになる人」がひとりでも増えるように配慮して書いたつもりです。

というわけで、非プログラマのjQuery/JavaScript入門書としては強力な一冊となっています。

手にとって思ったのは、とにかく親しみやすい文体と図解でわかりやすく書かれている、ということ。
書籍なので丁寧な文体で書かれてはいますが、文章のもって行き方や言い回し、作例などはユニークで「プログラミングを理解する」という複雑なテーマに挑む読者に対して、著者がとてもフレンドリーに向き合っている印象を受けました。

私はJavaScriptをちゃんと学び始めて4年くらいが経ちますが、私にとっての入門書は「WebクリエイティブのためのDOM Scripting」でした。
当時は今ほどブラウザが優秀ではありませんでしたし、JavaScriptライブラリなどもそれほど強力ではありませんでしたから、本書のようにフレームワークに特化した日本語書籍は当時なかったと記憶しています。しかしもし自分が今JavaScript入門者であったら、まさに本書は読みたい内容であるなあと感じました。

たすけあいジャパン
ラナデザインアソシエイツは、「助けあいジャパン」に協力しています。