2012-06-13 9 views
7

私はローカルディレクトリのウェブサイト(yelp/yell.comなど)を実行し、サイトに掲載されているビジネスに分析データを提供する必要があります。トラッキングユーザ - カスタムPHP/MySQLウェブサイトの分析

は、私は次のように追跡する必要があります。

1)特定のページ(への訪問者の数、すなわち:Jimのウィジェット)が65回を見た

2)回数は、ユーザーがリンクをクリックする(すなわち: 012ユーザーがあなたのウェブサイトにアクセスするためにクリックしました)

私はアクションが発生するたびに関連する番号に1を加えるだけでこれを行うことができます。

これは、過去30日間、過去12ヶ月など、これを日付範囲に分割することです。

このデータをデータベースに保存するにはどうすればよいですか?私はコードではなく、理論だけを必要とします!誰かがこの情報を保存する最善の方法を説明できる場合、私は非常に感謝します。

たとえば、日付とページ/リンクの1つのテーブルと、ユーザーデータの別のテーブル(クリック/訪問したページのリンク)を使用しますか?私がこれまでに持っていた唯一の解決策は、これらのアクションのいずれかが発生するたびにDBに新しい行を追加することです。

お手伝いいただける方に感謝します。

+2

なぜ車を改革するのですか? http://piwik.orgまたはbig brother google analyticsをご覧ください) – cypherabe

+0

あまりにも正確な分析を望まない場合は、新しい行の数を減らすことができます。 timestamp(int 10、私が推測する)によるストアアクティビティの代わりに、1日ごとにグループ化/ストアすることができます。ところで、これは「決定的な」解決策ではありません。 – HBv6

答えて

3

私は車輪を再発明せず、Piwikのような既に利用可能なソリューションを使用しません。実際にあなたの通常のウェブログを読んで、あなたが求めたすべての情報を提供することができます。

何らかの理由でカスタムソリューションが必要な場合は、範囲内のトラッキングデータを保存せず、個々のページ呼び出しごとに正確な時間とURLデータを使用します(通常のウェブログが提供するもの)。累積されたデータはロジックセクションでオンザフライで生成する必要があります。 SQLビューを介して:

SELECT count(url),url 
FROM calllog 
WHERE calldate > NOW()-30days 
+1

あなたのお返事ありがとう、Lars。 私はすでにサイトにG-Analyticsを持っていますが、私たちとアカウントを持っている各ユーザーがログインし、サイト全体の統計ではなく自分の統計を見ることができるカスタムページを構築する必要があります。 タイムスタンプを付けてデータベース内の新しい行にすべてのアクションを保存しますか? MySQLを使用して過去30日間、12カ月間などのデータのみを表示します...? – drandom

+0

個々のページビューとリンクをタイムスタンプでクリックして保存すると、スケーラブルなソリューションが得られますか?何百万行ものデータがかなり早く終わる可能性はありますか?もう一度あなたの時間に感謝Lars – drandom

+1

はい、あなたのシステムはあなたのウェブサーバのウェブログに既にあります。実際にはあなたの好きなSQLデータベースにデータを入れるよりも遅いです。ロジック部分は統計情報の表示中にのみ実行されるため、ビューの代わりにキャッシュテーブルを作成して、1分ごとに再生成し、ログデータを不要にした後で破棄することもできます(または、後の参照、例えば6ヶ月後の毎日の情報への参照)。私は、PiWikにはクライアントを持つ能力があると思うので、それを使って異なるWebサイトとあなたの別のクライアントを区別することができます。 – Lars