2011-01-20 89 views
3

我開始在網站上投放一些廣告,並試圖確定跟蹤效果的最佳方式。最有效的點擊計數方式

具體來說,

  1. 什麼是最有效的方法來計算點擊?關於我能想到的唯一方法是將廣告鏈接到另一個頁面,並將廣告的ID作爲參數(例如adserver.aspx?id = 1234)。然後其他頁面將更新數據庫並重定向到廣告客戶的鏈接。但是,爲此需要加載單獨的頁面似乎效率不高。還有其他選擇嗎?

  2. 此外,似乎我可能需要知道某個星期內發生了多少點擊等情況。但是,爲每一次點擊存儲單獨的數據庫行和日期似乎過多。有沒有其他人做過這樣的事情?可能爲每週創建一個新行併爲該周發生的所有點擊增加一個計數器是否有意義?

任何提示讚賞。

+1

「似乎效率不高,不得不爲這個加載一個單獨的頁面」這句話告訴我你的HTTP知識沒有達到標準。 – 2011-01-20 18:37:06

+0

@Josh:我會贊同Jonathan。爲什麼要調用頁面,等待服務器處理它,接收HTTP重定向(或類似的),請求新頁面,等待服務器處理它...?基本上,你等待2次往返。使用JavaScript,您可以將其切換爲顯示頁面的一次往返,然後使用輕量級AJAX調用來記錄點擊。 – 2011-01-20 18:47:27

+1

@Josh:感謝您發表評論,對談話毫無幫助。事實是,有相當多的開銷處理ASP.NET頁面請求。 – 2011-01-20 20:52:36

回答

5

我會建議你的第一個解決方案是最好的選擇,實際上它是大多數類似系統(OpenX,Google AdSense等)所採用的設計。此外,它可以幫助您更好地管理您的橫幅,並防止您的網站泄漏搜索引擎蜘蛛。

至於性能只是一個好設計的問題,在典型的設計中,重定向腳本將相當輕量級,所以應該相當快地處理請求。值得一提的是,您可以使用數據庫更新來減少重定向請求響應時間。

當然還有另一種選擇:

而不是自制自己的橫幅廣告投放的腳本考慮實施OpenX的,相反,它是免費的,一個非常好的的軟件。 OpenX的可以在這裏找到:

http://openx.org/

,並在此領域的開源版本,你可以在自己的服務器上運行:

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

另一種選擇是實現像谷歌AdSense和節省您尋找廣告客戶的麻煩等。如果您沒有活躍的廣告客戶,Google也提供工具讓您銷售橫幅空間,然後回退到默認的AdSense橫幅廣告(OpenX也會這樣做,並且還支持集成AdSense(和其他廣告客戶))

3

你可以用JavaScript來做到這一點。

打開頁面:

  1. 發送廣告URL到客戶端
  2. 當用戶點擊廣告時,使用JavaScript來打開URL。或者,只需使用target="_blank"的錨。

登錄點擊:

  1. 無論哪種方式,掛鉤一個JavaScript函數的廣告點擊事件。
  2. 當用戶點擊廣告時,使用AJAX調用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?可能不是。一次只能有一個進程更新計數器,否則會丟失數據。必須發生的鎖定才能獲取值然後進行更新可能會顯着減慢。