高機能アクセス解析CGIに関する質問

1. アクセス解析するページを見ると、×印が表示される。

アクセス解析用にJavaScriptを埋め込んだところが、以下のように表示されてしまう現象です。

Internet Explorer Netscape
Internet Explorer Netscape

この原因は、何点か考えられます。まず直接ブラウザーで「acclog.cgi」にアクセスしてみてください。

Internal Server Error と出た場合は、「acclog.cgi」の設置が正しく行われていません。こちらを参考に、再度設置しなおしてください。

× 印が出る原因としては、所定の場所に解析タグ用イメージファイルが存在しないことが考えられます。Standard 版では acc/conf ディレクトリ直下に、Professional版 では acc ディレクトリ直下に、

  • acclogo.gif
  • acclogo.png
  • acclogo.jpg

が存在することを確認して下さい。また、これらのファイルをASCIIモードで転送しても、正しく表示されないことがあります。必ず、上記ファイルはバイナリーファイルで転送して下さい。

2. 正しいパスワードを入れても、パスワード入力画面が再度出てきてしまう。

パスワード認証のために、Cookie を使っております。お使いのブラウザーで、Cookie を受け入れるよう設定してください。各ブラウザーの Cookie の受け入れを有効にする設定は以下の通りです。

Internet Explorer 6の場合[設定画面

ツールバーから、[ツール(T)」→「インターネット オプション(O)...」を選択して下さい。インターネットオプション設定画面が開きますので、上部タブから「プライバシ」を選択して下さい。「プライバシ基本設定」欄で、つまみを「中」に設定してください。Professional版1.5以降の場合には、「高」でもご利用可能です。

Internet Explorer 5の場合[設定画面1][設定画面2

ツールバーから、[ツール(T)」→「インターネット オプション(O)...」を選択して下さい。インターネットオプション設定画面が開きますので、上部タブから「セキュリティー」を選択して下さい。「このゾーンのセキュリティのレベル(L)...」欄の設定が「中」もしくはそれ以下であれば問題ありません。「高」の場合には、「中」に下げてください。個別に設定したい場合には、「レベルのカスタマイズ(C)...」を押してください。Cookieの設定項目が2つありますので、どちらとも「有効にする」にして下さい。

Netscape 4 の場合[設定画面

ツールバーから、「編集(E)」→「設定(E)...」を選択して下さい。設定画面が開きますので、カテゴリー欄から、「詳細」をクリックして下さい。右下側に「Cookie」の設定欄が表示されますので、「元のサーバに戻される cookie のみを受け付ける(O)」もしくは「すべての cookie を受け付ける(A)」を選択して下さい。

Netscape 6 の場合[設定画面

ツールバーから、「編集(E)」→「設定(E)...」を選択して下さい。設定画面が開きますので、カテゴリー欄から、「プライバシーとセキュリティ」をダブルクリックして下さい。その下に、「Cookie」をクリックすると、右側に「Cookie 受け入れ証書」設定欄が表示されますので、「元の Web サイトでのみ Cookie を有効にする」もしくは「すべての Cookie を有効にする」を選択して下さい。

3. 解析ページにアクセスされているはずなのに、「アクセスログ(./logs/access_log)がありません。」となる。

まずは、ブラウザーで直接「acclog.cgi」にアクセスしてみてください。真っ白な画面になれば正しく動作していますが、Internal Server Errorの場合には、acclog.cgiの設置が正しくありません。再度設置しなおしてください。

次に、Internal Server Errorとならないのに、ログが生成されない場合には、ディレクトリのパーミッションを確認して下さい。other権限でCGIが起動するサーバで、このような現象が発生します。この場合には、「logs」ディレクトリのパーミッションを「777」にしてみて下さい。

4. ページのタイトルが取得できない(Page has no tilte)

解析したいホームページがあるサーバと、CGI を設置したサーバは同じですか? それぞれ異なるサーバの場合には、ページタイトルを取得することはできません。サーバが同じなのにタイトルが取得できない場合には、「accconfig.cgi」の以下の設定を再確認して下さい。

#--------------------------------------------------------------------
#■サイトトップURLとHTMLファイルのマッピング
# アクセスページのタイトルは、多くのサーバにおいて自動的に取得できま
# すが、URLに「~(チルダ)」が含まれている場合や、一部のサーバ環境で
# は自動的に取得できません。その場合には、ここにURLとCGIからのパスと
# のマッピングを定義して下さい。CGIからの相対パス、サーバルートから
# の絶対パスどちらでも結構です。
# ここでマッピングをマニュアル設定する場合には、
# $URL2PATH_FLAG = 1;
# としてから、%URL2PATH にマッピングを定義して下さい。
#
# 例:
# サイトのトップURL : http://www.hoge.com/~foo/
# acc.cgiからの相対パス : ../
# の場合、
#
# $URL2PATH_FLAG = 1;
# %URL2PATH = ('http://www.hoge.com/~foo/' => '../');
#
# とします。もしサーバルートからの絶対パスが分かっていれば、
#
# $URL2PATH_FLAG = 1;
# %URL2PATH = ('http://www.hoge.com/~foo/' => '/home/foo/');
#
# のように設定します。/home/ の部分は、サーバによって異なりますので、
# サービス事業者にお問い合わせください。
#
# 注意:
# 必ず、URLとパスの最後には、「/(スラッシュ)」を入れて下さい。
#--------------------------------------------------------------------
$URL2PATH_FLAG = 0;

%URL2PATH = ('http://www.hoge.com/~foo/' => '/home/foo/');

5. リンク元URL、リンク元サイトが取得できない。

JavaScriptの実行を許可していないブラウザーでアクセスされた場合には、リンク元情報を取得することができません。また、フレーム構成をとっているページを解析する際に、子フレームにアクセス解析用のJavaScriptを設定すると、リンク元はすべて親フレームになってしまいます。

7. リピータ比率の分析で、リピータがいるはずなのに、「初めての訪問者」が100%となる。

アクセス解析 CGI は、Cookie を使って訪問者がはじめてサイトにアクセスした日時をブラウザーに保存させます。次にアクセスした際には、その Cookie の値をログに保存します。リピータ比率の解析は、そのログに保存されたはじめてのアクセス日時が、解析対象期間より古い場合に、その訪問者をリピータと認識します。従って、アクセス解析CGIを使い始めて、まだログがローテーションされていないと、すべてのアクセスが「初めての訪問者」と認識します。

8. 「組織」やアクセスページ分析(訪問者数)をクリックしても、右ウィンドウが真っ白のままで結果が出ない。

原因は、ログのファイルサイズが大きすぎることにあります。特に「組織」「アクセスページ分析(訪問者数)」の解析は、非常に処理が重くなります。CGI である以上、止むを得ません。ログのサイズは、概ね 1 MB 未満にして下さい。デフォルトでは、300 KB です。アクセスが多いサイトの場合には、ログローテーションの設定を、「日ごとにローテーション」にすることをお勧めします。

9. 検索キーワードが解析されない。

フレーム構成のページ(frame タグを使ったサイトのページや、iframe タグで組み込んだページ)を解析する場合、子フレームに解析用のJavaScriptを埋め込むと、このような現象が発生します。本 CGI は、フレーム構成のページを正しく解析できません。

10. auの携帯電話でアクセスしたが、最新機種名が解析されない。

携帯電話の機種は、HTTP_USER_AGENT を使って解析しております。au や TU-KA の機種の場合、HTTP_USER_AGENT には、デバイス ID の情報しかなく、機種名の情報を含んでおりません。高機能アクセス解析 CGI では、デバイス ID から機種名に変換しておりますが、最新の機種においては、そのデータが含まれて降りません。バージョンアップの際に、新機種をできる限り盛り込んでいく予定ですので、しばらくお待ちください。

11. 一部のネットスケープでのアクセスで、OSの解析結果が違っている。

OS の解析は、ブラウザーが送ってくる HTTP_USER_AGENT の情報を使っております。一部の OS、Netscape のバージョンの組み合わせによっては、正しい情報を送ってこないようです。

12. 一部のアクセスで、都道府県が解析されない。

都道府県は、アクセス元ホスト名から解析しております。ただし、ホスト名に都道府県のキーワードを含んでいるのは、一部のプロバイダーやケーブルテレビ会社のみです。したがって、都道府県解析は、すべてのアクセスに関して特定できるものではありません。

13. Macで円グラフが表示されない、または文字化けする。

円グラフは、Flash または Javaアプレットにより実現しております(選択可能)。Java の場合、Mac OS 9.x & Netscape4.xとの組み合わせにおいては、動作しません。Mac OS 9.xでは、Internet Explorer 5 以降もしくはNetscape6.1以降をご利用下さい。Mac OS X においては、「Internet Explorer 5.1 Preview」, 「Netscape6.1 Mac OS X Preview(英語版)」ともに動作しません。Mac OS X をご利用の場合には Flash を選択して下さい。また文字化けする場合には、Flash Player を最新版のものにアップデートしてください。Flash Player 6 では文字化けしません。

14. 国、都道府県、組織が解析されない。

国、都道府県、組織の解析は、アクセス元のIPアドレスからホスト名を取得することで実現しております。具体的にはPerlの「gethostbyaddr」関数を使って取得します。一部のサーバにおいては、IPアドレスからホスト名を取得できない場合があるようです。それらのサーバでご利用の場合には解析できません。「infoseek isweb」「Freedom2Surf(f2s)」が該当するようです。

15. セッション数(訪問数)、ユニークユーザ数(訪問者数)って何ですか?

一般的なアクセス解析では、主に、ページビューというものを解析します。これは、ご存知のとおり、単純に何回アクセスしたかを計測するものです。従って、同じ人が、同じページにアクセスしても、ブラウザーで戻るのボタンを押しても、ブラウザーで更新ボタンを押しても、それぞれカウントされます。高機能アクセス解析CGI Professional版では、インプレッション数と呼んでいます。

それに対して、ユニークユーザ数(訪問者数)というものは、何人がアクセスしたかを計測する指標です。上記のように、同じ人が何度ページをアクセスしても、それは 1 人とカウントするのです。ただ、あくまでも目安ですので、保証できる値でないことは十分理解してください。

セッション数(訪問数)という指標は、何回サイトを訪れたかを計測する指標です。例えば、昨日、あなたのサイトにある人が訪れたとしましょう。そこで 10 ページほど見たとします。そして、今日、同じ人があなたのサイトを訪れ、20 ページほど見たとしましょう。セッション数は、2 です。つまり、2 回訪問したと計測します。この例でたとえると、ユニークユーザ数は、1 人です。また、ページビューは、30 となります。

上の例では、同じ人のアクセスなのに、ちゃんと2訪問とカウントしましたが、これは、前回アクセスしてから次にアクセスするまでの時間を計測しているからです。この空き時間がある一定の時間を超えると、別の訪問とみなすわけです。デフォルトでは、30分となっておりますが、これは設定で変更可能です。

ユニークユーザ数の計測方法ですが、これは Cookie を使っています。アクセスしていただいた方のブラウザーに、一意的な番号を Cookie として与えます。次にアクセスしていただいたときには、その Cookie 値をログに記録しますので、解析時には、同じ人と判断できるわけです。残念ながら、Cookie を無効にしているブラウザーでのアクセスの場合、同一人物と判別できず、別人としてカウントします。また、同じ人が同じパソコンで、違うブラウザーでアクセスしても同様です。この場合には、同じ IP アドレス(ホスト名)のアクセスを同一人物と仮定してカウントしております。このような仮定をしている以上、確実な情報ではないわけです。逆に、確実にカウントする方法がないというが実情なのです。したがって、あくまでも目安とお考え下さい。

セッション数の計測方法ですが、これは、IP アドレス(ホスト名)と、アクセス時間を使っています。同じ IP アドレスからのアクセスを、アクセス時間順にトレースし、それぞれの空き時間が、設定の値を超えていれば、それは別の訪問とみなします。逆に、それぞれの空き時間が、設定の値より小さければ、同じ訪問とみなすわけです。

本来であれば、ページビュー > セッション数 > ユニークユーザ数 となるはずなのですが、以上のような不確実性のため、この不等式が崩れて解析される場合もあります。

特に、セッション数 < ユニークユーザ数 という現象が起こりえます。企業内から複数の方、もしくは同じ人でも別のブラウザーで複数アクセスした場合が挙げられます。多くの企業は、インターネットと社内LANとの間にファイアーウォールを設置しており、インターネットに対しては、ファイアーウォールが割り当てたグローバル IP アドレスが使われます。従って、異なる人がアクセスしても、IP アドレスは同じになる可能性が高いのです。

具体的にたとえますと、同じ企業内の A さんと B さんが、2 人とも 30 分以内に、あなたのサイトにそれぞれ 1 回づつアクセスしたとしましょう。アクセスログには、一つの IP アドレス(ホスト名)から 2 アクセスがあったと記録します。しかし、それぞれの Cookie は、異なる値が記録されることになります。すると、すると、セッション数は、2 回のアクセスにもかかわらず、それぞれが同じ IP アドレスで 30 分以内ですから、1 訪問とカウントします。しかし、ユニークユーザ数は、2 回のアクセスはそれぞれ異なる Cookie 値となりますので、2 訪問者とみなすわけです。

今後、セッション数の解析においても、ユニークユーザ数解析と同様、Cookie 値を使った解析方法に変えていくことを考えています。#現在は、IP アドレスのみで解析しています。

16. リンク元のURLに見知らぬホームページが解析されてしまいます。

 リンク元の URL や サイト は、ブラウザがサーバに送ってくる 情報を元に解析しております。本来であれば、ハイパーリンクをたどった場合に、リンク元 URL の情報を送るべきなのです。しかし、一部のブラウザーや古いブラウザでは、アドレス欄に直接 URL を入力したり、ブックマーク(お気に入り)からアクセスした場合、その時点で表示されていたページの URL をリンク元としてサーバに情報を送ってくる場合があるようです。また、あるブラウザでは、無条件である音楽バンドのホームページの URL を送ってくるものもあるようです。

17. 管理者用パスワードを忘れてしまったのですが。

以下の手順で、管理者用パスワードを変更することが可能です。

  1. サーバより、config.cgi を ASCII モードでダウンロードして下さい。config.cgi はディレクトリ data 内にあります。
  2. テキストエディタで config.cgi を開いて、「ADMINPASS=xxxxxxxx」となっている部分から「xxxxxxx」の部分を削除して「ADMINPASS=」にして、上書き保存してください。「xxxxxxx」は暗号化されたパスワードです。
  3. config.cgi を ASCII モードでサーバにアップロードしてください。バイナリーモードで転送すると、正しく動作しませんので、ご注意ください。

これで、パスワードのみを初期化した状態になります。ブラウザーで admin.cgi にアクセスすると、再度パスワードを設定する画面が出てきますので、パスワードを設定して下さい。その他の設定に関しては、そのままの状態で残りますので、ご安心ください。

18. acc.cgi にアクセスしたがログオンできない。

Professional 版をセットアップする際、admin.cgi にアクセスして管理者用パスワードを設定したかと思います。しかし、acc.cgi にアクセスする際に使うパスワードは、管理者パスワードとは別のものです。初めて acc.cgi にアクセスする際には、「password」と入れてください。acc.cgi にアクセスする際に使うパスワードは、CGI 設定にて変更可能です。

19. アクセスページ解析で、ページ欄に「-」もしくは何も表示されない。

ご自分のホームページにアクセスした時、アクセスページ解析ではカウントされているものの、ページ欄が「-」と表示される、もしくは何も表示されておらず、どのページにアクセスされたかが分からない場合があります。この原因は以下のことが考えられます。

  • 直接、ブラウザーからロギング用 CGI acclog.cgi にアクセスした。
  • Norton Internet Security などのファイアーウォーソフトをインストールしているパソコンからアクセスした。

アクセスページ解析CGI は、ブラウザーがサーバに送信してくる環境変数 HTTP_REFERER を読み取って、アクセスページを特定します。ところが、Norton Internet Security 等のファイアーウォールソフトの設定によっては、この情報をサーバに送ってきません。従って、CGI 側ではどのページにアクセスしたかを特定することができません。

20. 今まで問題なかったのに、ある日から突然 Internal Server Error に

今まで問題なく使えていたのに、あるときから突然 Internal Server Error になったり、Professional版の場合、ある項目を解析するときに限り Internal Server Error になることがありあす。この現象は、ほとんどといってもいいくらい、ログサイズが大きくなりすぎていることに起因しています。

ログサイズの限界はお使いのサーバにもよりますが、概ね、1MB 程度で限界に達することが多いようです。このような現象になった場合には、ログサイズが限界に達しないようログローテーションを適切な設定にしていただく必要があります。ログローテーションの設定は、Professional 版の場合、「日ごと」「週ごと」「月ごと」「サイズ指定」があります。この中から、あなたのサイトアクセス数とお使いのサーバに適切な設定を選択して下さい。

21. 日ごとに合計した訪問者数が、統計概要の訪問者数と一致しない

これは訪問者数(ユニークユーザー数)のカウント方式に依存する問題です。高機能アクセス解析CGI Professional版では、解析対象となる期間で純粋な訪問者数をカウントします。もし日ごとに計測した訪問者数を足し合わせると、それっは純粋な訪問者数ではなく、日ごとに集計した延べ人数ということになります。高機能アクセス解析CGI Professional版では、このような延べ人数の計測は行いません。

例えば、Aさんが昨日1回だけアクセスしたとしましょう。さらに今日にも1回だけアクセスしたとします。この2日間をまとめて計測すると、訪問者数としてAさん1人と解析されます。もし今日の分だけを解析し訪問者数を計測すると、当然、1人としてカウントします。同様に、昨日の分だけをカウントしても、1人としてカウントします。もし昨日と今日の訪問者数を足し算すれば、2人になります。これは純粋な訪問者数ではなく、日ごとの延べ人数です。

以上の説明の通り、日ごとに解析した訪問者数を足したとしても、ログ全体や一か月分まとめて解析した訪問者数とは決して一致することはありません。もちろん、延べ人数を調べたいのであれば、日ごとに計測した値を足し算すればよいのですが、それを比較する指標は、高機能アクセス解析CGI Professional版にはありません。

なお、訪問数(セッション数)も同様です。

22. 検索キーワードが文字化けする (Professional)

 高機能アクセス解析CGI Professional 版は、検索キーワードが文字化けないよう、Jcode.pmと呼ばれる Perl モジュールを同梱しております。ところが、Perl 5.8 の一部のサーバ環境では文字化けが発生する場合があります。この場合には、次の2つの対策を順番に試みて下さい。

【対策1】accフォルダ内にlibというフォルダがあります。この中に Jcode.pm というファイルと Jcode というフォルダがあります。この Jcode.pm と Jcodeフォルダを削除してみて下さい。

もし対策1でうまくいかない場合は、対策2を試みて下さい。

【対策2】Jcode.pm の最新版を公式サイトよりダウンロードして頂き、以下の通りに上書きしてください。

  1. Jcode.pm の公式サイトより Ver 2 の最新版をダウンロードします。公式サイトの "Tarballを直接入手" 欄からダウンロードします。2005年9月現在での最新版は Ver 2.03 です。tar.gz と zip ファイルが配布されていますが、どちらでも構いません。
  2. ダウンロードした Jcode-2.03.zip を解凍すると、ファイル "Jcode.pm" とフォルダー "Jcode"があるはずです。これらをそのままサーバに設置した acc フォルダー内の lib フォルダーの中に、FTP ソフトを使って ASCII モードで上書きアップロードしてください。

以上で、ご利用のサーバ環境によっては文字化けが解消されます。