麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種自適應視頻廣告投放方法及裝置的制作方法

文檔序號:6362924閱讀:176來源:國知局
專利名稱:一種自適應視頻廣告投放方法及裝置的制作方法
技術領域
本發明涉及網絡視頻廣告投放技術領域,尤其涉及一種根據廣告投放量和廣告容量自適應地調整一次性反饋給用戶的視頻廣告個數的視頻廣告投放方法。
背景技術
目前視頻網站上的視頻廣告投放常常會遇到這樣的問題有時需要投放的廣告(即廣告商要求投放的廣告總量,簡稱為待投放量)非常多而廣告容量(即通過廣告投放系統能夠投放的廣告總量,簡稱為可投放量)又不足,有時候可投放量充足,而待投放量又比較小。例如,某部電視劇近期比較熱門,每天有200萬次的播放量,如果在每次播放電視據前只播放一個視頻前貼廣告(正規視頻播放前播放的一段視頻廣告),那么這部電視劇對應的每日廣告可投放量是200萬,如果使用雙前貼或三前貼機制,那么這部電視劇對應的 每日廣告可投放量就是400萬或600萬。由于這部電視劇是近期的熱播劇,可能會有多個廣告商要求在這部電視劇中投放廣告,且這些廣告商要求的每日廣告待投放量之和可能已經達到300萬,如果使用單前貼機制,那么每天就會有100萬次投放沒法完成,這時如果開通雙前貼機制,則不僅可以完成300萬的待投放量,還能有100萬次的剩余可投放量。如果后期又有新的廣告商加入,要求也在這部熱播劇中投放廣告,導致每日要投放在這部劇中的廣告次數達到580萬次,那么只需開通三前貼機制即可。面對上述需求,就需要對廣告投放系統做出調整,比如某段時間前貼廣告的可投放量不足,就需要開通雙前貼或三前貼機制,即在一段視頻播放前讓用戶看2個或3個前貼廣告。然而在設置多前貼機制后,會由此而產生一個問題,S卩如果固定每次廣告請求時投放的前貼個數,當廣告的待投放量很少時,用戶在前面一段時間內會看到大量雙前貼或更多前貼廣告,而過了這段時間后,由于前面投放廣告過快,后面一段時間就一個廣告都看不到了。例如,某分鐘要求完成10萬次的廣告投放,如果固定了要求每次請求廣告都返回2個前貼,那么可能可能在這一分鐘的前若干秒內,對每次廣告請求都會投出雙前貼,導致10萬次廣告在第45秒的時候全部釋放完畢,那么剩下的15秒鐘里面,如果再有廣告請求過來,就一個廣告也投不出去了,因為這一分鐘的任務已經由于前45秒的大量投放而提前完成了。一直等到下一分鐘開始后,又開始一個10萬次的廣告投放任務,然后再有40多秒的連續雙前貼投放,過了 40多秒后,又一個廣告都看不到了。顯然,這樣會嚴重影響用戶體驗。因此,如何及時調整用戶一次廣告請求所返回的廣告個數就成了一個非常重要的問題。目前的在線視頻網站一般采取下面幾種方法來完成廣告個數的調整第一種方法最原始的方式,即直接在廣告系統中固化投放的前貼個數和投放邏輯,當廣告可投放量緊張時只能通過不斷地系統升級來修改前貼投放個數。這種方式維護工作量大、調整速度慢、靈活性差,不能及時應對市場的需求。另外一種方法是在第一種方法的基礎上進行改進,設置一個投放前貼廣告個數的配置參數或稱為“開關”,在廣告投放較為密集的時期,將投放前貼廣告個數參數設置為多個,非密集時期,則設置為I個,這樣雖然比第一種方法靈活了一些,但其缺陷也很明顯,因為需要人工去估算某段時期內的廣告待投放量和可投放量之間的關系,根據人為估算結果來確定配置參數中需要設置的前貼廣告個數,而人為估算難免會與實際需求出現較大偏差,甚至出現與實際需求嚴重不符的情況,從而影響廣告投放效果和效率。此外,通過上述兩種方式,由于人為調整不能保證與實際需求的平穩過渡,容易使調整前后使用戶觀看到的廣告個數出現較大起伏,從而影響用戶體驗。

發明內容
有鑒于此,本發明的主要目的在于提供一種自適應的視頻廣告投放方法,用于解決現有視頻廣告投放方法不能依據實際需求實時調整廣告投放個數,靈活性差,無法保證用戶觀看廣告個數平穩地變化等技術問題。為達到上述目的,本發明的技術方案是這樣實現的 一種自適應視頻廣告投放方法,該方法包括按預設的周期T獲取當前周期T內需要投放的廣告投放任務,生成廣告投放任務集合AdTaskSet,并將生成的AdTaskSet添加到廣告任務集合列表AdTaskSetList中;在接收到廣告請求時,逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的廣告,并將匹配所得的廣告一次性返回給廣告請求方;檢查AdTaskSetList中的廣告投放完成情況,當某個AdTaskSet中的廣告已經全部投放完畢時,從AdTaskSetList中移除該AdTaskSet。進一步地,根據系統預設的一次廣告請求最多允許投放的廣告個數設定AdTaskSetList 的中 AdTaskSet 的最大個數 η,當 AdTaskSetList 列表中 AdTaskSet 個數達到上限值η時,需要在插入新生成的AdTaskSet之前,刪除列表末尾的AdTaskSet。進一步地,所述逐一在AdTaskSetList的每個AdTaskSet中匹配符合投放條件的廣告時,在每個AdTaskSet中最多只取一個廣告,匹配的過程具體為建立一個臨時列表,在對每個AdTaskSet進行匹配時,將所述臨時列表作為參數傳入匹配函數,在獲得一個符合條件的廣告時,首先將其與臨時列表中已獲得的廣告進行比較,如果臨時列表中已經存在相同的廣告,則繼續匹配其它符合條件的廣告,在每個AdTaskSet中最多只取一個廣告;如果臨時列表中不包含相同的廣告,則將該廣告添加到所述臨時列表中,然后執行下一個AdTaskSet的匹配;在匹配完所有的AdTaskSct后所得的臨時列表即包含了所有要向廣告請求方反饋的廣告。進一步地,所述AdTaskSet由廣告投放條件樹CondTree和廣告實體映射表AdEnt i tyMap兩部分組成;所述CondTree用于存儲廣告投放條件,AdEnt i tyMap用于存放待投放廣告的具體屬性;所述在AdTaskSet中匹配符合條件的廣告時,基于CondTree所反映的廣告投放條件樹從AdTaskSet中查找滿足廣告請求的廣告。進一步地,通過獨立進程廣告任務集合生成模塊AdTaskAssigner來實現AdTaskSet的生成、AdTaskSetList中廣告投放完成情況的檢查;所述AdTaskAssigner作為獨立的進程在系統后臺運行,每間隔一個生成周期T自動運行一次;通過另一獨立進程廣告匹配引擎AdMatcher來實現廣告請求的接收、廣告匹配及反饋。
本發明還提供一種自適應視頻廣告投放裝置,該裝置包括廣告任務集合生成模塊AdTaskAssigner,用于按預設的周期T獲取當前周期T內需要投放的廣告投放任務,生成廣告投放任務集合AdTaskSet,并將生成的AdTaskSet添加到廣告任務集合列表AdTaskSetList中;該模塊還用于檢查AdTaskSetList中的廣告投放完成情況,當某個AdTaskSet中的廣告已經全部投放完畢時,從AdTaskSetList中移除該AdTaskSet ;廣告任務集合列表模塊AdTaskSetList,用于存放當前正在投放的廣告任務集合;廣告匹配引擎AdMatcher,用于根據視頻播放器發來的廣告請求,逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的視頻廣告,并將匹配獲得的廣告一次性返回給廣告請求方。
進一步地,所述AdTaskSetList中AdTaskSet的最大個數η根據系統預設的一次廣告請求最多允許投放的廣告個數設定;所述AdTaskAssigner還用于在插入AdTaskSet時判斷所述AdTaskSetList的AdTaskSet個數是否達到最大值η,當達到時,則需在插入新生成的AdTaskSet之前刪除列表末尾的AdTaskSet。進一步地,所述AdMatcher逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的廣告時,首先建立一個臨時列表,在對每個AdTaskSet進行匹配時,將所述臨時列表作為參數傳入匹配函數,在獲得一個符合條件的廣告時,首先將其與臨時列表中已獲得的廣告進行比較,如果臨時列表中已經存在相同的廣告,則繼續匹配其它符合條件的廣告,在每個AdTaskSet中最多只取一個廣告;如果臨時列表中不包含相同的廣告,則將該廣告添加到所述臨時列表中,然后執行下一個AdTaskSet的匹配;在匹配完所有的AdTaskSet后,將所述臨時列表反饋給廣告請求方。
進一步地,所述AdTaskSet由廣告投放條件樹CondTree和廣告實體映射表AdEntityMap兩部分組成;所述CondTree用于存儲廣告投放條件,AdEntityMap用于存放待投放廣告的具體屬性;所述AdMatcher基于CondTree所反映的廣告投放條件樹從AdTaskSet中查找滿足廣告請求的廣告。進一步地,所述AdTaskAssigner和AdMatcher為兩個相互獨立的進程,所述AdTaskAssigner作為獨立的進程在系統后臺運行,每間隔一個生成周期T自動運行一次。本發明將廣告任務分配進程和廣告匹配進程互相獨立,并利用緩沖池機制,使得廣告系統能夠根據當前廣告投放進程自動調整用戶看到的前貼廣告個數,整個調整過程完全由系統來實現,無需任何人工估算和對系統的人工操作,用戶觀看到的廣告個數保持平穩,且調整迅速、靈活、準確性高。


圖I為本發明實施例提供的自適應的視頻廣告投放方法實現原理圖;圖2為本發明實施例提供的CondTree的結構示意圖;圖3為本發明實施例提供的AdEntity的結構示意圖;圖4為本發明實施例提供的AdTaskAssigner實現廣告任務分配的示意圖;圖5為現有技術的視頻廣告投放方法的投放效果示意圖6為本發明實施例提供的視頻廣告投放方法的投放效果示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚明白,以下舉實施例并參照附圖,對本發明進一步詳細說明。圖I為本發明實施例提供的用于實現本發明提出的自適應的視頻廣告投放方法的系統結構原理圖,該系統主要包括自適應的視頻廣告投放裝置、廣告數據庫AdDatabase、視頻播放器VideoPlayer ;自適應的視頻廣告投放裝置進一步包括廣告任務集合生成模塊AdTaskAssigner、廣告任務集合列表模塊AdTaskSetList、廣告匹配引擎AdMatcher0 廣告數據庫AdDatabase :用于存放廣告投放任務信息,以及廣告屬性;所述的視頻廣告投放任務信息指依據廣告商的要求定制的廣告投放時間、廣告投放量、廣告投放條件、待投放的廣告標識等信息;所述的廣告屬性指廣告本身的一些信息,例如廣告標識、廣告素材存放的URL、廣告素材的播放時長、曝光監測地址、點擊跳轉地址等;廣告任務集合列表模塊AdTaskSetList :用于存放當前正在投放的廣告任務集合;本發明優選實施例中,配置有一個廣告任務集合生成周期參數T,用于控制由AdTaskAssigner生成廣告任務集合的時間間隔;例如,當廣告任務集合生成周期T設置為I分鐘時,AdTaskSetl表示當前這一分鐘的廣告投放任務集合,后面的AdTaskSeti (i = 2,3, ... η)依次表不i-Ι分鐘前未完成的廣告投放任務集合。廣告任務集合生成模塊AdTaskAssigner :用于周期性地從廣告數據庫獲取當前廣告任務集合生成周期內需要投放的廣告投放任務,生成廣告投放任務集合,并將所生成的廣告投放任務集合添加到AdTaskSetList的列表中;以及負責從AdTaskSetList的列表中刪除已經投放完畢的AdTaskSet ;優選地,AdTaskAssigner設計為一個定時任務,系統啟動后將其作為獨立的進程在系統后臺運行,每間隔一個生成周期T自動運行一次。AdTaskAssigner的任務之一是定時從AdDatabase中取得當前廣告任務集合生成周期T內的所有廣告投放任務,將這一批任務組織成為一個廣告任務集合即一個AdTaskSet,再將生成的 AdTaskSet 插入到 AdTaskSetList 的最前端,原來 AdTaskSetList列表中的AdTaskSet則依次后移。優選地,為了防止在廣告可投放量嚴重不足的情況下,讓用戶看到過多的廣告,可預先設置AdTaskSetList中AdTaskSet的最大個數η,即設定一次廣告請求最多允許投放的廣告個數,當列表中元素個數達到系統設置的上限值η后,如果繼續在前面插入AdTaskSet,則列表末尾的元素會被自動丟棄。AdTaskAssigner的任務之二是檢查AdTaskSetList中的廣告投放完成情況,如果某個AdTaskSet中的廣告已經全部投放完畢,則該AdTaskSet就會被從AdTaskSetList中移除;廣告匹配引擎AdMatcher :用于根據視頻播放器VideoPlayer發來的廣告請求,逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的視頻廣告,并將匹配獲得的廣告一次性返回給VideoPlayer ;優選地,從AdTaskSetList中獲取廣告的方法可以為依次從各個AdTaskSet中查找廣告,每個AdTaskSet中最多只取一個廣告,且返回的多個廣告不允許相同,即不能連續2次重復播放同一個廣告。視頻播放器VideoPlayer :用于向AdMatcher發送廣告請求,接收AdMatcher返回的廣告,依次向用戶播放廣告內容; 本發明不限定視頻播放器的類型以及視頻廣告的格式類型,當用戶打開某個視頻播放頁觀看視頻前,VideoPlayer會自動向AdMatcher發送廣告請求,得到AdMatcher的返回的廣告后,依次向用戶播放廣告內容?;趫DI所示的實現自適應的視頻廣告投放方法的系統,從VideoPlayer發起廣告請求到獲得反饋結果的過程如下步驟I、VideoPlayer 向 AdMather 發送廣告請求;所述廣告請求中應當包含當前視頻的id、視頻所屬的分類和二級分類、當前瀏覽用戶的ip和cookie、關鍵字等信息。步驟2、AdMatcher 從 AdTaskSetList 中的第一個 AdTaskSet 開始到最后一個AdTaskSet,依次判斷每個AdTaskSet中是否有滿足本次廣告請求的廣告,如果有則AdMatcher從對應的AdTaskSet中獲取一個滿足條件的廣告,最后形成一個廣告反饋列表,將廣告反饋列表返回給播放器進行播放;優選地,針對一次廣告請求,在開始匹配時AdMatcher都會新建一個臨時列表,AdMatcher到每一個AdTaskSet中查找廣告,都會把找到的符合投放條件的廣告放到這個列表中,當開始對下一個AdTaskSet進行查找時,會將這個臨時列表作為參數傳入查找函數,AdMatchcr在AdTaskSet的CondTree樹中遍歷時,每找到一個廣告后,都會拿這個廣告和臨時列表中已經取得的所有廣告進行比對,如果臨時列表中已經包括了當前廣告,則AdMatcher不會添加這個廣告,而是繼續在當前AdTaskSet中查找其它滿足條件的廣告,直到找到合適的廣告,才將這個廣告添加到上述臨時列表中,如果遍歷完整個CondTree都沒找到,則不必向上述臨時列表中添加廣告。在查找完所有的AdTaskSet后,AdMatcher將所述臨時列表做為廣告反饋列表返回給播放器。例如AdMatcher從AdTaskSetList中的AdTaskSetl中查找可滿足本次請求的廣告,若AdTaskSetl中有符合廣告請求所給定條件的廣告,則AdMatcher從AdTaskSetI中取得一個廣告,作為第一前貼廣告;然后AdMatcher依次從AdTaskSetList中的AdTaskSet2、AdTaskSet3、· · ·、AdTaskSetn中查找可滿足本次請求的廣告,若對應的AdTaskSet中有符合廣告請求所給定條件的廣告,貝1J AdMatcher從對應的AdTaskSet中取得
第二個、第三個.....第η個廣告,作為第二前貼廣告、第三前貼廣告.....第η前貼廣告。
最后,AdMatcher將前面找到的所有可投放的前貼廣告組合起來(總個數可能會小于η),一次性返回給播放器進行播放。步驟3、VideoPlayer接收到AdMatcher反饋的前貼廣告播放列表后,按順序依次播放列表中的廣告??梢钥闯觯珹dTaskSetList所起的作用為 AdTaskAssigner 和 AdMatcher 之間的一個緩沖池。當廣告待投放量大、可投放量不足的時候,當前周期T的投放任務集合AdTaskSetl就無法完成,等到下一周期T后,隨著新的AdTaskSet的插入,老的AdTaskSetl就成為AdTaskSet2, AdTaskSetList中的AdTaskSet個數就會自動增加,用戶看到的前貼廣告個數也隨之自動增加;反之,當廣告待投放量變小后,AdTaskSetList中的AdTaskSet個數就會自動減少,用戶看到的前貼廣告個數也隨之自動減少。用戶如果看到多個廣告,那么他看到的第一個廣告可能來自于當前周期T內的投放任務,第二個廣告可能來自于之前的某個周期T內未投放完成的任務,其余可依次類推。用戶看到的前貼廣告個數η的取值范圍為n e [O, N],其中 N 為 AdTaskSetList 中的 AdTaskSet 最大個數,對 AdTaskSetList 中的AdTaskSet個數進行限制是為了避免廣告可投放容量嚴重不足時,AdTaskSetList中的AdTaskSet個數無限制增長,導致用戶沒完沒了地看廣告。通過上述方法實現了廣告個數根據當前投放進度自動調整,無需人工進行干預。以下結合附圖對本發明一優選實施例提供的AdTaskSet的組成結構進行詳細說 明AdTaskSet為廣告投放系統在設定周期T內生成的廣告投放任務的集合,它由AdTaskAssigner 根據 AdDatabase 中的廣告數據定時創建。AdTaskSet 由 CondTree (廣告投放條件樹)和AdEntityMap (廣告實體映射表,為HashMap類型)兩部分組成,圖2為CondTree的結構示意圖,CondTree是一個用于存儲廣告投放條件的樹型數據結構,AdMatcher正是基于CondTree所反映的廣告投放條件樹從AdTaskSet中查找可滿足廣告請求的廣告的。CondTree樹形結構的描述如下(I)根節點cO為AdMatcher進行廣告匹配時的初始訪問節點;(2)每個葉子節點,例如c21、c22、c23下的子節點,為一個待投放的廣告ID的列表,一個列表中的所有廣告ID具有相同的投放條件;(3)根與葉子之間的中間層的節點,如ell、c21、cl2、c25等,對應于不同維度的廣告投放條件,中間層的層數等于廣告投放條件的維度,層次越高表示這個維度的權重越高,投放的優先級越高;在同一個層次內部,越靠左邊的節點權重越高,投放優先級越高。投放條件的維度,可以解釋為投放條件的分類,比如第一維度為客戶級別維度,客戶的級別不同,他們的廣告投放的先后順序也不同;第二維度為廣告定向投放的方式如視頻組定向、分類定向、關鍵字定向等,如視頻組定投的廣告要優先于分類定投的廣告。AdEntityMap用于存放待投放的廣告的具體屬性,其通過廣告ID與葉子節點中廣告ID列表中的廣告ID對應,其結構用Java語言可定義為HashMap〈Integer, AdEntity〉,HashMap中的key是整形數,表示廣告ID, value是廣告實體AdEntity類型的對象,用于表示一個廣告的具體屬性。AdEntity對象的結構如圖3所示,其中“廣告ID”是一個廣告的唯一標識,它與圖2中的CondTree樹中葉子節點中的ID相對應;當前周期內剩余投放次數”為廣告當前周期要投放的總次數減去當前周期內已經完成的投放次數之差。一個AdEntity被創建并初始化的時候,其“當前周期內剩余投放次數”和“廣告當前周期要投放的總次數”相等,每完成一次投放,則“當前周期內剩余投放次數”自動減一,當前周期應投放的總次數則由AdTaskAssigner在相應的AdTaskSet生成周期T執行時計算出來。首先,假設AdTaskSet生成周期T為I分鐘,一個小時之內的每分鐘廣告可投放量是均勻分布的,下面的公式可計算出一個廣告在當前分鐘應投放的次數Ti = (S-Sok) *rate[i])/60/SN。其中,Ti表示廣告在當前小時每分鐘要投放的次數;S表示廣告預設的要投放的總次數;Sok表示當日已經投放完畢的總次數,該數據由廣告系統根據相關日志匯總而來;rate[i]表示當前小時的廣告可投放量占剩余的要投放廣告的全部小時的廣告可投放量的比例;SN表示用于廣告投放的服務器數量,次數會被均分到每臺服務器上。rate[i] = r[i]/(r[i ]+r[i+1]+r[i+2]+. . . +r[m])其中r是一個常量數組,存放的是一天24個小時中每小時的廣告容量的比例,r[i]表示第i小時的比值,m表示廣告投放結束的小時。r數組具體值如下{530,352,263,207,168,144,125,132,211,303,443,461,537,617,671,694,681,627,610,480,500,500,450,300} 其中各個數字的大小反映出其所對應小時的廣告可投放量大小,一般來說每天各個小時之間的廣告可投放容量比值是相對固定的,所以此處是一組常數。以下結合附圖4對本發明如何通過AdTaskAssigner來實現廣告投放任務的定時分配進行詳細說明,具體步驟如下步驟401、在當前定時周期T到時,倉Il建一個只含根節點的CondTree ;步驟402、從數據庫取出待投放的廣告列表adList ;步驟403、根據CondTree定義的規則依次將廣告列表adList中的廣告ID加入到CondTree中,完成CondTree的構造;步驟404、將adList中的所有廣告屬性封裝成AdEntity,并將AdEntity裝入AdEntityMap 中;步驟405、將 CondTree 和 AdEntityMap 封裝為一個 AdTaskSet ;步驟406、將AdTaskSetList中的元素順次向右平移一位,如果末尾元素超出最大長度,則丟棄末尾元素;步驟407、將新創建的AdTaskSet加入到AdTaskSetList的最前端;通過上述描述可知,本發明中AdTaskAssigner的廣告任務分配進程和AdMatcher的廣告匹配進程互相獨立,這種異步并行的工作模式提高了廣告的投放效率。以下以實際應用中的實例來說明本發明提供的自適應的視頻廣告投放方法的實現過程,該實施例中,某視頻網站的前貼廣告投放要求為(I)最多允許前貼廣告個數為5個;(2)廣告客戶根據重要性劃分為I 7共7個等級,數字越小級別越高,越優先投放;(3)定向投放條件包括視頻組定投、用戶定投、城市定投、關鍵字定投、分類定投
坐寸ο首先,需要在后臺設置一次廣告請求最多允許投放的廣告個數,即廣告緩沖池AdTaskSetList的容量,然后,設置要投放的廣告相關屬性,包括AdEntity中的相關屬性,以及所使用的定向投放方式和內容,比如定投方式為分類定投,定投內容為電視劇分類。開始廣告投放后,AdTaskAssigner按周期T定時產生新的投放任務AdTaskSet,并將所生成的AdTaskSet插入到AdTaskSetList中,AdTaskSetList相當于一個緩沖池,其中的AdTaskSet個數會隨著當前廣告投放任務的完成進度而不斷波動,理論波動區間為[O,5],而其實際波動曲線類似于圖6中的情況,用戶看到的前貼廣告個數總是以I為步長,均勻變化的,如2- > 2- > 3- > 2- > 3,而不會出現跳躍,如1- > 3- > O- > 2- > O。
某用戶打開某個內嵌VideoPlayer的視頻播放頁播放視頻時,觸發一次前貼廣告請求,然后AdMatcher接受到該請求,到緩沖池AdTaskSetList中查找廣告,此時AdTaskSetList中有2個AdTaskSet,分別表示當前分鐘的投放任務集合,和上一分鐘未投放完成的任務集合。AdMatcher先到AdTaskSetl中查找第一前貼廣告,找到一個廣告Al,然后再到AdTaskSet2中查找第二前貼,找到一個廣告A2,最后將Al和A2的內容按照與播放器之間的協議格式返回,然后播放器根據得到的內容依次播放廣告Al和A2。為了說明本發明效果,以圖5和圖6對照說明采用現有技術中人工調整方法和本發明提供的自適應的視頻廣告投放方法在廣告投放效果上的區別,兩個附圖的橫坐標都為用戶請求廣告的次數序號,縱坐標都為本次請求返回的廣告個數。圖5中,由于人工無法準確預估需要投放的前貼數,只能不斷進行人工調整前貼個數,從而導致用戶觀看到的廣告個數波動非常劇烈,比如第7次廣告請求時,看到了 3個廣告,第8、9次只看到I個,而第10次又一下看到4個,繼而增加到5個之多,用戶體驗非常糟糕。圖6的廣告個數則波動非常平穩,兩個相鄰的廣告請求之間返回的廣告個數差值不超過1,用戶看到的廣告個數一直維持在2到3之間,基本處于可以用戶可以接受的范圍內。可見通過該本發明提供的方法,用戶看到的廣告個數能夠比較平穩地波動,原因就在于本發明采用AdTaskSetList作為緩沖池,當某分鐘出現廣告容量不足的時候,下一分鐘AdTaskSetList中的AdTaskSet個數就會增加一個,那么前貼廣告個數也會立即增加上去,而不是等到人工檢查出容量不足后,再去匆忙調整前貼廣告個數。當投放的前貼個數增加之后,AdTaskSetList中原來積壓的AdTaskSet也會更快地消耗掉,那么前貼個數又會自動減少,正是由于有了這個緩沖池,廣告系統就能夠非常靈敏地感知當前容量是否足夠,迅速作出增加或減少前貼個數的調整。相比人工調整的方式來說,本發明大大提高了用戶體驗。以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。
權利要求
1.一種自適應視頻廣告投放方法,其特征在于,該方法包括 按預設的周期T獲取當前周期T內需要投放的廣告投放任務,生成廣告投放任務集合AdTaskSet,并將生成的AdTaskSet添加到廣告任務集合列表AdTaskSetList中; 在接收到廣告請求時,逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的廣告,并將匹配所得的廣告一次性返回給廣告請求方; 檢查AdTaskSetList中的廣告投放完成情況,當某個AdTaskSet中的廣告已經全部投放完畢時,從AdTaskSetList中移除該AdTaskSet。
2.根據權利要求I所述的方法,其特征在于,根據系統預設的一次廣告請求最多允許投放的廣告個數設定AdTaskSetList中的AdTaskSet的最大個數n,當AdTaskSetList列表中AdTaskSet個數達到上限值n時,需要在插入新生成的AdTaskSet之前,刪除列表末尾的AdTaskSet。
3.根據權利要求I所述的方法,其特征在于,所述逐一在AdTaskSetList的每個AdTaskSet中匹配符合投放條件的廣告時,在每個AdTaskSet中最多只取一個廣告,匹配的過程具體為 建立一個臨時列表,在對每個AdTaskSet進行匹配時,將所述臨時列表作為參數傳入匹配函數,在獲得一個符合條件的廣告時,首先將其與臨時列表中已獲得的廣告進行比較,如果臨時列表中已經存在相同的廣告,則繼續匹配其它符合條件的廣告,在每個AdTaskSet中最多只取一個廣告;如果臨時列表中不包含相同的廣告,則將該廣告添加到所述臨時列表中,然后執行下一個AdTaskSet的匹配;在匹配完所有的AdTaskSet后所得的臨時列表即包含了所有要向廣告請求方反饋的廣告。
4.根據權利要求I所述的方法,其特征在于,所述AdTaskSet由廣告投放條件樹CondTree和廣告實體映射表AdEntityMap兩部分組成;所述CondTree用于存儲廣告投放條件,AdEntityMap用于存放待投放廣告的具體屬性; 所述在AdTaskSet中匹配符合條件的廣告時,基于CondTree所反映的廣告投放條件樹從AdTaskSet中查找滿足廣告請求的廣告。
5.根據權利要求I所述的方法,其特征在于, 通過獨立進程廣告任務集合生成模塊AdTaskAssigner來實現AdTaskSet的生成、AdTaskSetList中廣告投放完成情況的檢查;所述AdTaskAssigner作為獨立的進程在系統后臺運行,每間隔一個生成周期T自動運行一次; 通過另一獨立進程廣告匹配引擎AdMatcher來實現廣告請求的接收、廣告匹配及反饋。
6.一種自適應視頻廣告投放裝置,其特征在于,該裝置包括 廣告任務集合生成模塊AdTaskAssigner,用于按預設的周期T獲取當前周期T內需要投放的廣告投放任務,生成廣告投放任務集合AdTaskSet,并將生成的AdTaskSet添加到廣告任務集合列表AdTaskSetList中;該模塊還用于檢查AdTaskSetList中的廣告投放完成情況,當某個AdTaskSet中的廣告已經全部投放完畢時,從AdTaskSetList中移除該AdTaskSet; 廣告任務集合列表模塊AdTaskSetList,用于存放當前正在投放的廣告任務集合; 廣告匹配引擎AdMatcher,用于根據視頻播放器發來的廣告請求,逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的視頻廣告,并將匹配獲得的廣告一次性返回給廣告請求方。
7.根據權利要求6所述的裝置,其特征在于,所述AdTaskSetList中AdTaskSet的最大個數n根據系統預設的一次廣告請求最多允許投放的廣告個數設定; 所述AdTaskAssigner還用于在插入AdTaskSet時判斷所述AdTaskSetList的AdTaskSet個數是否達到最大值n,當達到時,則需在插入新生成的AdTaskSet之前刪除列表末尾的AdTaskSet。
8.根據權利要求6所述的裝置,其特征在于,所述AdMatcher逐一在AdTaskSetList的每個AdTaskSet中匹配符合條件的廣告時,首先建立一個臨時列表,在對每個AdTaskSet進行匹配時,將所述臨時列表作為參數傳入匹配函數,在獲得一個符合條件的廣告時,首先將其與臨時列表中已獲得的廣告進行比較,如果臨時列表中已經存在相同的廣告,則繼續匹配其它符合條件的廣告,在每個AdTaskSet中最多只取一個廣告;如果臨時列表中不包含相同的廣告,則將該廣告添加到所述臨時列表中,然后執行下一個AdTaskSet的匹配;在匹配完所有的AdTaskSet后,將所述臨時列表反饋給廣告請求方。
9.根據權利要求6所述的裝置,其特征在于,所述AdTaskSet由廣告投放條件樹CondTree和廣告實體映射表AdEntityMap兩部分組成;所述CondTree用于存儲廣告投放條件,AdEntityMap用于存放待投放廣告的具體屬性; 所述AdMatcher基于CondTree所反映的廣告投放條件樹從AdTaskSet中查找滿足廣告請求的廣告。
10.根據權利要求6所述的裝置,其特征在于, 所述AdTaskAssigner和AdMatcher為兩個相互獨立的進程,所述AdTaskAssigner作為獨立的進程在系統后臺運行,每間隔一個生成周期T自動運行一次。
全文摘要
本發明公開了一種自適應視頻廣告投放方法及裝置,用于解決現有視頻廣告投放方法不能依據實際需求實時調整廣告投放個數,靈活性差,無法保證用戶觀看廣告個數平穩地變化等技術問題。本發明將廣告任務分配進程和廣告匹配進程互相獨立,并利用緩沖池機制,使得廣告系統能夠根據當前廣告投放進程自動調整用戶看到的前貼廣告個數,整個調整過程完全由系統來實現,無需任何人工估算和對系統的人工操作,用戶觀看到的廣告個數能夠保持平穩過渡,且調整迅速、靈活、準確性高。
文檔編號G06Q30/02GK102708496SQ201210006320
公開日2012年10月3日 申請日期2012年1月9日 優先權日2012年1月9日
發明者盧述奇, 姚鍵, 尹玉宗, 張云鋒, 張緩迅, 潘柏宇 申請人:合一網絡技術(北京)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 安塞县| 凤庆县| 从江县| 桐柏县| 江口县| 德庆县| 湘潭市| 关岭| 左贡县| 岳阳市| 太谷县| 嵩明县| 利津县| 吴江市| 石河子市| 平武县| 保定市| 新乡县| 漾濞| 大同县| 孝感市| 台南县| 宿州市| 文山县| 沙湾县| 大厂| 溧水县| 商南县| 长白| 响水县| 昌乐县| 衡阳市| 荆州市| 汉中市| 灵武市| 容城县| 藁城市| 无锡市| 鞍山市| 利辛县| 霍林郭勒市|