js|server|伺服器|廣告|規劃 一、網站廣告的計費模式
一個網站的廣告伺服器(Ads Server)模組部分從業務模式上看,廣告伺服器需要最少支援兩個計費模式:按時及按點擊次數計費。
對於按發布時間計費,發布事件是很容易獲得的,難的是終止發布時間,假如沒有一個計時器的話。對於大量應用啟動並執行伺服器,鑒於資源消耗量的考慮,使用多線程的計時器要謹慎,毫無疑問,分散到模組層級自行決定計時器是低效而且危險的。如果是單一模組中使用完整的計時器,也會令這個模組的開發顯得過大,邊緣性的功能佔據了主要的開發工作;如果共用一個計時架構,那麼就需要對已有的計時功能進行整體規則,令其使用新的計時架構,這實際上是一個升級。
即使是對於點擊次數的計費方式,發布時間計費仍是必須的,這與Googgle的廣告不一樣;後者沒有一個固定的頁面,也沒有固定的格式。而前者,卻有固定的地方,如果單純採用點擊計費,那麼誰都希望放到首頁首欄,因為不點擊是不收錢的。
二、廣告欄目和廣告條目;
把廣告位置(欄目)看作是一個廣告框,那麼發布到這個框的廣告條目應該看作是廣告主的所有物,他是租用網站的廣告和相應的計費服務,發布自已的廣告,然後向網站支付廣告費用。每一個廣告條目包括有廣告內容(發布代碼);而每一個廣告欄目(位置)包括有價格資訊和滾動設定,也即輪換廣告的設定,以及預設空白內容。廣告條目與廣告位是一個多對多的關係,通過一個廣告條目訂單的實體實現聯絡。
廣告條目定單是這樣的意思:每一個廣告條目發行就緒到不同的廣告位(定單),以用將發麵布多長的時間,多個訂單按先後順序排隊。這就意味著需要有一個雙向的廣告定單管理模組存在。
廣告的發布實現是通過標籤完成。該標籤應用時需要包括如下屬性:廣告位ID,廣告條目ID。廣告位的ID把廣告標籤與廣告位置綁定,獲得廣告的價格和更替內容,以及發布時間;通過廣告條目ID獲得所要發布的的廣告內容。
三、網站管理者制定廣告欄目
廣告欄目主要與費用相關,但不包含位置資訊,這時侯與在那一個頁面沒有關係(那是由標籤使用決定),一般情況下與費用相關。位置資訊只是它的一個提示屬性。這樣,廣告位就可以不確定伴置地出現在“某類”伴置,同一個廣告欄目可以出現在不同的版面;而同一個版也可以出現多個廣告位置。所以,廣告欄目本質上也等同於是版面廣告伴的集合。這樣的原因是由於無論如何定義廣告位置,最終都需要通過頁面的jsp代碼反應,既然jsp標籤本身與位置綁定,就不必在抽象層對它進行細化管理了。這樣,可以省下管理員大量的工作。
四、廣告客戶制定廣告條目,並掛靠發布到具體單位、科室的各個廣告欄;
廣告客戶對廣告條目的管理應用黃頁邏輯。自行管理其中的廣告內容,然後發布到某幾個廣告欄。不同的廣告欄有不同的(較低的)基礎發布費用,然後每次點擊就增加一次點擊收費。每個廣告的表達方式大致包括顯示效果-》點選連結-計數-轉向目標介面;顯示效果上是由廣告客戶自已管理還是由網站管理,還是有點未定論的,大概最合適的方式是使用模板;iframe可以令效果代碼的錯誤不至於影響到發布版面的布局,同時目標代碼的下載不會影響主版面的顯示。總的來說,是儘可能減小網站本身的管理要求,越是能夠達到這個目的,實際運行效果就越佳。
五、廣告欄目對廣告定單的處理;
廣告條目定單中帶有發布時間的長短設定,發布事件可以輕易得到,這樣就可以在廣告欄目中得到一個該廣告定單有限期的起始和終止時間。廣告標籤對伺服器時間的對照,確定該廣告條目是否在有效期間內,如果不是在有效期間內,就把廣告條目清除,讀出下一條排隊的定單;如果沒有排隊定單,就拿出預設的欄目內容,並且把廣告欄目置為空白閑。這樣就不需要一個計時器了。
六、輪換廣告的實現
同一個廣告伴置按隨機性出現不同的內容,即出現不同的廣告訂單,只有對需求強烈的廣告位置,既希望客戶能夠簽署較長期的定單,又不希望低價獨佔最大潛在收益的廣告位置時,才真正適用。輪換可以看作是廣告欄目本身帶有一個隨機轉換的方法。使用隨機數而不是時間段分割是肯定的,這樣演算法較之使用時間段的分割顯得更高效也更簡單。
無論是使用一個帶機率分享方法的輪換廣告伴置,還是幾個廣告預設欄隨機分享一個廣告位置,兩種抽象模型看來效果差不多。前者是在廣告欄目的屬性上設定,後者是在調用標籤上可以使用多個欄目。相對而言,從維持廣告欄目一致性考慮,我傾向使用後一種邏輯。即在同一個欄目隨機分享的廣告欄目看作是不同的欄目,分別設定它的價錢,通過在調用標籤上進行均分調用。
七、廣告模組需要的開發工作總結:
- 最少三個資料實體:廣告欄目、廣告欄目定單、廣告條目及其常規管理操作介面;
- 一個計數轉向的cgi程式;
- 廣告條目發布的jsp標籤;
- 對廣告欄目的發布使用方式的統計介面;
- 對廣告欄目定單的跟蹤介面;
- 對廣告條目發布後的統計介面;
而套餐服務這裡暫不包括,想不出它與核心模組有什麼必然的關係。