Google Analytics機能拡張プラグイン gaPlugin.js version2を公開します。


以前、微妙に公開していましたが、かなり使いづらい状態だったので、特にインターフェイス周りを整理し直して、バージョンアップをしました。
今回のバージョンアップでようやく実用レベルにはなったと思います。

gaPlugin.jsのダウンロード
(githubに移行しました)

*注意:
まだベータ版です。利用は自己責任でお願いします。
利用は自由ですが、商用で利用される場合はご連絡いただけると助かります。
追記: とりあえずMITランセンスにしておきます。

特徴

・データ取得機能の強化
Google Analyticsに不足している機能を気軽に補完することができます。
外部サイトリンクのクリック数や曜日別のセッション数など、あると便利なデータを簡単に取得できるようになります。

・複数アカウントの対応
GAが対応している複数アカウントをサポートしました。
2つ以上のアカウントを使って自在にデータを取得することができます。
例えば、1つ目は通常のページビューを取得し、2つ目はグループ化したページビューを取得するということができます。
当然、1アカウント5個までと制限されているカスタム変数も、2アカウントなら10個使うことができます。

・柔軟なカスタマイズ
GAがサポートする範囲内であれば、柔軟にカスタマイズすることができます。
例えば、5個のカスタム変数全てをコンテンツグループに利用することもできます。
通常の_setCustomVarを利用して、個別にカスタム変数を利用することも可能です。

・プラグインを一切使っていません
jQueryやprototype.jsなどのプラグインを一切使わずに作成しています。
シンプルな設計になっているので、プラグインを使った場合と比べて、高速に動作するはずです。また、プラグイン同士の衝突も回避できます。

・設定ファイルで一括管理
基本的に機能を全て設定ファイルで管理するので、各ページごとに異なったタグを入れる必要がありません。全ページ同じタグで簡単に導入することができます。
(一部例外あり)

機能一覧

・外部サイトリンク、ダウンロードリンクの自動取得
外部サイトのクリックや、ファイルのダウンロードクリックを自動的に取得することができます。もうaタグ内にonClick=~なんて書く必要がありません。

・コンテンツグループの設定
コンテンツをグループ化して取得することができます。
通常のレポートでは不可能だったグループ別のセッション数を取得することができます。

・タスク終了までの時間取得
あるページの表示から、あるページの表示までにかかった時間を取得できます。
例えば、フォームの入力ページの表示から、入力完了ページまでの時間を取得できます。

・ムービー閲覧時間の取得
15秒おきにカスタムイベントリクエストを送信することによって、ムービー等の閲覧時間を取得できるようになります。
当然直帰したユーザーも含めた滞在時間が取得できます。

・グループ化バーチャルページビュー
通常のtrackPageviewsの代わりに、コンテンツグループを利用することができます。
コンテンツグループをページビューとみなすことによって、GAのパス解析機能を使うことが可能です。
つまり、あるコンテンツグループの次に見たグループ、ランディングとなったグループなどを追跡できます。
複数アカウント利用と組み合わせると強力な機能になります。

・コンバージョンしたユーザーの特定
コンバージョンしたユーザーを追跡することができます。
GAレポート画面上でもコンバージョンした追跡することは可能ですが、カスタム変数を使っているため、セッションを越えたユーザー単位で追跡することができます。

・パラメータ取得
指定したパラメータを持ったURLを表示すると、そのパラメータの値を取得します。
キャンペーン等の簡易取得に利用できます。

・ディレクトリグループ
コンテンツグループは設定するのが面倒という人には、トップディレクトリをコンテンツグループとして設定することができます。

・_link の自動設定
クロスドメイン解析に必要な_linkも自動的に設定することができます。
それぞれのリンクにonClick~と書く必要はありません。

・曜日の取得
曜日を自動的にカスタム変数に格納します。
曜日別にデータを見ることが可能になります。

・時間帯の取得
朝、昼、夕方などページが見られた時間帯を自動的に取得します。

利用方法

A. 動作ファイル(gaPlugin_start.js)の記述
1. コンフィグファイルの読み込み
var gaConf = loadJson(“/test/ga/js/gaConf.json”);
コンフィグファイルのパスを指定してください。
JSONファイルを読み込みます。

2.トラックネームの設定
var _gaTrackName = “_firstTracker”;
マルチアカウントトラッキングに必要なトラッカーの名称を設定します。
名称はどんなものでも構いません。

3.計測用オブジェクトの作成
var firstTracker = new GaPlugin(gaConf.cnf, _gaTrackName);

4.各種設定
クロスドメイン用の設定など各種設定してください。

5.機能のON
利用する機能を定義してください。

6.trackPageview
データを送信します。
_gaq.push([_gaTrackName+'._trackPageview']);
メソッド:virtualPageviewsを利用することもできます。
(併用はできません)

7.onloadイベントの設定
autoLinkなどonloadイベントを設定します。

8.2つめのアカウント設定
複数アカウントを利用する場合は、2つめ以降のオブジェクトを生成してください。
方法は1-7と同様です。

B.HTMLファイルへの記述
gaPlugin.jsと動作ファイル(gaPlugin_start.js)を読み込んでください。

 <script src="/js/gaPlugin.js" type="text/javascript"></script>
 <script src="/js/gaPlugin_start.js" type="text/javascript"></script>

gaPluginのAPI

API一覧
new
.contentGroup
.dirGroup
.getParam
.cv
.dayTime
.weekDay
.virtualPageviews
.autoLink
.timeToComplete
.allowLinker

——————————–
new (conf, trackName)
*機能:
計測用オブジェクトを作成します。

*引数:
conf : 全般設定のコンフィグ
trackName : 任意の文字列

*confCgの形式:

    //全般設定
    cnf : {
    //アカウント名 : UA-XXXXXX-Xを入力してください。
        account : "UA-XXXXXX-X",
    //ページレベルでのカスタム変数のスロット名を配列形式で入力してください。
        pageLevel : [1]
    },

——————————–
.contentGroup(slot,confCg);
*機能:
設定ファイルに記載したURLルールに基づいて、コンテンツをグループ化します。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)
confCg : コンテンツグループのコンフィグ

*confCgの形式:

    //コンテンツグループの設定
    cg : {
        //コンテンツグループに利用するカスタム変数のカテゴリを指定してください。
        category : "ContentGroup",
        //コンテンツグループのスコープを設定してください。(デフォルト3 -> PageLevel)
        scope : 3,
        //コンテンツグループを正規表現で指定してください
        //グループ名:/グループ定義/
        pages : {
            groupA : /.+sampling.+/,
            groupB : /ga_test.html$/,
            groupC : //test/ga//,
            topPage : /^/$|^/index.html$/
        }
    },

——————————–
.dirGroup(slot);
*機能:
トップディレクトリでグループ化します。
ルートディレクトリの場合は「top」となります。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)

——————————–
.getParam(slot, confPar);
*機能:
設定ファイルに指定したパラメータを持っている場合、その値をカスタム変数に保存します。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)
confPar : コンテンツグループのコンフィグ

*confParの形式:

    //GETパラメータの取得
    getPar : {
        //カスタム変数のカテゴリ名を指定してください。
        category : "Parameter",
        //スコープを指定してください(デフォルト2 -> Session Level)
        scope : 2,
        //取得するパラメータ名を指定してください。
        paramName : "cid"
    },

——————————–
.cv(slot, confCv)
*機能:
設定ファイルに指定したURLのページを閲覧したとき、コンバージョンユーザーとして定義することができます。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)
confCv : コンテンツグループのコンフィグ

*confCvの形式:

    //コンバージョンユーザーの取得
    cv : {
        //カスタム変数のカテゴリ名を指定してください。
        category : "conversed",
        //スコープを指定してください(デフォルト1 -> User Level)
        scope : 1,
        //コンバージョンしたユーザーにつける名前を指定してください。
        cvName : "conversed",
        //コンバージョンとするURLを正規表現で指定してください。
        urlString : [//test/ga/index.html/, //test/ga/index2.html/]
    },

——————————–
.dayTime(slot);
*機能:
アクセスした時間帯を記録します。
0時-5時:late night
5時-9時:early morning
9時-12時:morning
12時-15時:after noon
15時-18時:evening
18時-21時:late evening
21時-24時:night
として、定義されます。
ユーザー側の時間が記録されるため、時差がある場合はサーバー側と異なる時間帯が記録されます。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)

——————————–
.weekDay(slot);
*機能:
アクセスした曜日が記録されます。
ユーザー側の時間が記録されるため、時差がある場合はサーバー側と異なる曜日が記録されることがあります。
カスタム変数を利用します。

*引数:
slot : カスタム変数のスロット番号(1-5)

——————————–
.virtualPageviews(confCg);
*機能:
コンテンツグループをページビューとして、カウントします。
通常の_trackPageviewと併用できません。

*引数:
confCg : コンテンツグループのコンフィグ
(形式は.contentGroupの設定と同じです。)

—————————-
.autoLink(confLink)
*機能:
外部サイトへのリンク、DLリンクを自動的に取得できるようになります。
カスタムイベントを利用します。

*引数:
confLink : オートリンクのコンフィグ
(省略することができます)

*confLinkの形式:
    //オートリンクの設定
    autoLink : {
        //除外するドメイン名を配列で指定してください。
        internalDomain : ["www.sample.com"],
        //
        category : {
            offSite : "OffSiteLink",
            download : "DownLoadLink"
        },
        //取得するDLファイルを設定
        dlFiles : {
            emailLink : /^mailto:(.+)$/i,
            pdf: /^(.+.pdf)$/i,
            zip: /^(.+.zip)$/i,
            PowerPoint: /^(.+.pptx?)$/i,
            Excel: /^(.+.xlsx?)$/i,
            Word: /^(.+.docx?)$/i
        }
    },

—————————-
.timeToComplete(confTC)
*機能:
設定ファイルに記載したスタートページを表示してから、終了ページを表示するまでの時間をカウントします。
カスタムイベントを利用します。

*引数:
confTC : timeToCompleteのコンフィグ

*confLinkの形式:
    //timeToCompleteの設定
    timeToComplete : {
        //カスタム変数のアクション名を指定してください。
        action : "timeToComplete_TEST",
        //計測開始URLを配列で指定してください。
        startUrl : [/ga/start1.html$/, /ga/start2.html$/],
        //計測終了URLを配列で指定してください。
        endUrl : [/ga/end1.html$/, /ga/end2.html$/],
        //利用するcookie名を指定してください。
        cookieName : "_utmTimeToComp"
    },

—————————-
.allowLinker(confLinker)
*機能:
クロスドメインサイトの取得に必要な_linkを自動的に設定します。
_setAllowLinkerをtrueにしておく必要があります。
aタグのみ対応しています。
formタグでのPOSTによるサイト遷移については対応していません。

*引数:
confLinker : allowLinkerのコンフィグ
*confLinkerの形式:

    //Cross Domain用Trackingの設定
    allowLinker : {
        //許可するサイトのURLを指定してください。
        allow : ["www.sample.co.jp", "www.sample2.co.jp/"]
    }

——————————–

4 Comments

  1. meaningfree より:

    gaPlugin使わせていただいています!素晴らしいツールですねー。

    ただIE6でJavaScriptのエラーが出るようなのですが、IE6はサポート対象外でしょうか。

    gaPlugin_start.jsで使われているXMLHttpRequestがIE6で対応していないようです。

    • yosimox より:

      報告ありがとうございます。
      gaPlugin_start.jsは、eval()も使っていてセキュリティ的に微妙だなって思ってたので、
      設定ファイルの読み込み方法自体を修正しようかなと思います。
      そのうち、更新します。

  2. WarrenTit より:

    viagra indian pharmacy , http://www.infolanzarote.de/Links/go.php?url=http://www.genericpillonline.com , does viagra work erectile dysfunction meds online take viagra with food

Leave a Reply