欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種廣告投放方法及系統(tǒng)的制作方法

文檔序號(hào):6362925閱讀:184來(lái)源:國(guó)知局
專利名稱:一種廣告投放方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種互聯(lián)網(wǎng)廣告投放方法及系統(tǒng)。
背景技術(shù)
大型互聯(lián)網(wǎng)的廣告投放面臨著如下幾個(gè)主要問(wèn)題一是廣告并發(fā)請(qǐng)求量大,往往平均每秒鐘都要對(duì)數(shù)萬(wàn)甚至十萬(wàn)次廣告請(qǐng)求作出響應(yīng)。二是廣告的定投方式(即指定廣告在某種條件下投放)繁多,常見(jiàn)的定向投放方式有視頻組定投(指定的廣告只能投到某一組指定的視頻中)、人群定投(指定的廣告只能投到某一類人群中)、地區(qū)定投、關(guān)鍵字定投,還可以進(jìn)行多定投方式組合投放,如地區(qū)+視頻組定投、地區(qū)+分類+關(guān)鍵字定投等 ’另夕卜,以客戶對(duì)投放次數(shù)的限制來(lái)看,還有N+投放(即限制每個(gè)用戶在指定的時(shí)間段內(nèi)能觀看的廣告次數(shù))方式和普通的非N+投放方式。此外,還可能需要根據(jù)客戶的重要性將客戶劃分為若干個(gè)等級(jí),高等級(jí)客戶的廣告應(yīng)該保證優(yōu)先于低等級(jí)客戶的廣告投放。 常見(jiàn)的廣告系統(tǒng),其投放定向條件往往比較簡(jiǎn)單,如僅僅按關(guān)鍵字或網(wǎng)頁(yè)分類(頻道)等很少的幾個(gè)定向條件來(lái)進(jìn)行投放,只需要設(shè)計(jì)若干個(gè)簡(jiǎn)單的哈希表、列表或數(shù)組等數(shù)據(jù)結(jié)構(gòu)來(lái)緩存廣告數(shù)據(jù),便能夠滿足廣告投放的要求;然而當(dāng)廣告定向投放的條件非常多、廣告之間又有各種投放優(yōu)先級(jí)的要求時(shí),如果仍然使用簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)來(lái)緩存數(shù)據(jù),往往會(huì)在廣告匹配的時(shí)候作過(guò)多的冗余查找,浪費(fèi)服務(wù)器資源,廣告投放效率將會(huì)受到極大的影響,此外,如果廣告投放系統(tǒng)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)不合理,廣告投放效率會(huì)隨著廣告數(shù)據(jù)量的增大而成倍降低,廣告的響應(yīng)時(shí)間也會(huì)不斷地增大,從而導(dǎo)致用戶等待時(shí)間過(guò)長(zhǎng),影響用戶感受。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種廣告數(shù)據(jù)的緩存方法及系統(tǒng),用于改進(jìn)現(xiàn)有廣告系統(tǒng)結(jié)構(gòu),提高廣告投放效率,減小用戶等待時(shí)間。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的—種廣告投放方法,其特征在于,該方法包括從廣告數(shù)據(jù)庫(kù)服務(wù)器中獲取廣告數(shù)據(jù),將獲取的廣告數(shù)據(jù)緩存在后臺(tái)管理服務(wù)器中;前端廣告投放服務(wù)器從后臺(tái)管理服務(wù)器的緩存中讀取廣告數(shù)據(jù)并在本地緩存;所述后臺(tái)服務(wù)器和前端投放服務(wù)器以投放條件樹(shù)的樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)緩存所述廣告數(shù)據(jù),投放條件樹(shù)的每一級(jí)對(duì)應(yīng)一級(jí)廣告投放條件的優(yōu)先級(jí),每個(gè)分支對(duì)應(yīng)一種投放條件,最底層葉子節(jié)點(diǎn)為符合上層節(jié)點(diǎn)所指示投放條件的廣告素材標(biāo)識(shí)的集合;當(dāng)前端投放服務(wù)器接收到廣告請(qǐng)求后,根據(jù)廣告請(qǐng)求參數(shù)在所述投放條件樹(shù)中匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方。進(jìn)一步地,所述匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方的方法具體為依據(jù)廣告請(qǐng)求攜帶的參數(shù)確定各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件;
以深度遍歷算法在所述投放條件樹(shù)中匹配所確定的各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,在遇到葉子節(jié)點(diǎn)時(shí),從葉子節(jié)點(diǎn)所包含的廣告素材標(biāo)識(shí)的集合中獲取符合投放條件的廣告素材標(biāo)識(shí);根據(jù)所獲取的廣告素材標(biāo)識(shí)獲取具體的廣告素材詳細(xì)參數(shù),將廣告素材詳細(xì)參數(shù)與廣告請(qǐng)求中的相關(guān)參數(shù)一起組織成廣告代碼,將廣告代碼返回給請(qǐng)求方。進(jìn)一步地,所述后臺(tái)服務(wù)器構(gòu)造投放條件樹(shù)的方法具體為使用哈希圖HashMap來(lái)構(gòu)造所述投放條件樹(shù)中除葉子節(jié)點(diǎn)之外的每一級(jí)節(jié)點(diǎn),通過(guò)HashMap鍵值對(duì)中的key來(lái)反映不同的投放條件,通過(guò)HashMap鍵值對(duì)中的value來(lái)鏈接下一級(jí)HashMap,每一級(jí)HashMap對(duì)應(yīng)一級(jí)廣告投放條件優(yōu)先級(jí);最后一級(jí)HashMap鍵值對(duì)中的value以列表數(shù)據(jù)類型裝載符合相同投放條件的所有廣告素材標(biāo)識(shí)。 本發(fā)明還提供一種廣告投放系統(tǒng),所述系統(tǒng)包括廣告數(shù)據(jù)庫(kù)服務(wù)器,用于存儲(chǔ)與廣告投放相關(guān)的廣告數(shù)據(jù);后臺(tái)服務(wù)器,用于從廣告數(shù)據(jù)庫(kù)服務(wù)器中獲取廣告數(shù)據(jù),將獲取的廣告數(shù)據(jù)緩存在本地緩存中;前端投放服務(wù)器,用于從后臺(tái)管理服務(wù)器的緩存中讀取緩存的廣告數(shù)據(jù)并在本地緩存中進(jìn)行緩存;接收廣告請(qǐng)求,根據(jù)廣告請(qǐng)求參數(shù)在本地緩存的廣告數(shù)據(jù)中匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方;
所述后臺(tái)服務(wù)器和前端投放服務(wù)器以投放條件樹(shù)的樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)緩存所述廣告數(shù)據(jù),投放條件樹(shù)的每一級(jí)對(duì)應(yīng)一級(jí)廣告投放條件的優(yōu)先級(jí),每個(gè)分支對(duì)應(yīng)一種投放條件,最底層葉子節(jié)點(diǎn)為符合上層節(jié)點(diǎn)所指示投放條件的廣告素材標(biāo)識(shí)的集合;所述前端投放服務(wù)器基于所述投放條件樹(shù)進(jìn)行廣告匹配。進(jìn)一步地,所述前端投放服務(wù)器包括緩存模塊,用于從后臺(tái)管理服務(wù)器的緩存中讀取緩存的廣告數(shù)據(jù)并在本地緩存中進(jìn)行緩存;匹配模塊,用于依據(jù)廣告請(qǐng)求攜帶的參數(shù)確定各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,以深度遍歷算法在所述投放條件樹(shù)中匹配所確定的各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,在遇到葉子節(jié)點(diǎn)時(shí),從葉子節(jié)點(diǎn)所包含的廣告素材標(biāo)識(shí)的集合中獲取符合投放條件的廣告素材標(biāo)識(shí);反饋模塊,用于根據(jù)所獲取的廣告素材標(biāo)識(shí)獲取具體的廣告素材詳細(xì)參數(shù),將廣告素材詳細(xì)參數(shù)與廣告請(qǐng)求中的相關(guān)參數(shù)一起組織成廣告代碼,將廣告代碼返回給請(qǐng)求方。進(jìn)一步地,所述廣告數(shù)據(jù)庫(kù)服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具將獲取的廣告數(shù)據(jù)緩存在后臺(tái)管理服務(wù)器中;所述前端廣告投放服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具從后臺(tái)管理服務(wù)器的緩存中讀取廣告數(shù)據(jù)并在本地緩存。進(jìn)一步地,所述系統(tǒng)還包括負(fù)載均衡服務(wù)器HaproxyServer,位于在前端投放服務(wù)器CastServer集群和用戶終端之間,用于依據(jù)負(fù)載均衡策略向CastServer集群中的不同CastServer分發(fā)廣告請(qǐng)求。本發(fā)明采用后臺(tái)管理服務(wù)器MServer和前端投放服務(wù)器CastServer集群兩級(jí)廣告數(shù)據(jù)緩存結(jié)構(gòu),提高了廣告數(shù)據(jù)處理效率;廣告數(shù)據(jù)緩存采用樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)反映不同的投放條件及投放條件的優(yōu)先級(jí),前端投放服務(wù)器定時(shí)刷新本地緩存的廣告數(shù)據(jù),基于廣告投放條件樹(shù)查找滿足投放條件的廣告,廣告投放條件樹(shù)的匹配時(shí)間復(fù)雜度相當(dāng)于線性時(shí)間復(fù)雜度,相比傳統(tǒng)的廣告匹配方法大大提高了匹配效率,減少服務(wù)器的運(yùn)算量。


圖I為本發(fā)明實(shí)施例提供的廣告投放系統(tǒng)功能模塊示意圖;圖2為本發(fā)明實(shí)施例提供的投放條件樹(shù)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的投放條件樹(shù)的裝載過(guò)程流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
圖I為本發(fā)明實(shí)施例提供的一種廣告投放系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)包括廣告數(shù)據(jù)庫(kù)服務(wù)器AdDBServer,用于存儲(chǔ)與廣告投放相關(guān)的廣告數(shù)據(jù),包含客戶數(shù)據(jù)、合同數(shù)據(jù)、投放條件、廣告素材等。后臺(tái)管理服務(wù)器MServer,用于定時(shí)從廣告數(shù)據(jù)庫(kù)服務(wù)器中提取廣告數(shù)據(jù),生成投放條件樹(shù)數(shù)據(jù)對(duì)象,并在本地緩存所生成的投放條件樹(shù)數(shù)據(jù)對(duì)象"Server還可用于廣告預(yù)定、排期、素材設(shè)置等一系列管理功能。前端廣告投放服務(wù)器CastServer,用于定時(shí)從后臺(tái)管理服務(wù)器提取緩存的廣告投放條件樹(shù)數(shù)據(jù)對(duì)象并在本地進(jìn)行緩存,在接收到用戶終端發(fā)送的廣告請(qǐng)求時(shí),基于所述廣告投放條件樹(shù)查找滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方。廣告素材服務(wù)器IdeaServer,用于存放實(shí)際要播放的廣告素材,以及在接收到用戶終端發(fā)起的獲取實(shí)際播放的廣告素材的請(qǐng)求時(shí),向用戶終端返回實(shí)際播放的廣告素材。用戶終端接收到前端廣告投放服務(wù)器返回的廣告代碼后,通過(guò)解析代碼獲得實(shí)際需要的廣告素材標(biāo)識(shí),然后向廣告素材服務(wù)器發(fā)起獲取實(shí)際播放的廣告素材的請(qǐng)求,廣告素材服務(wù)器依據(jù)請(qǐng)求返回相應(yīng)的廣告素材。所述廣告素材可以為視頻、flash、圖片等。為了應(yīng)對(duì)大規(guī)模的并發(fā)的廣告請(qǐng)求,減輕數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載,本發(fā)明采用兩級(jí)數(shù)據(jù)緩存機(jī)制,并且在后臺(tái)管理服務(wù)器MServer和前端投放服務(wù)器CastServer上使用分布式網(wǎng)絡(luò)緩存工具(如Memcache、redis等)來(lái)進(jìn)行數(shù)據(jù)的緩存。Mserver定時(shí)從廣告數(shù)據(jù)庫(kù)服務(wù)器AdDBServer中取得待投放的廣告數(shù)據(jù),生成投放條件樹(shù)數(shù)據(jù)對(duì)象,然后通過(guò)分布式網(wǎng)絡(luò)緩存工具提供的寫入set操作功能將所生成的投放條件樹(shù)數(shù)據(jù)對(duì)象寫入本機(jī)的緩存中;CastServer會(huì)定時(shí)通過(guò)分布式網(wǎng)絡(luò)緩存工具提供的獲取get操作從MServer的緩存中讀取緩存數(shù)據(jù),裝載到本機(jī)緩存中。所述后臺(tái)服務(wù)器和前端投放服務(wù)器對(duì)所述廣告數(shù)據(jù)進(jìn)行緩存時(shí)采用樹(shù)形數(shù)據(jù)結(jié)構(gòu)即投放條件樹(shù),來(lái)反映不同的投放條件及投放條件的優(yōu)先級(jí),投放條件樹(shù)的每一層對(duì)應(yīng)一級(jí)廣告投放優(yōu)先級(jí),每個(gè)分支對(duì)應(yīng)不同的投放條件,具體的,本發(fā)明使用哈希圖HashMap來(lái)構(gòu)造所述投放條件樹(shù)中除葉子節(jié)點(diǎn)之外的每一級(jí)節(jié)點(diǎn),通過(guò)HashMap鍵值對(duì)中的key來(lái)反映投放條件,通過(guò)HashMap鍵值對(duì)中的value來(lái)鏈接下一級(jí)HashMap,每一級(jí)HashMap對(duì)應(yīng)一級(jí)廣告投放優(yōu)先級(jí);
所述投放條件樹(shù)的最底層葉子節(jié)點(diǎn)為符合上層節(jié)點(diǎn)所指示投放條件的廣告素材標(biāo)識(shí)的集合,用于存放投放條件相同的廣告素材標(biāo)識(shí),所述集合可通過(guò)列表List、數(shù)組、鏈表等數(shù)據(jù)類型來(lái)表達(dá)。優(yōu)選地,為了保證高效投放,前端投放服務(wù)器CastServer和用戶終端之間掛接了負(fù)載均衡服務(wù)器HaproxyServer,當(dāng)用戶在網(wǎng)站上的某個(gè)行為(如打開(kāi)一個(gè)視頻播放頁(yè))觸發(fā)了一次廣告請(qǐng)求時(shí),該請(qǐng)求會(huì)首先被HaproxyServer得到,然后HaproxyServer會(huì)通過(guò)一定的策略將該請(qǐng)求轉(zhuǎn)發(fā)給多個(gè)CastServer中的一臺(tái),這臺(tái)CastServer再到其本機(jī)的緩存中進(jìn)行廣告匹配,若找到合適的廣告,則向請(qǐng)求方返回要投放的廣告代碼。本發(fā)明優(yōu)選實(shí)施例中,通過(guò)多級(jí)的哈希圖HashMap和列表List來(lái)構(gòu)造投放條件樹(shù)數(shù)據(jù)對(duì)象,廣告投放系統(tǒng)中待投放的廣告數(shù)據(jù)就是以這種結(jié)構(gòu)存放在緩存中,其結(jié)構(gòu)以java風(fēng)格可描述如下HashMap〈String, HashMap〈String,…,HashMap〈String, List<String>>... >>·根據(jù)上面的描述可以看出,該數(shù)據(jù)結(jié)構(gòu)并非完全固定不變的,會(huì)因廣告投放系統(tǒng)所要求支持的投放功能而有所不同。其中省略號(hào)內(nèi)表不內(nèi)部有若干個(gè)嵌套的HashMap結(jié)構(gòu)。HashMap是以鍵值對(duì)(key-value)方式來(lái)存儲(chǔ)數(shù)據(jù)的,它以put (key, value)方法存入鍵值對(duì),以get (key)方法取得value,其優(yōu)點(diǎn)是可以在線性時(shí)間復(fù)雜度內(nèi)完成數(shù)據(jù)查找,而不必在每次查找時(shí)都遍歷整個(gè)集合。最內(nèi)層是List對(duì)象,它則不僅提供了隨機(jī)訪問(wèn)列表中指定位置的元素,還可以add (value)添加元素,以remove (index)方法刪除指定位置的元素。所述投放條件樹(shù)的構(gòu)造方法如下步驟I、確定廣告有哪些具體的投放要求;例如視頻廣告投放優(yōu)先級(jí)別的要求為A、廣告定投方式為最優(yōu)先考慮視頻組定投廣告優(yōu)先級(jí)最高、人群定投廣告次之、其它定投方式再次之,其它廣告須滿足長(zhǎng)廣告(目前大于7秒的廣告被視為長(zhǎng)廣告,否則為短廣告)只投在長(zhǎng)視頻中、短廣告只投在短視頻中;B、是否N+廣告為次優(yōu)先考慮N+廣告優(yōu)先于非N+廣告進(jìn)行投放;C、客戶級(jí)別為再次優(yōu)先考慮客戶級(jí)別有V(VIP客戶)、A、B、C、D、E等,級(jí)別越高,投放順序越靠前;D、定投方式和是否N+限制、客戶級(jí)別等都相同的情況下,所做具體投放限制條件越嚴(yán)苛,越優(yōu)先投放,如定投北京地區(qū)的電視劇的廣告,要優(yōu)先于僅僅定投電視劇的廣
生P=I ;E、相同的投放條件下按千人成本(Cost Per Millc, CPM)投放的廣告,優(yōu)先于按全流量投放的廣告。步驟2、根據(jù)廣告投放系統(tǒng)具體的功能需求來(lái)確定投放條件樹(shù)的具體結(jié)構(gòu),基本原則是每一種廣告投放條件優(yōu)先級(jí)別要求占用一級(jí)HashMap,每一級(jí)的HashMap中由鍵值對(duì)(即key-value對(duì))構(gòu)成,通過(guò)HashMap的鍵值對(duì)中的key來(lái)反映不同的投放條件,通過(guò)HashMap鍵值對(duì)中的value來(lái)鏈接下一級(jí)HashMap,直到所有優(yōu)先級(jí)別的HashMap創(chuàng)建完畢,最后一級(jí)HashMap鍵值對(duì)中的value則存放一個(gè)列表List數(shù)據(jù)對(duì)象,List中存放的是投放條件相同的廣告素材ID的集合,廣告素材ID是一個(gè)廣告素材的唯一標(biāo)識(shí)。
例如,基于步驟I中所給的視頻廣告投放優(yōu)先級(jí)別的要求,應(yīng)該使用“5層HashMap+1層List”來(lái)構(gòu)造所述投放條件樹(shù),以java語(yǔ)言風(fēng)格描述為HashMap<String, HashMap〈String, HashMap<String, HashMap<String,HashMap〈String, List>>>>>CondTree ;所構(gòu)造的投放條件樹(shù)的具體結(jié)構(gòu)可參見(jiàn)附圖2的示例。步驟3、上述數(shù)據(jù)結(jié)構(gòu)中最內(nèi)層的List中存放的僅僅是廣告素材的ID,實(shí)際進(jìn)行廣告投放的時(shí)候需要根據(jù)廣告素材的ID取得具體要投放的廣告的具體相關(guān)參數(shù),如廣告素材url、曝光監(jiān)測(cè)url、點(diǎn)擊監(jiān)測(cè)url等相關(guān)內(nèi)容。上述具體相關(guān)參數(shù)可以被組織為一個(gè)對(duì)象,然后以HashMap方式緩存起來(lái),其結(jié)構(gòu)以java風(fēng)格定義為HashMap<Interger, AdEntity>adEntityMap ;
其中的key是廣告素材ID,value是一個(gè)AdEntity對(duì)象,對(duì)象中存放廣告素材url、曝光監(jiān)測(cè)url、點(diǎn)擊監(jiān)測(cè)url等相關(guān)內(nèi)容。實(shí)際投放時(shí),會(huì)先在步驟2中所構(gòu)造的投放條件樹(shù)CondTree對(duì)象中進(jìn)行廣告匹配,取得一個(gè)合適的廣告素材ID,然后再根據(jù)這個(gè)ID到adEntityMap中取得具體的廣告素材詳細(xì)參數(shù),這些參數(shù)與用戶請(qǐng)求的url中的相關(guān)參數(shù)一起被組織成廣告代碼,然后返回給播放器,播放器負(fù)責(zé)處理后續(xù)的廣告展現(xiàn)。當(dāng)從廣告數(shù)據(jù)庫(kù)中取得一個(gè)當(dāng)前處于投放期的廣告后,需要將該廣告裝載到上述投放條件樹(shù)中。以下基于上述投放條件樹(shù)的構(gòu)造方法,舉實(shí)例描述廣告投放系統(tǒng)的投放條件樹(shù)的裝載過(guò)程,如圖3所示步驟101、從廣告數(shù)據(jù)庫(kù)中取得一個(gè)當(dāng)前在投的廣告素材(idea)列表ideaList ;步驟102、判斷ideaList中是否還有需要處理的廣告素材,若有則從ideaList列表中取出一個(gè)廣告素材,然后執(zhí)行步驟103 ;否則結(jié)束流程;步驟103、根據(jù)當(dāng)前的廣告素材的相關(guān)屬性來(lái)確定所取出的廣告素材的第一級(jí)關(guān)鍵字keyl ;keyl的值由idea的相關(guān)屬性來(lái)確定,例如若該廣告為視頻組或人群定投,則為V ;否則,如果為長(zhǎng)廣告,則為I ;如果為短廣告,則為s ;步驟104、在投放條件樹(shù)的根節(jié)點(diǎn)即第一級(jí)HashMap (以下簡(jiǎn)稱mapl)中匹配是否存在以keyl為關(guān)鍵字的下一級(jí)HashMap(以下簡(jiǎn)稱map2),若不存在則執(zhí)行步驟105 ;否則執(zhí)行步驟106 ;步驟105、以keyl關(guān)鍵字構(gòu)造map2,并將鍵值對(duì)(keyl, map2)存入mapl ;執(zhí)行語(yǔ)句形如map2= new HashMap〈String, HashMap〈String, HashMap〈String,HashMap〈String, List〈String>>>>>();步驟106、根據(jù)當(dāng)前的廣告素材的相關(guān)屬性來(lái)確定該廣告素材的第二級(jí)關(guān)鍵字key2 ;key2同樣由idea的相關(guān)屬性來(lái)確定,例如若idea為N+廣告,則key2賦值為n ;否則,賦值為g ;步驟107、在map2中判斷是否存在以key2為關(guān)鍵字的下一級(jí)HashMap (以下簡(jiǎn)稱map3),若不存在則執(zhí)行步驟108 ;否則執(zhí)行步驟109 ;步驟108、以key2關(guān)鍵字構(gòu)造map3,并將鍵值對(duì)(key2, map3)存入map2 ;執(zhí)行語(yǔ)句形如map3= new HashMap〈String, HashMap〈String, HashMap〈String,List<String ();步驟109、根據(jù)當(dāng)前的廣告素材的相關(guān)屬性來(lái)確定該廣告素材的第三級(jí)關(guān)鍵字key3 ;key3同樣由廣告素材的相關(guān)屬性來(lái)確定,例如其值為廣告素材所對(duì)應(yīng)的廣告客戶級(jí)別,所述客戶級(jí)別的標(biāo)識(shí)可通過(guò)V、A、B、C、D、E、S等字母標(biāo)識(shí);步驟110、在map3中判斷是否存在以key3為關(guān)鍵字的下一級(jí)HashMap (以下簡(jiǎn)稱map4),若不存在則執(zhí)行步驟111 ;否則執(zhí)行步驟112 ;步驟111、以key3關(guān)鍵字構(gòu)造map4,并將鍵值對(duì)(key3, map4)存入map3 ;執(zhí)行語(yǔ)句形如map4= new HashMap<String, HashMap<String,List<String > (); 步驟112、根據(jù)當(dāng)前的廣告素材的相關(guān)屬性來(lái)確定該廣告素材的第四級(jí)關(guān)鍵字key4 ;key4同樣由廣告素材的相關(guān)屬性來(lái)確定,其值依賴于idea的具體定投方式,例如av (表示地區(qū)+視頻組定投)、ac (地區(qū)+人群定投)、p (分類定投)等;步驟113、在map4中判斷是否存在以key4為關(guān)鍵字的下一級(jí)HashMap (以下簡(jiǎn)稱map5),若不存在則執(zhí)行步驟114 ;否則執(zhí)行步驟115 ;步驟114、以key4關(guān)鍵字構(gòu)造map5,并將鍵值對(duì)(key4, map5)存入map4 ;執(zhí)行語(yǔ)句形如map5= new HashMap<String, List<String>> ();步驟115、根據(jù)當(dāng)前的廣告素材的相關(guān)屬性來(lái)確定該廣告素材的第五級(jí)關(guān)鍵字key5 ;步驟116、在1^口5中判斷是否存在以key5為關(guān)鍵字的下一級(jí)List對(duì)象,若不存在則執(zhí)行步驟117 ;否則執(zhí)行步驟118 ;步驟117、新建List對(duì)象,并將鍵值對(duì)key5_List添加到map5中;步驟118、將當(dāng)前廣告素材id添加到map5中key5對(duì)應(yīng)的List所指向的廣告素材列表中,若所對(duì)應(yīng)的廣告素材列表不存在,則新建后再存入。然后再次執(zhí)行步驟102。當(dāng)前端投放服務(wù)器接收到廣告請(qǐng)求后,依據(jù)廣告請(qǐng)求中的參數(shù),基于投放條件樹(shù)查找滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方。與上述廣告裝載步驟流程相對(duì)應(yīng)的廣告匹配流程的具體步驟如下步驟201、從所接收到的廣告請(qǐng)求中獲取請(qǐng)求參數(shù);廣告請(qǐng)求中的一系列參數(shù)可采用下述ReqParam對(duì)象的形式進(jìn)行組織public class ReqParam (
private String vid;//視頻 id
private String s; //視頻所對(duì)應(yīng)的節(jié)目id
private String ct;//視頻所屬的一級(jí)分類,如電視劇、電影、綜藝、娛樂(lè)等private String cs; //視頻所屬的二級(jí)分類,它有一個(gè)唯一對(duì)應(yīng)的一級(jí)分類,如大陸劇、港臺(tái)劇、韓劇,等都是一級(jí)分類電視劇下的二級(jí)分類
private String provinceld;//當(dāng)前用戶所在的省,可通過(guò)用戶請(qǐng)求中的ip信息
獲取
private String cityld; //當(dāng)前用戶所在的城市,可通過(guò)用戶請(qǐng)求中的ip信息
獲取
private String uid;//上傳當(dāng)前視頻的用戶的賬號(hào)(用戶id) private String t;//視頻的播放時(shí)長(zhǎng) private String keyword;//視頻請(qǐng)求所帶的關(guān)鍵字 private String partnerid;//合作方 id
}步驟202、從廣告請(qǐng)求的參數(shù)中獲取第一級(jí)關(guān)鍵字列表;根據(jù)廣告請(qǐng)求參數(shù)reqParam,獲取已排好序的當(dāng)前級(jí)別map對(duì)應(yīng)的keyl列表;步驟203、從第一級(jí)關(guān)鍵字列表取出一個(gè)未處理的第一級(jí)關(guān)鍵字keyl,執(zhí)行步驟204 ;若第一級(jí)關(guān)鍵字列表為空或所有的關(guān)鍵字都處理完畢仍未找到可投放的廣告,則轉(zhuǎn)到步驟218 ;步驟204、在第一級(jí)HashMap中(以下簡(jiǎn)稱mapl)匹配keyl,獲得keyl對(duì)應(yīng)的下一級(jí)HashMap (以下簡(jiǎn)稱map2);步驟205 ;從廣告請(qǐng)求參數(shù)中獲取以keyl為上級(jí)關(guān)鍵字的第二級(jí)關(guān)鍵字列表;步驟206、從第二級(jí)關(guān)鍵字列表取出一個(gè)未處理的第二級(jí)關(guān)鍵字key2,執(zhí)行步驟207 ;若第二級(jí)關(guān)鍵字列表為空或所有的關(guān)鍵字都處理完畢仍未找到可投放的廣告,則返回執(zhí)行步驟203 ;步驟207、在map2中匹配key2,獲得key2對(duì)應(yīng)的下一級(jí)HashMap (以下簡(jiǎn)稱map3);步驟208 ;從廣告請(qǐng)求參數(shù)中獲取以key2為上級(jí)關(guān)鍵字的第三級(jí)關(guān)鍵字列表;步驟209、從第三級(jí)關(guān)鍵字列表取出一個(gè)未處理的第三級(jí)關(guān)鍵字key3,執(zhí)行步驟210 ;若第三級(jí)關(guān)鍵字列表為空或所有的關(guān)鍵字都處理完畢仍未找到可投放的廣告,則返回執(zhí)行步驟206 ;
步驟210、在map3中匹配key3,獲得key3對(duì)應(yīng)的下一級(jí)HashMap (以下簡(jiǎn)稱map4);步驟211 ;從廣告請(qǐng)求參數(shù)中獲取以key3為上級(jí)關(guān)鍵字的第四級(jí)關(guān)鍵字列表;步驟212、從第四級(jí)關(guān)鍵字列表取出一個(gè)未處理的第四級(jí)關(guān)鍵字key4,執(zhí)行步驟213 ;若第四級(jí)關(guān)鍵字列表為空或所有的關(guān)鍵字都處理完畢仍未找到可投放的廣告,則返回執(zhí)行步驟209 ;步驟213、在map4中匹配key4,獲得key4對(duì)應(yīng)的下一級(jí)HashMap (以下簡(jiǎn)稱map5);步驟214 ;從廣告請(qǐng)求參數(shù)中獲取以key4為上級(jí)關(guān)鍵字的第五級(jí)關(guān)鍵字列表;步驟215、從第五級(jí)關(guān)鍵字列表取出一個(gè)未處理的第五級(jí)關(guān)鍵字key5,執(zhí)行步驟216 ;若第五級(jí)關(guān)鍵字列表為空或所有的關(guān)鍵字都處理完畢仍未找到可投放的廣告,則返回 執(zhí)行步驟212 ;步驟216、在map5中匹配關(guān)鍵字key5,獲得key5對(duì)應(yīng)的廣告素材列表adList ;步驟217、從adList的尾部依次向前查找可投放的廣告,若查到可投放的廣告,則返回對(duì)應(yīng)的廣告素材標(biāo)識(shí);若adList中的某個(gè)廣告已投放完畢,則從adList中刪除該廣告的廣告素材標(biāo)識(shí);若在adList中沒(méi)有找到可投放的廣告,則執(zhí)行步驟215 (即退回到上一級(jí)map)。步驟218、返回空字符串,結(jié)束流程。以附圖2所示的投放條件樹(shù)為例,按照上述規(guī)則進(jìn)行遍歷,其過(guò)程為(I)先從根節(jié)點(diǎn)向下查找,順序依次為klv、k2n、k3o、k4s、k5sl ;(2)到達(dá)第五層后,取得第一個(gè)列表,然后從列表末尾開(kāi)始向前訪問(wèn),依次為idm、id (m-1)、…、idl ;(3)到達(dá)第一個(gè)列表的最前端后,如果仍然未找到可投放的廣告,則退回到上一層的 k5s2 ;(4)然后從k5s2再找到第二個(gè)列表,然后再?gòu)牧斜砟┪查_(kāi)始向前訪問(wèn),依次為idn、id (n-1)、…、id (m+1)按上述規(guī)則,最終可完成對(duì)整個(gè)投放條件樹(shù)的遍歷。實(shí)施實(shí)例一比如某視頻網(wǎng)站,對(duì)其前貼廣告(即視頻播放之前播放的視頻廣告)投放的要求如下(I)要求能夠提供視頻組定投、人群定投、用戶定投、關(guān)鍵字定投、地區(qū)定投+分類(頻道)定投、分類定投等定投方式;(2)要求能夠提供對(duì)廣告的N+限制功能;(3)能夠根據(jù)客戶的重要性將客戶劃分為若干個(gè)等級(jí),高等級(jí)客戶的廣告應(yīng)該保證優(yōu)先于低等級(jí)客戶的廣告投放,但是視頻組定投和人群定投類的廣告則不必根據(jù)客戶等級(jí)來(lái)決定投放順序(4)為提高用戶體驗(yàn),短視頻(5分鐘以內(nèi)的視頻)中,只能投放短前貼(時(shí)長(zhǎng)不超過(guò)7秒鐘),長(zhǎng)視頻(5分鐘以上的視頻)中,只能投放長(zhǎng)前貼(時(shí)長(zhǎng)大于7秒鐘),但是視頻組定投和人群定投類的廣告則不受此限制;
根據(jù)上述要求,可以采用“5級(jí)HashMap+1級(jí)List”的組合數(shù)據(jù)結(jié)構(gòu)來(lái)完成廣告數(shù)據(jù)的緩存。下面對(duì)每一級(jí)的key的組成進(jìn)行說(shuō)明其中第一級(jí)的key作如下設(shè)置V :用于視頻組(vidcogroup)定投、人群定投類廣告,由于這類定投方式?jīng)]有長(zhǎng)廣告只投長(zhǎng)視頻、短廣告只投在短視頻,以及沒(méi)有根據(jù)客戶級(jí)別決定投放順序的,所以它們歸
為一類。I :用于只投在長(zhǎng)視頻中的長(zhǎng)廣告。s :用于只投在短視頻中的短廣告。第二級(jí)key含義
n:N+廣告f:非 N+廣告第三級(jí)key含義a、b、c、d、e :分別表示A、B、C、D、E級(jí)客戶的廣告,級(jí)別依次降低第四級(jí)key含義s :視頻組定投的廣告c :人群定投廣告u :用戶定投廣告(廣告只投放在指定的用戶的視頻中)k:關(guān)鍵字定投廣告p :分類定投廣告第五級(jí)key含義:由第四級(jí)key名稱+key值組成,如c3 :指定投放在白領(lǐng)女性(人群id為3)人群中的廣告。allpd :指定投放在北京地區(qū)(省份id :11)且在電視劇分類(分類id d)下的廣
生口 o比如,某次廣告請(qǐng)求,對(duì)應(yīng)的參數(shù)值分別為
權(quán)利要求
1.一種廣告投放方法,其特征在于,該方法包括 從廣告數(shù)據(jù)庫(kù)服務(wù)器中獲取廣告數(shù)據(jù),將獲取的廣告數(shù)據(jù)緩存在后臺(tái)管理服務(wù)器中;前端廣告投放服務(wù)器從后臺(tái)管理服務(wù)器的緩存中讀取廣告數(shù)據(jù)并在本地緩存; 所述后臺(tái)服務(wù)器和前端投放服務(wù)器以投放條件樹(shù)的樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)緩存所述廣告數(shù)據(jù),投放條件樹(shù)的每一級(jí)對(duì)應(yīng)一級(jí)廣告投放條件的優(yōu)先級(jí),每個(gè)分支對(duì)應(yīng)一種投放條件,最底層葉子節(jié)點(diǎn)為符合上層節(jié)點(diǎn)所指示投放條件的廣告素材標(biāo)識(shí)的集合; 當(dāng)前端投放服務(wù)器接收到廣告請(qǐng)求后,根據(jù)廣告請(qǐng)求參數(shù)在所述投放條件樹(shù)中匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方的方法具體為 依據(jù)廣告請(qǐng)求攜帶的參數(shù)確定各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件; 以深度遍歷算法在所述投放條件樹(shù)中匹配所確定的各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,在遇到葉子節(jié)點(diǎn)時(shí),從葉子節(jié)點(diǎn)所包含的廣告素材標(biāo)識(shí)的集合中獲取符合投放條件的廣告素材標(biāo)識(shí); 根據(jù)所獲取的廣告素材標(biāo)識(shí)獲取具體的廣告素材詳細(xì)參數(shù),將廣告素材詳細(xì)參數(shù)與廣告請(qǐng)求中的相關(guān)參數(shù)一起組織成廣告代碼,將廣告代碼返回給請(qǐng)求方。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述后臺(tái)服務(wù)器構(gòu)造投放條件樹(shù)的方法具體為 使用哈希圖HashMap來(lái)構(gòu)造所述投放條件樹(shù)中除葉子節(jié)點(diǎn)之外的每一級(jí)節(jié)點(diǎn),通過(guò)HashMap鍵值對(duì)中的key來(lái)反映不同的投放條件,通過(guò)HashMap鍵值對(duì)中的value來(lái)鏈接下一級(jí)HashMap,每一級(jí)HashMap對(duì)應(yīng)一級(jí)廣告投放條件優(yōu)先級(jí); 最后一級(jí)HashMap鍵值對(duì)中的value以列表數(shù)據(jù)類型裝載符合相同投放條件的所有廣告素材標(biāo)識(shí)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述廣告數(shù)據(jù)庫(kù)服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具將獲取的廣告數(shù)據(jù)緩存在后臺(tái)管理服務(wù)器中; 所述前端廣告投放服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具從后臺(tái)管理服務(wù)器的緩存中讀取廣告數(shù)據(jù)并在本地緩存。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于, 在前端投放服務(wù)器CastServer集群和用戶終端之間掛接負(fù)載均衡服務(wù)器HaproxyServer,所述HaproxyServer用于依據(jù)負(fù)載均衡策略向CastServer集群中的不同CastServer分發(fā)廣告請(qǐng)求。
6.一種廣告投放系統(tǒng),其特征在于,所述系統(tǒng)包括 廣告數(shù)據(jù)庫(kù)服務(wù)器,用于存儲(chǔ)與廣告投放相關(guān)的廣告數(shù)據(jù); 后臺(tái)服務(wù)器,用于從廣告數(shù)據(jù)庫(kù)服務(wù)器中獲取廣告數(shù)據(jù),將獲取的廣告數(shù)據(jù)緩存在本地緩存中; 前端投放服務(wù)器,用于從后臺(tái)管理服務(wù)器的緩存中讀取緩存的廣告數(shù)據(jù)并在本地緩存中進(jìn)行緩存;接收廣告請(qǐng)求,根據(jù)廣告請(qǐng)求參數(shù)在本地緩存的廣告數(shù)據(jù)中匹配滿足投放條件的廣告,并返回廣告代碼給請(qǐng)求方;所述后臺(tái)服務(wù)器和前端投放服務(wù)器以投放條件樹(shù)的樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)緩存所述廣告數(shù)據(jù),投放條件樹(shù)的每一級(jí)對(duì)應(yīng)一級(jí)廣告投放條件的優(yōu)先級(jí),每個(gè)分支對(duì)應(yīng)一種投放條件,最底層葉子節(jié)點(diǎn)為符合上層節(jié)點(diǎn)所指示投放條件的廣告素材標(biāo)識(shí)的集合;所述前端投放服務(wù)器基于所述投放條件樹(shù)進(jìn)行廣告匹配。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述前端投放服務(wù)器包括 緩存模塊,用于從后臺(tái)管理服務(wù)器的緩存中讀取緩存的廣告數(shù)據(jù)并在本地緩存中進(jìn)行緩存; 匹配模塊,用于依據(jù)廣告請(qǐng)求攜帶的參數(shù)確定各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,以深度遍歷算法在所述投放條件樹(shù)中匹配所確定的各個(gè)優(yōu)先級(jí)對(duì)應(yīng)的投放條件,在遇到葉子節(jié)點(diǎn)時(shí),從葉子節(jié)點(diǎn)所包含的廣告素材標(biāo)識(shí)的集合中獲取符合投放條件的廣告素材標(biāo)識(shí); 反饋模塊,用于根據(jù)所獲取的廣告素材標(biāo)識(shí)獲取具體的廣告素材詳細(xì)參數(shù),將廣告素材詳細(xì)參數(shù)與廣告請(qǐng)求中的相關(guān)參數(shù)一起組織成廣告代碼,將廣告代碼返回給請(qǐng)求方。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于, 所述投放條件樹(shù)中使用哈希圖HashMap來(lái)構(gòu)造除葉子節(jié)點(diǎn)之外的每一級(jí)節(jié)點(diǎn),通過(guò)HashMap的鍵值對(duì)中的key來(lái)反映不同的投放條件,通過(guò)HashMap鍵值對(duì)中的value來(lái)鏈接下一級(jí)HashMap,每一級(jí)HashMap對(duì)應(yīng)一級(jí)廣告投放條件優(yōu)先級(jí);最后一級(jí)HashMap鍵值對(duì)中的value以列表數(shù)據(jù)類型裝載符合相同投放條件的所有廣告素材標(biāo)識(shí)。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于, 所述廣告數(shù)據(jù)庫(kù)服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具將獲取的廣告數(shù)據(jù)緩存在后臺(tái)管理服務(wù)器中; 所述前端廣告投放服務(wù)器使用分布式網(wǎng)絡(luò)緩存工具從后臺(tái)管理服務(wù)器的緩存中讀取廣告數(shù)據(jù)并在本地緩存。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 負(fù)載均衡服務(wù)器HaproxyServer,位于在前端投放服務(wù)器CastServer集群和用戶終端之間,用于依據(jù)負(fù)載均衡策略向CastServer集群中的不同CastServer分發(fā)廣告請(qǐng)求。
全文摘要
本發(fā)明公開(kāi)了一種廣告投放方法及系統(tǒng),用于改進(jìn)現(xiàn)有廣告系統(tǒng)結(jié)構(gòu),提高廣告投放效率,減小用戶等待時(shí)間。本發(fā)明采用后臺(tái)管理服務(wù)器MServer和前端投放服務(wù)器CastServer集群兩級(jí)廣告數(shù)據(jù)緩存結(jié)構(gòu),提高了廣告數(shù)據(jù)處理效率;廣告數(shù)據(jù)緩存采用樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)反映不同的投放條件及投放條件的優(yōu)先級(jí),前端投放服務(wù)器定時(shí)刷新本地緩存的廣告數(shù)據(jù),基于廣告投放條件樹(shù)查找滿足投放條件的廣告,廣告投放條件樹(shù)的匹配時(shí)間復(fù)雜度相當(dāng)于線性時(shí)間復(fù)雜度,相比傳統(tǒng)的廣告匹配方法大大提高了匹配效率,減少服務(wù)器的運(yùn)算量。
文檔編號(hào)G06Q30/02GK102779308SQ20121000633
公開(kāi)日2012年11月14日 申請(qǐng)日期2012年1月9日 優(yōu)先權(quán)日2012年1月9日
發(fā)明者盧述奇, 姚鍵, 尹玉宗, 張?jiān)其h, 張緩迅, 潘柏宇 申請(qǐng)人:合一網(wǎng)絡(luò)技術(shù)(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大新县| 黎川县| 白山市| 衡南县| 东丽区| 平远县| 贵德县| 平潭县| 深水埗区| 周宁县| 延津县| 祁门县| 乌审旗| 汤阴县| 宁城县| 海晏县| 湖口县| 鄄城县| 永吉县| 淮阳县| 鹤岗市| 锡林郭勒盟| 衡山县| 英山县| 巴林右旗| 瑞昌市| 通道| 武隆县| 平南县| 大安市| 库尔勒市| 炎陵县| 安图县| 永川市| 辽阳县| 永嘉县| 景谷| 嵊泗县| 宁南县| 杭州市| 烟台市|