携帯検索エンジンのリファラーから検索キーワードを知るために。


無料携帯アクセス解析について - webの人 @ryryo


にて、携帯の検索エンジンで検索キーワードを拾うためには、
Apacheの生ログを解析するのが楽ですよ、と書いているのですが、
それに関する追加の情報として書いていきます。

前回、それを解析するためのソフトとして紹介したのが、

ApacheLogViewer

http://www.vector.co.jp/soft/win95/net/se252609.html

でした。


たしかにこれでも検索キーワードを解析可能なのですが、
いくつか問題点か。
  • ある程度以上ログがあると読み込みの時間が長くなる。
  • アクセス解析ソフトというかログ解析ソフトなので、手軽に解析結果見る、ということができない。(面倒くさい。)
  • リファラの形式によっては、キーワードを拾えない。


というわけで今回紹介するのが、その問題を解決できるこのアクセス解析

AWStats

http://awstats.sourceforge.net/

■機能概要説明

  • ウェブサーバのログ解析ソフト
  • サーバーに設置するCGI型の解析ソフト
  • 解析結果をHTMLで出力してくれる。見やすい。
  • 設定ファイルのカスタマイズ性が高い。


実際のイメージ。








そもそもは普通の生ログ解析ソフトなのですが、
「設定ファイルのカスタマイズ性が高い。」
という特性を生かすことで、携帯の検索キーワードを把握できるようにできます。

蛇足ですが、携帯の機種別アクセス数をカウントしたり、
携帯のクローラーからのアクセスをカウントすることも設定しだいで可能です。

今回はそこに触れないですが、
携帯の検索キーワード設定がわかれば、その他の設定も簡単にできるかと。


というわけで、AWStatsで携帯検索キーワードを測定するための
一通りの流れを説明します。
  1. AWStatsをサーバーに設置
  2. cronの設定
  3. 設定ファイルの編集
  4. 文字コードの修正


以下詳細。

AWStatsをサーバーに設置


これに関しては、通常どおり設置で問題ありません。

ただ一つ注意として、AWStatsには日本語版と通常版があるのですが、
私の環境の場合、通常版のほうしか設定がうまくできませんでした。

ですのでとりあえず今回は、通常版の設置をオススメします。

通常版URL:http://awstats.sourceforge.net/


ちなみにこちらのバージョンでも、管理画面はしっかりと日本語で表示されますのでご安心を。
一部のドキュメントが英語のまま、という程度の問題しかありません。


設置の方法については、ご自身の環境に合わせてgoogle等で検索するのが一番です。
有名なソフトなので各所で設定方法について明記されています。

念のため書いておくと、私が参考にしたのは以下のサイト。
今回はテストとしてレンタルサーバーのXREAとさくらサーバーに設置しました。

XREAでAWStatsを走らせてみました
http://web.okanos.com/employment/awstats.shtm

cronの設定


設置方法のサイトにはだいたい合わせて書いてあると思いますが、
cronの設定も必須。

cronというのは、プログラムを指定時刻や定期的に実行するサーバの機能です。

こいつを設定して、毎日自動的にログを分析しておいてもらいましょう、ということ。
上の項目とかぶる部分ですが、一応念のため。

設定ファイルの編集


ここが大事な項目。

/lib/search_engines.pm
テキストエディタで編集します。

このファイルは、検索エンジン周りの設定項目。
ここに携帯検索エンジンの情報を追記していきます。

まず先にに各携帯検索のリファラ形式一覧を。

※あくまで参考程度。
 公式の情報ではなく、ログを漁ったものなので実際は違っていたり、
 本当はもっと多くの形式があることが想定されます。(というか、そうです。


ではこれを参考にsearch_engines.pmp設定をしていきます。設定箇所は以下の部分。
  • @SearchEnginesSearchIDOrder_list1=(
  • %SearchEnginesHashID = (
  • %SearchEnginesKnownUrl=(
  • %SearchEnginesHashLib=(
@SearchEnginesSearchIDOrder_list1=(

こんなかんじものを追加。

# Mobile Search Engines
'mobile\.yahoo\.co\.jp',
'ezweb\.ne\.jp',
'google\.co\.jp\/m',
'mbkn\.jp',
'dir\.m\.livedoor\.com',
'search\.froute\.jp',
'yicha\.jp',
'm\.live\.com',
'search\.crooz\.jp',
'search\.yappo\.jp',
'search\.kbg\.jp',
'mobile\.excite\.co\.jp',

%SearchEnginesHashID = (

こんなかんじものを追加。

# Mobile Search Engines
'mobile\.yahoo\.co\.jp','yahoomobile',
'ezweb\.ne\.jp','ezgmobile',
'google\.co\.jp\/m','gmobile',
'mbkn\.jp','mbga',
'dir\.m\.livedoor\.com','livedoormobile',
'search\.froute\.jp','froute',
'yicha\.jp','yicha',
'm\.live\.com','livemobile',
'search\.crooz\.jp','crooz',
'search\.yappo\.jp','yappo',
'search\.kbg\.jp','biglobemobile',
'mobile\.excite\.co\.jp','excitemobile',

%SearchEnginesKnownUrl=(

こんなかんじものを追加。

# Mobile Search Engines
'yahoomobile','p=',
'ezgmobile','query=',
'gmobile','q=',
'mbga','q=',
'livedoormobile','q=',
'froute','k=',
'yicha','keyword=',
'livemobile','q=',
'crooz','query=',
'yappo','k=',
'biglobemobile','extrakey=',
'excitemobile','word=',

%SearchEnginesHashLib=(

こんなかんじものを追加。

# Mobile Search Engines
'yahoomobile','Yahoo Mobile',
'ezgmobile','EZ Google',
'gmobile','Google Mobile',
'mbga','mbga',
'livedoormobile','Livedoor Mobile',
'froute','froute',
'yicha','yicha',
'livemobile','Live Search Mobile',
'crooz','crooz',
'yappo','yappo',
'biglobemobile','BiglobeMobile',
'excitemobile','Excite Mobile',


以上。上書きしてアップロードすれば完了。

細かい説明はしませんが、
各項目の説明文や上記の設定文を見れば、
だいたいのやっていることはわかっていただけるかなぁと思います。

正しく設定が反映されれば、最初に貼ったイメージのように、
各携帯検索エンジンからの集客数・検索キーワードを見れるようになります。

環境によっては、一部反映されない部分があるかもしれません。
私の方でもバグチェックが完了していないので、
なにかミスがあれば随時更新予定。

できればご指摘いただけると助かります。

文字コードの修正


最後にこれ。

基本的に携帯検索エンジンの検索キーワードは、
Shift-jis形式でログに溜まるので、最初は上の設定が完了しても、
検索ワードが文字化けした状態で解析画面に反映されてしまいます。

これの修正に使うのが、『Jcode.pm』

入手はこちらから。
Jcode.pm

これをダウンロードしたら、
本体(awstats.pl)と同じフォルダにアップロード。

その後、awstats.plを修正します。
修正箇所は、「先頭部分」と「DecodeEncodedString」の部分。

先頭部分の修正

18行目あたりにある「use Socket;」の下の行に、「use Jcode;」と追記。

DecodeEncodedString部分の修正

7522行目あたりにある「$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;」の下の行に、「Jcode::convert(\$stringtodecode, "utf8");」と追記。

こんな形。

sub DecodeEncodedString {
my $stringtodecode = shift;
$stringtodecode =~ tr/\+/ /s;
$stringtodecode =~ s/%22//g;
$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;
Jcode::convert(\$stringtodecode, "utf8");
return $stringtodecode;


そして保存した後、アップロードすれば文字化けが解消されます。
これで文字化け対策も完了。


おまけとして、レンタルサーバーに設置される方に細かいアドバイス

生ログのファイル名仕様の変更に注意。


初期設定の際、生ログのファイル名形式を書くのですが、
古い文献を参考に記述していった場合、その形式が変更されていて、
ログが取得できない!という場合があります。

実際に生ログのファイル名を覗いたり、
レンタルサーバーの生ログ出力形式をぐぐって探すと良いです。

ちなみにさくらサーバーでその現象にぶつかり無駄な時間を使いました。汗

http://www.hoge256.net/2009/04/335.html

さくらサーバーに複数ドメインを当てている方に注意。


さくらサーバーでは、ドメイン別のアクセスログが出力されません。
ドメインアクセスログがまとめて出力されています。

これは仕様のようで、変更されるつもりもないご様子・・

借り物なので仕方ないですね。



...以上!

設置はだいぶ手間ですが、
中々面白い結果を簡単に見れるようになります。

時間が空いてる時にでも設置してみてはいかがでしょうか。



■参考文献■
http://www.crimson-snow.net/hmsvr/fedora/httpd/awstats.html
XREAでAWStatsを走らせてみました
さくらインターネットに AWStats をインストール - 転校生@Hatena
http://web.okanos.com/employment/awstats.shtm
【AWstats】設置とかのめも :: うさぎふぁくとりー


■その他AWStatsを携帯対応させる文献■
awstatsで携帯端末情報を表示させる方法 - メランコリック
http://blog.coronet-internet.com/2009/01/awstats-1.html