IDとユーザー定義の連動 on Google Analytics

Re: IDとユーザー定義の連動 on Google Analytics

- SUMI Seijiro の投稿
返信数: 0

自己レスです。以下の方法で,Google Analytics (以下GA) とMooldeを連携し,ログインIDで個別ユーザーのアクセス解析ができるようになったので書き込みました。

以下,Theme で Standard を選択していることを前提とします。

【修正対象】:/theme/standard/header.html
【修正箇所】:<head>~</head>

【修正前】
<head>
<?php echo $meta ?>
<meta name="keywords" content="moodle, <?php echo $title ?> " />
<title><?php echo $title ?></title>
<link rel="shortcut icon" href="<?php echo $CFG->themewww .'/'.current_theme() ?>/favicon.ico" />

<?php include("$CFG->javascript"); ?>

</head>

【修正後】
<head>
<?php echo $meta ?>
<meta name="keywords" content="moodle, <?php echo $title ?> " />
<title><?php echo $title ?></title>
<link rel="shortcut icon" href="<?php echo $CFG->themewww .'/'.current_theme() ?>/favicon.ico" />

<?php include("$CFG->javascript"); ?>

<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX']);
_gaq.push(['_setCustomVar',1,'<?php echo $USER->username; ?>','ID',2]);
_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>

</head>

スクリプトの修正は以上です。青字の部分は,GAが生成するタグになります。赤字のUA-XXXXXXXの部分は、各自のプロファイルを指定してください。

次に,GAにログインして,「アドバンスセグメントの新規作成」を行います。アドバンスドセグメントについては以下を参考にしてください。
「アドバンスドセグメントの使い方~特定ドメインで絞り込む」

【アドバンスドセグメントの新規作成】をクリックし,【ユーザー】>【カスタム変数(キー1)】を選択し,絞り込みたいユーザーのIDを「完全一致」で入力し,保存します。

設定作業は以上です。
最後にGAでレポートを表示させ,アドバンスセグメントから「全セッション」に加え,先程指定したユーザーのセッションを指定すれば,全体からより分けてユーザのセッションを表示するようになります。絞り込まれたデーターの解析の仕方については,まだまだこれからの課題かと思います。SEOの考え方を参考にしながらも,利用目的に沿った解析の仕方が今後でてくることを期待しています。

以下,スクリプト設置の詳細についてご紹介します。不必要な方は読み飛ばしてください。

_gaq.push(['_setCustomVar',1,'<?php echo $USER->username; ?>','ID',2]);

の部分がカスタム変数を指定して,GAが生成するタグに追加記述している部分になります。
_setCustomVarの中身の変数については以下のサイトを参照にしてください。
【マルチカスタム編集の書式】

<?php echo $USER->username; ?>の部分が,Moodle 個人IDのPHPの変数を取得する部分です。
これは, Mitsuhiro Yoshida さんからのアドバイスを参考にさせていただきました。ありがとうございました。

_gaq.pushとして記述するのは,5月17日に,GAが非同期トラッキングコードを標準設定にしたためです。
以下参照
【Google Analytics 非同期トラッキングが標準設定に】

英語サポートページ
【Tracking Sites with the Asynchronous Snippet】

この非同期トラッキングに関しては,ごく最近のアナウンスであったためにウェッブにもあまり情報がありません。
また,市販されている書籍では,古いユーザー定義関するの記述の仕方(<boy onLoad="javascript: pageTracker.setVar('*');">)しか載っていません。

(3冊も買ったのの,,,)

特に非同期トラッキングコードが標準設定になって大きく変わった点は,GAの生成するタグの設置場所です。
現在も,GAの日本語サポートページでは,トラッキングコードを</body>の直前にと書かれています。現在手に入る書籍にもそのように書かれています。しかし,非同期トラッキングコードが標準になってからは,</body>の直前ではなく,</head>の直前にタグを設置する必要があります。
【Goolge Analyticsインストールガイド】(ステップ4に設置場所は,</body>タグの直前と書かれている)

英文のサイトでは,"just before the closing </head> tagと書かれています。
【Tracking Sites with the Asynchronous Snippet】

いろいろ遠回りをしましたが,みなさまのアイデアと後押しで目的を達成することができました。
ありがとうございました。今後ともどうぞよろしくお願いします。

評点平均: お役立ち度: ★★★★★★★ (2)