満足!投稿ページ毎のアクセス解析の実現方法
内部統制の仕組みを勉強中私は、4月の下旬頃からdopvSTAR*という優れものの無料アクセス解析CGIを導入しました。これまで、AccessAnalyzerや忍者ツールを利用していたのですが、どちらのツールも「トップページ」「個別ページ」といったテンプレート毎のアクセス分析は出力してくれるのですが、個別ページのどのページにアクセスがあったかの情報は提供してくれませんでした。
正しく言うと、ページ毎の解析をするためにはAccessAnalyzerや忍者ツールの場合には記事の投稿の都度設定をする必要があり面倒で仕方がないのです。
ところがこのdopvSTAR*は一度設定すればほとんどメンテフリーでページ毎のアクセス解析を行ってくれます。またカウンターとしても機能します。
但し、このdopvSTAR*はCGIの設置ができるサーバーをお使いの方しか利用できませんので、ココログ等をお使いの方はご了承ください。
dopvSTAR*からスクリプトをダウンロードした後dsw.cgi と dsa.cgiのCGIのパスを必要であれば変更し、dsi.pl を編集します。編集の仕方についてはダウンロードしたdsi.plに詳しく記載されていますので、ここでのご紹介は割愛させていただきます。
■MTのテンプレートへの記載の仕方
それでは、本題MTのテンプレートへの記載の仕方です。まずは本アクセス解析提供元のタグの設置の仕方を見てみましょう。
<a href="http://www.bayashi.net/st/" title="アクセス解析を中心としたCGIの配布/情報サイト">
<script type="text/javascript" language="JavaScript">
<!--
var pg = "ページ名(半角英数)";
var a = "&&";
var pf = navigator.platform + a; var lng = navigator.language + a;
var swh = screen.width + "x" + screen.height + a;
var cd = screen.colorDepth + a; var pd = screen.pixelDepth + a;
var rf = document.referrer;
var now = new Date();
document.write("<img src='HTMLからみたスクリプトへのパス/dsw.cgi?xx=",now.getSeconds(),"&&p=g&&md=j&&");
document.write("pg="+pg+a+"pf="+pf+"lng="+lng+"swh="+swh+"cd="+cd+"pd="+pd+"rf="+rf);
document.write("' alt='アクセス解析' border=0>");
// -->
</script>
<noscript>
<img src="HTMLからみたスクリプトへのパス/dsw.cgi?p=g&&md=nj&&pg=ページ名(半角英数)" alt="アクセス解析" border=0>
</noscript>
</a>
各ユーザーが変更しなくてはならないのは「HTMLからみたスクリプトへのパス」と「ページ名(半角英数)」しかありません。
「HTMLからみたスクリプトへのパス」についてよくわからなければとりあえず、スクリプトへのパスをhttp://~とフルパスで書いてください。私はこの部分を絶対パスで記載しています。相対パス・絶対パスについての説明はこちら。
次に「ページ名(半角英数)」の部分ですが、ここがポイントです。このアクセス解析スクリプトのすごいところは、このページ名を任意に指定できることです。普通のアクセス解析スクリプトでは、管理画面でページ名を指定し、そこで生成されたHTMLを各ページに貼り付けなくてはなりません。それでは、ブログのようにどんどん書き込んでページを増やしていくタイプには、手間ばっかりかかって仕方がありません。
ところが、このdopvSTAR*では、各ページにページ名を記載するだけで、CGIが勝手にその名前で集計してくれます。
但し、これにはひとつだけ条件がありまして、ページ名を半角英数で記載してくださいとあります。一番ベストなのは、各ページの投稿記事タイトル毎に集計することかと思いますが、それでは日本語の問題が発生しますので断念。各ページのファイル名を集計単位とすることにしました。
方針は決まりました。でもページ数は勝手に増えていくのにどうしてテンプレートにHTMLを書き込むだけでいいのでしょうか?
それは、MTのテンプレートタグを使うからです。具体的には、<$MTEntryPermalink$>というタグを使います。これはどのようなタグかといいますと、Helpを読むよりもタグの英語を読んだほうが早い。「MTのエントリーの固定リンク」です。つまり「各投稿記事にユニークなURL」を指します。MTを使っている人で記事の下に「固定リンク」と書いてあったり、投稿時間の部分がクリックできるようになっていたりしますよね。それです。MTを使っている方はほとんどの方が既に利用しているタグです。
ところが、もうひとつ問題が発生します。気になさらない方は無視して頂いて結構ですが、<$MTEntryPermalink$>を使うと、http://~始まるフルパスが解析時に表示されてしまい、非常に見づらくなってしまいます。通常URLの頭の方は全てのページで同じなので、前の方は適当に切り落とす必要があります。
これにはJAVAスクリプトのslice関数を使いましょう。具体的には、下に掲載した私の例を見ていただくのがいいと思いますが、前から何文字目までを切り落とすかを数字で指定するだけです。このslice関数についてもう少し勉強したい方はこちらでどうぞ。
さて、テンプレートに貼り付けるHTMLの準備ができました。あとは、MTのIndividual
Entryのテンプレートに貼り付けて再構築するだけです。私の場合はグラフィックカウンタを表示するデフォルト設定のままですので、場所を考えて設置しましたが、表示しないオプションもあるようですので、そちらを選ばれる方はどこでもいいでしょう。
■ご参考までに私が実際にテンプレートに貼り付けた時のHTMLを記載します。
<!-- アクセス解析ここから -->
<a href="http://www.bayashi.net/st/">
<script type="text/javascript" language="JavaScript">
<!--
var pg = "<$MTEntryPermalink$>".slice(27);
var a = "&&";
var pf = navigator.platform + a; var lng = navigator.language + a;
var swh = screen.width + "x" + screen.height + a;
var cd = screen.colorDepth + a; var pd = screen.pixelDepth + a;
var rf = document.referrer;
var now = new Date();
document.write("<img src='/cgi-bin/ds/dsw.cgi?xx=",now.getSeconds(),"&&p=g&&md=j&&");
document.write("pg="+pg+a+"pf="+pf+"lng="+lng+"swh="+swh+"cd="+cd+"pd="+pd+"rf="+rf);
document.write("' alt='アクセス解析' border=0>");
// -->
</script>
<noscript>
<img src="/cgi-bin/ds/dsw.cgi?p=g&&md=nj&&pg=<$MTEntryPermalink$>" alt="アクセス解析" border=0>
</noscript>
</a>
<!-- アクセス解析ここまで -->
大変お気に入りのアクセス解析ですが、リンク先等少数アクセスは省略されるようでして、とりあえずは忍者ツールは引き続き利用することにしました。
他に導入された方がいらっしゃいましたらご連絡ください。
【関連記事】
■アクセス件数10万件に届きそう




コメント
参考にして設置させていただきました.
(≧∇≦)b いいです!
紹介ありがとうございました.
投稿者: M++ | 2004年05月09日 08:34
>M++さん
喜んで頂いて私も嬉しいです。これがあると頭を使ったブログの運営企画ができます。私もこれで目が覚めました。
投稿者: ダンディー | 2004年05月09日 17:26
大いに参考にさせていただきましたm(_ _)m
まだ設置したばかりなのですが、使いやすそうなので どんどん活用していきます(^_^)v
ありがとうございました!
投稿者: Kawabata | 2004年12月19日 11:01
はじめまして。ご紹介に預かりましたdopvSTAR:作者のダイ@bayashi.netです。記事にして頂いてありがとうございます。
>リンク先等少数アクセスは省略されるようでして
えーっと、全表示するようにしたり、省略する設定を変えることもできます。
いちおう、誤解なきよう。。。
投稿者: ダイ@bayashi.net | 2006年01月19日 03:33