在諸如互聯(lián)網(wǎng)或其它網(wǎng)絡(luò)的聯(lián)網(wǎng)環(huán)境中,第一方內(nèi)容提供者能夠提供用于公開呈現(xiàn)在資源(例如,網(wǎng)頁、文檔、應(yīng)用和/或其它資源)上的信息。第一方內(nèi)容能夠包括由第一方內(nèi)容提供者通過互聯(lián)網(wǎng)經(jīng)由例如資源服務(wù)器提供以用于呈現(xiàn)在客戶端裝置上的文本、視頻和/或音頻信息。第一方內(nèi)容可以是由客戶端裝置或在該客戶端裝置上運(yùn)行的獨(dú)立應(yīng)用(例如,視頻游戲、聊天程序等)所請求的網(wǎng)頁。附加第三方內(nèi)容也能夠由第三方內(nèi)容提供者提供以用于與由第一方內(nèi)容提供者提供的第一方內(nèi)容一起呈現(xiàn)在客戶端裝置上。例如,第三方內(nèi)容可以是與諸如網(wǎng)頁的所請求的資源(例如,來自搜索引擎的搜索結(jié)果網(wǎng)頁、包括在線文章的網(wǎng)頁、社交網(wǎng)絡(luò)服務(wù)的網(wǎng)頁等)或者與應(yīng)用(例如,游戲內(nèi)的廣告)相結(jié)合地出現(xiàn)的公用服務(wù)通告或廣告。因此,查看資源的人能夠訪問作為該資源的主體的第一方內(nèi)容以及可能與該資源的主題有關(guān)或可能與之無關(guān)的第三方內(nèi)容。
技術(shù)實(shí)現(xiàn)要素:
本文中所描述的實(shí)施方式涉及用于使用給定URL以及寬度和高度約束自動地生成任意大小的內(nèi)容項(xiàng)的系統(tǒng)和方法。
一個實(shí)施方式涉及用于自動地生成內(nèi)容項(xiàng)的系統(tǒng)。該系統(tǒng)可以包括一個或多個處理器以及一個或多個存儲裝置。所述一個或多個存儲裝置包括使一個或多個處理器執(zhí)行數(shù)個操作的指令。操作包括接收具有用于創(chuàng)建內(nèi)容項(xiàng)的元素集合的內(nèi)容項(xiàng)模板以及所述元素集合的內(nèi)容項(xiàng)數(shù)據(jù)。內(nèi)容項(xiàng)模板的所述元素集合中的每個元素可以包括索引和錨(anchor)。操作還包括針對內(nèi)容項(xiàng)模板的所述元素集合中的每個元素生成占位符并且至少部分地基于所生成的占位符針對所述元素集合中的每個元素確定空間分配。操作還包括基于針對所述元素集合中的每個元素的所確定的空間分配而確定是否存在沖突,并且響應(yīng)于確定不存在沖突,使用所述元素集合的內(nèi)容項(xiàng)數(shù)據(jù)以及所確定的空間分配來生成內(nèi)容項(xiàng)。
另一實(shí)施方式涉及用于自動地生成內(nèi)容項(xiàng)的方法。該方法包括接收登錄頁面URL、第一尺寸值和第二尺寸值。該方法還包括接收具有用于創(chuàng)建內(nèi)容項(xiàng)的元素集合的內(nèi)容項(xiàng)模板。該方法還包括至少部分地基于第一尺寸值和第二尺寸值針對內(nèi)容項(xiàng)模板的所述元素集合中的每個元素生成占位符。該方法再進(jìn)一步包括至少部分地基于針對所述元素集合中的每個元素的所生成的占位符針對所述元素集合中的每個元素確定空間分配。該方法又進(jìn)一步包括基于針對所述元素集合中的每個元素的所確定的空間分配而確定是否存在沖突,并且響應(yīng)于確定不存在沖突,使用所確定的空間分配以及與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源的內(nèi)容項(xiàng)數(shù)據(jù)來生成內(nèi)容項(xiàng)。該方法包括至少部分地基于所確定的空間分配而確定所生成的內(nèi)容項(xiàng)的分?jǐn)?shù)。
又一個實(shí)施方式涉及存儲指令的計算機(jī)可讀存儲裝置,所述指令當(dāng)由一個或多個處理器執(zhí)行時,使一個或多個處理器執(zhí)行數(shù)個操作。操作可以包括接收登錄頁面URL、第一尺寸值、第二尺寸值以及具有用于創(chuàng)建內(nèi)容項(xiàng)的元素集合的內(nèi)容項(xiàng)模板。操作還包括至少部分地基于第一尺寸值和第二尺寸值針對內(nèi)容項(xiàng)模板的元素集合中的每個元素生成占位符,并且至少部分地基于所生成的占位符針對所述元素集合中的每個元素確定空間分配。針對所述元素集合中的每個元素的空間分配的確定包括:基于針對所述元素集合中的元素的所生成的占位符針對所述元素確定初始空間分配,基于初始空間分配針對所述元素集合中的所述元素確定最小空間分配,以及將針對所述元素集合中的所述元素的所確定的最小空間分配的尺寸遞增預(yù)定像素值。操作還可以包括基于針對所述元素集合中的每個元素的所確定的空間分配而確定是否存在沖突,并且響應(yīng)于確定不存在沖突,使用所確定的空間分配以及與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源的內(nèi)容項(xiàng)數(shù)據(jù)來生成內(nèi)容項(xiàng)。操作再進(jìn)一步包括響應(yīng)于來自客戶端裝置的內(nèi)容項(xiàng)請求而輸出用于顯示所生成的內(nèi)容項(xiàng)的數(shù)據(jù)。
附圖說明
下面在附圖和說明書中闡述一個或多個實(shí)施方式的細(xì)節(jié)。本公開的其它特征、方面和優(yōu)點(diǎn)從說明書、附圖以及權(quán)利要求將變得顯而易見,附圖中:
圖1是描繪經(jīng)由計算機(jī)網(wǎng)絡(luò)提供信息的系統(tǒng)的實(shí)施方式的概述;
圖2是更詳細(xì)地描繪內(nèi)容項(xiàng)生成系統(tǒng)的實(shí)施方式并且具有布局生成器和計分器的框圖;
圖3是更詳細(xì)地描繪具有布局解析器、錨管理器、一個或多個元素渲染器、空間管理器和沖突解決器的圖2的布局生成器的實(shí)施方式的框圖;
圖4是描繪圖2的布局生成器和計分器的過程流程的實(shí)施方式的過程框圖;
圖5是描繪圖3至圖4的布局解析器的實(shí)施方式的框圖;
圖6是描繪圖3至圖4的錨管理器的實(shí)施方式的框圖;
圖7A是描繪具有由錨定義的按鈕元素的內(nèi)容項(xiàng)布局的實(shí)施方式的圖;
圖7B是描繪針對具有固定像素基準(zhǔn)距離的調(diào)整大小的內(nèi)容項(xiàng)布局的圖7A的按鈕元素的圖;
圖7C是描繪針對具有相對基準(zhǔn)距離的調(diào)整大小的內(nèi)容項(xiàng)布局的圖7A的按鈕元素的圖;
圖8是描繪圖3至圖4的一個或多個元素渲染器的實(shí)施方式的框圖;
圖9是描繪具有增長模塊的圖3至圖4的空間管理器的實(shí)施方式的框圖;
圖10A是描繪具有針對圖像元素的初始最小空間分配以及針對文本元素的初始最小空間分配的內(nèi)容項(xiàng)的實(shí)施方式的圖;
圖10B是在應(yīng)用圖9的空間管理器的增長模塊的增長函數(shù)之后的具有針對圖像元素的最終空間分配以及針對文本元素的最終空間分配的圖10A的內(nèi)容項(xiàng)的圖;
圖11是描繪圖3至圖4的沖突解決器的實(shí)施方式的框圖;
圖12是描繪用于使用圖2的內(nèi)容項(xiàng)生成系統(tǒng)來生成內(nèi)容項(xiàng)的過程的實(shí)施方式的流程圖;
圖13是描繪與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源的實(shí)施方式的框圖;
圖14A是描繪具有第一任意尺寸并且使用第一內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)的實(shí)施方式的框圖;
圖14B是描繪具有第二任意尺寸并且使用第一內(nèi)容項(xiàng)模板的另一生成的內(nèi)容項(xiàng)的實(shí)施方式的框圖;
圖15A是描繪具有第三任意尺寸并且使用第二內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)的實(shí)施方式的框圖;
圖15B是描繪具有第四任意尺寸并且使用第二內(nèi)容項(xiàng)模板的另一生成的內(nèi)容項(xiàng)的實(shí)施方式的框圖;
圖16是描繪可以被采用來實(shí)現(xiàn)本文中所描述和圖示的系統(tǒng)和方法的各種元素的計算機(jī)系統(tǒng)的一般架構(gòu)的框圖。
將認(rèn)識到,圖中的一些或全部是出于圖示目的的示意表示。圖是本著它們將不被用來限制權(quán)利要求的范圍或意義的顯式理解出于圖示一個或多個實(shí)施例的目的而提供的。
具體實(shí)施方式
下文是與用于在計算機(jī)網(wǎng)絡(luò)上提供信息的方法、設(shè)備和系統(tǒng)有關(guān)的各種構(gòu)思以及用于在計算機(jī)網(wǎng)絡(luò)上提供信息的方法、設(shè)備和系統(tǒng)的實(shí)施方式的更詳細(xì)描述??梢砸栽S多方式中的任一個實(shí)現(xiàn)上面介紹且在下面更詳細(xì)地討論的各種構(gòu)思,因?yàn)樗枋龅臉?gòu)思不限于實(shí)施方式的任何特定方式。特定實(shí)施方式和應(yīng)用是主要為了說明性目的而提供的。
計算裝置(例如,客戶端裝置)能夠查看資源,諸如網(wǎng)頁、文檔、應(yīng)用等。在一些實(shí)施方式中,計算裝置可以通過與對應(yīng)于該資源的服務(wù)器(諸如網(wǎng)頁服務(wù)器)進(jìn)行通信經(jīng)由互聯(lián)網(wǎng)訪問該資源。資源包括作為來自第一方內(nèi)容提供者的資源的主體的第一方內(nèi)容并且還可以包括附加第三方提供的內(nèi)容,諸如廣告或其它內(nèi)容。在一個實(shí)施方式中,響應(yīng)于接收到訪問網(wǎng)頁的請求,網(wǎng)頁服務(wù)器和/或客戶端裝置能夠與數(shù)據(jù)處理系統(tǒng)(諸如內(nèi)容項(xiàng)選擇系統(tǒng))進(jìn)行通信,以諸如通過對用于請求要與資源一起呈現(xiàn)的第三方內(nèi)容項(xiàng)的資源的代碼的執(zhí)行來請求要與所請求的網(wǎng)頁一起呈現(xiàn)的內(nèi)容項(xiàng)。該內(nèi)容項(xiàng)選擇系統(tǒng)能夠選擇第三方內(nèi)容項(xiàng)并且提供用于實(shí)現(xiàn)內(nèi)容項(xiàng)與所請求的網(wǎng)頁一起在客戶端裝置的顯示器上的呈現(xiàn)的數(shù)據(jù)。在一些實(shí)例中,內(nèi)容項(xiàng)被選擇并且隨與搜索查詢響應(yīng)相關(guān)聯(lián)的資源一起派發(fā)。例如,搜索引擎可以在搜索結(jié)果網(wǎng)頁上返回搜索結(jié)果并且可以在搜索結(jié)果網(wǎng)頁的一個或多個內(nèi)容項(xiàng)位中包括與搜索查詢有關(guān)的第三方內(nèi)容項(xiàng)。
計算裝置(例如,客戶端裝置)還可以被用來查看或者執(zhí)行應(yīng)用,諸如移動應(yīng)用。應(yīng)用可以包括作為來自第一方內(nèi)容提供者的應(yīng)用的主體的第一方內(nèi)容并且還可以包括附加第三方提供的內(nèi)容,諸如廣告或其它內(nèi)容。在一個實(shí)施方式中,響應(yīng)于應(yīng)用的使用,資源服務(wù)器和/或客戶端裝置能夠與數(shù)據(jù)處理系統(tǒng)(諸如內(nèi)容項(xiàng)選擇系統(tǒng))進(jìn)行通信,以請求要與應(yīng)用的用戶接口一起和/或以其它方式呈現(xiàn)的內(nèi)容項(xiàng)。內(nèi)容項(xiàng)選擇系統(tǒng)能夠選擇第三方內(nèi)容項(xiàng)并且提供用于實(shí)現(xiàn)內(nèi)容項(xiàng)與應(yīng)用一起在客戶端裝置的顯示器上的呈現(xiàn)的數(shù)據(jù)。
在一些實(shí)例中,裝置標(biāo)識符可以與客戶端裝置相關(guān)聯(lián)。裝置標(biāo)識符可以是與客戶端裝置相關(guān)聯(lián)以在對資源和/或內(nèi)容項(xiàng)的后續(xù)請求期間標(biāo)識該裝置的隨機(jī)數(shù)。在一些實(shí)例中,裝置標(biāo)識符可以被配置成存儲并且/或者使客戶端裝置向內(nèi)容項(xiàng)選擇系統(tǒng)和/或資源服務(wù)器傳送與客戶端裝置有關(guān)的信息(例如,傳感器數(shù)據(jù)的值、web瀏覽器類型、操作系統(tǒng)、歷史資源請求、歷史內(nèi)容項(xiàng)請求等)。
在這里所討論的系統(tǒng)收集關(guān)于用戶的個人信息或者可以利用個人信息的情形下,可以給用戶提供控制程序或特征是否收集用戶信息(例如,關(guān)于用戶的社交網(wǎng)絡(luò)、社交動作或活動、職業(yè)、用戶的偏好或用戶的當(dāng)前位置的信息)或者控制是否和/或如何從內(nèi)容服務(wù)器接收可能與用戶更相關(guān)的內(nèi)容的機(jī)會。此外,特定數(shù)據(jù)可以在它被存儲或者使用之前被以一個或多個方式處理,使得個人可標(biāo)識的信息被移除。例如,可以處理用戶的身份,使得對于該用戶來說不能夠確定個人可標(biāo)識的信息,或者可以在獲得了位置信息的情況下一般化用戶的地理位置(諸如到城市、ZIP碼或州級別),使得不能夠確定用戶的特定位置。因此,用戶可以控制信息如何關(guān)于用戶被收集并由內(nèi)容服務(wù)器使用。
第三方內(nèi)容提供者在經(jīng)由互聯(lián)網(wǎng)或其它網(wǎng)絡(luò)提供用于與請求的資源一起呈現(xiàn)的第三方內(nèi)容項(xiàng)時,可以利用內(nèi)容項(xiàng)管理服務(wù)來控制或者以其它方式影響對第三方內(nèi)容項(xiàng)的選擇和派發(fā)。例如,第三方內(nèi)容提供者可以指定在對第三方內(nèi)容項(xiàng)的選擇中使用的選擇準(zhǔn)則(諸如關(guān)鍵詞)和對應(yīng)的出價值。出價值可以由內(nèi)容項(xiàng)選擇系統(tǒng)在拍賣中利用以選擇并派發(fā)用于與資源一起呈現(xiàn)的內(nèi)容項(xiàng)。例如,第三方內(nèi)容提供者可以在拍賣中給出與在用戶與提供者的內(nèi)容項(xiàng)交互的情況下支付某個金額的協(xié)定對應(yīng)的出價(例如,提供者同意在用戶點(diǎn)擊提供者的內(nèi)容項(xiàng)的情況下支付$3)。在其它實(shí)例中,第三方內(nèi)容提供者可以在拍賣中給出與在內(nèi)容項(xiàng)被選擇和派發(fā)的情況下支付某個金額的協(xié)定對應(yīng)的出價(例如,提供者同意每當(dāng)內(nèi)容項(xiàng)被選擇和派發(fā)時支付$0.005或者提供者同意每當(dāng)內(nèi)容項(xiàng)被選擇或者點(diǎn)擊時支付$0.05)。在一些實(shí)例中,內(nèi)容項(xiàng)選擇系統(tǒng)使用內(nèi)容項(xiàng)交互數(shù)據(jù)來確定第三方內(nèi)容提供者的內(nèi)容項(xiàng)的效能。例如,用戶可以優(yōu)于其它內(nèi)容項(xiàng)而更傾向于點(diǎn)擊某些網(wǎng)頁上的第三方內(nèi)容項(xiàng)。因此,用于放置第三方內(nèi)容項(xiàng)的拍賣出價對于高效能網(wǎng)頁、某些類別的網(wǎng)頁的和/或其它準(zhǔn)則來說可能是較高的,然而這些出價對于低效能網(wǎng)頁、某些類別的網(wǎng)頁和/或其它準(zhǔn)則來說可能是較低的。
在一些實(shí)例中,可以確定針對第三方內(nèi)容項(xiàng)的一個或多個效能度量,并且可以經(jīng)由內(nèi)容項(xiàng)管理賬戶的用戶接口向第三方內(nèi)容提供者提供這樣的效能度量的指示。例如,效能度量可以包括每閃現(xiàn)成本(CPI)或每千次閃現(xiàn)成本(CPM),其中例如,每當(dāng)內(nèi)容項(xiàng)被選擇派發(fā)以用于與資源一起呈現(xiàn)時,就可以對閃現(xiàn)進(jìn)行計數(shù)。在一些實(shí)例中,效能度量可以包括點(diǎn)進(jìn)率(CTR),被定義為對內(nèi)容項(xiàng)的點(diǎn)擊數(shù)除以閃現(xiàn)數(shù)。還可以使用其它的效能度量,諸如每動作成本(CPA)(其中動作可以是點(diǎn)擊內(nèi)容項(xiàng)或其中的鏈接、產(chǎn)品的購買、內(nèi)容項(xiàng)的移交等)、轉(zhuǎn)化率(CVR)、每點(diǎn)進(jìn)成本(CPC)(在內(nèi)容項(xiàng)被點(diǎn)擊時計數(shù))、每銷售成本(CPS)、每引導(dǎo)成本(CPL)、有效CPM(eCPM)和/或其它效能度量。
在一些實(shí)例中,網(wǎng)頁或其它資源(諸如例如應(yīng)用)包括可以在其中顯示選擇且派發(fā)的第三方內(nèi)容項(xiàng)的一個或多個內(nèi)容項(xiàng)位。定義網(wǎng)頁或其它資源的內(nèi)容項(xiàng)位的代碼(例如,HTML等)可以包括用于從內(nèi)容項(xiàng)選擇系統(tǒng)請求要與網(wǎng)頁一起呈現(xiàn)的第三方內(nèi)容項(xiàng)的指令。在一些實(shí)施方式中,代碼可以包括具有可以包括一個或多個參數(shù)的內(nèi)容項(xiàng)請求URL(例如,/page/contentitem?devid=abcl23&devnfo=A34r0)的圖像請求。在一些實(shí)施方式中,這樣的參數(shù)可以是諸如“devid=abcl23”和/或“devnfo=A34r0”的編碼字符串。
對要由內(nèi)容項(xiàng)選擇系統(tǒng)與資源一起派發(fā)的第三方內(nèi)容項(xiàng)的選擇可以基于數(shù)個影響因素,諸如預(yù)測點(diǎn)進(jìn)率(pCTR)、預(yù)測轉(zhuǎn)化率(pCVR)、與內(nèi)容項(xiàng)相關(guān)聯(lián)的出價等。這樣的影響因素可以被用來生成諸如分?jǐn)?shù)的值,可以通過內(nèi)容項(xiàng)選擇系統(tǒng)通過拍賣來將該分?jǐn)?shù)與其它內(nèi)容項(xiàng)的其它分?jǐn)?shù)比較。
在針對諸如網(wǎng)頁的資源的內(nèi)容項(xiàng)位的拍賣期間,數(shù)個不同類型的出價值可以被第三方內(nèi)容提供者用于各種第三方內(nèi)容項(xiàng)。例如,拍賣可以包括基于用戶是否點(diǎn)擊第三方內(nèi)容項(xiàng)、用戶是否基于第三方內(nèi)容項(xiàng)的呈現(xiàn)執(zhí)行特定動作、第三方內(nèi)容項(xiàng)是否被選擇和派發(fā)的出價和/或其它類型的出價。例如,基于第三方內(nèi)容項(xiàng)是否被選擇和派發(fā)的出價可以是較低出價(例如,$0.005),然而基于用戶是否執(zhí)行特定動作的出價可以是較高出價(例如,$5)。在一些實(shí)例中,可以調(diào)整出價以考慮與出價的類型相關(guān)聯(lián)的概率和/或由于其它原因而調(diào)整出價。例如,用戶執(zhí)行特定動作的概率可能是低的,諸如0.2%,然而所選擇并派發(fā)的第三方內(nèi)容項(xiàng)的概率可能是100%(例如,所選擇并派發(fā)的內(nèi)容項(xiàng)在它在拍賣期間被選擇的情況下該內(nèi)容項(xiàng)將出現(xiàn),所以出價未被調(diào)整)。因此,可以基于出價值和概率或另一修改值生成諸如分?jǐn)?shù)或歸一化值的值以在拍賣中使用?;诘谌絻?nèi)容項(xiàng)是否被選擇和派發(fā)的出價的值或分?jǐn)?shù)可以是$0,005*1.00=0.005,并且基于用戶是否執(zhí)行特定動作的出價的值或分?jǐn)?shù)可以是$5*0.002=0.01。為了使所生成的收入最大化,內(nèi)容項(xiàng)選擇系統(tǒng)可以從拍賣中選擇具有最高值的第三方內(nèi)容項(xiàng)。在一些實(shí)施方式中,內(nèi)容項(xiàng)選擇系統(tǒng)可能由于與該出價相關(guān)聯(lián)的較高值或分?jǐn)?shù)而選擇與基于用戶是否執(zhí)行特定動作的出價相關(guān)聯(lián)的內(nèi)容項(xiàng)。
一旦第三方內(nèi)容項(xiàng)被內(nèi)容項(xiàng)選擇系統(tǒng)選擇,就可以使用網(wǎng)絡(luò)來向客戶端裝置提供用于實(shí)現(xiàn)第三方內(nèi)容項(xiàng)在客戶端裝置的顯示器上的呈現(xiàn)的數(shù)據(jù)。
在一些實(shí)例中,使用登錄頁面統(tǒng)一資源定位符(URL)、第一尺寸值和第二尺寸值來針對第三方內(nèi)容提供者自動地生成內(nèi)容項(xiàng)可能是有用的。也就是說,給定第三方內(nèi)容提供者的登錄頁面以及內(nèi)容項(xiàng)位的尺寸,可以使用根據(jù)登錄頁面URL確定的尺寸和內(nèi)容項(xiàng)數(shù)據(jù)來基于一個或多個內(nèi)容項(xiàng)模板自動地生成內(nèi)容項(xiàng),諸如廣告。在一些實(shí)施方式中,可以按需(諸如響應(yīng)于對內(nèi)容項(xiàng)的請求)生成內(nèi)容項(xiàng),或者可以生成內(nèi)容項(xiàng)并且該內(nèi)容項(xiàng)的數(shù)據(jù)可以被存儲在數(shù)據(jù)庫中或者在用戶接口中呈現(xiàn)給生成內(nèi)容項(xiàng)的第三方內(nèi)容提供者。
可以從客戶端裝置、第一方內(nèi)容提供者或第三方內(nèi)容提供者接收登錄頁面URL、第一尺寸值和/或第二尺寸值。在一些實(shí)例中,可以響應(yīng)于客戶端裝置請求第一方內(nèi)容提供者的具有內(nèi)容項(xiàng)位的資源而從客戶端裝置接收第一尺寸值和第二尺寸值??蛻舳搜b置可以接收第一方資源的數(shù)據(jù)并且向內(nèi)容項(xiàng)選擇系統(tǒng)傳送對包括第一尺寸值和第二尺寸值的內(nèi)容項(xiàng)(諸如廣告)的請求。內(nèi)容項(xiàng)選擇系統(tǒng)可以選擇第三方內(nèi)容提供者,并且內(nèi)容項(xiàng)生成系統(tǒng)可以使用第三方內(nèi)容提供者的登錄頁面URL、第一尺寸值和第二尺寸值來生成內(nèi)容項(xiàng)。內(nèi)容項(xiàng)選擇系統(tǒng)然后可以輸出用于與第一方內(nèi)容提供者的資源一起顯示所生成的內(nèi)容項(xiàng)的數(shù)據(jù)。在其它實(shí)施方式中,可以響應(yīng)于客戶端裝置請求第一方內(nèi)容提供者的具有內(nèi)容項(xiàng)位的資源而從第一方內(nèi)容提供者接收第一尺寸值和第二尺寸值。
在一些實(shí)施方式中,可以獨(dú)立于客戶端裝置請求資源而從第三方內(nèi)容提供者接收登錄頁面URL、第一尺寸值和第二尺寸值。例如,第三方內(nèi)容提供者可以利用內(nèi)容項(xiàng)生成系統(tǒng)來生成不同大小的內(nèi)容項(xiàng)要以存儲在數(shù)據(jù)庫中并響應(yīng)于來自客戶端裝置或第一方內(nèi)容提供者的后續(xù)內(nèi)容項(xiàng)請求而被派發(fā)。
可以使用能夠解釋與登錄頁面URL相關(guān)聯(lián)的資源并且創(chuàng)建其可視表示(例如,圖像、顯示等)的資源渲染器來確定根據(jù)登錄頁面URL確定的內(nèi)容項(xiàng)。例如,登錄頁面URL的資源可以包括標(biāo)記內(nèi)容(例如,HTML、XML、圖像URL等)以及格式化信息(例如,CSS、XSL等)。資源渲染器可以下載標(biāo)記內(nèi)容和格式化信息并且根據(jù)萬維網(wǎng)聯(lián)盟(W3C)標(biāo)準(zhǔn)來渲染與登錄頁面URL相關(guān)聯(lián)的資源。資源渲染器因此可以創(chuàng)建與登錄頁面URL相關(guān)聯(lián)的資源的“快照圖像”并且/或者構(gòu)建表示與登錄頁面URL相關(guān)聯(lián)的資源的各種組件的文檔對象模型(DOM)樹。
在一些實(shí)施方式中,內(nèi)容項(xiàng)數(shù)據(jù)可以包括圖像數(shù)據(jù)、顏色數(shù)據(jù)、文本數(shù)據(jù)、徽標(biāo)數(shù)據(jù)等。在一些實(shí)施方式中,圖像模塊可以解析與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹以標(biāo)識并提取圖像以及圖像數(shù)據(jù)的圖像元數(shù)據(jù)(例如,圖像URL、顯示位置、顯示大小、替代文本等)。在一些實(shí)例中,顏色模塊可以使用與登錄頁面URL相關(guān)聯(lián)的資源的快照圖像和/或DOM樹來為要生成的內(nèi)容項(xiàng)的顏色數(shù)據(jù)選擇顏色。文本模塊可以被配置成自動地生成內(nèi)容項(xiàng)的文本數(shù)據(jù)(例如,文本描述、標(biāo)題等),諸如通過使用與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹或快照圖像來創(chuàng)建在與該登錄頁面URL相關(guān)聯(lián)的資源上顯示的文本的概要。在仍然另外的實(shí)例中,可以使用與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹或快照圖像來提取一個或多個徽標(biāo)的徽標(biāo)數(shù)據(jù)?;諛?biāo)圖像可以是商標(biāo)、商業(yè)徽標(biāo)、產(chǎn)品徽標(biāo)、公司徽標(biāo),或與特定產(chǎn)品、服務(wù)或組織相關(guān)聯(lián)的任何其它圖像。在一些實(shí)施方式中,可以為了所生成的內(nèi)容項(xiàng)從數(shù)據(jù)庫中檢索或者從第三方內(nèi)容提供者接收內(nèi)容項(xiàng)數(shù)據(jù),諸如圖像數(shù)據(jù)、顏色數(shù)據(jù)、文本數(shù)據(jù)、徽標(biāo)數(shù)據(jù)等。
一個或多個內(nèi)容項(xiàng)模板可以被存儲在內(nèi)容項(xiàng)模板數(shù)據(jù)庫中并且響應(yīng)于來自內(nèi)容項(xiàng)生成系統(tǒng)的對一個或多個內(nèi)容項(xiàng)模板的請求而被檢索。內(nèi)容項(xiàng)模板針對要從內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)定義元素以及元素的布置。在一些實(shí)施方式中,一個或多個內(nèi)容項(xiàng)模板可以是定義內(nèi)容項(xiàng)模板的一個或多個元素的約束XML配置文件。每個內(nèi)容項(xiàng)模板包括作為內(nèi)容項(xiàng)模板的所需元素的至少一個元素。此外,內(nèi)容項(xiàng)模板的每個元素包括索引值、元素名稱以及定義該元素相對于另一元素和/或相對于內(nèi)容項(xiàng)本身的布置的至少兩個錨(例如,按鈕元素可以由相對于內(nèi)容項(xiàng)的右部邊緣的右部錨以及相對于內(nèi)容項(xiàng)的底部邊緣的底部錨來定義)。每個元素的索引值可以被用來對內(nèi)容項(xiàng)模板的元素進(jìn)行優(yōu)先級排序。
錨被用來描述內(nèi)容項(xiàng)模板的兩個元素之間或者一個元素與要從內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)之間的關(guān)系。錨由基準(zhǔn)(例如,另一元素或內(nèi)容項(xiàng)本身)、距離(例如,諸如像素(px)的固定距離或諸如10%的相對距離)、類型(例如,頂部、底部、左部或右部)以及靈活性指示符(即,錨的位置是可變的還是固定的)來定義。
使用一個或多個內(nèi)容項(xiàng)模板和內(nèi)容項(xiàng)數(shù)據(jù),內(nèi)容項(xiàng)生成系統(tǒng)可以針對給定的尺寸集合(諸如第一尺寸值和第二尺寸值)來針對每個內(nèi)容項(xiàng)模板生成內(nèi)容項(xiàng)并給其打分,以使空間利用最大化。內(nèi)容項(xiàng)生成系統(tǒng)可以解析內(nèi)容項(xiàng)模板的布局配置文件以確定內(nèi)容項(xiàng)模板的一個或多個元素的布局元素數(shù)據(jù)。內(nèi)容項(xiàng)生成系統(tǒng)然后可以基于布局元素數(shù)據(jù)的錨、要生成的內(nèi)容項(xiàng)的尺寸值以及內(nèi)容項(xiàng)數(shù)據(jù)來針對一個或多個元素中的每個元素確定占位符。內(nèi)容項(xiàng)生成系統(tǒng)可以利用一個或多個元素渲染器來基于占位符以及這些錨中的一個或多個是否是靈活的(即,許可空間分配的一部分在大小上變化)而針對一個或多個元素中的每個元素確定初始空間分配。在一些實(shí)例中,初始空間分配可以與占位符相同(例如,如果元素由僅固定錨定義,則初始空間分配可以與占位符相同)。
內(nèi)容項(xiàng)生成系統(tǒng)可以基于初始空間分配并且通過使用增長函數(shù)來修改具有靈活的錨的任何元素來擴(kuò)展初始空間分配以使內(nèi)容項(xiàng)的空間利用最大化而針對一個或多個元素中的每個元素確定最終空間分配。內(nèi)容項(xiàng)生成系統(tǒng)然后可以基于所確定的最終空間分配而確定內(nèi)容項(xiàng)是否存在任何沖突。這樣的沖突可以包括元素的重疊、元素超出內(nèi)容項(xiàng)的尺寸的溢出、不足邊距、文本截斷和/或其它內(nèi)容項(xiàng)模板特定沖突。
如果存在沖突,則內(nèi)容項(xiàng)生成系統(tǒng)可以從內(nèi)容項(xiàng)模板的一個或多個元素中消除一個元素并且返回以基于元素的縮減集合確定占位符。被從一個或多個元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素對于內(nèi)容項(xiàng)模板而言在重要性方面較低的最高索引值的元素)。在一些實(shí)施方式中,基于布局元素數(shù)據(jù)將確定為要移除的元素可以被指示為所需元素。在這樣的實(shí)例中,內(nèi)容項(xiàng)生成系統(tǒng)可以選擇新內(nèi)容項(xiàng)模板,解析該模板,并且繼續(xù)使用新模板來生成內(nèi)容項(xiàng)。在其它實(shí)例中,內(nèi)容項(xiàng)生成系統(tǒng)可以停止內(nèi)容項(xiàng)的生成并且輸出錯誤(例如,如果沒有可以使用的其它內(nèi)容項(xiàng)模板的話)。
在一些實(shí)施方式中,如果不存在沖突,則內(nèi)容項(xiàng)生成系統(tǒng)可以確定內(nèi)容項(xiàng)的分?jǐn)?shù)。內(nèi)容項(xiàng)的分?jǐn)?shù)可以基于與內(nèi)容項(xiàng)模板的元素的數(shù)量相比所生成的內(nèi)容項(xiàng)中的元素的數(shù)量、未用像素的數(shù)量、每條垂直或水平線的未用像素的平均數(shù)量、針對一個或多個元素的加權(quán)等。在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)可以生成各自具有關(guān)聯(lián)的分?jǐn)?shù)的數(shù)個內(nèi)容項(xiàng),并且內(nèi)容項(xiàng)生成系統(tǒng)可以排名分?jǐn)?shù)并且選擇得分最高的所生成的內(nèi)容項(xiàng)。在一些實(shí)施方式中,可以向客戶端裝置輸出用于顯示所選擇的得分最高的所生成的內(nèi)容項(xiàng)的數(shù)據(jù)以與第一方內(nèi)容提供者資源一起顯示所生成的內(nèi)容項(xiàng)。
在其它實(shí)施方式中,用于顯示得分最高的所生成的內(nèi)容項(xiàng)的數(shù)據(jù)可以被存儲在數(shù)據(jù)庫中以在以后時間被輸出。在仍然另外的實(shí)施方式中,所生成的內(nèi)容項(xiàng)中的全部或子集以及所關(guān)聯(lián)的分?jǐn)?shù)可以被存儲在數(shù)據(jù)庫中。在仍然其它的實(shí)施方式中,所生成的內(nèi)容項(xiàng)中的全部或子集的數(shù)據(jù)以及所關(guān)聯(lián)的分?jǐn)?shù)可以被輸出到第三方內(nèi)容提供者的計算裝置的用戶接口以供選擇。例如,可以將內(nèi)容項(xiàng)生成系統(tǒng)集成到第三方內(nèi)容提供者的內(nèi)容項(xiàng)生成用戶接口中。響應(yīng)于從第三方內(nèi)容提供者輸入登錄頁面URL以及期望的內(nèi)容項(xiàng)的尺寸,內(nèi)容項(xiàng)生成系統(tǒng)可以輸出所生成的內(nèi)容項(xiàng)的集合和關(guān)聯(lián)的分?jǐn)?shù),使得即使所生成的內(nèi)容項(xiàng)不具有最高分?jǐn)?shù),第三方內(nèi)容項(xiàng)提供者也可以選擇所生成的內(nèi)容項(xiàng)。
雖然上文已提供使用任意尺寸自動地生成內(nèi)容項(xiàng)的概述,然而下文提供有關(guān)各種實(shí)施方式的更多細(xì)節(jié)。
圖1是用于經(jīng)由諸如網(wǎng)絡(luò)106的至少一個計算機(jī)網(wǎng)絡(luò)提供信息的系統(tǒng)100的實(shí)施方式的框圖。網(wǎng)絡(luò)106可以包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、電話網(wǎng)(諸如公用交換電話網(wǎng)(PSTN))、無線鏈路、內(nèi)部網(wǎng)、互聯(lián)網(wǎng)或其組合。系統(tǒng)100還能夠包括至少一個數(shù)據(jù)處理系統(tǒng),諸如內(nèi)容項(xiàng)選擇系統(tǒng)108。內(nèi)容項(xiàng)選擇系統(tǒng)108能夠包括至少一個邏輯裝置,諸如具有數(shù)據(jù)處理器的計算裝置,以經(jīng)由網(wǎng)絡(luò)106例如與資源服務(wù)器104、客戶端裝置110和/或第三方內(nèi)容服務(wù)器102進(jìn)行通信。內(nèi)容項(xiàng)選擇系統(tǒng)108能夠包括被配置成執(zhí)行存儲在存儲器裝置中的指令以執(zhí)行本文中所描述的一個或多個操作的一個或多個數(shù)據(jù)處理器,諸如內(nèi)容放置處理器。換句話說,內(nèi)容項(xiàng)選擇系統(tǒng)108的一個或多個數(shù)據(jù)處理器和存儲器裝置可以形成處理模塊。處理器可以包括微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)等或其組合。存儲器可以包括但不限于能夠給處理器提供程序指令的電子、光學(xué)、磁或任何其它存儲或傳輸裝置。存儲器可以包括軟盤、緊致盤只讀存儲器(CD-ROM)、數(shù)字通用盤(DVD)、磁盤、存儲器芯片、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、電可擦可編程只讀存儲器(EEPROM)、可擦可編程只讀存儲器(EPROM)、閃速存儲器、光學(xué)介質(zhì),或處理器能夠從其讀取指令的任何其它適合的存儲器。指令可以包括來自諸如但不限于C、C++、C#、HTML、XML、和Visual的任何適合的計算機(jī)編程語言的代碼。處理器可以處理指令并且輸出用于實(shí)現(xiàn)一個或多個內(nèi)容項(xiàng)到資源服務(wù)器104和/或客戶端裝置110的呈現(xiàn)的數(shù)據(jù)。除處理電路之外,內(nèi)容項(xiàng)選擇系統(tǒng)108可以包括被配置成存儲數(shù)據(jù)的一個或多個數(shù)據(jù)庫。內(nèi)容項(xiàng)選擇系統(tǒng)108還可以包括被配置成經(jīng)由網(wǎng)絡(luò)106接收數(shù)據(jù)并且將數(shù)據(jù)從內(nèi)容項(xiàng)選擇系統(tǒng)108提供給網(wǎng)絡(luò)106上的其它裝置中的任一個的接口。內(nèi)容項(xiàng)選擇系統(tǒng)108能夠包括服務(wù)器,諸如廣告服務(wù)器或另外的服務(wù)器。
內(nèi)容項(xiàng)選擇系統(tǒng)108可以包括內(nèi)容項(xiàng)生成系統(tǒng)120。在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以是與內(nèi)容項(xiàng)選擇系統(tǒng)108相同的系統(tǒng)的一部分或者內(nèi)容項(xiàng)生成系統(tǒng)120可以與內(nèi)容項(xiàng)選擇系統(tǒng)108分開。例如,內(nèi)容項(xiàng)生成系統(tǒng)120可以是內(nèi)容項(xiàng)選擇系統(tǒng)108的子系統(tǒng)或者內(nèi)容項(xiàng)生成系統(tǒng)120可以是與內(nèi)容項(xiàng)選擇系統(tǒng)108通信的單獨(dú)的系統(tǒng)。在內(nèi)容項(xiàng)生成系統(tǒng)120與內(nèi)容項(xiàng)選擇系統(tǒng)108分開的實(shí)施方式中,可以以與本文中所描述的內(nèi)容項(xiàng)選擇系統(tǒng)108類似的方式構(gòu)建內(nèi)容項(xiàng)生成系統(tǒng)120。
在仍然另外的實(shí)施方式中,可以省略內(nèi)容項(xiàng)選擇系統(tǒng)108并且內(nèi)容項(xiàng)生成系統(tǒng)120可以連接到網(wǎng)絡(luò)106以與第三方內(nèi)容服務(wù)器102、資源服務(wù)器104和/或客戶端裝置110進(jìn)行通信。
客戶端裝置110能夠包括一個或多個裝置,諸如計算機(jī)、膝上型電腦、臺式電腦、智能電話、平板、個人數(shù)字助理、電視機(jī)的機(jī)頂盒、智能電視或被配置成經(jīng)由網(wǎng)絡(luò)106與其它裝置進(jìn)行通信的服務(wù)器裝置。該裝置可以是包括數(shù)據(jù)處理器和存儲器的任何形式的電子裝置。存儲器可以存儲機(jī)器指令,所述機(jī)器指令當(dāng)由處理器執(zhí)行時,使該處理器執(zhí)行本文中所描述的操作中的一個或多個。存儲器還可以存儲用于實(shí)現(xiàn)一個或多個資源、內(nèi)容項(xiàng)等在計算裝置上的呈現(xiàn)的數(shù)據(jù)。處理器可以包括微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)等或其組合。存儲器可以包括但不限于能夠給處理器提供程序指令的電子、光學(xué)、磁或任何其它存儲或傳輸裝置。存儲器可以包括軟盤、緊致盤只讀存儲器(CD-ROM)、數(shù)字通用盤(DVD)、磁盤、存儲器芯片、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、電可擦可編程只讀存儲器(EEPROM)、可擦可編程只讀存儲器(EPROM)、閃速存儲器、光學(xué)介質(zhì),或處理器能夠從其讀取指令的任何其它適合的存儲器。指令可以包括來自諸如但不限于C、C++、C#、HTML、Visual和XML的任何適合的計算機(jī)編程語言的代碼。
客戶端裝置110能夠執(zhí)行軟件應(yīng)用(例如,web瀏覽器或其它應(yīng)用)以通過網(wǎng)絡(luò)106從其它計算裝置中檢索內(nèi)容。這樣的應(yīng)用可以被配置成從資源服務(wù)器104中檢索第一方內(nèi)容。在一些情況下,在客戶端裝置110上運(yùn)行的應(yīng)用本身可以是第一方內(nèi)容(例如,游戲、媒體播放器等)。在一個實(shí)施方式中,客戶端裝置110可以執(zhí)行在客戶端裝置的顯示器上提供瀏覽器窗口的web瀏覽器應(yīng)用。提供瀏覽器窗口的web瀏覽器應(yīng)用可以通過從輸入裝置(例如,指點(diǎn)裝置、鍵盤、觸摸屏或另一形式的輸入裝置)接收統(tǒng)一資源定位符(URL)(諸如web地址)的輸入而操作。作為響應(yīng),執(zhí)行來自web瀏覽器應(yīng)用的指令的客戶端裝置的一個或多個處理器可以從連接到通過URL地址指向的網(wǎng)絡(luò)106的另一裝置(例如,資源服務(wù)器104)請求數(shù)據(jù)。另一個裝置然后可以向客戶端裝置110提供使可視標(biāo)記由客戶端裝置110的顯示器顯示的網(wǎng)頁數(shù)據(jù)和/或其它數(shù)據(jù)。因此,瀏覽器窗口顯示所檢索到的第一方內(nèi)容,諸如來自各種網(wǎng)站的web頁面,以方便用戶與第一方內(nèi)容的交互。
資源服務(wù)器104能夠包括計算裝置,諸如服務(wù)器,該計算裝置被配置成托管資源,諸如web頁面或其它資源(例如,文章、評論線程、音樂、視頻、圖形、搜索結(jié)果、信息饋源等)。資源服務(wù)器104可以是計算機(jī)服務(wù)器(例如,文件傳送協(xié)議(FTP)服務(wù)器、文件共享服務(wù)器、web服務(wù)器等)或服務(wù)器的組合(例如,數(shù)據(jù)中心、云計算平臺等)。資源服務(wù)器104能夠向客戶端裝置110提供資源數(shù)據(jù)或其它內(nèi)容(例如,文本文檔、PDF文件以及其它形式的電子文檔)。在一個實(shí)施方式中,客戶端裝置110能夠經(jīng)由網(wǎng)絡(luò)106訪問資源服務(wù)器104以請求用于實(shí)現(xiàn)資源服務(wù)器104的資源的呈現(xiàn)的數(shù)據(jù)。
一個或多個第三方內(nèi)容提供者可以具有第三方內(nèi)容服務(wù)器102以經(jīng)由網(wǎng)絡(luò)106向內(nèi)容項(xiàng)選擇系統(tǒng)108和/或向其它計算裝置直接或者間接提供第三方內(nèi)容項(xiàng)的數(shù)據(jù)。內(nèi)容項(xiàng)可以具有可以被呈現(xiàn)在客戶端裝置110的顯示器上的任何形式,例如,圖形、文本、圖像、音頻、視頻等。內(nèi)容項(xiàng)還可以是這些格式的組合(混合)。內(nèi)容項(xiàng)可以是網(wǎng)幅內(nèi)容項(xiàng)、插播內(nèi)容項(xiàng)、彈出內(nèi)容項(xiàng)、富媒體內(nèi)容項(xiàng)、混合內(nèi)容項(xiàng)、內(nèi)容項(xiàng)、跨域內(nèi)嵌框架(iframe)內(nèi)容項(xiàng)等。內(nèi)容項(xiàng)還可以包括諸如超鏈接、元數(shù)據(jù)、鏈接、機(jī)器可執(zhí)行指令、動畫等的嵌入式信息。在一些實(shí)例中,可以將第三方內(nèi)容服務(wù)器102集成到內(nèi)容項(xiàng)選擇系統(tǒng)108中并且/或者第三方內(nèi)容項(xiàng)的數(shù)據(jù)可以被存儲在內(nèi)容項(xiàng)選擇系統(tǒng)108的數(shù)據(jù)庫中。
在實(shí)施方式中,內(nèi)容項(xiàng)選擇系統(tǒng)108能夠經(jīng)由網(wǎng)絡(luò)106接收對要與資源一起呈現(xiàn)的內(nèi)容項(xiàng)的請求??梢詮馁Y源服務(wù)器104、客戶端裝置110和/或任何其它計算裝置接收所接收到的請求。資源服務(wù)器104可以由第一方內(nèi)容提供者擁有或者運(yùn)行,該第一方內(nèi)容提供者可以包括用于內(nèi)容項(xiàng)選擇系統(tǒng)108給第三方內(nèi)容項(xiàng)提供第一方內(nèi)容提供者在資源服務(wù)器104上的一個或多個資源的指令提供者。在一個實(shí)施方式中,資源可以包括web頁面。
例如,客戶端裝置110可以是由用戶操作的計算裝置(由裝置標(biāo)識符表示),其當(dāng)訪問資源服務(wù)器104的資源時,能夠向內(nèi)容項(xiàng)選擇系統(tǒng)108作出對要與資源一起呈現(xiàn)的內(nèi)容項(xiàng)的請求。內(nèi)容項(xiàng)請求能夠包括請求裝置信息(例如,web瀏覽器類型、操作系統(tǒng)類型、來自請求裝置的一個或多個先前的資源請求、由請求裝置接收到的一個或多個先前的內(nèi)容項(xiàng)、針對請求裝置的語言設(shè)定、請求裝置的地理位置、在請求裝置處的一天的時間、在請求裝置處的星期幾、在請求裝置處的一個月的幾號、在請求裝置處的一年的一天等)和資源信息(例如,所請求的資源的URL、所請求的資源的內(nèi)容的一個或多個關(guān)鍵詞、資源的內(nèi)容的文本、資源的標(biāo)題、資源的類別、資源的類型等)。內(nèi)容項(xiàng)選擇系統(tǒng)108接收的信息能夠包括包含表示客戶端裝置110的裝置標(biāo)識符(例如,隨機(jī)數(shù))的超文本傳送協(xié)議(HTTP)cookie。
在一些實(shí)施方式中,可以將裝置信息和/或資源信息附加到內(nèi)容項(xiàng)請求URL(例如,contentitem.item/page/contentitem?devid=abcl23&devnfo=A34r0)。在一些實(shí)施方式中,裝置信息和/或資源信息可以在被附加到內(nèi)容項(xiàng)請求URL之前被編碼。請求裝置信息和/或資源信息可以由內(nèi)容項(xiàng)選擇系統(tǒng)108利用來選擇第三方內(nèi)容項(xiàng)和/或提供者要與所請求的資源一起派發(fā)并且呈現(xiàn)在客戶端裝置110的顯示器上的內(nèi)容項(xiàng)的第三方內(nèi)容提供者。如將在下面更詳細(xì)地描述的,在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以響應(yīng)于對內(nèi)容項(xiàng)的請求而生成一個或多個內(nèi)容項(xiàng)。
在一些實(shí)例中,資源服務(wù)器104的資源可以包括搜索引擎特征。搜索引擎特征可以經(jīng)由輸入特征(輸入文本框等)接收搜索查詢(例如,文本的字符串)。搜索引擎可以基于搜索查詢針對相關(guān)搜索結(jié)果而搜索文檔(例如,其它資源,諸如web頁面等)的索引。搜索結(jié)果可以作為第二資源被傳送以將相關(guān)搜索結(jié)果(諸如搜索結(jié)果web頁面)呈現(xiàn)在客戶端裝置110的顯示器上。搜索結(jié)果可以包括web頁面標(biāo)題、超鏈接等。一個或多個第三方內(nèi)容項(xiàng)還可以被與搜索結(jié)果一起呈現(xiàn)在搜索結(jié)果web頁面的內(nèi)容項(xiàng)位中。因此,資源服務(wù)器104和/或客戶端裝置110可以從內(nèi)容項(xiàng)選擇系統(tǒng)108請求要呈現(xiàn)在搜索結(jié)果web頁面的內(nèi)容項(xiàng)位中的一個或多個內(nèi)容項(xiàng)。內(nèi)容項(xiàng)請求可以包括附加信息,諸如用戶裝置信息、資源信息、內(nèi)容項(xiàng)的量、內(nèi)容項(xiàng)的格式、搜索查詢字符串、搜索查詢字符串的關(guān)鍵詞、與查詢有關(guān)的信息(例如,地理位置信息和/或時間信息)等。在一些實(shí)施方式中,可以在搜索結(jié)果與第三方內(nèi)容項(xiàng)之間作出界定以避免混淆。
在另一實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以被利用來獨(dú)立于對內(nèi)容項(xiàng)的請求而生成一個或多個內(nèi)容項(xiàng)(例如,以預(yù)生成一個或多個內(nèi)容項(xiàng))。內(nèi)容項(xiàng)生成系統(tǒng)120可以響應(yīng)于諸如經(jīng)由第三方內(nèi)容提供者的第三方內(nèi)容服務(wù)器102和/或客戶端裝置110來自第三方內(nèi)容提供者的請求提供者生成一個或多個內(nèi)容項(xiàng)。在一些實(shí)施方式中,一個或多個所生成的內(nèi)容項(xiàng)可以被存儲在數(shù)據(jù)庫中以響應(yīng)于后續(xù)內(nèi)容項(xiàng)請求而被選擇和派發(fā)。在一些實(shí)例中,一個或多個所生成的內(nèi)容項(xiàng)可以在用戶接口中被呈現(xiàn)給第三方內(nèi)容提供者,使得第三方內(nèi)容提供者可以選擇要保存和存儲在數(shù)據(jù)庫中的所生成的內(nèi)容項(xiàng)中的一個或多個。
雖然上文已提供用于向客戶端裝置110選擇和派發(fā)內(nèi)容項(xiàng)并且/或者使用內(nèi)容項(xiàng)生成系統(tǒng)120來生成內(nèi)容項(xiàng)的系統(tǒng)100的概述,然而現(xiàn)在將更詳細(xì)地描述用于使用任意尺寸數(shù)據(jù)來生成內(nèi)容項(xiàng)的實(shí)施方式。
參考圖2,內(nèi)容項(xiàng)生成系統(tǒng)120包括布局生成器200和計分器208。如將參考圖3至圖11更詳細(xì)地描述的,布局生成器200被配置成接收內(nèi)容項(xiàng)生成數(shù)據(jù)、一個或多個內(nèi)容項(xiàng)模板以及內(nèi)容項(xiàng)數(shù)據(jù)以生成一個或多個內(nèi)容項(xiàng)。計分器208被配置成針對所生成的一個或多個內(nèi)容項(xiàng)生成分?jǐn)?shù)。在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120被配置成基于分?jǐn)?shù)來排名所生成的一個或多個內(nèi)容項(xiàng)并且選擇得分最高的所生成的內(nèi)容項(xiàng)。內(nèi)容項(xiàng)生成系統(tǒng)120然后可以響應(yīng)于來自內(nèi)容項(xiàng)請求方202的內(nèi)容項(xiàng)生成數(shù)據(jù)而傳送用于顯示得分最高的所生成的內(nèi)容項(xiàng)的數(shù)據(jù)。在其它實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以將用于顯示得分最高的所生成的內(nèi)容項(xiàng)的數(shù)據(jù)存儲在內(nèi)容項(xiàng)數(shù)據(jù)庫210(用剖視圖示出)中。在仍然另外的實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以輸出用于顯示所生成的一個或多個內(nèi)容項(xiàng)和所關(guān)聯(lián)的分?jǐn)?shù)的數(shù)據(jù)。用于顯示所生成的一個或多個內(nèi)容項(xiàng)和所關(guān)聯(lián)的分?jǐn)?shù)的數(shù)據(jù)可以被呈現(xiàn)在內(nèi)容項(xiàng)請求方202(或者與其通信的裝置)的用戶接口中。在一些實(shí)施方式中,內(nèi)容項(xiàng)請求方202的裝置的用戶可以使用用戶接口來選擇所生成的內(nèi)容項(xiàng)中的一個或多個以被存儲在數(shù)據(jù)庫中,諸如內(nèi)容項(xiàng)數(shù)據(jù)庫210中。在一些實(shí)施方式中,所生成的一個或多個內(nèi)容項(xiàng)可以是HTML內(nèi)容項(xiàng)。
內(nèi)容項(xiàng)生成數(shù)據(jù)可以包括來自內(nèi)容項(xiàng)請求方202的第一尺寸值、第二尺寸值和/或登錄頁面URL。在一些實(shí)施方式中,內(nèi)容項(xiàng)請求方202可以是用于響應(yīng)于內(nèi)容項(xiàng)請求而生成內(nèi)容項(xiàng)的內(nèi)容項(xiàng)選擇系統(tǒng)108。在其它實(shí)施方式中,內(nèi)容項(xiàng)請求方202可以是獨(dú)立于內(nèi)容項(xiàng)請求而生成內(nèi)容項(xiàng)的第三方內(nèi)容提供者。
內(nèi)容項(xiàng)生成系統(tǒng)可以將登錄頁面URL傳送到登錄頁面分析系統(tǒng)204以便檢索用于生成內(nèi)容項(xiàng)的內(nèi)容項(xiàng)數(shù)據(jù)。登錄頁面分析系統(tǒng)204可以包括能夠解釋與登錄頁面URL相關(guān)聯(lián)的資源并且創(chuàng)建其可視表示(例如,圖像、顯示等)的資源渲染器。例如,登錄頁面URL的資源可以包括標(biāo)記內(nèi)容(例如,HTML、XML、圖像URL等)以及格式化信息(例如,CSS、XSL等)。資源渲染器可以下載標(biāo)記內(nèi)容和格式化信息并且根據(jù)萬維網(wǎng)聯(lián)盟(W3C)標(biāo)準(zhǔn)來渲染與登錄頁面URL相關(guān)聯(lián)的資源。資源渲染器因此可以創(chuàng)建與登錄頁面URL相關(guān)聯(lián)的資源的“快照圖像”并且/或者構(gòu)建表示與登錄頁面URL相關(guān)聯(lián)的資源的各種組件的文檔對象模型(DOM)樹。
快照圖像可以是與登錄頁面URL相關(guān)聯(lián)的資源的可視表示。快照圖像可以在渲染與登錄頁面URL相關(guān)聯(lián)的資源之后圖示如呈現(xiàn)在客戶端裝置的用戶接口(例如,電子顯示屏、計算機(jī)監(jiān)視器、觸敏顯示器等)上的與登錄頁面URL相關(guān)聯(lián)的資源的可視外觀??煺請D像可以包括與登錄頁面URL相關(guān)聯(lián)的資源的顏色信息(例如,像素顏色、亮度、飽和度等)和風(fēng)格信息(例如,方角、圓邊、現(xiàn)代、質(zhì)樸等)。在一些實(shí)施方式中,快照圖像可以是具有任何可行的文件擴(kuò)展名(例如,.jpg、.png、.bmp等)的圖片文件。
DOM樹可以是與登錄頁面URL相關(guān)聯(lián)的資源的層次模型。DOM樹可以包括與登錄頁面URL相關(guān)聯(lián)的資源的圖像信息(例如,圖像URL、顯示位置、顯示大小、替代文本等)、字體信息(例如,字體名稱、大小、效果等)、顏色信息(例如,RGB顏色值、十六進(jìn)制顏色代碼等)以及文本信息。登錄頁面分析系統(tǒng)204可以將快照圖像和/或DOM樹存儲在存儲器中以供后續(xù)使用。
在一些實(shí)施方式中,內(nèi)容項(xiàng)數(shù)據(jù)可以包括圖像數(shù)據(jù)、顏色數(shù)據(jù)、文本數(shù)據(jù)、徽標(biāo)數(shù)據(jù)等。在一些實(shí)施方式中,圖像模塊可以解析與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹以標(biāo)識并提取圖像以及圖像數(shù)據(jù)的圖像元數(shù)據(jù)(例如,圖像URL、顯示位置、顯示大小、替代文本等)。圖像元數(shù)據(jù)可以被用來針對顯示在與登錄頁面URL相關(guān)聯(lián)的資源上的每個圖像確定頁面上突出性。在一些實(shí)施方式中,圖像模塊從其它數(shù)據(jù)源(例如,先前使用或者批準(zhǔn)的圖像的儲存庫、股票圖像的儲存庫等)中提取圖像和圖像元數(shù)據(jù)。
在一些實(shí)施方式中,圖像模塊可以分析所提取的圖像以檢測圖像的可視內(nèi)容。檢測可視內(nèi)容可以包括例如確定圖像中所表示的突出對象的位置、確定圖像中的文本的位置和/或確定圖像是否能夠被裁切或者處理以改進(jìn)圖像的可視影響。在一些實(shí)施方式中,圖像模塊分析所提取的圖像以檢測圖像的語義內(nèi)容。檢測語義內(nèi)容可以包括例如標(biāo)識圖像中所描繪的對象或由圖像傳達(dá)的意義。圖像模塊可以將描述圖像的語義內(nèi)容的一個或多個標(biāo)簽或關(guān)鍵詞指派給圖像。標(biāo)簽和/或關(guān)鍵詞能夠被用來確定圖像與特定第三方內(nèi)容項(xiàng)的關(guān)聯(lián)。
圖像模塊可以處理圖像以制備用于在第三方內(nèi)容項(xiàng)中使用的圖像。圖像處理可以包括裁切圖像以強(qiáng)調(diào)突出對象或者移除文本、調(diào)整圖像的大小、對圖像進(jìn)行格式化或者以其它方式調(diào)整圖像。
圖像模塊可以基于圖像的各種屬性對圖像進(jìn)行過濾和排名。圖像模塊可以針對圖像中的每一個而確定質(zhì)量分?jǐn)?shù)和/或頁面上突出分?jǐn)?shù)。圖像的質(zhì)量分?jǐn)?shù)可以基于各種圖像屬性指示圖像的美觀外觀。突出分?jǐn)?shù)可以指示所提取的圖像被顯示在與登錄頁面URL相關(guān)聯(lián)的資源上的顯著性。圖像模塊可以丟棄或者過濾具有小于閾值顯示大小的顯示大小或小于閾值質(zhì)量分?jǐn)?shù)的質(zhì)量分?jǐn)?shù)的圖像。在一些實(shí)施方式中,登錄頁面分析系統(tǒng)204的圖像模塊基于與圖像相關(guān)聯(lián)的突出分?jǐn)?shù)而排名圖像。圖像模塊可以選擇一個或多個最高排名圖像用于包括在內(nèi)容項(xiàng)數(shù)據(jù)中。
在一些實(shí)例中,登錄頁面分析系統(tǒng)204的顏色模塊可以使用與登錄頁面URL相關(guān)聯(lián)的資源的快照圖像和/或DOM樹來為內(nèi)容項(xiàng)數(shù)據(jù)選擇顏色。例如,顏色模塊可以為內(nèi)容項(xiàng)的背景、標(biāo)題、描述、按鈕背景和/或按鈕文本選擇顏色。顏色方案可以包括與顯示在與登錄頁面URL相關(guān)聯(lián)的資源上的顏色相對應(yīng)的一個或多個顏色。在一些實(shí)施方式中,顏色模塊可以使用聚類技術(shù)(例如,k平均聚類)來從快照圖像中提取數(shù)個顏色集群。
文本模塊可以被配置成自動地生成內(nèi)容項(xiàng)的文本數(shù)據(jù)(例如,文本描述、標(biāo)題等),諸如通過使用與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹或快照圖像來創(chuàng)建在與登錄頁面URL相關(guān)聯(lián)的資源上顯示的文本的概要。在一些實(shí)施方式中,文本模塊可以從除與登錄頁面URL相關(guān)聯(lián)的資源之外或者代替與登錄頁面URL相關(guān)聯(lián)的資源的其它數(shù)據(jù)源中檢索文本數(shù)據(jù)。例如,文本模塊216可以從商業(yè)、產(chǎn)品或服務(wù)的用戶創(chuàng)建的評述接收文本數(shù)據(jù)??梢詮挠脩舯辉S可發(fā)布或者提交與特定商業(yè)、產(chǎn)品或服務(wù)有關(guān)的評論、評述或其它文本的互聯(lián)網(wǎng)資源(例如,網(wǎng)站)中檢索評述。在一些實(shí)施方式中,文本模塊可以標(biāo)識并提取包括肯定短語的評述的片段用于包括在內(nèi)容項(xiàng)數(shù)據(jù)中。在一些實(shí)施方式中,文本模塊可以標(biāo)識文本的字體并且將指示該字體的數(shù)據(jù)包括在內(nèi)容項(xiàng)數(shù)據(jù)中。
在仍然另外的實(shí)例中,可以使用與登錄頁面URL相關(guān)聯(lián)的資源的DOM樹或快照圖像來提取一個或多個徽標(biāo)的徽標(biāo)數(shù)據(jù)?;諛?biāo)圖像可以是商標(biāo)、商業(yè)徽標(biāo)、產(chǎn)品徽標(biāo)、公司徽標(biāo),或與特定產(chǎn)品、服務(wù)或組織相關(guān)聯(lián)的任何其它圖像。在一些實(shí)施方式中,登錄頁面分析系統(tǒng)204可以基于登錄頁面URL和/或該登錄頁面URL的域名來查詢數(shù)據(jù)庫以標(biāo)識徽標(biāo)圖像,使得可以通過指定URL容易地檢索到徽標(biāo)信息。
在一些實(shí)施方式中,諸如當(dāng)?shù)谌絻?nèi)容提供者正在利用內(nèi)容項(xiàng)生成系統(tǒng)120來獨(dú)立于內(nèi)容項(xiàng)請求而生成一個或多個內(nèi)容項(xiàng)時,第三方內(nèi)容提供者可以向內(nèi)容項(xiàng)生成系統(tǒng)120傳送內(nèi)容項(xiàng)數(shù)據(jù),使得登錄頁面分析系統(tǒng)204不分析與登錄頁面URL相關(guān)聯(lián)的資源來確定并且檢索內(nèi)容項(xiàng)數(shù)據(jù)。
仍然參考圖2,內(nèi)容項(xiàng)生成系統(tǒng)120從內(nèi)容項(xiàng)模板數(shù)據(jù)庫206接收一個或多個內(nèi)容項(xiàng)模板。內(nèi)容項(xiàng)模板定義元素以及要從內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)的元素的布置。在一些實(shí)施方式中,一個或多個內(nèi)容項(xiàng)模板可以是定義內(nèi)容項(xiàng)模板的一個或多個元素的約束XML配置文件。每個內(nèi)容項(xiàng)模板包括作為內(nèi)容項(xiàng)模板的所需元素的至少一個元素。此外,內(nèi)容項(xiàng)模板的每個元素包括索引值、元素名稱以及定義該元素相對于另一元素和/或相對于內(nèi)容項(xiàng)本身的布置的至少兩個錨(至少一個左部或右部錨以及至少一個頂部或底部錨)(例如,按鈕元素可以由相對于內(nèi)容項(xiàng)的右部邊緣的右部錨以及相對于內(nèi)容項(xiàng)的底部邊緣的底部錨來定義)。每個元素的索引值可以被用來對內(nèi)容項(xiàng)模板的元素進(jìn)行優(yōu)先級排序。將參考圖5至圖7C更詳細(xì)地描述內(nèi)容項(xiàng)模板和錨。
在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以從內(nèi)容項(xiàng)模板數(shù)據(jù)庫206中檢索內(nèi)容項(xiàng)模板中的全部作為內(nèi)容項(xiàng)模板的集合。在其它實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以對內(nèi)容項(xiàng)模板數(shù)據(jù)庫206的內(nèi)容項(xiàng)模板進(jìn)行過濾以得到內(nèi)容項(xiàng)模板的子集。
在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以使用第一尺寸值和第二尺寸值來確定內(nèi)容項(xiàng)模板的集合以生成內(nèi)容項(xiàng)。例如,如果第一尺寸值是580個像素(即,在寬度上為580個像素)并且第二尺寸值是100個像素(即,在高度上為100個像素),則具有垂直地堆疊的圖像、文本、徽標(biāo)以及按鈕元素(諸如圖14C至圖14D中所示)的內(nèi)容項(xiàng)模板可能不適合于這樣的尺寸。因此,內(nèi)容項(xiàng)生成系統(tǒng)120可以從自內(nèi)容項(xiàng)模板數(shù)據(jù)庫206中檢索到的內(nèi)容項(xiàng)模板的集合中排除這樣的內(nèi)容項(xiàng)模板。在一些實(shí)施方式中,內(nèi)容項(xiàng)模板可以用指示從內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)的最小和/或最大縱橫比的一個或多個值注解。內(nèi)容項(xiàng)生成系統(tǒng)120可以確定第一尺寸值與第二尺寸值的比,并且使用所確定的比來對所確定的比在最小縱橫比以下或者在最大縱橫比以上的內(nèi)容項(xiàng)模板進(jìn)行過濾。因此,可以排除對于第一尺寸值和第二尺寸值來說可能是不太有用的內(nèi)容項(xiàng)模板。
在一些實(shí)施方式中,除尺寸值過濾之外或者代替尺寸值過濾還可以基于內(nèi)容項(xiàng)數(shù)據(jù)對內(nèi)容項(xiàng)模板進(jìn)行過濾。例如,如果內(nèi)容項(xiàng)數(shù)據(jù)不包括文本數(shù)據(jù),則內(nèi)容項(xiàng)生成系統(tǒng)120可以僅檢索不包括文本元素的內(nèi)容項(xiàng)模板。內(nèi)容項(xiàng)模板可以用指示包括在內(nèi)容項(xiàng)模板中的元素的一個或多個值作注解以用于這樣的過濾。
使用內(nèi)容項(xiàng)生成數(shù)據(jù)、一個或多個內(nèi)容項(xiàng)模板的集合以及內(nèi)容項(xiàng)數(shù)據(jù),布局生成器200像在本文中更詳細(xì)地描述的那樣生成一個或多個內(nèi)容項(xiàng)。
參考圖3,布局生成器200包括布局解析器220、錨管理器222、一個或多個元素渲染器224、空間管理器226以及沖突解決器228。布局解析器220接收內(nèi)容項(xiàng)模板并且將該內(nèi)容項(xiàng)模板解析成一個或多個布局元素以及所述一個或多個布局元素的關(guān)聯(lián)數(shù)據(jù)(例如,錨數(shù)據(jù)、元素名稱、索引值、要求指示符等)。將參考圖5更詳細(xì)地描述布局解析器220。
錨管理器222接收一個或多個解析的布局元素的集合和關(guān)聯(lián)數(shù)據(jù)并且基于一個或多個元素的關(guān)聯(lián)數(shù)據(jù)、第一尺寸值和第二尺寸值以及內(nèi)容項(xiàng)數(shù)據(jù)針對一個或多個解析的布局元素的集合中的每一個元素確定占位符。占位符是元素能夠基于元素的錨、要生成的內(nèi)容項(xiàng)的尺寸以及要用來填充元素的內(nèi)容項(xiàng)數(shù)據(jù)在內(nèi)容項(xiàng)中占據(jù)的最大空間。因?yàn)橐恍┰乜梢曰阱^依賴于其它元素,所以錨管理器222執(zhí)行拓?fù)渑判蛞源_定用來針對一個或多個元素確定占位符的順序。也就是說,如果元素(諸如徽標(biāo)元素)包括參考另一元素(諸如按鈕元素)的錨,則可能需要在針對徽標(biāo)元素確定占位符之前確定按鈕元素的占位符。如果按鈕元素還包括至另一元素(諸如圖像元素)的錨,則可能需要在按鈕元素或徽標(biāo)元素的占位符中的任何一個之前確定圖像元素的占位符。因此,拓?fù)渑判虮粓?zhí)行來基于它們的錨依賴對布局元素進(jìn)行排序??梢允褂缅^管理器222來確定元素的排序列表的每個元素的占位符。錨管理器222將每個元素的占位符輸出到對應(yīng)的元素渲染器224。將參考圖6至圖7C更詳細(xì)地描述錨管理器222。
元素渲染器224接收每個對應(yīng)的元素的占位符并且針對每個元素基于占位符以及一個或多個錨的靈活性而確定初始空間分配。元素渲染器224可以包括圖像元素渲染器、文本元素渲染器以及按鈕元素渲染器。初始空間分配是元素能夠基于占位符在內(nèi)容項(xiàng)的布局中占據(jù)并且經(jīng)受該元素的一個或多個錨的靈活性的空間。在一些實(shí)施方式中,圖像分析器230(圖4中示出)可以被與圖像元素渲染器224一起用來確定圖像的突出部分并且/或者執(zhí)行對圖像的智能裁切以確定初始空間分配。將參考圖8更詳細(xì)地描述圖像渲染器224。
空間管理器226從一個或多個元素渲染器224接收初始空間分配并且針對所生成的內(nèi)容項(xiàng)的每個元素確定最終空間分配??臻g管理器226基于對應(yīng)的初始空間分配針對僅具有固定錨的每個元素確定最終空間分配,基于對應(yīng)的初始空間分配針對具有一個或多個靈活錨的每個元素確定最小空間分配,并且使用增長函數(shù)來修改具有一個或多個靈活錨的每個元素的空間分配以利用任何剩余的空間。將參考圖9至圖10B更詳細(xì)地描述空間管理器226。
沖突解決器228接收針對內(nèi)容項(xiàng)的一個或多個元素的最終空間分配并且基于最終空間分配而確定是否存在任何沖突。這樣的沖突可以包括元素的重疊、元素超出內(nèi)容項(xiàng)的尺寸的溢出、不足邊距、文本截斷和/或其它內(nèi)容項(xiàng)模板特定沖突。如果存在沖突,則沖突解決器228可以從一個或多個元素的集合中消除一個元素并且將元素的新集合返回給錨管理器222以基于元素的新集合而確定占位符。被從一個或多個元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素對于內(nèi)容項(xiàng)模板而言在重要性方面較低的最高索引值的元素)。在一些實(shí)施方式中,如果被確定要移除的元素被指示為所需元素,則沖突解決器228可以向布局解析器220發(fā)送數(shù)據(jù)以解析來自內(nèi)容項(xiàng)模板的集合中的新內(nèi)容項(xiàng)模板,或者沖突解決器228可以停止內(nèi)容項(xiàng)的生成并且輸出錯誤(例如,如果沒有可以使用的其它內(nèi)容項(xiàng)模板的話)。在一些實(shí)施方式中,沖突解決器228可以從沖突系統(tǒng)232(圖4中示出)接收針對沖突的一個或多個規(guī)則。沖突系統(tǒng)232可以包括用于基于內(nèi)容項(xiàng)大小而定義每個元素所需的邊距的邊距定義符。沖突系統(tǒng)232還可以包括基于內(nèi)容項(xiàng)大小和/或其它內(nèi)容項(xiàng)模板特定沖突規(guī)則而定義何時可能發(fā)生文本截斷的沖突規(guī)則。
圖4描繪圖2的布局生成器200和計分器208的過程流程的實(shí)施方式的過程圖的概述。將參考圖5至圖11更詳細(xì)地描述該過程流程的細(xì)節(jié)。
參考圖5,布局解析器220從內(nèi)容項(xiàng)模板數(shù)據(jù)庫206接收一個或多個布局模板的集合。內(nèi)容項(xiàng)模板定義一個或多個元素以及要從該內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)的一個或多個元素的布置。在一些實(shí)施方式中,所述一個或多個內(nèi)容項(xiàng)模板可以是定義對應(yīng)的內(nèi)容項(xiàng)模板的一個或多個元素的約束XML配置文件。在其它實(shí)施方式中,其它標(biāo)記語言可以被用于所述一個或多個內(nèi)容項(xiàng)模板。每個內(nèi)容項(xiàng)模板包括作為該內(nèi)容項(xiàng)模板的所需元素的至少一個元素。此外,內(nèi)容項(xiàng)模板的每個元素包括索引值、元素名稱以及定義該元素相對于另一元素和/或相對于內(nèi)容項(xiàng)本身的布置的至少兩個錨。每個元素的索引值可以被用來對內(nèi)容項(xiàng)模板的元素進(jìn)行優(yōu)先級排序。
針對網(wǎng)幅型內(nèi)容項(xiàng)的內(nèi)容項(xiàng)模板XML配置文件的實(shí)施方式可以包括產(chǎn)品圖像元素、按鈕元素、徽標(biāo)元素和標(biāo)題元素的元素。這樣的內(nèi)容項(xiàng)模板XML配置文件可以由下列定義:
可以基于上述內(nèi)容項(xiàng)模板XML配置文件來生成圖14A至圖14B中所示的內(nèi)容項(xiàng)900、920。布局解析器220可以接收內(nèi)容項(xiàng)模板XML配置文件并且將該文件解析成四個元素:產(chǎn)品圖像元素、按鈕元素、徽標(biāo)元素和標(biāo)題元素。布局解析器220還可以解析元素名稱、索引值、關(guān)聯(lián)錨和/或元素是否是需要的。布局解析器220然后將解析的布局元素的集合和關(guān)聯(lián)數(shù)據(jù)發(fā)送到錨管理器222。
參考圖6,錨管理器222接收解析的布局元素的集合和關(guān)聯(lián)數(shù)據(jù)、第一尺寸值和第二尺寸值以及內(nèi)容項(xiàng)數(shù)據(jù)。錨管理器222被配置成基于一個或多個元素的關(guān)聯(lián)數(shù)據(jù)、第一尺寸值和第二尺寸值以及內(nèi)容項(xiàng)數(shù)據(jù)而針對一個或多個解析的布局元素中的每一個確定占位符。占位符是元素能夠在內(nèi)容項(xiàng)中占據(jù)的最大空間。因?yàn)橐恍┰乜梢曰阱^依賴于其它元素,所以錨管理器222執(zhí)行拓?fù)渑判蛞源_定用來針對一個或多個元素確定占位符的順序。也就是說,如果元素(諸如徽標(biāo)元素)包括參考另一元素(諸如按鈕元素)的錨,則可能需要在針對徽標(biāo)元素確定占位符之前確定按鈕元素的占位符。在一些實(shí)例中,拓?fù)渑判蜻€可以利用用來確定哪一個占位符的索引值來確定兩個或更多個元素不依賴于其它元素還是依賴于已經(jīng)針對其確定了占位符的元素。
錨被用來描述內(nèi)容項(xiàng)模板的兩個元素之間或者一個元素與要從內(nèi)容項(xiàng)模板生成的內(nèi)容項(xiàng)之間的關(guān)系。錨由基準(zhǔn)(例如,另一元素或內(nèi)容項(xiàng)本身)、距離(例如,固定距離,諸如像素(px),或基準(zhǔn)的相對大小,諸如內(nèi)容項(xiàng)的大小的10%)、類型(例如,元素的邊緣,從該邊緣測量到基準(zhǔn)的距離,諸如頂部、底部、左部或右部)以及靈活性指示符(即,指示錨的位置是可變的還是固定的值)來定義。在一些實(shí)施方式中,如果靈活性指示符被省略,則錨缺省為固定錨。如果錨是固定的,則即使元素與另一元素重疊、超過內(nèi)容項(xiàng)的尺寸大小等也不能夠修改該錨。在這樣的實(shí)例中,沖突解決器228將檢測沖突,如將參考圖11在下面更詳細(xì)地描述的。如果錨是靈活錨,則針對元素的空間分配的那側(cè)可以在大小上變化。例如,如果內(nèi)容項(xiàng)模板包括徽標(biāo)元素的皆為靈活的兩個錨(例如,左部錨和右部錨),則,如將參考空間管理器226稍后更詳細(xì)地討論的,空間管理器226將增加徽標(biāo)的空間分配以適配徽標(biāo)元素的占位符可能的最大寬度。如果空間管理器226不能夠?qū)⒒諛?biāo)的空間分配增加到徽標(biāo)的占位符的最大寬度,則空間管理器226將徽標(biāo)元素適配在占位符的中心并且將額外空間返回給緩沖器用于內(nèi)容項(xiàng)的其它元素。
圖7A至圖7C描繪包括按鈕元素310的內(nèi)容項(xiàng)300的圖示,該按鈕元素具有以由第一錨和第二錨所定義的內(nèi)容項(xiàng)300的布局的布置。第一錨320的表示以及第二錨330的表示被示出。如果第一錨由以下項(xiàng)定義:
anchor reference=“contentitem”type=“right”distance=“10px”
則按鈕元素310的右側(cè)被定位為離內(nèi)容項(xiàng)100的右側(cè)10個像素。參考圖7B,如果內(nèi)容項(xiàng)300在大小上減小,則即使內(nèi)容項(xiàng)大小改變了,按鈕元素310的右側(cè)也保持離內(nèi)容項(xiàng)300的右側(cè)10個像素。如果右部錨替代地由以下項(xiàng)定義:
anchor reference=“contentitem”type=“right”distance=“0.2”
則按鈕元素310的右側(cè)被定位在離內(nèi)容項(xiàng)300的右側(cè)內(nèi)容項(xiàng)300的大小的距離20%處。參考圖7C,如果內(nèi)容項(xiàng)300在大小上類似地減小,則按鈕元素310的右側(cè)的距離從內(nèi)容項(xiàng)300的右側(cè)類似地減小以維持20%距離。
返回參考圖6并且參考針對以上網(wǎng)幅型內(nèi)容項(xiàng)的內(nèi)容項(xiàng)模板XML配置文件的實(shí)施方式,經(jīng)解析的產(chǎn)品圖像元素包括名稱“productimage”、索引值1以及指示產(chǎn)品圖像元素是內(nèi)容項(xiàng)模板所需要的布爾值。針對內(nèi)容項(xiàng)模板的經(jīng)解析的產(chǎn)品圖像元素布置由三個錨定義。第一錨具有對內(nèi)容項(xiàng)本身的參考,具有左部的類型以及零個像素的距離。因此,產(chǎn)品圖像元素的左側(cè)被“錨定”到內(nèi)容項(xiàng)的左側(cè)。類似地,第二錨具有對內(nèi)容項(xiàng)本身的參考,具有頂部的類型以及零個像素的距離。因此,產(chǎn)品圖像元素的頂側(cè)被“錨定”到內(nèi)容項(xiàng)的頂側(cè)。第三錨具有對內(nèi)容項(xiàng)本身的參考,具有底部的類型以及零個像素的距離。因此,產(chǎn)品圖像元素的底側(cè)被“錨定”到內(nèi)容項(xiàng)的底側(cè)。產(chǎn)品圖像元素不包括右側(cè)錨,所以產(chǎn)品圖像元素的右側(cè)的位置依賴于來自內(nèi)容項(xiàng)數(shù)據(jù)的圖像數(shù)據(jù)。
經(jīng)解析的按鈕元素包括名稱“按鈕”和索引值3。按鈕元素是不需要的,因?yàn)椴紶栔滴粗甘驹摪粹o元素是需要的。也就是說,如果值未指示元素是需要的,則該元素缺省為不需要的元素。針對內(nèi)容項(xiàng)模板的按鈕元素布置由兩個錨定義。第一錨具有對經(jīng)解析的徽標(biāo)元素的參考,具有右部的類型以及20個像素的距離。因此,按鈕元素的右側(cè)被“錨定”在離徽標(biāo)元素20個像素的按鈕元素的右側(cè)。第二錨具有對內(nèi)容項(xiàng)本身的參考,具有底部的類型以及20個像素的距離。因此,按鈕元素的底側(cè)被“錨定”在離內(nèi)容項(xiàng)的底部20個像素的按鈕元素的底側(cè)。按鈕元素不包括左側(cè)錨或頂側(cè)錨。
經(jīng)解析的徽標(biāo)元素包括名稱“徽標(biāo)”和索引值4。徽標(biāo)元素是不需要的,因?yàn)椴紶栔滴粗甘驹摶諛?biāo)元素是需要的。針對內(nèi)容項(xiàng)模板的徽標(biāo)元素布置由兩個錨定義。第一錨具有對內(nèi)容項(xiàng)本身的參考,具有右部的類型以及20個像素的距離。因此,徽標(biāo)元素的右側(cè)被“錨定”在離內(nèi)容項(xiàng)的右側(cè)20個像素的右側(cè)。類似地,第二錨具有對內(nèi)容項(xiàng)本身的參考,具有底部的類型以及20個像素的距離。因此,徽標(biāo)元素的底側(cè)被“錨定”在離內(nèi)容項(xiàng)的底側(cè)20個像素的底側(cè)。徽標(biāo)元素不包括左側(cè)錨或頂側(cè)錨。
經(jīng)解析的標(biāo)題元素包括名稱“標(biāo)題”和索引值2。標(biāo)題元素是不需要的,因?yàn)椴紶栔滴粗甘驹摌?biāo)題元素是需要的。針對內(nèi)容項(xiàng)模板的經(jīng)解析的標(biāo)題元素布置由四個錨定義。第一錨具有對產(chǎn)品圖像元素的參考,具有左部的類型以及10個像素的距離。因此,標(biāo)題元素的左側(cè)被“錨定”在離產(chǎn)品圖像元素的左側(cè)10個像素的左側(cè)。第二錨具有對徽標(biāo)元素的參考,具有底部的類型以及10個像素的距離。因此,標(biāo)題元素的底側(cè)被“錨定”在離徽標(biāo)元素的頂側(cè)10個像素的底側(cè)。第三錨具有對內(nèi)容項(xiàng)本身的參考,具有右部的類型以及10個像素的距離。因此,標(biāo)題元素的右側(cè)被“錨定”在離內(nèi)容項(xiàng)的右側(cè)10個像素的右側(cè)。第四錨具有對內(nèi)容項(xiàng)本身的參考,具有頂部的類型以及10個像素的距離。因此,標(biāo)題元素的頂側(cè)被“錨定”在離內(nèi)容項(xiàng)的頂側(cè)10個像素的頂側(cè)。
基于對錨的依賴,由錨管理器222執(zhí)行的拓?fù)渑判蚩梢源_定可以首先基于產(chǎn)品圖像元素的索引值而確定產(chǎn)品圖像元素占位符??梢云浯位谙鄬τ诋a(chǎn)品圖像元素索引值的較高索引值而確定徽標(biāo)元素占位符。可以第三基于相對于按鈕元素索引值的較高索引值而確定標(biāo)題元素占位符。最后,可以第四確定按鈕元素占位符。
錨管理器222可以基于拓?fù)渑判蚨槍γ總€元素確定占位符。對于要生成的具有寬200個像素的第一尺寸值和高200個像素的第二尺寸值的內(nèi)容項(xiàng)并且產(chǎn)品圖像元素的圖像數(shù)據(jù)具有寬100個像素乘高200個像素的尺寸,那么錨管理器222能夠?qū)a(chǎn)品圖像元素的占位符確定為{左部:0,頂部:0,底部:200,右部:100}。如果徽標(biāo)圖像元素的圖像數(shù)據(jù)具有寬30個像素乘高30個像素的尺寸,則錨管理器222能夠?qū)⒒諛?biāo)圖像元素的占位符確定為{左部:150,頂部:150,底部:180,右部:180}。錨管理器222能夠?qū)?biāo)題元素的占位符確定為{左部:110,頂部:10,底部:140,右部:190}。最后,如果200像素乘200像素內(nèi)容項(xiàng)的按鈕是30像素乘20像素按鈕,則錨管理器222能夠?qū)粹o元素的占位符確定為{左部:130,頂部:160,底部:180,右部:130}。錨管理器222將每個元素的所生成的占位符輸出到對應(yīng)的元素渲染器224。
參考圖8,元素渲染器224從錨管理器222接收每個對應(yīng)的元素的占位符并且針對每個元素基于占位符和/或一個或多個錨的靈活性來確定初始空間分配。元素渲染器224可以包括圖像元素渲染器、文本元素渲染器以及按鈕元素渲染器。
可以針對內(nèi)容項(xiàng)模板的每個圖像元素分配圖像元素渲染器224。圖像元素渲染器224針對內(nèi)容項(xiàng)的對應(yīng)的圖像元素確定初始空間分配。如果圖像元素的所有錨是固定的,則圖像元素渲染器224將確定初始空間分配與占位符相同并且圖像元素的圖像將落在初始空間分配的區(qū)域中。
如果圖像元素的一個或多個錨是靈活的并且一個或多個錨是固定的,則將基于圖像元素的圖像的原始縱橫比和大小而確定初始空間分配。例如,圖像渲染器224可以將圖像的縱橫比的改變限于預(yù)定范圍,諸如0.8(內(nèi)含)至1.25(內(nèi)含)。例如,如果圖像元素具有{左部:0,頂部:0,底部:200,右部:100}的占位符并且右部錨是靈活的,則可以將初始空間分配確定為{左部:0,頂部:0,底部:200,右部:[80,125]},其中寬度可以是80個像素(內(nèi)含)至125個像素(內(nèi)含)的范圍。對于最終空間分配,圖像元素的右側(cè)的最終寬度值或位置可以隨后由空間管理器226確定。
如果圖像元素的錨是靈活的,則初始空間分配可以包括用于定義圖像元素的位置的范圍并且圖像被定位在初始空間分配的中心。
可以針對內(nèi)容項(xiàng)模板的每個文本元素分配文本元素渲染器224。文本元素渲染器224針對內(nèi)容項(xiàng)模板的對應(yīng)的文本元素確定初始空間分配。如果文本元素的所有錨是固定的,則針對文本元素的初始空間分配與文本元素的對應(yīng)的占位符相同。如果文本元素的一個或多個錨是靈活的,則所確定的初始空間分配可以包括基于最小字體大小和最大字體大小的范圍。最小字體大小和最大字體大小可以基于要生成的內(nèi)容項(xiàng)的大小。
可以針對內(nèi)容項(xiàng)模板的每個按鈕元素分配按鈕元素渲染器224。按鈕元素渲染器224針對內(nèi)容項(xiàng)模板的對應(yīng)的按鈕元素確定初始空間分配。在一些實(shí)施方式中,按鈕的占位符、初始空間分配和最終空間分配可以是基于第一尺寸值和第二尺寸值的相同的預(yù)定大小(例如,可以使用按鈕的預(yù)定大小)。在其它實(shí)施方式中,如果按鈕元素的所有錨是固定的,則針對按鈕元素的初始空間分配與按鈕元素的對應(yīng)的占位符相同。如果按鈕元素的一個或多個錨是靈活的,則所確定的初始空間分配的靈活尺寸可以隨著其它元素(諸如圖像元素或文本元素)中的一個或多個的靈活尺寸而線性地縮放。
可以將針對內(nèi)容項(xiàng)模板的每個元素的初始空間分配發(fā)送到空間管理器226以針對要生成的內(nèi)容項(xiàng)確定最終空間分配。
參考圖9,空間管理器226從元素渲染器224接收初始空間分配以針對每個元素確定最終空間分配。對于具有固定初始空間分配{例如,沒有范圍的{左部:0,頂部:0,底部:100,右部:100})的每個元素,空間管理器226將最終空間分配確定為與對應(yīng)的初始空間分配相同。對于具有靈活錨的每個元素,空間管理器226基于對應(yīng)的一個或多個初始空間分配最小范圍值而針對每個元素確定最小空間分配并且然后使用增長模塊250的增長函數(shù)來修改每個元素的空間分配以利用任何剩余的空間。也就是說,如果所有元素適配于對應(yīng)的初始空間分配的最小范圍值,則空間管理器226針對每個元素使用增長模塊250的增長函數(shù)以每次迭代將具有靈活錨的每個元素的空間分配的尺寸遞增一個像素,直到空間分配的尺寸不能夠進(jìn)一步遞增而不與另一元素重疊為止。增長函數(shù)可以基于元素的索引值和元素的類型而依次遞增每個元素。也就是說,增長函數(shù)首先將遞增帶有具有最低索引值的靈活錨的元素的尺寸,然后遞增具有次最低索引值的元素的尺寸等,直到具有靈活錨的所有元素已被遞增為止。在一些實(shí)施方式中,如果索引值是相等的,則增長函數(shù)可以相比于文本元素而優(yōu)先遞增圖像元素并且相比于按鈕元素而優(yōu)先遞增文本元素。增長函數(shù)迭代具有靈活錨的元素,直到空間分配的尺寸不能夠進(jìn)一步遞增而不與另一元素重疊為止。
圖10A至圖10B描繪針對具有兩個元素(圖像元素410和文本元素420)的內(nèi)容項(xiàng)400的增長模塊250的增長函數(shù)的應(yīng)用。圖像元素410包括靈活右部錨并且文本元素420包括靈活左部錨和靈活右部錨。對于要生成的具有寬250個像素的第一尺寸值以及高100個像素的第二尺寸值的內(nèi)容項(xiàng)400,由圖像元素渲染器224為圖像元素410而確定的初始空間分配可以是{左部:0,頂部:0,底部:100,右部:[100,120]}并且由文本元素渲染器224為文本元素420而確定的初始空間分配可以是{左部:[120-140],頂部:0,底部:100,右部:[230,250]}。圖10A描繪針對離由圖像元素渲染器224所確定的對應(yīng)的初始空間分配為100的最小右部范圍值而定位在內(nèi)容項(xiàng)400中的圖像元素410以及針對離由文本元素渲染器224所確定的對應(yīng)的初始空間分配為140的最小左部范圍值和為230的最小右部范圍值而定位在內(nèi)容項(xiàng)400中的文本元素420。應(yīng)用增長模塊250的增長函數(shù),圖像元素的右部范圍值可以遞增一個像素至101的值,文本元素420的左部范圍值可以遞增一個像素至139的值,并且文本元素420的右部范圍值可以遞增一個像素至231的值。如圖10B中所示,增長函數(shù)可以迭代每個單像素遞增直到針對圖像元素410的最終空間分配是{左部:0,頂部:0,底部:100,右部:120}并且針對文本元素420的最終空間分配是{左部:120,頂部:0,底部:100,右部:250}為止。
一旦針對一個或多個元素的最終空間分配已由空間管理器226確定,最終空間分配就被發(fā)送到?jīng)_突解決器228。
參考圖11,沖突解決器228接收最終空間分配并且基于最終空間分配而確定是否存在任何沖突。這樣的沖突可以包括元素的重疊、元素超出內(nèi)容項(xiàng)的尺寸的溢出、不足邊距、文本截斷和/或其它內(nèi)容項(xiàng)模板特定沖突。沖突解決器228可以對每個最終空間分配的值進(jìn)行比較以確定一個元素的最終空間分配的一部分是否與另一元素的最終空間分配的一部分重疊。沖突解決器228可以將每個最終空間分配的值與第一尺寸值和第二尺寸值進(jìn)行比較,以確定最終空間分配是否超過要生成的內(nèi)容項(xiàng)的尺寸值而使得元素溢出內(nèi)容項(xiàng)的尺寸。在一些實(shí)施方式中,沖突解決器228可以將一個或多個邊距值添加到最終空間分配并且對最終邊距增加的空間分配進(jìn)行比較以確定是否存在不足邊距。在一些實(shí)例中,沖突解決器228可以基于內(nèi)容項(xiàng)大小從沖突系統(tǒng)232(圖4中示出)接收計算出的邊距值。在仍然另外的實(shí)施方式中,沖突解決器228可以確定文本元素中的一個或多個詞是否被截斷。在仍然其它的實(shí)施方式中,沖突解決器228可以應(yīng)用從沖突系統(tǒng)232接收到的其它內(nèi)容項(xiàng)模板特定規(guī)則。
如果存在沖突,則沖突解決器228可以從一個或多個元素的集合中消除一個元素并且將元素的新縮減集合返回給錨管理器222以基于元素的新集合確定占位符。被從一個或多個元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素對于內(nèi)容項(xiàng)模板而言在重要性方面較低的最高索引值的元素)。在一些實(shí)施方式中,如果被確定要移除的元素被指示為所需元素,則沖突解決器228可以向布局解析器220發(fā)送數(shù)據(jù)以解析來自內(nèi)容項(xiàng)模板的集合中的新內(nèi)容項(xiàng)模板,或者沖突解決器228可以停止內(nèi)容項(xiàng)的生成并且輸出錯誤(例如,如果沒有可以使用的其它內(nèi)容項(xiàng)模板的話)。
如果不存在沖突,則沖突解決器228可以將內(nèi)容項(xiàng)的數(shù)據(jù)和最終空間分配傳遞給計分器208。計分器208可以基于最終空間分配而確定內(nèi)容項(xiàng)的分?jǐn)?shù)。內(nèi)容項(xiàng)的分?jǐn)?shù)可以基于與內(nèi)容項(xiàng)模板的元素的數(shù)量相比所生成的內(nèi)容項(xiàng)中的元素的數(shù)量(例如,如果內(nèi)容項(xiàng)模板具有4個元素并且所生成的內(nèi)容項(xiàng)由于沖突而僅能夠使用3個元素,則可以減小分?jǐn)?shù))、未用像素的數(shù)量(例如,由元素占據(jù)的總像素除以內(nèi)容項(xiàng)的總像素)、每條垂直或水平線的未用像素的平均數(shù)量和/或針對一個或多個元素的加權(quán)(例如,與具有較低加權(quán)的消除的文本元素相比,消除的圖像元素可以具有較高的加權(quán),導(dǎo)致較低分?jǐn)?shù))。
可以針對來自內(nèi)容項(xiàng)模板的集合的數(shù)個內(nèi)容項(xiàng)模板來執(zhí)行內(nèi)容項(xiàng)和元素的布局的過程并且可以確定每個生成的內(nèi)容項(xiàng)布局的分?jǐn)?shù)。在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120可以排名分?jǐn)?shù)并且選擇得分最高的所生成的內(nèi)容項(xiàng)。在一些實(shí)施方式中,內(nèi)容項(xiàng)生成系統(tǒng)120向內(nèi)容項(xiàng)請求方202或者向要存儲的內(nèi)容項(xiàng)數(shù)據(jù)庫210輸出用于顯示所選擇的得分最高的所生成的內(nèi)容項(xiàng)的數(shù)據(jù)。
圖12描繪由內(nèi)容項(xiàng)生成系統(tǒng)120所實(shí)現(xiàn)的用于基于登錄頁面URL、第一尺寸值和第二尺寸值來生成內(nèi)容項(xiàng)的過程500的實(shí)施方式。過程500包括接收登錄頁面URL、第一尺寸值和第二尺寸值(塊502)??梢詮目蛻舳搜b置、第一方內(nèi)容提供者或第三方內(nèi)容提供者接收登錄頁面URL、第一尺寸值和第二尺寸值。在一些實(shí)例中,可以響應(yīng)于客戶端裝置請求第一方內(nèi)容提供者的具有內(nèi)容項(xiàng)位的資源而從客戶端裝置接收第一尺寸值和第二尺寸值。在其它實(shí)施方式中,可以響應(yīng)于客戶端裝置請求第一方內(nèi)容提供者的具有內(nèi)容項(xiàng)位的資源而從第一方內(nèi)容提供者接收第一尺寸值和第二尺寸值。在一些實(shí)施方式中,可以獨(dú)立于客戶端裝置請求資源而從第三方內(nèi)容提供者接收登錄頁面URL、第一尺寸值和第二尺寸值。例如,第三方內(nèi)容提供者可以利用內(nèi)容項(xiàng)生成系統(tǒng)提供者生成要存儲在數(shù)據(jù)庫中并響應(yīng)于來自客戶端裝置或第一方內(nèi)容提供者的后續(xù)內(nèi)容項(xiàng)請求而派發(fā)的不同大小的內(nèi)容項(xiàng)。內(nèi)容項(xiàng)數(shù)據(jù)可以由登錄頁面分析系統(tǒng)根據(jù)登錄頁面URL確定。
過程500還可以包括接收具有元素集合的內(nèi)容項(xiàng)模板(塊504)。內(nèi)容項(xiàng)生成系統(tǒng)可以從內(nèi)容項(xiàng)模板數(shù)據(jù)庫中檢索內(nèi)容項(xiàng)模板中的全部,因?yàn)榭梢詮膬?nèi)容項(xiàng)模板數(shù)據(jù)庫中檢索內(nèi)容項(xiàng)模板的集合或內(nèi)容項(xiàng)模板的子集。在仍然另外的實(shí)施方式中,可以從數(shù)據(jù)庫中檢索或者從第三方內(nèi)容提供者接收選擇的內(nèi)容項(xiàng)模板。
過程500還可以包括針對每個元素生成占位符(塊506)。每個元素的所生成的占位符可以由錨管理器基于一個或多個元素的關(guān)聯(lián)數(shù)據(jù)(諸如錨)、第一尺寸值和第二尺寸值以及內(nèi)容項(xiàng)數(shù)據(jù)而生成。
過程500還包括基于所生成的占位符而針對每個元素確定空間分配(塊508)。在一些實(shí)施方式中,初始空間分配可以由元素渲染器使用每個元素的占位符并且在一些實(shí)例中使用每個元素的一個或多個錨的靈活來確定。最終空間分配可以由空間管理器確定。最終空間分配可以包括使用增長函數(shù)來遞增針對具有靈活錨的一個或多個元素的最小初始空間分配的尺寸。
過程500包括基于針對每個元素所確定的空間分配而確定是否存在沖突(塊510)。沖突解決器可以確定是否存在重疊沖突、溢出沖突、不足邊距沖突、文本截斷沖突和/或其它內(nèi)容項(xiàng)模板特定沖突。如果存在沖突,則沖突解決器可以從一個或多個元素的集合中消除一個元素并且將元素的新集合返回給錨管理器以基于元素的新集合確定占位符。被從一個或多個元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素對于內(nèi)容項(xiàng)模板而言在重要性方面較低的最高索引值的元素)。在一些實(shí)施方式中,如果被確定要移除的元素被指示為所需元素,則沖突解決器可以向布局解析器發(fā)送數(shù)據(jù)以解析來自內(nèi)容項(xiàng)模板的集合中的新內(nèi)容項(xiàng)模板或者沖突解決器可以停止內(nèi)容項(xiàng)的生成并且輸出錯誤(例如,如果沒有可以使用的其它內(nèi)容項(xiàng)模板的話)。
過程500還包括響應(yīng)于確定不存在沖突而使用基于登錄頁面URL和所確定的空間分配的數(shù)據(jù)來生成內(nèi)容項(xiàng)(塊512)。
在一些實(shí)施方式中,過程500還可以包括確定所生成的內(nèi)容項(xiàng)的分?jǐn)?shù)(塊514)。所生成的內(nèi)容項(xiàng)的分?jǐn)?shù)可以基于與內(nèi)容項(xiàng)模板的元素的數(shù)量相比所生成的內(nèi)容項(xiàng)中的元素的數(shù)量、未用像素的數(shù)量、每條垂直或水平線的未用像素的平均數(shù)量和/或針對一個或多個元素的加權(quán)。
在一些另外的實(shí)施方式中,過程500可以仍然進(jìn)一步包括輸出用于顯示所生成的內(nèi)容項(xiàng)的數(shù)據(jù)(塊516)。在一些實(shí)施方式中,可以響應(yīng)于來自客戶端裝置的請求而將用于顯示所生成的內(nèi)容項(xiàng)的數(shù)據(jù)傳送到客戶端裝置。在其它實(shí)施方式中,可以將用于顯示所生成的內(nèi)容項(xiàng)的數(shù)據(jù)輸出到數(shù)據(jù)庫以存儲所生成的內(nèi)容項(xiàng)。
在一些實(shí)施方式中,過程500的時間復(fù)雜性可以是M*N^2,其中M是內(nèi)容項(xiàng)模板的數(shù)量并且N是元素的數(shù)量。
圖13描繪與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源600的示例。登錄頁面資源600包括徽標(biāo)圖像602、文本部分604、606、608、610、612、圖像614、616、618、620、622、624、626以及菜單部分628。在一些實(shí)施方式中,登錄頁面分析系統(tǒng)204可以包括能夠解釋與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源600并且創(chuàng)建其可視表示(例如,圖像、顯示等)的資源渲染器。資源渲染器可以創(chuàng)建與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源600的“快照圖像”并且/或者構(gòu)建表示與登錄頁面URL相關(guān)聯(lián)的登錄頁面資源600的各種組件的文檔對象模型(DOM)樹。在一些實(shí)施方式中,登錄頁面分析系統(tǒng)204可以提取包括徽標(biāo)圖像602、文本部分604和圖像614的內(nèi)容項(xiàng)數(shù)據(jù)。
圖14A至圖15B描繪使用內(nèi)容項(xiàng)模板、第一尺寸值和第二尺寸值的任意尺寸值以及從登錄頁面資源600中所提取的內(nèi)容項(xiàng)數(shù)據(jù)的所生成的內(nèi)容項(xiàng)的實(shí)施方式。圖14A描繪具有680個像素的第一尺寸值以及160個像素的第二尺寸值并且使用第一內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)700。所生成的內(nèi)容項(xiàng)700包括徽標(biāo)圖像602、文本部分604、圖像614和按鈕702。圖14B描繪具有580個像素的第一尺寸值以及250個像素的第二尺寸值并且使用第一內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)710。所生成的內(nèi)容項(xiàng)710包括徽標(biāo)圖像602、文本部分604、圖像614和按鈕702。圖15A描繪具有380個像素的第一尺寸值以及350個像素的第二尺寸值并且使用第二內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)800。所生成的內(nèi)容項(xiàng)800包括徽標(biāo)圖像602、文本部分604、圖像614和按鈕702。圖15B描繪具有280個像素的第一尺寸值以及450個像素的第二尺寸值并且使用第二內(nèi)容項(xiàng)模板的所生成的內(nèi)容項(xiàng)810。所生成的內(nèi)容項(xiàng)810包括徽標(biāo)圖像602、文本部分604、圖像614和按鈕702。
圖16是能夠被用來實(shí)現(xiàn)客戶端裝置110、內(nèi)容項(xiàng)選擇系統(tǒng)108、第三方內(nèi)容服務(wù)器102、資源服務(wù)器104等的計算機(jī)系統(tǒng)900的框圖。計算系統(tǒng)900包括用于傳達(dá)信息的總線905或其它通信組件以及耦合到總線905以用于處理信息的處理器910。計算系統(tǒng)900還能夠包括耦合到總線以用于處理信息的一個或多個處理器910。計算系統(tǒng)900還包括耦接到總線905以用于存儲信息以及要由處理器910執(zhí)行的指令的主存儲器915,諸如RAM或其它動態(tài)存儲裝置。主存儲器915還能夠被用于存儲位置信息、臨時變量或在由處理器910執(zhí)行指令期間的其它中間信息。計算系統(tǒng)900還可以包括耦接到總線905以用于為處理器910存儲靜態(tài)信息和指令的ROM 920或其它靜態(tài)存儲裝置。存儲裝置925(諸如固態(tài)裝置、磁盤或光盤)耦接到總線905以便永久地存儲信息和指令。計算裝置900可以包括但不限于數(shù)字計算機(jī),諸如膝上型電腦、臺式電腦、工作站、個人數(shù)字助理、服務(wù)器、刀片服務(wù)器、主機(jī)、蜂窩電話、智能電話、移動計算裝置(例如,筆記本、電子閱讀器等)等。
計算系統(tǒng)900可以經(jīng)由總線905耦接到顯示器935,諸如液晶顯示器(LCD)、薄膜晶體管LCD(TFT)、有機(jī)發(fā)光二極管(OLED)顯示器、LED顯示器、電子紙顯示器、等離子體顯示面板(PDP)和/或其它顯示器等,以用于向用戶顯示信息。輸入裝置930(諸如包括字母數(shù)字鍵和其它鍵的鍵盤)可以耦接到總線905以便向處理器910傳達(dá)信息和命令選擇。在另一實(shí)施方式中,輸入裝置930可以與顯示器935集成在一起,諸如在觸摸屏顯示器中。輸入裝置930可以包括光標(biāo)控件,諸如鼠標(biāo)、軌跡球或光標(biāo)方向鍵,以用于向處理器910傳達(dá)方向信息和命令選擇并且以用于控制光標(biāo)在顯示器935上的移動。
根據(jù)各種實(shí)施方式,能夠由計算系統(tǒng)900響應(yīng)于處理器910執(zhí)行包含在主存儲器915中的指令的布置而實(shí)現(xiàn)本文中所描述的過程和/或方法。能夠從另一計算機(jī)可讀介質(zhì)(諸如存儲裝置925)將這樣的指令讀取到主存儲器915中。包含在主存儲器915中的指令的布置的執(zhí)行使計算系統(tǒng)900執(zhí)行本文中所描述的說明性過程和/或方法步驟。還可以采用多處理布置中的一個或多個處理器來執(zhí)行包含在主存儲器915中的指令。在替代實(shí)施方式中,可以代替或者與軟件指令相結(jié)合地使用硬連線電路來實(shí)現(xiàn)說明性實(shí)施方式。因此,實(shí)施方式不限于硬件電路和軟件的任何特定組合。
盡管已經(jīng)參考圖16描述了計算系統(tǒng)900的實(shí)施方式,但是本說明書中所描述的主題和功能操作的實(shí)施方式能夠用其它類型的數(shù)字電子電路或者用計算機(jī)軟件、固件或硬件(包括本說明書中所公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物)或者用它們中的一個或多個的組合加以實(shí)現(xiàn)。
本說明書中所描述的主題和操作的實(shí)施方式能夠用數(shù)字電子電路或者用被具體化在有形介質(zhì)上的計算機(jī)軟件、固件或硬件(包括本說明書中所公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物)或者用它們中的一個或多個的組合加以實(shí)現(xiàn)。本說明書中所描述的主題能夠作為被編碼在一個或多個計算機(jī)存儲介質(zhì)上以用于由數(shù)據(jù)處理設(shè)備執(zhí)行或者控制數(shù)據(jù)處理設(shè)備的操作的一個或多個計算機(jī)程序(即,計算機(jī)程序指令的一個或多個模塊)被實(shí)現(xiàn)??商孢x地或此外,能夠?qū)⒊绦蛑噶罹幋a在人工生成的傳播信號(例如,被生成來對信息進(jìn)行編碼以便傳輸?shù)竭m合的接收器設(shè)備以用于由數(shù)據(jù)處理設(shè)備執(zhí)行的機(jī)器生成的電、光學(xué)或電磁信號)上。計算機(jī)存儲介質(zhì)可以是或者被包括在計算機(jī)可讀存儲裝置、計算機(jī)可讀存儲基板、隨機(jī)或串行存取存儲器陣列或裝置或者它們中的一個或多個的組合中。而且,雖然計算機(jī)存儲介質(zhì)不是傳播信號,但是計算機(jī)存儲介質(zhì)可以是被編碼在人工生成的傳播信號中的計算機(jī)程序指令的源或目的地。計算機(jī)存儲介質(zhì)還可以是或者被包括在一個或多個單獨(dú)的組件或介質(zhì)(例如,多個CD、磁盤或其它存儲裝置)中。因此,計算機(jī)存儲介質(zhì)是既有形的又非暫時性的。
能夠通過數(shù)據(jù)處理設(shè)備對存儲在一個或多個計算機(jī)可讀存儲裝置上或者從其它源接收的數(shù)據(jù)執(zhí)行本說明書中所描述的操作。
術(shù)語“數(shù)據(jù)處理設(shè)備”、“計算裝置”或“處理電路”包含用于處理數(shù)據(jù)的所有類型的設(shè)備、裝置和機(jī)器,包括可編程處理器、計算機(jī)、片上系統(tǒng)或多個可編程處理、計算機(jī)或片上系統(tǒng)、編程處理器的一部分或上述的組合。設(shè)備能夠包括專用邏輯電路,例如FPGA或ASIC。除硬件之外,設(shè)備還能夠包括為所述的計算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、交叉平臺運(yùn)行時環(huán)境、虛擬機(jī)或它們中的一個或多個的組合的代碼。設(shè)備和執(zhí)行環(huán)境能夠?qū)崿F(xiàn)各種不同的計算模型基礎(chǔ)設(shè)施,諸如web服務(wù)、分布式計算以及網(wǎng)格計算基礎(chǔ)設(shè)施。
計算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用、腳本或代碼)能夠用任何形式的編程語言(包括編譯或解釋語言)、描述性或過程語言編寫,并且它能夠被以任何形式(包括作為獨(dú)立程序或者作為適合于在計算環(huán)境中使用的模塊、組件、子例行程序、對象或其它單元)部署。計算機(jī)程序可以但未必對應(yīng)于文件系統(tǒng)中的文件。能夠在保持其它程序或數(shù)據(jù)的文件的一部分(例如,存儲在標(biāo)記語音文檔中的一個或多個腳本)中、在專用于所述的程序的單個文件中或者在多個協(xié)調(diào)文件(例如,存儲一個或多個模塊、子程序或代碼的各部分的文件)中存儲程序。能夠?qū)⒂嬎銠C(jī)程序部署成被在一個計算機(jī)上或在位于一個地點(diǎn)處或者跨越多個地點(diǎn)分布并且通過通信網(wǎng)絡(luò)互連的多個計算機(jī)上執(zhí)行。
例如,適合于執(zhí)行計算機(jī)程序的處理器包括既通用又專用微處理器,以及任何類型的數(shù)字計算機(jī)的任何一個或多個處理器。通常,處理器將從只讀存儲器或隨機(jī)存取存儲器或兩者接收指令和數(shù)據(jù)。計算機(jī)的必要元素是用于依照指令執(zhí)行動作的處理器以及用于存儲指令和數(shù)據(jù)的一個或多個存儲器裝置。通常,計算機(jī)還將包括或者在操作上耦接以從用于存儲數(shù)據(jù)的一個或多個大容量存儲裝置(例如,磁盤、磁光盤或光盤)接收數(shù)據(jù)或者向一個或多個大容量存儲裝置傳送數(shù)據(jù)或兩者。然而,計算機(jī)未必具有這樣的裝置。而且,能夠?qū)⒂嬎銠C(jī)嵌入在另一裝置(例如,移動電話、個人數(shù)字助理(PDA)、移動音頻或視頻播放器、游戲控制臺、全球定位系統(tǒng)(GPS)接收器或便攜式存儲裝置(例如,通用串行總線(USB)閃存驅(qū)動器)等)中。適合于存儲計算機(jī)程序指令和數(shù)據(jù)的裝置包括所有形式的非易失性存儲器、介質(zhì)和存儲器裝置,包括例如:半導(dǎo)體存儲器裝置,例如,EPROM、EEPROM和閃速存儲器裝置;磁盤,例如,內(nèi)部硬盤或可移動盤;磁光盤;以及CD-ROM盤和DVD盤。處理器和存儲器能夠由專用邏輯電路補(bǔ)充或者并入專用邏輯電路。
為了提供與用戶的交互,能夠在具有用于向用戶顯示信息的顯示裝置(例如,CRT(陰極射線管)或LCD監(jiān)視器)以及用戶能夠用來向計算機(jī)提供輸入的鍵盤和指點(diǎn)裝置(例如,鼠標(biāo)或軌跡球)的計算機(jī)上實(shí)現(xiàn)本說明書中所描述的主題的實(shí)施方式。其它類型的裝置也能夠被用來提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的感覺反饋,例如,視覺反饋、聽覺反饋或觸覺反饋;并且能夠以包括聲輸入、語音輸入或觸覺輸入的任何形式接收來自用戶的輸入。
雖然本說明書包含許多特定實(shí)施方式細(xì)節(jié),但是這些不應(yīng)該被解釋為對可能要求保護(hù)的范圍構(gòu)成限制,而是相反被解釋為特定于特定實(shí)施方式的特征的描述。還能夠在單個實(shí)施方式中相結(jié)合地實(shí)現(xiàn)在本說明書中在單獨(dú)的實(shí)施方式的背景下描述的特定特征。相反,還能夠單獨(dú)地在多個實(shí)施方式中或在任何適合的子組合中實(shí)現(xiàn)在單個實(shí)施方式的背景下描述的各種特征。而且,盡管特征可以被以上描述為在特定組合中起作用并且甚至最初如此要求保護(hù),但是來自要求保護(hù)的組合的一個或多個特征能夠在一些情況下被從組合中刪除,并且所要求保護(hù)的組合可以涉及子組合或子組合的變化。
類似地,雖然按特定次序在附圖中描繪操作,但是這不應(yīng)該被理解為要求這樣的操作被以所示的特定次序或以順序次序執(zhí)行,或者要求執(zhí)行所有圖示的操作,以實(shí)現(xiàn)所希望的結(jié)果。在特定情況下,多任務(wù)處理和并行處理可能是有利的。而且,在以上所描述的實(shí)施方式中使各種系統(tǒng)組件分離不應(yīng)該被理解為在所有實(shí)施方式中要求這樣的分離,并且應(yīng)該理解,所描述的程序組件和系統(tǒng)通常能夠被集成在單個軟件產(chǎn)品中或者封裝到被具體化在有形介質(zhì)上的多個軟件產(chǎn)品中。
對“或”的參考可以被解釋為包括的,使得使用“或”所描述的任何術(shù)語可以指示以下中的任一個所描述的術(shù)語中的單個、超過一個和全部。
因此,已經(jīng)對主題的特定實(shí)施方式進(jìn)行了描述。其它實(shí)施方式在以下權(quán)利要求的范圍內(nèi)。在一些情況下,權(quán)利要求中所記載的動作能夠被以不同的次序執(zhí)行并且仍然實(shí)現(xiàn)所希望的結(jié)果。此外,附圖中所描繪的過程未必要求所示的特定次序或順序次序來實(shí)現(xiàn)所希望的結(jié)果。在特定實(shí)施方式中,多任務(wù)處理和并行處理可能是有利的。
除非被陳述該效果,否則權(quán)利要求不應(yīng)該被解讀為限于所描述的次序或元素。應(yīng)該理解,在不脫離所附權(quán)利要求的精神和范圍的情況下,可以通過本領(lǐng)域的普通技術(shù)人員作出形式和細(xì)節(jié)上的各種改變。要求保護(hù)落入所附權(quán)利要求及其等同物的精神和范圍內(nèi)的所有實(shí)施方式。