- 締切済み
ポータルサイトの店舗単位のアクセスランキングの取得
地域のポータルサイトを作成しようと思っています。 ポータルサイトの店舗単位のアクセスランキングの取得方法 http://www.insyoku.biz/ の右側に出ているような、お店ごとにアクセス数を集計して ある一定期間での順位付け 1位 AA店(200アクセス) 2位 BB店(140アクセス) ・・ のように表示するプログラムはどのようなものでしょうか。 アクセス解析はMOGURAとグーグルアナリティクスの経験しか ありませんが、ご存知であればどのようなものでもかまいません。 有料無料問わず外部ソフトを組み込むのも視野にいれています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- umioyo
- ベストアンサー率66% (35/53)
#1です。 可能か不可能かというと可能ですが、動的にアドレスが生成されればいいんですが、正確に計測できないというような問題もあるかなと。 正確さからいうとユーザーが自由に付けたり外したりできるような仕組みは避けたほうがいいでしょうね。特に宣伝に絡むところであればなおさら。
- umioyo
- ベストアンサー率66% (35/53)
まずは何をもってアクセス数とするか、でしょうか。 セッション数をアクセス数とするのであれば、自分でアクセスログからセッション数を求めるプログラムを書かないといけないので、面倒でしょうからログ解析から取得した方がいいかもしれません。 PVをアクセス数とするのであれば、独自のカウンタを設置するか、アクセスログ解析から取得するか、リロードされた場合の処理はどうするか、などを考えなければいけません。 あまり外部と接続できるAPIを公開しているログ解析は聞いたことがないので、アクセスログ解析から値を引けるかどうかはわかりません。 一番簡単なのは、PV集計方法でアクセスがあったらカウンタを増やすようなやり方だと思います。 昔よくあったのは、ページ中に<img src="access.php" width="1" height="1" alt="">みたいにアクセスカウンタを埋め込んでおき、access.phpでは、どの店舗への訪問かカウントを集計させる方法ですが、1pxX1pxの画像を指定するとSEO的にスパム扱いされてしまうと聞いたことがありますので、JavaScriptなどで埋め込んだ方がいいかもしれません。
補足
ありがとうございます。 ログ解析というものは技術的に不可能だと思います。 (htmlファイルやtxtファイルから店舗別のカウントをするphpの作成が見当もつかないので) 各SHOPは「TOPページ」、「地図ページ」、「メニューページ」の3Pを持っているとします。 SHOP【A】の「TOPページ」…GETを使って?shopid=A&page=top SHOP【B】の「メニューページ」… ?shopid=B&page=menu みたいにして、どこかにアクセスがあったら (useragentが一致しない場合のみ)データベースに格納。 1つのレコードに必要なフィールドは 「ユニークID」「アクセス時間」「SHOPID」「PAGE」「ユーザーエージェント」 アクセス時間が今から一ヶ月以内のもののレコードだけをSELECTして SHOPIDごとに集計する。それをランキングとする。 というやりかたかなーと思いますが、現実的でしょうか?
補足
「ユーザーが自由に付けたり外したりできるような仕組み」 というのはGETのことでしょうか? useragentで規制できない正確さなら誤差の範囲かと思っていたのですが・・。 そこまで厳密にランキングを作りたいわけではありません。 phpの知識でできればいいのですが。