2011-01-20 13 views
3

ウェブサイトでいくつかの広告を掲載し始めており、掲載結果をトラッキングするための最良の方法を決定しようとしています。最も効果的なクリック数のカウント

具体的には、

  1. はクリックをカウントするための最も効率的な方法は何ですか?考えられる唯一の方法については、広告のIDを引数として別のページに広告をリンクすることです(例:adserver.aspx?id = 1234)。他のページはデータベースを更新し、広告主のリンクにリダイレクトします。しかし、このために別のページを読み込まなければならないと効率的ではないようです。他のオプションはありますか?

  2. また、特定の週に何回クリックが発生したかなどの情報を知る必要があるようです。しかし、クリックごとに日付が付いたデータベース行を別々に保存することは過度に思われます。誰かがこれのような何かをしたことがありますか?週ごとに新しい行を作成し、その週に発生したすべてのクリックに対してカウンタを増やすことは理にかなっていますか?

ヒントありがとうございます。

+1

"これは別のページを読み込まなければならないのは非効率的なようです"この文は、あなたのHTTPの知識が最高ではないことを伝えています。 –

+0

@ジョシュ:私はジョナサンと幾分同意するでしょう。なぜページを呼び出す、サーバーが処理するのを待つか、HTTPリダイレクト(または同様のもの)を受信し、新しいページを要求し、サーバーが処理するのを待つ...?基本的に、2回の往復を待っています。 JavaScriptを使用すると、ページを表示するための1回のラウンドトリップまでカットし、クリックを記録する軽量なAJAX呼び出しを行うことができます。 –

+1

@ジョシュ:会話に全く何も追加しないコメントを投稿してくれてありがとう。事実、ASP.NETページ要求の処理にはかなりのオーバーヘッドがあります。 –

答えて

5

私はあなたの最初の解決策が最も良い選択肢であることを示唆しています。実際には、最も類似したシステム(OpenX、Google AdSenseなど)が採用している設計です。さらに、バナーの管理がしやすくなり、検索エンジンのスパイダーが漏れるのを防ぐことができます。

優れた設計の問題であるパフォーマンスに関しては、標準的な設計では、リダイレクトスクリプトはかなり軽量になり、要求をかなり迅速に処理する必要があります。リダイレクト要求の応答時間を短縮するために、DBの更新を無効にすることができます。

別のオプションはもちろんあります:

ではなく、スクリプトを提供する独自のバナーを自作ではなく、OpenXはを実装するに見て、それは無料とソフトウェアの非常に良い作品です。 OpenXははここで見つけることができます:あなたがあなた自身のサーバー上で実行することができ、オープンソース版の

http://openx.org/

、ここで:

http://www.openx.org/publisher/open-source-ad-server

は別のオプションでは、Google AdSenseとのようなものを実装することです広告主などの手間を省けます。Googleでは、アクティブな広告主がいない場合でも、バナースペースを販売し、デフォルトのAdSenseバナーにフォールバックするツールを提供しています(OpenXもこれを行い、AdSense(および他の広告主)の統合もサポートします)。

+0

+1既存のサービスを利用する。 –

+0

リンクありがとうございます。私はこのような無料のものは何もないことを知らなかった。私はこれを研究するために少し時間を費やす必要があります。 –

+0

OpenXを見ると、基本的にAdSenseと似ているようですが、広告オークションでどの広告が配信されるかが決まります。面白いと私はさらにそれを検討するかもしれませんが、私はそれが最もお金を稼ぐ方法だとは思わない。私が何年も使用してきたAdsenseと同様のケース。それは素晴らしい - あなたがたくさんのお金を作りたい場合を除き、動作します。 –

3

JavaScriptで行うことができます。

ページを開く:ユーザーがURLを開くためにJavaScriptを使用して、広告をクリックすると

  1. は、クライアント
  2. に広告URLを送信します。または、単にtarget="_blank"のアンカーを使用します。

クリックログイン:

  1. いずれかの方法を、広告のクリックイベントにJavaScript関数をフック。
  2. ユーザーが広告をクリックすると、AJAXを使用してWebサービスを呼び出します。 Webサービスは、クリックを記録します。

このように広告をできるだけ早く開き、ブラウザは非同期でログを記録するためにサーバーと通信します。

問題は、ユーザーが広告をクリックしてページが開き、Webサービス呼び出しが失敗するとどうなりますか?必要に応じて、Webサービスを最初に呼び出してから、呼び出しが成功した場合にのみ広告を開くことができます。おそらくエンドユーザーの観点からは最高のものではないでしょう。

質問2:各クリックを保存すると、後で最も柔軟にレポートできます。毎週のレポートに設定されている場合は、必要なレポートを生成する毎週のプロセスを設定してから、データをクリーンアップしてみましょう。スペースやスピードが問題になるまで、データのクリーンアップをスキップすることもできます。

Would it make sense to maybe create a new row for each week and increment a counter for all clicks that occurred that week?おそらくそうではありません。一度に1つのプロセスだけがカウンタを更新できます。そうしないと、データが失われます。値を取得して更新する必要があるロックは、おそらく大幅に遅くなります。

+0

... JavaScriptを使用すると、一部のブラウザではまったく動作しないことがあります。この場合、余分なページを持つ代替メカニズムが必要な場合があります。 :) –

+0

@ネルソン:私はjavascriptについて不思議だったが、私はそれについて専門家ではなく、クライアント側でデータベースにアクセスする方法から実際に得る方法を知らなかった。私は、あなたの説明をより詳細に研究し、これを少し研究しなければならないでしょう。そして、はい、すべてのブラウザでサポートされていないことが問題になる可能性があります。 –

+0

@Jonathan:ところで、私はGoogleの広告が何をしているのかを確認しました。彼らは仲介のページを持っているように見えます。 HTTPリダイレクトヘッダーは表示されませんが、ページ内に次のような内容があります。 ' '' Page'ではなく 'IHttpHandler'を使って簡単に実装することができます。 –

関連する問題