ニガくて難しいアクセス解析を、たっぷりのミルクでふわふわの贅沢ラテ的な仕上がりに

Flash lite1.1コンテンツをGoogle Analyticsで解析してみる

Flash liteではスクリプトで通信するときはボタンを押したとき限定なので、「Flashが再生された」とか「ページにアクセスした」というタイミングは計測できません。ということは、逆に「どのボタンが押されたか」だけをカウントすることはできる」ということです。

実際は、ボタンを押したときにLoadVariablesでPHPに通信します。そしてPHPはAnalyticsに通信して、カウントが計測される、という寸法です。

スクリプト

まず、1フレーム目にこんなスクリプトを書いておきます。ボタンがあるのは2フレーム目以降。

//PHPへのパスとアナリティクスID、サイトのドメインを設定します
$phpurl = "http://YOURDOMAIN/analytics.php";
$id = "UA-12345-6";
$domain = "http://YOURDOMAIN";
//example:ryow.net

//
//あとはそのままでOK
fscommand2("GetDevice","devicename");
$user =devicename;
$phpurl = $phpurl add "?ga=" add $id add "&domain=" add $domain add "&usr=" add $user;
_focusrect =false;

ボタンがあるフレームにはこんな感じで。

//ボタン1
on (release, keyPress "1") {
	$req = "/ktai/answer1";
	loadVariables(/:$phpurl add "&request=" add $req, _root)
}
//ボタン2
on (release, keyPress "2") {
	$req = "/ktai/answer2";
	loadVariables(/:$phpurl add "&request=" add $req, _root);
}

以上で何をやってるかというと、指定されたPHPにどのボタンを押したかをカウントする変数を投げているというだけです。PHPから読み出した結果は(空ですが)_rootに置いてます。
そして気になるPHPはこちら。

	$var_utmac =$_GET['ga'];
	$var_utmhn =$_GET['domain'];
	$var_uservar =null;
	$var_utmp =$_GET['request'];
	

	if(!$session){
	$session = rand(1000000000, 9999999999);
	}
	$var_utmn=rand(1000000000,9999999999);
	$var_cookie=$session; //cookie number
	$var_random=rand(1000000000,2147483647);
	$var_today=time();
	$var_referer=$_SERVER['HTTP_REFERER'];
	
	$urchinUrl='http://www.google-analytics.com/__utm.gif?utmwv=1&utmn='.$var_utmn.'&utmsr=-&utmsc=-&utmul=-&utmje=0&utmfl=-&utmdt=-&utmhn='.$var_utmhn.'&utmr='.$var_referer.'&utmp='.$var_utmp.'&utmac='.$var_utmac.'&utmcc=__utma%3D'.$var_cookie.'.'.$var_random.'.'.$var_today.'.'.$var_today.'.'.$var_today.'.2%3B%2B__utmb%3D'.$var_cookie.'%3B%2B__utmc%3D'.$var_cookie.'%3B%2B__utmz%3D'.$var_cookie.'.'.$var_today.'.2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D'.$var_cookie.'.'.$var_uservar.'%3B';
	
	$header = '';
	

	if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
	  $header = 'Accept-language: '.$_SERVER['HTTP_ACCEPT_LANGUAGE'].'\r\n';
	}

	if (!empty($_SERVER['HTTP_USER_AGENT'])) {
	  $header = 'User-Agent: '.$_SERVER['HTTP_USER_AGENT'].'\r\n';
	}
	
	$opts = array(
	  'http'=>array(
	    'method'=>'GET',
	    'header'=>$header
	  )
	);
	
	$handle = fopen($urchinUrl, 'r', false, stream_context_create($opts));
	$test = fgets($handle);
	fclose($handle);

PHPを作る際には、こちらのモバイル(携帯サイト)でアクセス解析にGoogle Analyticsを使う方法 - Knowledge Database ITを参考にさせていただきました。

また、セッションが毎回新しくカウントされてしまうので、せめてユニークユーザだけでも知りたい、と思い、ここではケータイの機種名をユーザ定義変数としてセットしています。本当ならケータイごとにユニーク変数が取れるはずの「fscommand2("getDeviceID")」というコマンドがあるんですが、対応機種が事実上存在しないという無意味な環境変数なので、これは却下です。なので機種名だけゲットしています。これだと、同じ機種を使ってる人が同じユーザ定義になっちゃうんですが、まぁいいか。

というわけでAnalyticsにかなり突っ込んだ話になりました。
仕様が変わったら使えなくなると思いますが、こういうやり方もありますよ、というテクです。

使い方

まず、PHPはこのまんまアップしてもらえればOKです。
Flashは、まずフレームスクリプトを、お使いの環境に合わせてセットします。そしてボタンのonReleaseで、カウントしたい架空のURIをセットすればOK!
サンプル(PHP+fla)はこちらです。適当にどうぞー

ケータイで解析したいなら、うごくひと2というのが超絶高機能なので、こっちの方がよいです。このエントリはAnalyticsでどこまでこだわれるか、という実験なので。

Home > 04.中級メニュー > Flash lite1.1コンテンツをGoogle Analyticsで解析してみる

このページの上へ