1

php/mysql でバナー広告エンジンを作成しています。OpenX やターン​​キー ソリューションは使用したくありません。既存のシステムに柔軟に対応しなければならないカスタム機能が多数あるためです。

インプレッション アーキテクチャに対する考え方と現在のアプローチは次のとおりです。

  • バナー サーバーへのリクエストは、ターゲット サイトの JavaScript スニペットを介して受信されます。
  • サーバーは提供するバナーのリストをキャッシュしており、必要に応じて適切な画像を返します。
  • インプレッションは、apache のアクセス ログ スタイルと同様にログ ファイルに記録されます。ローテーション テキスト ファイルを使用し、インプレッションごとに 1 行を追加します。
  • ログ ファイルには、ユーザーの IP、URL、バナー ID、時刻などが記録されます。
  • ログ ファイルは 1 時間ごとにローテーションされ、mysql DB に (これも 1 時間ごとに) 要約されるため、広告主は活動に関する (ほぼ) リアルタイムの統計を取得できます。

私の懸念は次のとおりです。

  • 「ログ」ファイルへの書き込みは、インプレッションを記録するための効率的でスケーラブルな方法ですか? 1 か月あたり 1,300 万から 1,500 万のインプレッションを配信する予定です。
  • ログ書き込みアプローチの落とし穴はありますか?
4

2 に答える 2

3

mod_accesslogで lighttpd を使用することをお勧めします。静的ファイルのプッシュが主な目的である場合は、lighttpd をお勧めします。

個々の Web サイトで JavaScript を使用しているため、画像を要求するクエリ文字列に必要な情報を含めます。ちなみに、これは Google アナリティクスが情報を集計する方法に似ています。

Web サーバー アクセス ログをローテーションし、ローテーションごとに解析します。

さらに処理するために一時的な mysql テーブルに直接インポートできるように、アクセス ログ形式をスカルプトします。

早い段階で大量のインプレッションが予想され、ある時点で拡大することが予想される場合は、CDN の使用を検討してください。

于 2009-09-15T21:13:12.383 に答える
1

ユーザー エージェントも忘れずに記録してください。

ログにテキスト ファイルを使用し、統計をさらに表示するためにスクリプトで解析する (キャッシュを作成するなど) ことをお勧めします。

于 2009-09-15T18:05:06.790 に答える