ネットワーク上の共有フォルダにこのhtmlファイルを置いて、
10-20人くらいがそこを直接見て、スムーズに情報を得られるようにしています。
リンク先は外部サイト、イントラのページ、ネットワーク上の共有フォルダ、
htmlファイル、pptファイル、txtファイルなど色々です。
で、全部で50個ほどリンクがあるのですが、
それぞれのリンクのクリック数を計測してみたいと思っています。
外部へのリンクが殆どなので、一般のアクセス解析はつかえません。
外部リンクをカウントできるというgoogle analyticsを
触ってみましたが、やっぱりダメでした。
javascriptでonClick関数?を使ってカウントする方法があるようなので
何とかできると思うのですが。。
何か良い方法やサービスはないでしょうか?
どこかの提供するASPではなく社内で完結するのがベストですが
欲張りません。どうか知恵をお貸しください!
私もほぼ同様な使い方をしています。CGI(Perl)が使用できるのであれば、次のCGIが大変有効です。
紹介ページの概要にもかかれていますが、ファイルの種類を問わず、リンクをクリックした数をカウントします。
設置は、特に難しくはありません。CGIの掲示板を設置したことがある方なら簡単にできると思います。
ただ、1998年以降更新されていませんので、2000年問題に対応しておらず、年数表示がおかしくなります。(2006年は106年と表示される)
こちらは、CGIのカスタマイズ経験者なら変更はできると思いますが、特に使用上支障は無いのでこのままでも良いと思います。
社内に Proxy を立てて、すべてのアクセスはそこを通るように規定しアクセスログを見るのが一番確実です。
JavaScript は Off にした場合に聞かないので、リダイレクト用の CGI を利用するのもよいでしょうか。
実例としては 2ch.net でサイト外リンクに利用されている ime.nu が一番近いと思います。
さきほども書きましたがCGIが自由に使えません。。リダイレクトページをかませるのは使用感の問題があります。社内の営業メンバー向けなので「javascript切らないでね」で事足ります。どなたかjavascript使ったカウント方法はご存知ではありませんか?
ご丁寧な回答ありがとうございました。
リダイレクションファイルを設置し、そのアクセスログを解析すれば解消できます。
例えば…以下のようなアプリケーションが必要です。
---------------------------
(パターン1)アクセスログ解析ソフト
(パターン2)作成されたホームページがサーバサイドで動いているなら、フリーのアクセスログ解析のCGIをインストールする
---------------------------
簡単なところではこんなもんでしょうか?
す、すいません!リダイレクションファイルってなんでしょうか?前述しましたが、社内の情シス担当が小回り聞かないので現場でやろうとしてるのですが、やっぱりアクセスログ解析って頼まないと取れないですよね。
ありがとうございました!
ちょっと無茶なやり方ですが…
かなりの長文ですが、ご希望に添えない場合は無視してくださって結構です。
JavaScriptとActiveXオブジェクトの連携で、それっぽいことは可能です。
まず、こんなソースのHTMLを作成します。
---------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-script-type" content="text/javascript"> <title>サンプル</title> </head> <body> <script type="text/javascript"> var fso=new ActiveXObject("Scripting.FileSystemObject"); var data; d=fso.FolderExists("analytics"); if (!d) fso.CreateFolder("analytics"); f=fso.FileExists("analytics/data.txt") if (f) { rs = fso.OpenTextFile("analytics/data.txt",1); if (!rs.AtEndOfStream) { LF=rs.ReadAll(); rs.close(); } else{ LF=""; } data=LF.split(","); } function cli (num) { num--; data[num]++; cwrite(); } function cwrite() { f=fso.CreateTextFile("analytics/data.txt",true); f.Write(data); f.close(); } function twrite(num) { num--; document.write(data[num]); } </script> <a href="http://www.yahoo.co.jp/" target="_blank" onclick="cli(1)">テスト1</a><br> <a href="http://www.google.co.jp/" target="_blank" onclick="cli(2)">テスト2</a><br> <a href="http://www.goo.ne.jp/" target="_blank" onclick="cli(3)">テスト3</a><br> <a href="http://www.infoseek.co.jp/" target="_blank" onclick="cli(4)">テスト4</a><br> <br> データを見る<br> <br> リンク1は<script>twrite(1)</script>回クリックされています。<br> リンク2は<script>twrite(2)</script>回クリックされています。<br> リンク3は<script>twrite(3)</script>回クリックされています。<br> リンク4は<script>twrite(4)</script>回クリックされています。<br> </body> </html>
---------------------------------------------------
そしてHTMLファイルと同じ場所に「analytics」フォルダを作成します。
その中に「data.txt」を作成し、「0,0,0,0,0,0,…」という0をコンマで区切ったものをリンクの数だけ作ります。
あとはサンプルのHTMLを実行すれば、「data.txt」にクリック回数が記録されるのですが…
少し問題があります。
このサンプルはファイルの読み書きを行うため、IEでいくつかの制限を食らいます。
そのため、警告ダイアログが出てきます。
(サンプルは神に誓って安全です。どうせテキストファイルの読み書き程度しかできないし(笑))
これを回避する方法もあります。
中身はHTMLでも拡張子をHTAにすると、「HTML Application」と呼ばれる、アプリケーションになります。
なぜ、これにしなければならないかというと、HTAはActiveXが自由に実行できます。
そのため警告は出ません。
しかし、IEでは実行できません。(しかもアイコンが貧相)
それでもいいならこれはオススメだと思いますがどうでしょう?
長文でゴメンナサイ…
セキュリティの都合でjavascriptはcookie以外にアクセスすることはできないようになっています(URLをクリックしたらWindowsの重要なファイルを上書きしたりしたら大変ですよね)
セキュリティを無視してよいのでしたらHTAを作るという方法もあります
HTML Applications
http://www.microsoft.com/japan/msdn/workshop/author/hta/over...
http://www.microsoft.com/japan/msdn/web/ie/ie50/ie5hta.asp
http://www.microsoft.com/japan/technet/scriptcenter/hubs/hta...
ありがとうございます!でも、すいません説明が足りませんでした。そこそこ規模が大きい会社なので、サーバが自由に使わせてもらえないんです。なのでCGIは使えません。。一応社内の担当に相談してみますね。