Googleアナリティクス非同期コードにおける新しいAPIについて
2012年05月17日

※この記事は英語文書を翻訳したものです。
新しいGoogleアナリティクスAPIは公式のドキュメントに存在しないが、Googleより利用が可能になったとの連絡を受けたため、この記事で紹介する。

新たに_get(field)_set(field, value)の2つのトラッカー・メソッドが加わり、また、関連するトラッカー・フィールドの’page‘と’title‘、’hitCallback‘、’campaignParams‘について紹介する。

新しいトラッカー・メソッド

  • 新たに_get(field)_set(field, value)というトラッカー・オブジェクト・メソッドが追加された。
    これらのメソッドによりトラッカー・フィールドの内容を調べたり、変更することが可能となる。

    _setによって変更されたフィールドはそのページが表示されている間はメモリーに残り、後続のAPI呼び出し(_trackPageview_trackEvent_trackSocial_trackTrans)に適用される。

  • _trackPageviewメソッドはオブジェクト型のパラメータもサポートするようになった。指定したパラメータは現ページの計測時のみ使用される。

    例えば、

    _gaq.push(['_trackPageview', {title: 'Test Page'}]);

    のように呼び出すと、そのページが見られた時のページタイトルを変更できる。その後に続くページでは元々のHTMLに含まれているページタイトルが使用される。

    注記:_trackPageviewメソッドは、従来通りパラメータなしでも、ページURLを文字列でパラメータとして与えることもできる。今回の新しいオブジェクト型のパラメータにより、複数のパラメータを送信できるようになる。

トラッカー・フィールド

  • page‘ :

    レポートで表示されるURLを変更する。

  • title‘ :

    レポートで表示されるページタイトルを変更する。

  • hitCallback‘ :

    現ページの計測が完了した時点で実行される関数。
    具体的には、__utm.gifのリクエストやPOSTによるAJAXリクエストの完了時点、あるいは計測エラーが発生した時点でこの関数が呼び出される。

  • campaignParams‘ :

    カスタムのキャンペーン変数を抽出する場合、このフィールドで指定された値で現在のURLに指定されているキャンペーン変数を置き換えることができる。このフィールドの値は、URL生成ツールで生成されたものと同じ形式にする。
    ga.jsは1回のページ読み込みにつき一度しかキャンペーン属性を集計しないので、このフィールドは以下の関数の呼び出しよりも先にセットしておく必要がある。

    関数:_trackPageview, _trackEvent, _trackSocial, _trackTrans, _setCustomVar, _setVar, _init

使用例

例 1: ページURLを複数のAPIで変更する。

_gaq.push(['_set', 'page', '/Custom/Page']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackEvent', 'test', 'test']);

例 2 : トラッキング情報をGAに送信したあとで、nextPageに指定したURLへ遷移する。

_gaq.push(['_trackPageview', {hitCallback: function() {
document.location.href = nextPage;
}}]);

例 3: 現在のページのURLやタイトルを設定し、トラッキング情報をGAに送信したあとで、コールバック関数を実行する。

_gaq.push(['_trackPageview', {
page: '/new-feature-test',
title: 'New Features Test',
hitCallback: function() { alert("Hit sent!"); }
}]);

例 4: カスタムキャンペーン変数を設定する。

_gaq.push(['_setAccount', 'UA-12345-6']);
_gaq.push(['_set', 'campaignParams', 'utm_campaign=Custom&utm_source=Test&utm_medium=(custom)']);
_gaq.push(['_trackPageview']);