symfonyで作った携帯サイトでログ解析
携帯サイトをsymfonyで作るのが良いか悪いかはおいといて、symfonyで携帯サイトを作った時のアクセス解析の問題。
- filterを作ってDBにログを貯める
- apacheのログを解析
- 外部の解析ツールを使う
等が考えられますが、使いやすいUIを作ることを考えると、しばらくは外部のツールが良いかな?という話になります。
ちなみに上の各メリット/デメリットは、
filter
メリット
- 簡単
デメリット
- 処理が増えて重くなる
- 200以外のレスポンスも解析結果に入る
外部ツール
メリット
- 構築が楽
- とにかく楽
デメリット
- 画像タイプの場合、最後までまたないユーザーが多いため2割程PVが減る
とかあります。
まあ、力を入れるときはapacheのログ解析をするとして、出だしは外部ツールを使うのがいいと思います。
携帯に特化してて、良いのがmyRTモバイルです。
発効したimgタグをはるだけで、キャリア別や端末別で解析できたりします。
ただし、発効されたタグをそのまま使うと、symfonyに限らずfront controllerを使用したサイトでは全ページきちんと解析できません。
そこで下記のヘルパーを使うと上手いこといい感じになります
- myRTHelper.php
function rt_tag($aqid)
{
$request = sfContext::getInstance()->getRequest();
$moduleName = $request->getParameter('module');
$actionName = $request->getParameter('action');
$ref = getenv('HTTP_REFERER');
$ref = urlencode($ref);
$my_url = urlencode("//".getenv('SERVER_NAME')."/".$moduleName."/".$actionName);
if (!empty($my_url)) $rt_param[] = "/2=$my_url";
if (!empty($ref)) $rt_param[] = "/4=$ref";
$tag = "<img src=\"http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid";
foreach ($rt_param as $val) $tag .= $val;
$tag .= "/blank.gif?guid=on\" width=\"1\" height=\"1\" />";
return $tag;
}
<?php use_helper('myRT'); ?>
<?php echo rt_tag("[発効したID]"); ?>