THK Analytics 1.23 をリリースしました
ThkModel.php と Track.php で、エラーログに Notice が出力されちゃう箇所があったので修正。
そんだけなので、特に Notice とか気にしない方はアップデート不要です。
Contents
改訂履歴
- エラーログに Notice が出力されてしまう箇所を修正
ThkModel.php と Track.php で、エラーログに Notice が出力されちゃう箇所があったので修正。
そんだけなので、特に Notice とか気にしない方はアップデート不要です。
ディスカッション
コメント一覧
はじめまして。THK Analyticsを利用させていただいております。
今までは「Research Artisan Lite」を使用していたのですが、開発が終了して時間が経っていたため不安になっていたところ、こちらの解析にたどり着きました。
とても見やすく、使い勝手も良いため重宝させていただいております。ありがとうございます。
1点ご質問させてください。
ビジター名称を設定していても、IPアドレスが変わってしまうと別人と判断されてしまうようです。
ベースとなった「Research Artisan Lite」はCookieで判断しているためか、IPアドレスが変わっていても同じ端末でアクセスしていた場合は、設定したビジター名で解析されます。
この点は仕方のない部分になるのでしょうか。
もしIPアドレスで判断する動作が正しいのでしたら、Cookieで判断するように変更するのは難しいでしょうか。
携帯でのアクセスの場合、結構な確率でIPアドレスが変わってしまうため、上記のようにしていただけると非常に助かります。
また、ビジター名称設定の機能も活きてくると思いますが、いかがでしょうか。
お忙しいなか、恐れ入りますがご対応いただけると幸いです。
よろしくお願いいたします。
K さん。
端的に言うと、訪問者に無闇やたらと無条件で Cookie を喰わせる仕様を当方が嫌ってるからです。
申し訳ありませんが、たぶん対応しないと思います。
お返事ありがとうございます。
仕様ということで承知いたしました。
Research Artisan Lite からの乗り換えをけんとうしていますが、
データベース構造などに変化はありますか?
そのまま データベースを移植すれば 過去のデータも引継ぎ可能でしょうか?
匿名希望さん。
「ベース」と書いてあるのは、フレームワークの部分を指してるだけで中身は全く別ものです。
データベースの構造も異なってるので、そのままデータを移行することはできません。
初めまして。今月からさくらインターネット(MySQLは5.7)で設置してみたところ使用出来たのですが
sioさんと同じくLog.phpのエラーが出ます。
曜日別や国、都道府県やIP、クローラー、画面解像度などとリンク元・リンク元ダイジェストでこれが出ていて
Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘***’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
となっています。リンク元の方は#3が#2になっています。
門外漢なのでよく分からないのですが
https://qiita.com/bboobbaa/items/9fdca834076cb4c3389e
http://mazeltov7.hateblo.jp/entry/2016/01/16/003232
ここにあるような事ではないかと思います。
レンタルサーバー故こちらで設定ファイルをいじって対処するわけにもいかないようなので
お時間のある時に対処していただけたらと思います。
大変見やすく理想的でぜひ使い続けたいと思っております。どうぞよろしくお願いします。
るなさん、こんにちは。
2017年11月23日 11:56のsioさんと同種と思われるエラーが発生しているので報告します。
(MySQL5.7で、ONLY_FULL_GROUP_BY云々のLog.phpエラーです)
THK Analytics上部メニューのリンク元とデバイスをクリックした際にエラーが表示されます。
サーバはさくらインターネットのスタンダードプランです。
表示されたエラーの文章が長いのでコメントのウェブサイト先に記述しました。
よろしくお願いします。
追記です。エラーを吐くメニューは
リンク元:リンク元・クローラー
デバイス:全て
です。
お世話になります。
導入してみたのですが、
http://★ドメイン名★.net/php/thk-analytics-123/thk/view/
にアクセスしたところ、下記のエラーが表示されました。
————————
[単なるログなので管理者側で削除]
————————
phpのバージョン関連のエラーでしょうか?
もし解決策がわかればご教授頂けると幸いです。
導入検討中です!さん。
> php のバージョン関連のエラーでしょうか?
はい、そうです。
マニュアルにも書いてある通り、動作環境は PHP 5.3 以上必須です。
5.2 ではライブラリが読み込めないので、まさに上記のエラーが表示されるだけです。
> 解決策がわかれば
マニュアルに書いてあるとおり、PHP を 5.3 以上にすれば良いだけです。
こんにちは、
thk analytics をありがたく使わせてもらっています。
ビジターログのところで Google検索順位 #6 等が表示されるようになったのですが、
実際に使われた検索文字列などの表示方法はありますか?
よろしくお願いします。
tasa さん。
SSL 通信経由の場合、検索ワードは暗号化されるので取得は不可能です。
Goolge は 2011年から「検索結果を SSL 化して検索キーワード見えなくする」と宣言しました。
Yahoo! も 2016年から常時 SSL を宣言してます。
すなわち、Google も Yahoo! も「意図的に検索キーワードを見せないようにしている」という意味です。
「誰がどんなキーワードで検索したのか?」を知ることは不可能ですが、
「どんなキーワードで検索されているのか?」は Google や bing のウェブマスターツールで知ることができます。
はじめまして。便利に使わせてもらっています。
ずっと正常に動いていたのですが、今日の21時以降のビジターログが下記のエラーで表示できなくなりました。
20時以前のは正常に表示されます。(時間別アクセス数の時刻クリック)
原因が分からないので、教えていただけたらと思い連絡しました。
よろしくお願いします。
mb_convert_encoding(): Unable to detect character encoding
public_html/thk-analytics/_core/application/helpers/base/BaseHelper.php (Line: 111)
ぺんぎんさん。
Google の検索文字列などで、よっぽど見たことがないような特殊な文字列が入ってきちゃったみたいですねぇ。
その文字列が入ったレコードを修正すれば良いのですが、データベースの操作が必要になっちゃいます。
Luxeritas の方は Null チェックなど、より高度な文字列チェックを搭載してるので、次のバージョンで移植しときます。
とりあえず解析画面でその時間帯(21時~24時)のログを引っかけなければ、放置しておいても問題ないので、次バージョンまで放置でお願いします。
(もしくはレコードを自力で修正もしくは削除)
原因がわかり安心しました。
23時以降のものからは正常に表示されているので、データベースの操作をせず放置することにします。
ありがとうございました。
こんにちは。いつも使わせて頂いています。
ツールについての要望ですが、こちらでよろしいでしょうか?
訪問回数(リピーター)の項目を追加して欲しいです。
現在アクセス回数がその代わりになっているかと思われますが。
ビジターログへの訪問回数(X回目の訪問)の追加や
以下のような項目をグラフとして表示されて欲しいです。
1回|1位|1回目 XXX人|XX.X%|(前回推移+X.X%)
2回|2位|2回目 XXX人|XX.X%|(前回推移-X.X%)
3回|3位|3回目 XXX人|XX.X%|(前回推移-X.X%)
検討頂けるととても嬉しいです。今後も愛用していきます!
匿名希望さん。
すまぬが、この説明じゃ全然イメージが分かんない。
ご返信ありがとうございます。
イメージが分かりづらかったようで申し訳ありません。
分かりやすいように自分なりにイメージ画像を作ってみました。
よろしければご参照お願いします。
https://www.fastpic.jp/viewer.php?file=7987372454.png
画像の保存期間は1年に設定しています。
匿名希望さん。
グラフはまだしも、ビジターログの方は全ての行動が記録されてるので、あんまり有用性を感じないですねぇ。
お返事ありがとうございます。
特に “…/view/?c=r&a=vi” (期間設定したものも含める)では
アクセス数が多いと埋もれてしまうので、表示頂いたら一目で分かってとても嬉しかったのですが。
気が向いた時にでもご検討頂けると嬉しいです。
こんにちは。
Nginxで正常に動きましたのでご報告です。
お時間あれば次期バージョンアップ時にMySQL5.7に対応していただけるとありがたいです。
ONLY_FULL_GROUP_BYがデフォルトとなったため、Log.phpがエラー吐きます。
sio さん。
当方の実環境が 5.7 だけど、sql_mode が空っぽになってたので、ホスティング会社の方で空っぽにしてるみたい。
仕方ないから、当方のテスト環境で sql_mode を「ONLY_FULL_GROUP_BY, STRICT_ALL_TABLES」にしてみたけど、全然エラーが出なくて分からんw
ONLY_FULL_GROUP_BY でエラーが出るってことは、本来は「一意じゃないといけないデータが一意になってない」ってことかなーとは思うけど当方の解析データだと再現ができない。
できれば、エラーが出てくる SELECT 文とか教えていただけないでしょうか?
横から失礼します。。
さくらインターネット、スタンダードプランで同様のエラーが出たようなのでご報告いたします。
※db名部分は****にしてあります。
MySQL 5.7
PHP 7.1
[thk_http.logより抜粋]
(以下ログなので管理者側で削除)
まよいさん。
まともなログありがとうございます。
(いくつか報告があったけど、ようやくまともなログもらえたw)
1.24 をリリースしました。
当方で再現できるデータがないので、分からんけど、たぶん対応した。
るなさん。
1.24にアップグレードしましたところバッチリでした!
尚、以下がエラーが出ていたtableのdumpです。
(読みにくくてすみません。。。)
[以下、Dump の中身なので管理者側で削除]
まよいさん。
確認ありがとうございます。
て言うか Dump、当方で直す前に欲しかったんだけどw
るな様
お世話になります。
THK Analytics 1.23を使用させていただいております。
THK Analyticsは私が求めていた理想のアクセス解析なのですが、一点問題がございましてご相談させてただきたいことがございます。
私のサイトは5~6万PV/日程度なのですが、THK Analyticsのログが5日程で250M超になり、アクセス解析ページの動作が非常に重くなってしまいページ移動に30秒以上、時にはタイムアウトで落ちてしまいます。
現状1週間程度でログの削除が必要になるのですが、月単位で比較を行いたいためログ3か月分は残しておきたいです。なにか対応策はございませんでしょうか。
ご多忙の中、恐縮ではございますが、御返信いただけると幸いでございます。
どうぞ宜しくお願いいたします。
TOSHI さん。
そのアクセス数だと半月程度なら保ちそうな気もしますが、一週間でダメですか?
まぁ、どちらにしても 100万レコード/月 を超えると劇的に遅くなっちゃいますけどね。
全然検証してないんで、速くなるかどうか分からんですけど、
既存のログテーブルをパーティショニングする方法が考えられますね。
MySQL でパーティショニングの機能が実装されたのが ver5.1 からですが、
THK Analytics のログデータだと、RANGE でパーティショニングすることになると思うので、
パーティショニングするなら、実質 ver5.5 以上の環境が必要になります。
現状、THK Analytics の動作環境要件は ver4.2 以上なのでパーティショニングはしてないです。
動作要件のバージョン引き上げないといけないけど、検証した上で速くなりそうなら、デフォルトでパーティショニングするようにしてみます。
現状で既存のテーブルをパーティショニングする場合、
とりあえず、月ごとのテーブルは「thk_log_201711」のよう「(プレフィクス)_log_(年月)」という名前になってるので、
↓ こんな感じの SQL を発行することになりますね。
・いったんプライマリキーを作成し直す
・パーティショニングする
他の方法で「MySQL の操作が分からん」って場合は、
サイト単位じゃなくてカテゴリなど特定のページの集まりごとに THK Analytics を別々に設置するとかですかね?
るな様
解決案をご提案いただきありがとうございます。
先日にお伝えしたアクセス数はPVではなくUUの間違いでした。PVで6万~10万/日くらいになります。昨日のアクセス数とリンク元ページを表示した際にページ下に表示されるProcessing time等のキャプ画像をご参考までに掲載させていただきます。
https://gyazo.com/d82a34e6ceb419e56d8b8be8ec310bfe
https://gyazo.com/6e33ac01ffa2617e110bb647af0b9d6e
複数日のログを見ようとすると30秒~かかり、時には落ちてしまう事もございます。
PHPのバージョンは7、MySQLのバージョンは5.5以上になります。
一点、サーバー動作環境で心配なのですが、Nginxだと問題ございますか。
既存のテーブルのパーティショニング試してみたいと思います。
結果取れ次第こちらのほうに連絡差し上げたいと思います(いつ頃になるかちょっとわかりませんが)。
お忙しいところ本当にありがとうございました。
TOSHI さん。
PV が1日10万なら一週間前後で100万レコード超えますね。
MySQL だと 100万レコードを超えると激重くなります。だから業務用では ORACLE 使うw
日単位でパーティショニングすれば、速くなる気はしてるけど、まだ検証してないので分からんっすw
> Nginxだと問題ございますか
細かい動作検証をしてないってだけで、当方のローカルな Nginx のテスト環境では動いてる。
まぁ、普通に考えれば動いて当然とは思ってる。
るな様
お世話になります。
先日のテーブルのパーティショニングの件で質問がございます。
プログラムとDBのことは詳しくないのですが、集計・表示してる内容と照らし合わせて、主キー以外にDBのインデックスが貼られていないのは、理由がございますか?
もし貼ってパフォーマンス改善に繋げるとしたら、どちらのカラムに貼ると良いでしょうか。
mysql> show index from thk_log_201712;
+—————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+—————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| thk_log_201712 | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | |
+—————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+—————+
mysql> show index from thk_title
-> ;
+———–+————+———–+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+———–+————+———–+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| thk_title | 0 | PRIMARY | 1 | id | A | 16190 | NULL | NULL | | BTREE | | |
| thk_title | 0 | idx_title | 1 | url | A | 16190 | 255 | NULL | | BTREE | | |
+———–+————+———–+————–+————-+———–+————-+———-+——–+——+————+———+—————+
2 rows in set (0.00 sec)
TOSHI さん。
> 主キー以外にDBのインデックスが貼られていないのは、理由がございますか?
当然あります。
「貼れば遅くなるから」です。
ぶっちゃけ、ログテーブルはどこにインデックスを貼ってもインデックスは使用されません。
(インデックスを貼ってみて THK Analytics が発行する全ての SELECT 文を EXPLAIN してみると分かります)
貼って速くなるなら最初から貼ってますw
るなさま。
お世話になります、三鷹です。
【質問】
インストールする3つのディレクトリ
([_core], [_data], [thk])
3種すべては、同階層が必須になりますか?
※ただし、[_core]と[_data]は同階層が前提
以下のような構成で、テスト運用してみました。
(リサーチアルチザンと同様な構成です)
■パターン1]
[_core]
[_data]
[public_html]
├ [thk01]
├ [thk02]
├ [thk03]
■パターン2
[_core]
[_data]
[public_html]
├ [ドメイン01] – [thk01]
├ [ドメイン02] – [thk02]
├ [ドメイン03] – [thk03]
私見では、正常動作しており、
特に問題がないように見受けられます。
お忙しい中、申し訳ありませんが、
ご回答くださると嬉しいです。
宜しくお願いします。
三鷹さん。
_core や _data の配置は
thk/setting/path.php
の中に書いてあるので、その PATH が合っていれば正常に動作します。
thk/setting/path.php は
「インストール時」に自動的に作成されるファイルなので、
「インストール後」であれば、thk ディレクトリは移動できます。
_core や _data を移動させる場合は path.php を書き換える必要があります。
当方では、インストール後にシンボリックリンクで thk を別ドメインに置いたりしてますね。
るなさま。
ご回答、ありがとうございます。
また細かいところまで書いて下さったことにも感謝します。
追伸:
シンボリックリンクwwその手がありました!
わたしも「准さん」と同様の現象に出くわしました。
私は当初「http」ドメイン下にTHK解析を設置して、
複数のサイト管理をしたかったので
マニュアルに従い設定を行ったところ
問題なく複数のサイトを別々に管理できていました。
(この時管理したブログは当初は全てhttpのサイトでした。)
数日前にその内の一つのサイトをSSL化しました。
しばらくそのサイトのアクセス解析はチェックしていなかったのですが
今日確認したところ、
SSL化した日と思われるあたりからアクセスが計測できなくなっていたようでした。
そのブログは当初「WpTHK3.13」を使っていたのですが、
ルクセリタスに貼り替えたので
子テーマの「add-analytics.php」に解析タグを貼り付け保存したのですが
「管理人をカウントしない」をオフにして何度かアクセスしてみたものの反映されず。
仕方なくこれは保留し、
同じドメイン下に別のフォルダを作成し、
データベースも新たに用意し、
そこにTHK解析ファイルをもう一度アップロードして、
あらたにイチから設定し直してみました。
すると
THKアクセス解析の初期設定画面も表示され、
必要情報を入力して解析タグも取得(初心者向け)。
アクセス解析の管理画面が表示されるところまでは問題なかったのですが
ブログにタグを設置(add-analytics.phpに貼り付け)したものの
管理人をカウントするようにしてアクセスしても反映されません。
(管理人以外のアクセスもカウントされておらず)
「准さん」さんはインストールし直したら解決したとのことでしたが、
私の場合解決せず、どうすればいいかわかりません。
サーバーはエックスサーバーで、
MySQLは5.7、PHP7.1.4
解析対象となるブログはコメント所定欄に記載しました。
THKアクセス解析の管理画面は
(管理者により削除:ログインできないのにログイン画面だけ掲載してどうしろと?)
です。
(今回設置分。URLはコメント公開時に伏せていただければ幸いです。)
FTPソフトは「filezilla」で
zipファイルをダウンロード後、
デスクトップで一旦解凍してから
すべてのファイルをアップロードしました。
(エラーメッセージも出ておらず。)
マニュアルの図解どおりに進みましたし、
マニュアルに書かれていないことをしでかした認識はないのですが、
原因がわかりません。
ちなみに、複数管理している方はバージョン1.22で
今回新たに設置したのはバージョン1.23です。
SSL化の前後でやったことといえば
テーマの貼り替え(解析タグは再設置)とSSL化くらいで
アクセス解析の方をいじったことはなかっただけに
原因がつかめません。
考えられることがあればご教示下さい。
ししまるさん。
ogazou.xsrv.jp の方が SSL じゃないからです。
解析タグの
//ogazou.xsrv.jp
を
http://ogazou.xsrv.jp
に変えれば「一応」解析できますが、SSL 化されてないサイト(つまり ogazou.xsrv.jp)へのアクセスが発生するので、ブラウザ側で「安全ではない」という趣旨のメッセージが出ると思います(特に Firefox)。
アクセス解析管理画面の件ですが、失礼いたしました。
設置先をご確認いただければ何かわかるかも?と思いURLのみ記載にとどめてました。
(必要ならID、パスはお伝えしようと。)
私の独りよがりでした。
>httpのドメインで再度インストールし直したら
>httpsのサイトの解析も問題なくできました。
という「准さん」のコメントを拝見し、
httpドメイン下に設置してもhttpsサイトの解析ができる
と勘違いしておりました。
ご指摘いただいたとおり
http://ogazou.xsrv.jp
の方をSSL化して、
httpsドメインにてアクセスして確認したところ、
無事アクセスが反映されるようになりました。
大変ご迷惑をおかけしました。
るなさま
はじめまして。
THKAnalyticsがとても使いやすく気に入っております。
昨日、解析していたサイトをSSL化したところ、
THKAnalyticsでアクセスを拾えなくなりました。
https:// のドメインの解析は、
http:// でインストールしているとブロックされると、
検索で見つけたため、
エックスサーバーの初期ドメインをSSL化して
そこに新規でTHKAnalyticsをインストールして使おうと思いました。
ところが、通常の手順でサーバーにアップして、
いざ、viewを開こうとすると真っ白でインストール画面が表示されません。。
httpsではなくhttpの場合は表示されるのですが
それだと解析が出来ず…です。
このようなケースありますでしょうか?
もしお心当たりありましたら、対処法をお教えいただけるとうれしいです。
准さん。
分かりません、何かを間違えてるんでしょうね。
見ての通り、当方のサイトは SSL です。
解析画面の方も SSL ですが、何ら問題ないです。
るなさま
お返事いただきありがとうございます。
ネットで検索していて、httpsのサイトはhttpsのドメインに設置しないと…
というのを見つけて、そう信じ込んでいたのですが、
httpのドメインで再度インストールし直したら
httpsのサイトの解析も問題なくできました。
お騒がせしてすみません。
ありがとうございました。
お世話になります。
[thk]直下の[view]を
外部(第三者)に知られたくないという意図があります。
Research Artisan Liteでは、
[ra]及び[ra]直下の[analyz]もリネーム可能でしたので
双方リネームすることで対処しておりました。
しかしながら、THK Analyticsでは、
[thk]フォルダはリネーム可能ですが、
[thk]直下の[view]フォルダはリネーム不可だと思います。
そこで[thk]直下の[view]フォルダ以下のみにbasic認証を掛けた場合、
ウェブサイトのアクセス集計に、何らかの影響がございますでしょうか?
お忙しい中、申し訳ありませんが、
ご回答くださると嬉しいです。
宜しくお願いします。
三鷹さん。
view は「集計を見るだけ」の場所なので影響ないです。
IPアドレスで制限しちゃっても大丈夫です。
るなさま。
素早いご回答ありがとうございます。
今後とも、宜しくお願いします。