おかげさまで PC 版と同じくらいのアクセスをいただいている Trend Antenna のモバイル版ですが、悩ましかったのはアクセス解析。携帯の場合、JavaScript が使えないので、PC 版で使っている Google Analytics は使えません。いくつか公開されているモバイル用のアクセス解析スクリプトを眺めてみましたが、しっくりきません。仕方がないので、自分で作ることにしたのですが、これが意外に面倒だったのです。
一番悩ましかったのは、docomo の仕様。携帯の場合、cookie も使えないことが多いので、同一ユーザーからのアクセスであることを識別するには、セッションを URL に埋め込むか、端末識別番号を取得することになります。セッションを URL に埋め込む方法は、セキュリティ的にどうかと思ったので、端末識別番号を利用する方法を採用することにしました。
幸い、端末識別番号の取得自体は、PEAR の Net_UserAgent_Mobile を使えば、
require_once 'Net/UserAgent/Mobile.php';
$agent = &Net_UserAgent_Mobile::factory();
$uid = $agent->getUID();
で取得できるのですが、docomo の場合、URL に guid=ON を埋め込んでおかないと端末識別番号(docomo の場合はiモードID)が取得できません。おまけに、mod_rewrite で URL の書き換えは NG。つまり、
RewriteRule ^m/archive/(.+).html$ m/index.php?guid=ON&keyword=$1 [L]
では、取得できないのです。このため、モバイル版では、URL の書き換えをせずに、引数をつけたそのままの形で記述しています(これに伴う問題が別のところで発生したのですが、それはまた別の機会に)。このほかに、フォームで投げるときにも注意すべき点があるのですが、このあたりの詳細については、
Tech [Friday] プロモバイルエンジニアブログさんの記事によくまとまっています。
docomo は、リファラは返さないし、アクセスのたびごとに IPアドレスは変わるしで、アクセス解析を行ううえでは、非常に困った仕様です。iモード開始時にはインターネットへの接続を想定していなかったのでしょうし、セッションが終わるまで一つの端末がIPアドレスを固定で持ってしまうとネットワークを有効活用できないという事情はあるのだと思うのですが、モバイルサイトを作るうえで、docomo なかりせば、と思うことが多いのも事実です(外部スタイルシートも使えないですしね)。
posted by まいける at 23:10
|
Comment(0)
|
TrackBack(0)
|
機能追加