symfonyで作った携帯サイトでログ解析

携帯サイトをsymfonyで作るのが良いか悪いかはおいといて、symfonyで携帯サイトを作った時のアクセス解析の問題。

  • filterを作ってDBにログを貯める
  • apacheのログを解析
  • 外部の解析ツールを使う

等が考えられますが、使いやすいUIを作ることを考えると、しばらくは外部のツールが良いかな?という話になります。
ちなみに上の各メリット/デメリットは、

filter

メリット
  • 簡単
デメリット
  • 処理が増えて重くなる
  • 200以外のレスポンスも解析結果に入る

apacheログ

メリット
  • 処理ラインが別なので軽い
  • ステータスを見れるので、不要な者を除外できる
デメリット
  • 構築が結構大変

外部ツール

メリット
  • 構築が楽
  • とにかく楽
デメリット
  • 画像タイプの場合、最後までまたないユーザーが多いため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]"); ?>