- 2005-08-03 (水) 20:14
- サイトカスタマイズ
アクセスログ解析CGI「dopvSTAR*」
非常に高機能で使いやすいアクセスログ解析CGIに「dopvSTAR*」とフリーウェアがあります。
このエントリでは、MovableTypeと連携して「dopvSTAR*」をより便利に使うための改造を施したので、そのやり方をメモしたものです。
ですから、MovableTypeを使ってサイトを運営している方でアクセス解析CGIに興味がある方にしか面白くも何ともない無いようになっていると思います。
【追記 2005/Aug/06】
初期設定に関して「「dopvSTAR*」の基本的な設定覚え書き 」にまとめました。 これから設置するという方はこちらからご覧ください。
MovableTypeとの連携を考えていない方でも役に立つと思います。
それでも良いという方は続きを読むから本編をご覧ください。
いまではアクセス解析サービスもタダでレンタル出来て、設置もページにJavaScriptで1行書くだけってアクセス解析がたくさんありますね。 でもこのdopvSTAR*は、その辺の無償サービスにはない多くの情報を提供してくれるCGIなんです。 主な機能は、リンク元ページとアクセスされたページを一括して解析、MovableTypeとの連携が可能、アクセスカウンタとしても使用可能などなど……。 機能がすごく多いのでdopvSTAR*配布サイトで確認してください。 下手な説明よりもそれが絶対に速いから。
数ある機能の中でも特に気に入っているのは、リンク元URLとアクセスページを解析してくれる機能。 これは、どこのページからリンクを辿って自分のサイトのどのページへアクセスがあったかをまとめてくれる機能です。
MovableTypeなどのブログツールを使っていると、過去ログが個別エントリとしてしっかりと管理されるから、自分のサイトがデータベースのような機能を持つようになってきますよね。 実際、このサイトでも1日に1000人以上のアクセスが検索エンジンからのリンクです。 ブログを半年も続けていたら、エントリIDや日付なんかじゃとてもじゃないけど、どんな記事だったのか把握出来ない。 こんな状況こそdopvSTAR*の出番なのです。
dopvSTAR*はMovableTypeと連動することで、アクセスされたページをタイトルで表示することが出来ます。 この機能はとても画期的。 でも、この機能が使えるのはアクセスされたページごとのアクセス数解析だけ。 リンク元とアクセスページ両方の集計だと、MovableTypeとの連携を取ることができない。 これはとっても残念なので、リンク元とアクセスページの集計でMovableTypeと連携するための改造をしたのでこれを紹介します。 ついでにアクセスされたページへのリンクも張れるようにしました。 この改造をしたときのスクリーンショットがこの画像(上の画像と同じ)です。 URLというところをクリックするとその左に表示されている自分のサイト内のページに飛ぶことが出来ます。
やり方は複雑そうに見えるけど比較的簡単。
まず始めに、普通にdopvSTAR*を設置して動くようにしましょう。 設置方法は公式ページにある通りにやれば出来ると思います。 配布ページのここら辺に詳しくあるのでさくっと設置してしまいましょう。
【追記 2005/Aug/06】
基本的な設置方法に関して「「dopvSTAR*」の基本的な設定覚え書き」にまとめました。 まずはこちらのエントリを参考に基本的な設定をしてから以下のカスタマイズをご覧ください。
MovableTypeのテンプレートにもCGI呼び出し用のタグを書き込みます。
ページごとにブログIDとエントリIDを書き込めば良いんですが、ここ(作者さんのページ:MovableType3でアクセス解析/お気楽極楽ブログ)に詳しく書いてあるので、この通りに。 ただし、タイトル呼び出しが出来るのは現時点で個別アーカイブとカテゴリアーカイブだけです。 この辺もいじれば行けそうだけど割愛。
では、プラグインのファイルを改造していきます。
** 以下の改造は自己責任でお願いします。 **
** この改造による被害については当サイトでは一切責任を取りません。 **
** この改造に関する質問は当サイトまでお願いします。 **
** 配布サイトである技林さんへの問い合わせは迷惑になりますので絶対にしないでください。 **
いじるファイルは
・dsxxxx/lib/sub_analysis.pl
・dsxxxx/lib/mtname.pl
・dsxxxx/lib/sub_koumoku/rfpg.pl
の3つ。 ここでは配布サイトからダウンロードしたファイル(dsxxxx.lzh:xxxxはバージョン。現時点での最新版は0077です。)を解凍してできたフォルダがdsxxxxです。
いじるポイントは、
1. sub_analysis.plでリンク元URL+アクセスページを解析でもmtname.plを呼び出すようにする。(リンク元URL+アクセスページ解析でMTと連携するだけならこれだけでOK!)
2. mtname.plでMTと連携するときにタイトルだけでなくURLも拾ってくるようにする。
3. 2.で取ってきたタイトルとURLをrfpg.plで分解して出力する。
というステップになっています。
以下ではフォントの関係で「¥(円マーク)」が「\(バックスラッシュ)」になってしまっていますが、テキストエディタで編集するときには¥(これは全角ですが、ホントは半角です)となります。
また、編集を行うときには必ずeuc-jpで編集してeuc-jpで保存するようにしてください。
** コードをコピペする場合には全角スペースに注意してください **
1.sub_analysis.pl
30行目あたり
if($FORM{’a'} =~ /^pg\d?/){
if($INI{’mt_dir’} ne ”){
:
&require($INI_require_path{’mtname’});を以下のように変更
if($FORM{’a'} =~ /^pg\d?||^rfpg$/){
if($INI{’mt_dir’} ne ”){
:
&require($INI_require_path{’mtname’});
rfpgを追加してリンク元URL+アクセスページ解析の場合にもmtnameを適用するようにします。
2.mtname.pl
27行目あたりx
$ds_mt_entry_title = Jcode->new($entry->title);を以下のように変更
$ds_mt_entry_title = Jcode->new($entry->title) . “\t” . $entry->permalink;
ここはMTと連携してIDからタイトルを取ってくるプログラムですが、ここで一緒にURLも持ってきてしまいます。 そのときにタブ(\t)で連結しておきました。
3.rfpg.pl
35行目あたり(出力されるテーブルにURLの項目を追加)
print “<td>No</td><td>リンク元</td><td>ページ</td><td>件数</td>”;を以下のように変更
print “<td>No</td><td>リンク元</td><td>ページ</td><td>URL</td><td>件数</td>”;
77行目あたり(ページ名の置換のところ)
foreach $str (keys %INI_change_page){
if($str ne ” && $str eq $j){
$j = $INI_change_page{$str};
last;
}
}を以下のように変更。
my $flag=0;
$put_b = $j;
foreach $str (keys %INI_change_page){
if($str ne ” && $str eq $j){
$j = $INI_change_page{$str};
$flag = 1;
last;
}
}
my($p,$uu,$url);
if($flag){
($p,$uu) = split(/\t/,$j);
$url = “<a href=\”" . $uu . “\” target=\”_blank\” title=\”" . $uu .”\”>URL</a>”;
}else{
$p = $j;
$url = “”;
}110行目
$put_b = $j;をコメントアウト
#$put_b = $j;
125行目
print <<”_HTML_”;
<tr><td nowrap>$INI{’i'}</td><th align=”left” nowrap title=”$put_a “>$put_p </th><th align=”left” nowrap title=”$put_b “>$j </th><td>$SYUKEI{$_}</td>
_HTML_を以下のように変更。
print <<”_HTML_”;
<tr><td nowrap>$INI{’i'}</td><td align=”left” nowrap title=”$put_a “>$put_p </td><td align=”left” nowrap title=”$put_b “>$p </td><td>$url</td><td>$SYUKEI{$_}</td>
_HTML_
これで、CGI側の準備は完了です。
それでは早速動かしてみましょう。
右からリンク元ページ(デフォルトではURLが出ます。)、アクセスされたページタイトル、アクセスされたページへのリンク、件数、割合、グラフとなっていれば成功です。 アクセスされたページタイトルにカーソルを乗っけると、テンプレートに記述した内容(個別ページの場合は「ブログID_エントリID」)が表示されるので、検索などフィルタリングしたいときにはこの番号を使ってください。
また、リンク元ページをスクリーンショットのようにタイトルで表示するためには、設定ファイルdsi.plの%INI_change_refという項目にURLとタイトルを
%INI_change_ref = (
‘http://search.yahoo.co.jp/bin/query?’=>’YAHOO’,
‘http://sasapanda.net/’=>’Orbium -そらのたま-’
);
というように書き込めば置換してくれるようになります。
- Newer: イリオモテヤマネコは旬を追いかける美食家だった。
- Older: 甘いものを食べると幸せになる理由
Comments:0
Trackbacks (Close):5
- trackback from お気楽極楽ブログ 05-10-02 (日) 18:19
-
MT3.2日本語版とdopvSTAR*
MovableType3.2日本語版にバージョンアップしたところ、dopvSTAR*のログ取得タグの一部で不具合が発生した。 …
- trackback from お気楽極楽ブログ 05-10-02 (日) 18:20
-
MT3.2日本語版とdopvSTAR*
MovableType3.2日本語版にバージョンアップしたところ、dopvSTAR*のログ取得タグの一部で不具合が発生した。 …
- trackback from お気楽極楽ブログ 05-10-02 (日) 18:21
-
MT3.2日本語版とdopvSTAR*
MovableType3.2日本語版にバージョンアップしたところ、dopvSTAR*のログ取得タグの一部で不具合が発生した。 …
- trackback from お気楽極楽ブログ 05-10-03 (月) 14:48
-
MT3.2日本語版とdopvSTAR*
MovableType3.2日本語版にバージョンアップしたところ、dopvSTAR*のログ取得タグの一部で不具合が発生した。 …
- trackback from PHAT∴LOVESICK 05-12-27 (火) 3:10
-
模様替えに伴って
ホリディ気分もそこそこに、今回の模様替えに伴って、少々変更した箇所などもあります…



