亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種自適應(yīng)視頻廣告投放方法及裝置的制作方法

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

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


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