CN106462559A - 任意大小内容项生成 - Google Patents
任意大小内容项生成 Download PDFInfo
- Publication number
- CN106462559A CN106462559A CN201480077640.0A CN201480077640A CN106462559A CN 106462559 A CN106462559 A CN 106462559A CN 201480077640 A CN201480077640 A CN 201480077640A CN 106462559 A CN106462559 A CN 106462559A
- Authority
- CN
- China
- Prior art keywords
- content item
- space
- element set
- conflict
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于自动地生成内容项的系统可以包括接收具有用于创建内容项的元素集合的内容项模板以及所述元素集合的内容项数据。可以生成所述元素集合中的每个元素的占位符并且可以基于针对每个元素的所生成的占位符来确定针对每个元素的空间分配。可以基于针对每个元素的所确定的空间分配而作出是否存在冲突的确定,并且响应于确定不存在冲突,可以使用所述内容项数据和所确定的空间分配来生成内容项。
Description
背景技术
在诸如互联网或其它网络的联网环境中,第一方内容提供者能够提供用于公开呈现在资源(例如,网页、文档、应用和/或其它资源)上的信息。第一方内容能够包括由第一方内容提供者通过互联网经由例如资源服务器提供以用于呈现在客户端装置上的文本、视频和/或音频信息。第一方内容可以是由客户端装置或在该客户端装置上运行的独立应用(例如,视频游戏、聊天程序等)所请求的网页。附加第三方内容也能够由第三方内容提供者提供以用于与由第一方内容提供者提供的第一方内容一起呈现在客户端装置上。例如,第三方内容可以是与诸如网页的所请求的资源(例如,来自搜索引擎的搜索结果网页、包括在线文章的网页、社交网络服务的网页等)或者与应用(例如,游戏内的广告)相结合地出现的公用服务通告或广告。因此,查看资源的人能够访问作为该资源的主体的第一方内容以及可能与该资源的主题有关或可能与之无关的第三方内容。
发明内容
本文中所描述的实施方式涉及用于使用给定URL以及宽度和高度约束自动地生成任意大小的内容项的系统和方法。
一个实施方式涉及用于自动地生成内容项的系统。该系统可以包括一个或多个处理器以及一个或多个存储装置。所述一个或多个存储装置包括使一个或多个处理器执行数个操作的指令。操作包括接收具有用于创建内容项的元素集合的内容项模板以及所述元素集合的内容项数据。内容项模板的所述元素集合中的每个元素可以包括索引和锚(anchor)。操作还包括针对内容项模板的所述元素集合中的每个元素生成占位符并且至少部分地基于所生成的占位符针对所述元素集合中的每个元素确定空间分配。操作还包括基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突,并且响应于确定不存在冲突,使用所述元素集合的内容项数据以及所确定的空间分配来生成内容项。
另一实施方式涉及用于自动地生成内容项的方法。该方法包括接收登录页面URL、第一尺寸值和第二尺寸值。该方法还包括接收具有用于创建内容项的元素集合的内容项模板。该方法还包括至少部分地基于第一尺寸值和第二尺寸值针对内容项模板的所述元素集合中的每个元素生成占位符。该方法再进一步包括至少部分地基于针对所述元素集合中的每个元素的所生成的占位符针对所述元素集合中的每个元素确定空间分配。该方法又进一步包括基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突,并且响应于确定不存在冲突,使用所确定的空间分配以及与登录页面URL相关联的登录页面资源的内容项数据来生成内容项。该方法包括至少部分地基于所确定的空间分配而确定所生成的内容项的分数。
又一个实施方式涉及存储指令的计算机可读存储装置,所述指令当由一个或多个处理器执行时,使一个或多个处理器执行数个操作。操作可以包括接收登录页面URL、第一尺寸值、第二尺寸值以及具有用于创建内容项的元素集合的内容项模板。操作还包括至少部分地基于第一尺寸值和第二尺寸值针对内容项模板的元素集合中的每个元素生成占位符,并且至少部分地基于所生成的占位符针对所述元素集合中的每个元素确定空间分配。针对所述元素集合中的每个元素的空间分配的确定包括:基于针对所述元素集合中的元素的所生成的占位符针对所述元素确定初始空间分配,基于初始空间分配针对所述元素集合中的所述元素确定最小空间分配,以及将针对所述元素集合中的所述元素的所确定的最小空间分配的尺寸递增预定像素值。操作还可以包括基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突,并且响应于确定不存在冲突,使用所确定的空间分配以及与登录页面URL相关联的登录页面资源的内容项数据来生成内容项。操作再进一步包括响应于来自客户端装置的内容项请求而输出用于显示所生成的内容项的数据。
附图说明
下面在附图和说明书中阐述一个或多个实施方式的细节。本公开的其它特征、方面和优点从说明书、附图以及权利要求将变得显而易见,附图中:
图1是描绘经由计算机网络提供信息的系统的实施方式的概述;
图2是更详细地描绘内容项生成系统的实施方式并且具有布局生成器和计分器的框图;
图3是更详细地描绘具有布局解析器、锚管理器、一个或多个元素渲染器、空间管理器和冲突解决器的图2的布局生成器的实施方式的框图;
图4是描绘图2的布局生成器和计分器的过程流程的实施方式的过程框图;
图5是描绘图3至图4的布局解析器的实施方式的框图;
图6是描绘图3至图4的锚管理器的实施方式的框图;
图7A是描绘具有由锚定义的按钮元素的内容项布局的实施方式的图;
图7B是描绘针对具有固定像素基准距离的调整大小的内容项布局的图7A的按钮元素的图;
图7C是描绘针对具有相对基准距离的调整大小的内容项布局的图7A的按钮元素的图;
图8是描绘图3至图4的一个或多个元素渲染器的实施方式的框图;
图9是描绘具有增长模块的图3至图4的空间管理器的实施方式的框图;
图10A是描绘具有针对图像元素的初始最小空间分配以及针对文本元素的初始最小空间分配的内容项的实施方式的图;
图10B是在应用图9的空间管理器的增长模块的增长函数之后的具有针对图像元素的最终空间分配以及针对文本元素的最终空间分配的图10A的内容项的图;
图11是描绘图3至图4的冲突解决器的实施方式的框图;
图12是描绘用于使用图2的内容项生成系统来生成内容项的过程的实施方式的流程图;
图13是描绘与登录页面URL相关联的登录页面资源的实施方式的框图;
图14A是描绘具有第一任意尺寸并且使用第一内容项模板的所生成的内容项的实施方式的框图;
图14B是描绘具有第二任意尺寸并且使用第一内容项模板的另一生成的内容项的实施方式的框图;
图15A是描绘具有第三任意尺寸并且使用第二内容项模板的所生成的内容项的实施方式的框图;
图15B是描绘具有第四任意尺寸并且使用第二内容项模板的另一生成的内容项的实施方式的框图;
图16是描绘可以被采用来实现本文中所描述和图示的系统和方法的各种元素的计算机系统的一般架构的框图。
将认识到,图中的一些或全部是出于图示目的的示意表示。图是本着它们将不被用来限制权利要求的范围或意义的显式理解出于图示一个或多个实施例的目的而提供的。
具体实施方式
下文是与用于在计算机网络上提供信息的方法、设备和系统有关的各种构思以及用于在计算机网络上提供信息的方法、设备和系统的实施方式的更详细描述。可以以许多方式中的任一个实现上面介绍且在下面更详细地讨论的各种构思,因为所描述的构思不限于实施方式的任何特定方式。特定实施方式和应用是主要为了说明性目的而提供的。
计算装置(例如,客户端装置)能够查看资源,诸如网页、文档、应用等。在一些实施方式中,计算装置可以通过与对应于该资源的服务器(诸如网页服务器)进行通信经由互联网访问该资源。资源包括作为来自第一方内容提供者的资源的主体的第一方内容并且还可以包括附加第三方提供的内容,诸如广告或其它内容。在一个实施方式中,响应于接收到访问网页的请求,网页服务器和/或客户端装置能够与数据处理系统(诸如内容项选择系统)进行通信,以诸如通过对用于请求要与资源一起呈现的第三方内容项的资源的代码的执行来请求要与所请求的网页一起呈现的内容项。该内容项选择系统能够选择第三方内容项并且提供用于实现内容项与所请求的网页一起在客户端装置的显示器上的呈现的数据。在一些实例中,内容项被选择并且随与搜索查询响应相关联的资源一起派发。例如,搜索引擎可以在搜索结果网页上返回搜索结果并且可以在搜索结果网页的一个或多个内容项位中包括与搜索查询有关的第三方内容项。
计算装置(例如,客户端装置)还可以被用来查看或者执行应用,诸如移动应用。应用可以包括作为来自第一方内容提供者的应用的主体的第一方内容并且还可以包括附加第三方提供的内容,诸如广告或其它内容。在一个实施方式中,响应于应用的使用,资源服务器和/或客户端装置能够与数据处理系统(诸如内容项选择系统)进行通信,以请求要与应用的用户接口一起和/或以其它方式呈现的内容项。内容项选择系统能够选择第三方内容项并且提供用于实现内容项与应用一起在客户端装置的显示器上的呈现的数据。
在一些实例中,装置标识符可以与客户端装置相关联。装置标识符可以是与客户端装置相关联以在对资源和/或内容项的后续请求期间标识该装置的随机数。在一些实例中,装置标识符可以被配置成存储并且/或者使客户端装置向内容项选择系统和/或资源服务器传送与客户端装置有关的信息(例如,传感器数据的值、web浏览器类型、操作系统、历史资源请求、历史内容项请求等)。
在这里所讨论的系统收集关于用户的个人信息或者可以利用个人信息的情形下,可以给用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。此外,特定数据可以在它被存储或者使用之前被以一个或多个方式处理,使得个人可标识的信息被移除。例如,可以处理用户的身份,使得对于该用户来说不能够确定个人可标识的信息,或者可以在获得了位置信息的情况下一般化用户的地理位置(诸如到城市、ZIP码或州级别),使得不能够确定用户的特定位置。因此,用户可以控制信息如何关于用户被收集并由内容服务器使用。
第三方内容提供者在经由互联网或其它网络提供用于与请求的资源一起呈现的第三方内容项时,可以利用内容项管理服务来控制或者以其它方式影响对第三方内容项的选择和派发。例如,第三方内容提供者可以指定在对第三方内容项的选择中使用的选择准则(诸如关键词)和对应的出价值。出价值可以由内容项选择系统在拍卖中利用以选择并派发用于与资源一起呈现的内容项。例如,第三方内容提供者可以在拍卖中给出与在用户与提供者的内容项交互的情况下支付某个金额的协定对应的出价(例如,提供者同意在用户点击提供者的内容项的情况下支付$3)。在其它实例中,第三方内容提供者可以在拍卖中给出与在内容项被选择和派发的情况下支付某个金额的协定对应的出价(例如,提供者同意每当内容项被选择和派发时支付$0.005或者提供者同意每当内容项被选择或者点击时支付$0.05)。在一些实例中,内容项选择系统使用内容项交互数据来确定第三方内容提供者的内容项的效能。例如,用户可以优于其它内容项而更倾向于点击某些网页上的第三方内容项。因此,用于放置第三方内容项的拍卖出价对于高效能网页、某些类别的网页的和/或其它准则来说可能是较高的,然而这些出价对于低效能网页、某些类别的网页和/或其它准则来说可能是较低的。
在一些实例中,可以确定针对第三方内容项的一个或多个效能度量,并且可以经由内容项管理账户的用户接口向第三方内容提供者提供这样的效能度量的指示。例如,效能度量可以包括每闪现成本(CPI)或每千次闪现成本(CPM),其中例如,每当内容项被选择派发以用于与资源一起呈现时,就可以对闪现进行计数。在一些实例中,效能度量可以包括点进率(CTR),被定义为对内容项的点击数除以闪现数。还可以使用其它的效能度量,诸如每动作成本(CPA)(其中动作可以是点击内容项或其中的链接、产品的购买、内容项的移交等)、转化率(CVR)、每点进成本(CPC)(在内容项被点击时计数)、每销售成本(CPS)、每引导成本(CPL)、有效CPM(eCPM)和/或其它效能度量。
在一些实例中,网页或其它资源(诸如例如应用)包括可以在其中显示选择且派发的第三方内容项的一个或多个内容项位。定义网页或其它资源的内容项位的代码(例如,HTML等)可以包括用于从内容项选择系统请求要与网页一起呈现的第三方内容项的指令。在一些实施方式中,代码可以包括具有可以包括一个或多个参数的内容项请求URL(例如,/page/contentitem?devid=abcl23&devnfo=A34r0)的图像请求。在一些实施方式中,这样的参数可以是诸如“devid=abcl23”和/或“devnfo=A34r0”的编码字符串。
对要由内容项选择系统与资源一起派发的第三方内容项的选择可以基于数个影响因素,诸如预测点进率(pCTR)、预测转化率(pCVR)、与内容项相关联的出价等。这样的影响因素可以被用来生成诸如分数的值,可以通过内容项选择系统通过拍卖来将该分数与其它内容项的其它分数比较。
在针对诸如网页的资源的内容项位的拍卖期间,数个不同类型的出价值可以被第三方内容提供者用于各种第三方内容项。例如,拍卖可以包括基于用户是否点击第三方内容项、用户是否基于第三方内容项的呈现执行特定动作、第三方内容项是否被选择和派发的出价和/或其它类型的出价。例如,基于第三方内容项是否被选择和派发的出价可以是较低出价(例如,$0.005),然而基于用户是否执行特定动作的出价可以是较高出价(例如,$5)。在一些实例中,可以调整出价以考虑与出价的类型相关联的概率和/或由于其它原因而调整出价。例如,用户执行特定动作的概率可能是低的,诸如0.2%,然而所选择并派发的第三方内容项的概率可能是100%(例如,所选择并派发的内容项在它在拍卖期间被选择的情况下该内容项将出现,所以出价未被调整)。因此,可以基于出价值和概率或另一修改值生成诸如分数或归一化值的值以在拍卖中使用。基于第三方内容项是否被选择和派发的出价的值或分数可以是$0,005*1.00=0.005,并且基于用户是否执行特定动作的出价的值或分数可以是$5*0.002=0.01。为了使所生成的收入最大化,内容项选择系统可以从拍卖中选择具有最高值的第三方内容项。在一些实施方式中,内容项选择系统可能由于与该出价相关联的较高值或分数而选择与基于用户是否执行特定动作的出价相关联的内容项。
一旦第三方内容项被内容项选择系统选择,就可以使用网络来向客户端装置提供用于实现第三方内容项在客户端装置的显示器上的呈现的数据。
在一些实例中,使用登录页面统一资源定位符(URL)、第一尺寸值和第二尺寸值来针对第三方内容提供者自动地生成内容项可能是有用的。也就是说,给定第三方内容提供者的登录页面以及内容项位的尺寸,可以使用根据登录页面URL确定的尺寸和内容项数据来基于一个或多个内容项模板自动地生成内容项,诸如广告。在一些实施方式中,可以按需(诸如响应于对内容项的请求)生成内容项,或者可以生成内容项并且该内容项的数据可以被存储在数据库中或者在用户接口中呈现给生成内容项的第三方内容提供者。
可以从客户端装置、第一方内容提供者或第三方内容提供者接收登录页面URL、第一尺寸值和/或第二尺寸值。在一些实例中,可以响应于客户端装置请求第一方内容提供者的具有内容项位的资源而从客户端装置接收第一尺寸值和第二尺寸值。客户端装置可以接收第一方资源的数据并且向内容项选择系统传送对包括第一尺寸值和第二尺寸值的内容项(诸如广告)的请求。内容项选择系统可以选择第三方内容提供者,并且内容项生成系统可以使用第三方内容提供者的登录页面URL、第一尺寸值和第二尺寸值来生成内容项。内容项选择系统然后可以输出用于与第一方内容提供者的资源一起显示所生成的内容项的数据。在其它实施方式中,可以响应于客户端装置请求第一方内容提供者的具有内容项位的资源而从第一方内容提供者接收第一尺寸值和第二尺寸值。
在一些实施方式中,可以独立于客户端装置请求资源而从第三方内容提供者接收登录页面URL、第一尺寸值和第二尺寸值。例如,第三方内容提供者可以利用内容项生成系统来生成不同大小的内容项要以存储在数据库中并响应于来自客户端装置或第一方内容提供者的后续内容项请求而被派发。
可以使用能够解释与登录页面URL相关联的资源并且创建其可视表示(例如,图像、显示等)的资源渲染器来确定根据登录页面URL确定的内容项。例如,登录页面URL的资源可以包括标记内容(例如,HTML、XML、图像URL等)以及格式化信息(例如,CSS、XSL等)。资源渲染器可以下载标记内容和格式化信息并且根据万维网联盟(W3C)标准来渲染与登录页面URL相关联的资源。资源渲染器因此可以创建与登录页面URL相关联的资源的“快照图像”并且/或者构建表示与登录页面URL相关联的资源的各种组件的文档对象模型(DOM)树。
在一些实施方式中,内容项数据可以包括图像数据、颜色数据、文本数据、徽标数据等。在一些实施方式中,图像模块可以解析与登录页面URL相关联的资源的DOM树以标识并提取图像以及图像数据的图像元数据(例如,图像URL、显示位置、显示大小、替代文本等)。在一些实例中,颜色模块可以使用与登录页面URL相关联的资源的快照图像和/或DOM树来为要生成的内容项的颜色数据选择颜色。文本模块可以被配置成自动地生成内容项的文本数据(例如,文本描述、标题等),诸如通过使用与登录页面URL相关联的资源的DOM树或快照图像来创建在与该登录页面URL相关联的资源上显示的文本的概要。在仍然另外的实例中,可以使用与登录页面URL相关联的资源的DOM树或快照图像来提取一个或多个徽标的徽标数据。徽标图像可以是商标、商业徽标、产品徽标、公司徽标,或与特定产品、服务或组织相关联的任何其它图像。在一些实施方式中,可以为了所生成的内容项从数据库中检索或者从第三方内容提供者接收内容项数据,诸如图像数据、颜色数据、文本数据、徽标数据等。
一个或多个内容项模板可以被存储在内容项模板数据库中并且响应于来自内容项生成系统的对一个或多个内容项模板的请求而被检索。内容项模板针对要从内容项模板生成的内容项定义元素以及元素的布置。在一些实施方式中,一个或多个内容项模板可以是定义内容项模板的一个或多个元素的约束XML配置文件。每个内容项模板包括作为内容项模板的所需元素的至少一个元素。此外,内容项模板的每个元素包括索引值、元素名称以及定义该元素相对于另一元素和/或相对于内容项本身的布置的至少两个锚(例如,按钮元素可以由相对于内容项的右部边缘的右部锚以及相对于内容项的底部边缘的底部锚来定义)。每个元素的索引值可以被用来对内容项模板的元素进行优先级排序。
锚被用来描述内容项模板的两个元素之间或者一个元素与要从内容项模板生成的内容项之间的关系。锚由基准(例如,另一元素或内容项本身)、距离(例如,诸如像素(px)的固定距离或诸如10%的相对距离)、类型(例如,顶部、底部、左部或右部)以及灵活性指示符(即,锚的位置是可变的还是固定的)来定义。
使用一个或多个内容项模板和内容项数据,内容项生成系统可以针对给定的尺寸集合(诸如第一尺寸值和第二尺寸值)来针对每个内容项模板生成内容项并给其打分,以使空间利用最大化。内容项生成系统可以解析内容项模板的布局配置文件以确定内容项模板的一个或多个元素的布局元素数据。内容项生成系统然后可以基于布局元素数据的锚、要生成的内容项的尺寸值以及内容项数据来针对一个或多个元素中的每个元素确定占位符。内容项生成系统可以利用一个或多个元素渲染器来基于占位符以及这些锚中的一个或多个是否是灵活的(即,许可空间分配的一部分在大小上变化)而针对一个或多个元素中的每个元素确定初始空间分配。在一些实例中,初始空间分配可以与占位符相同(例如,如果元素由仅固定锚定义,则初始空间分配可以与占位符相同)。
内容项生成系统可以基于初始空间分配并且通过使用增长函数来修改具有灵活的锚的任何元素来扩展初始空间分配以使内容项的空间利用最大化而针对一个或多个元素中的每个元素确定最终空间分配。内容项生成系统然后可以基于所确定的最终空间分配而确定内容项是否存在任何冲突。这样的冲突可以包括元素的重叠、元素超出内容项的尺寸的溢出、不足边距、文本截断和/或其它内容项模板特定冲突。
如果存在冲突,则内容项生成系统可以从内容项模板的一个或多个元素中消除一个元素并且返回以基于元素的缩减集合确定占位符。被从一个或多个元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素对于内容项模板而言在重要性方面较低的最高索引值的元素)。在一些实施方式中,基于布局元素数据将确定为要移除的元素可以被指示为所需元素。在这样的实例中,内容项生成系统可以选择新内容项模板,解析该模板,并且继续使用新模板来生成内容项。在其它实例中,内容项生成系统可以停止内容项的生成并且输出错误(例如,如果没有可以使用的其它内容项模板的话)。
在一些实施方式中,如果不存在冲突,则内容项生成系统可以确定内容项的分数。内容项的分数可以基于与内容项模板的元素的数量相比所生成的内容项中的元素的数量、未用像素的数量、每条垂直或水平线的未用像素的平均数量、针对一个或多个元素的加权等。在一些实施方式中,内容项生成系统可以生成各自具有关联的分数的数个内容项,并且内容项生成系统可以排名分数并且选择得分最高的所生成的内容项。在一些实施方式中,可以向客户端装置输出用于显示所选择的得分最高的所生成的内容项的数据以与第一方内容提供者资源一起显示所生成的内容项。
在其它实施方式中,用于显示得分最高的所生成的内容项的数据可以被存储在数据库中以在以后时间被输出。在仍然另外的实施方式中,所生成的内容项中的全部或子集以及所关联的分数可以被存储在数据库中。在仍然其它的实施方式中,所生成的内容项中的全部或子集的数据以及所关联的分数可以被输出到第三方内容提供者的计算装置的用户接口以供选择。例如,可以将内容项生成系统集成到第三方内容提供者的内容项生成用户接口中。响应于从第三方内容提供者输入登录页面URL以及期望的内容项的尺寸,内容项生成系统可以输出所生成的内容项的集合和关联的分数,使得即使所生成的内容项不具有最高分数,第三方内容项提供者也可以选择所生成的内容项。
虽然上文已提供使用任意尺寸自动地生成内容项的概述,然而下文提供有关各种实施方式的更多细节。
图1是用于经由诸如网络106的至少一个计算机网络提供信息的系统100的实施方式的框图。网络106可以包括局域网(LAN)、广域网(WAN)、电话网(诸如公用交换电话网(PSTN))、无线链路、内部网、互联网或其组合。系统100还能够包括至少一个数据处理系统,诸如内容项选择系统108。内容项选择系统108能够包括至少一个逻辑装置,诸如具有数据处理器的计算装置,以经由网络106例如与资源服务器104、客户端装置110和/或第三方内容服务器102进行通信。内容项选择系统108能够包括被配置成执行存储在存储器装置中的指令以执行本文中所描述的一个或多个操作的一个或多个数据处理器,诸如内容放置处理器。换句话说,内容项选择系统108的一个或多个数据处理器和存储器装置可以形成处理模块。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够给处理器提供程序指令的电子、光学、磁或任何其它存储或传输装置。存储器可以包括软盘、紧致盘只读存储器(CD-ROM)、数字通用盘(DVD)、磁盘、存储器芯片、只读存储器(ROM)、随机存取存储器(RAM)、电可擦可编程只读存储器(EEPROM)、可擦可编程只读存储器(EPROM)、闪速存储器、光学介质,或处理器能够从其读取指令的任何其它适合的存储器。指令可以包括来自诸如但不限于C、C++、C#、 HTML、XML、和Visual的任何适合的计算机编程语言的代码。处理器可以处理指令并且输出用于实现一个或多个内容项到资源服务器104和/或客户端装置110的呈现的数据。除处理电路之外,内容项选择系统108可以包括被配置成存储数据的一个或多个数据库。内容项选择系统108还可以包括被配置成经由网络106接收数据并且将数据从内容项选择系统108提供给网络106上的其它装置中的任一个的接口。内容项选择系统108能够包括服务器,诸如广告服务器或另外的服务器。
内容项选择系统108可以包括内容项生成系统120。在一些实施方式中,内容项生成系统120可以是与内容项选择系统108相同的系统的一部分或者内容项生成系统120可以与内容项选择系统108分开。例如,内容项生成系统120可以是内容项选择系统108的子系统或者内容项生成系统120可以是与内容项选择系统108通信的单独的系统。在内容项生成系统120与内容项选择系统108分开的实施方式中,可以以与本文中所描述的内容项选择系统108类似的方式构建内容项生成系统120。
在仍然另外的实施方式中,可以省略内容项选择系统108并且内容项生成系统120可以连接到网络106以与第三方内容服务器102、资源服务器104和/或客户端装置110进行通信。
客户端装置110能够包括一个或多个装置,诸如计算机、膝上型电脑、台式电脑、智能电话、平板、个人数字助理、电视机的机顶盒、智能电视或被配置成经由网络106与其它装置进行通信的服务器装置。该装置可以是包括数据处理器和存储器的任何形式的电子装置。存储器可以存储机器指令,所述机器指令当由处理器执行时,使该处理器执行本文中所描述的操作中的一个或多个。存储器还可以存储用于实现一个或多个资源、内容项等在计算装置上的呈现的数据。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够给处理器提供程序指令的电子、光学、磁或任何其它存储或传输装置。存储器可以包括软盘、紧致盘只读存储器(CD-ROM)、数字通用盘(DVD)、磁盘、存储器芯片、只读存储器(ROM)、随机存取存储器(RAM)、电可擦可编程只读存储器(EEPROM)、可擦可编程只读存储器(EPROM)、闪速存储器、光学介质,或处理器能够从其读取指令的任何其它适合的存储器。指令可以包括来自诸如但不限于C、C++、C#、HTML、Visual和XML的任何适合的计算机编程语言的代码。
客户端装置110能够执行软件应用(例如,web浏览器或其它应用)以通过网络106从其它计算装置中检索内容。这样的应用可以被配置成从资源服务器104中检索第一方内容。在一些情况下,在客户端装置110上运行的应用本身可以是第一方内容(例如,游戏、媒体播放器等)。在一个实施方式中,客户端装置110可以执行在客户端装置的显示器上提供浏览器窗口的web浏览器应用。提供浏览器窗口的web浏览器应用可以通过从输入装置(例如,指点装置、键盘、触摸屏或另一形式的输入装置)接收统一资源定位符(URL)(诸如web地址)的输入而操作。作为响应,执行来自web浏览器应用的指令的客户端装置的一个或多个处理器可以从连接到通过URL地址指向的网络106的另一装置(例如,资源服务器104)请求数据。另一个装置然后可以向客户端装置110提供使可视标记由客户端装置110的显示器显示的网页数据和/或其它数据。因此,浏览器窗口显示所检索到的第一方内容,诸如来自各种网站的web页面,以方便用户与第一方内容的交互。
资源服务器104能够包括计算装置,诸如服务器,该计算装置被配置成托管资源,诸如web页面或其它资源(例如,文章、评论线程、音乐、视频、图形、搜索结果、信息馈源等)。资源服务器104可以是计算机服务器(例如,文件传送协议(FTP)服务器、文件共享服务器、web服务器等)或服务器的组合(例如,数据中心、云计算平台等)。资源服务器104能够向客户端装置110提供资源数据或其它内容(例如,文本文档、PDF文件以及其它形式的电子文档)。在一个实施方式中,客户端装置110能够经由网络106访问资源服务器104以请求用于实现资源服务器104的资源的呈现的数据。
一个或多个第三方内容提供者可以具有第三方内容服务器102以经由网络106向内容项选择系统108和/或向其它计算装置直接或者间接提供第三方内容项的数据。内容项可以具有可以被呈现在客户端装置110的显示器上的任何形式,例如,图形、文本、图像、音频、视频等。内容项还可以是这些格式的组合(混合)。内容项可以是网幅内容项、插播内容项、弹出内容项、富媒体内容项、混合内容项、内容项、跨域内嵌框架(iframe)内容项等。内容项还可以包括诸如超链接、元数据、链接、机器可执行指令、动画等的嵌入式信息。在一些实例中,可以将第三方内容服务器102集成到内容项选择系统108中并且/或者第三方内容项的数据可以被存储在内容项选择系统108的数据库中。
在实施方式中,内容项选择系统108能够经由网络106接收对要与资源一起呈现的内容项的请求。可以从资源服务器104、客户端装置110和/或任何其它计算装置接收所接收到的请求。资源服务器104可以由第一方内容提供者拥有或者运行,该第一方内容提供者可以包括用于内容项选择系统108给第三方内容项提供第一方内容提供者在资源服务器104上的一个或多个资源的指令提供者。在一个实施方式中,资源可以包括web页面。
例如,客户端装置110可以是由用户操作的计算装置(由装置标识符表示),其当访问资源服务器104的资源时,能够向内容项选择系统108作出对要与资源一起呈现的内容项的请求。内容项请求能够包括请求装置信息(例如,web浏览器类型、操作系统类型、来自请求装置的一个或多个先前的资源请求、由请求装置接收到的一个或多个先前的内容项、针对请求装置的语言设定、请求装置的地理位置、在请求装置处的一天的时间、在请求装置处的星期几、在请求装置处的一个月的几号、在请求装置处的一年的一天等)和资源信息(例如,所请求的资源的URL、所请求的资源的内容的一个或多个关键词、资源的内容的文本、资源的标题、资源的类别、资源的类型等)。内容项选择系统108接收的信息能够包括包含表示客户端装置110的装置标识符(例如,随机数)的超文本传送协议(HTTP)cookie。
在一些实施方式中,可以将装置信息和/或资源信息附加到内容项请求URL(例如,contentitem.item/page/contentitem?devid=abcl23&devnfo=A34r0)。在一些实施方式中,装置信息和/或资源信息可以在被附加到内容项请求URL之前被编码。请求装置信息和/或资源信息可以由内容项选择系统108利用来选择第三方内容项和/或提供者要与所请求的资源一起派发并且呈现在客户端装置110的显示器上的内容项的第三方内容提供者。如将在下面更详细地描述的,在一些实施方式中,内容项生成系统120可以响应于对内容项的请求而生成一个或多个内容项。
在一些实例中,资源服务器104的资源可以包括搜索引擎特征。搜索引擎特征可以经由输入特征(输入文本框等)接收搜索查询(例如,文本的字符串)。搜索引擎可以基于搜索查询针对相关搜索结果而搜索文档(例如,其它资源,诸如web页面等)的索引。搜索结果可以作为第二资源被传送以将相关搜索结果(诸如搜索结果web页面)呈现在客户端装置110的显示器上。搜索结果可以包括web页面标题、超链接等。一个或多个第三方内容项还可以被与搜索结果一起呈现在搜索结果web页面的内容项位中。因此,资源服务器104和/或客户端装置110可以从内容项选择系统108请求要呈现在搜索结果web页面的内容项位中的一个或多个内容项。内容项请求可以包括附加信息,诸如用户装置信息、资源信息、内容项的量、内容项的格式、搜索查询字符串、搜索查询字符串的关键词、与查询有关的信息(例如,地理位置信息和/或时间信息)等。在一些实施方式中,可以在搜索结果与第三方内容项之间作出界定以避免混淆。
在另一实施方式中,内容项生成系统120可以被利用来独立于对内容项的请求而生成一个或多个内容项(例如,以预生成一个或多个内容项)。内容项生成系统120可以响应于诸如经由第三方内容提供者的第三方内容服务器102和/或客户端装置110来自第三方内容提供者的请求提供者生成一个或多个内容项。在一些实施方式中,一个或多个所生成的内容项可以被存储在数据库中以响应于后续内容项请求而被选择和派发。在一些实例中,一个或多个所生成的内容项可以在用户接口中被呈现给第三方内容提供者,使得第三方内容提供者可以选择要保存和存储在数据库中的所生成的内容项中的一个或多个。
虽然上文已提供用于向客户端装置110选择和派发内容项并且/或者使用内容项生成系统120来生成内容项的系统100的概述,然而现在将更详细地描述用于使用任意尺寸数据来生成内容项的实施方式。
参考图2,内容项生成系统120包括布局生成器200和计分器208。如将参考图3至图11更详细地描述的,布局生成器200被配置成接收内容项生成数据、一个或多个内容项模板以及内容项数据以生成一个或多个内容项。计分器208被配置成针对所生成的一个或多个内容项生成分数。在一些实施方式中,内容项生成系统120被配置成基于分数来排名所生成的一个或多个内容项并且选择得分最高的所生成的内容项。内容项生成系统120然后可以响应于来自内容项请求方202的内容项生成数据而传送用于显示得分最高的所生成的内容项的数据。在其它实施方式中,内容项生成系统120可以将用于显示得分最高的所生成的内容项的数据存储在内容项数据库210(用剖视图示出)中。在仍然另外的实施方式中,内容项生成系统120可以输出用于显示所生成的一个或多个内容项和所关联的分数的数据。用于显示所生成的一个或多个内容项和所关联的分数的数据可以被呈现在内容项请求方202(或者与其通信的装置)的用户接口中。在一些实施方式中,内容项请求方202的装置的用户可以使用用户接口来选择所生成的内容项中的一个或多个以被存储在数据库中,诸如内容项数据库210中。在一些实施方式中,所生成的一个或多个内容项可以是HTML内容项。
内容项生成数据可以包括来自内容项请求方202的第一尺寸值、第二尺寸值和/或登录页面URL。在一些实施方式中,内容项请求方202可以是用于响应于内容项请求而生成内容项的内容项选择系统108。在其它实施方式中,内容项请求方202可以是独立于内容项请求而生成内容项的第三方内容提供者。
内容项生成系统可以将登录页面URL传送到登录页面分析系统204以便检索用于生成内容项的内容项数据。登录页面分析系统204可以包括能够解释与登录页面URL相关联的资源并且创建其可视表示(例如,图像、显示等)的资源渲染器。例如,登录页面URL的资源可以包括标记内容(例如,HTML、XML、图像URL等)以及格式化信息(例如,CSS、XSL等)。资源渲染器可以下载标记内容和格式化信息并且根据万维网联盟(W3C)标准来渲染与登录页面URL相关联的资源。资源渲染器因此可以创建与登录页面URL相关联的资源的“快照图像”并且/或者构建表示与登录页面URL相关联的资源的各种组件的文档对象模型(DOM)树。
快照图像可以是与登录页面URL相关联的资源的可视表示。快照图像可以在渲染与登录页面URL相关联的资源之后图示如呈现在客户端装置的用户接口(例如,电子显示屏、计算机监视器、触敏显示器等)上的与登录页面URL相关联的资源的可视外观。快照图像可以包括与登录页面URL相关联的资源的颜色信息(例如,像素颜色、亮度、饱和度等)和风格信息(例如,方角、圆边、现代、质朴等)。在一些实施方式中,快照图像可以是具有任何可行的文件扩展名(例如,.jpg、.png、.bmp等)的图片文件。
DOM树可以是与登录页面URL相关联的资源的层次模型。DOM树可以包括与登录页面URL相关联的资源的图像信息(例如,图像URL、显示位置、显示大小、替代文本等)、字体信息(例如,字体名称、大小、效果等)、颜色信息(例如,RGB颜色值、十六进制颜色代码等)以及文本信息。登录页面分析系统204可以将快照图像和/或DOM树存储在存储器中以供后续使用。
在一些实施方式中,内容项数据可以包括图像数据、颜色数据、文本数据、徽标数据等。在一些实施方式中,图像模块可以解析与登录页面URL相关联的资源的DOM树以标识并提取图像以及图像数据的图像元数据(例如,图像URL、显示位置、显示大小、替代文本等)。图像元数据可以被用来针对显示在与登录页面URL相关联的资源上的每个图像确定页面上突出性。在一些实施方式中,图像模块从其它数据源(例如,先前使用或者批准的图像的储存库、股票图像的储存库等)中提取图像和图像元数据。
在一些实施方式中,图像模块可以分析所提取的图像以检测图像的可视内容。检测可视内容可以包括例如确定图像中所表示的突出对象的位置、确定图像中的文本的位置和/或确定图像是否能够被裁切或者处理以改进图像的可视影响。在一些实施方式中,图像模块分析所提取的图像以检测图像的语义内容。检测语义内容可以包括例如标识图像中所描绘的对象或由图像传达的意义。图像模块可以将描述图像的语义内容的一个或多个标签或关键词指派给图像。标签和/或关键词能够被用来确定图像与特定第三方内容项的关联。
图像模块可以处理图像以制备用于在第三方内容项中使用的图像。图像处理可以包括裁切图像以强调突出对象或者移除文本、调整图像的大小、对图像进行格式化或者以其它方式调整图像。
图像模块可以基于图像的各种属性对图像进行过滤和排名。图像模块可以针对图像中的每一个而确定质量分数和/或页面上突出分数。图像的质量分数可以基于各种图像属性指示图像的美观外观。突出分数可以指示所提取的图像被显示在与登录页面URL相关联的资源上的显著性。图像模块可以丢弃或者过滤具有小于阈值显示大小的显示大小或小于阈值质量分数的质量分数的图像。在一些实施方式中,登录页面分析系统204的图像模块基于与图像相关联的突出分数而排名图像。图像模块可以选择一个或多个最高排名图像用于包括在内容项数据中。
在一些实例中,登录页面分析系统204的颜色模块可以使用与登录页面URL相关联的资源的快照图像和/或DOM树来为内容项数据选择颜色。例如,颜色模块可以为内容项的背景、标题、描述、按钮背景和/或按钮文本选择颜色。颜色方案可以包括与显示在与登录页面URL相关联的资源上的颜色相对应的一个或多个颜色。在一些实施方式中,颜色模块可以使用聚类技术(例如,k平均聚类)来从快照图像中提取数个颜色集群。
文本模块可以被配置成自动地生成内容项的文本数据(例如,文本描述、标题等),诸如通过使用与登录页面URL相关联的资源的DOM树或快照图像来创建在与登录页面URL相关联的资源上显示的文本的概要。在一些实施方式中,文本模块可以从除与登录页面URL相关联的资源之外或者代替与登录页面URL相关联的资源的其它数据源中检索文本数据。例如,文本模块216可以从商业、产品或服务的用户创建的评述接收文本数据。可以从用户被许可发布或者提交与特定商业、产品或服务有关的评论、评述或其它文本的互联网资源(例如,网站)中检索评述。在一些实施方式中,文本模块可以标识并提取包括肯定短语的评述的片段用于包括在内容项数据中。在一些实施方式中,文本模块可以标识文本的字体并且将指示该字体的数据包括在内容项数据中。
在仍然另外的实例中,可以使用与登录页面URL相关联的资源的DOM树或快照图像来提取一个或多个徽标的徽标数据。徽标图像可以是商标、商业徽标、产品徽标、公司徽标,或与特定产品、服务或组织相关联的任何其它图像。在一些实施方式中,登录页面分析系统204可以基于登录页面URL和/或该登录页面URL的域名来查询数据库以标识徽标图像,使得可以通过指定URL容易地检索到徽标信息。
在一些实施方式中,诸如当第三方内容提供者正在利用内容项生成系统120来独立于内容项请求而生成一个或多个内容项时,第三方内容提供者可以向内容项生成系统120传送内容项数据,使得登录页面分析系统204不分析与登录页面URL相关联的资源来确定并且检索内容项数据。
仍然参考图2,内容项生成系统120从内容项模板数据库206接收一个或多个内容项模板。内容项模板定义元素以及要从内容项模板生成的内容项的元素的布置。在一些实施方式中,一个或多个内容项模板可以是定义内容项模板的一个或多个元素的约束XML配置文件。每个内容项模板包括作为内容项模板的所需元素的至少一个元素。此外,内容项模板的每个元素包括索引值、元素名称以及定义该元素相对于另一元素和/或相对于内容项本身的布置的至少两个锚(至少一个左部或右部锚以及至少一个顶部或底部锚)(例如,按钮元素可以由相对于内容项的右部边缘的右部锚以及相对于内容项的底部边缘的底部锚来定义)。每个元素的索引值可以被用来对内容项模板的元素进行优先级排序。将参考图5至图7C更详细地描述内容项模板和锚。
在一些实施方式中,内容项生成系统120可以从内容项模板数据库206中检索内容项模板中的全部作为内容项模板的集合。在其它实施方式中,内容项生成系统120可以对内容项模板数据库206的内容项模板进行过滤以得到内容项模板的子集。
在一些实施方式中,内容项生成系统120可以使用第一尺寸值和第二尺寸值来确定内容项模板的集合以生成内容项。例如,如果第一尺寸值是580个像素(即,在宽度上为580个像素)并且第二尺寸值是100个像素(即,在高度上为100个像素),则具有垂直地堆叠的图像、文本、徽标以及按钮元素(诸如图14C至图14D中所示)的内容项模板可能不适合于这样的尺寸。因此,内容项生成系统120可以从自内容项模板数据库206中检索到的内容项模板的集合中排除这样的内容项模板。在一些实施方式中,内容项模板可以用指示从内容项模板生成的内容项的最小和/或最大纵横比的一个或多个值注解。内容项生成系统120可以确定第一尺寸值与第二尺寸值的比,并且使用所确定的比来对所确定的比在最小纵横比以下或者在最大纵横比以上的内容项模板进行过滤。因此,可以排除对于第一尺寸值和第二尺寸值来说可能是不太有用的内容项模板。
在一些实施方式中,除尺寸值过滤之外或者代替尺寸值过滤还可以基于内容项数据对内容项模板进行过滤。例如,如果内容项数据不包括文本数据,则内容项生成系统120可以仅检索不包括文本元素的内容项模板。内容项模板可以用指示包括在内容项模板中的元素的一个或多个值作注解以用于这样的过滤。
使用内容项生成数据、一个或多个内容项模板的集合以及内容项数据,布局生成器200像在本文中更详细地描述的那样生成一个或多个内容项。
参考图3,布局生成器200包括布局解析器220、锚管理器222、一个或多个元素渲染器224、空间管理器226以及冲突解决器228。布局解析器220接收内容项模板并且将该内容项模板解析成一个或多个布局元素以及所述一个或多个布局元素的关联数据(例如,锚数据、元素名称、索引值、要求指示符等)。将参考图5更详细地描述布局解析器220。
锚管理器222接收一个或多个解析的布局元素的集合和关联数据并且基于一个或多个元素的关联数据、第一尺寸值和第二尺寸值以及内容项数据针对一个或多个解析的布局元素的集合中的每一个元素确定占位符。占位符是元素能够基于元素的锚、要生成的内容项的尺寸以及要用来填充元素的内容项数据在内容项中占据的最大空间。因为一些元素可以基于锚依赖于其它元素,所以锚管理器222执行拓扑排序以确定用来针对一个或多个元素确定占位符的顺序。也就是说,如果元素(诸如徽标元素)包括参考另一元素(诸如按钮元素)的锚,则可能需要在针对徽标元素确定占位符之前确定按钮元素的占位符。如果按钮元素还包括至另一元素(诸如图像元素)的锚,则可能需要在按钮元素或徽标元素的占位符中的任何一个之前确定图像元素的占位符。因此,拓扑排序被执行来基于它们的锚依赖对布局元素进行排序。可以使用锚管理器222来确定元素的排序列表的每个元素的占位符。锚管理器222将每个元素的占位符输出到对应的元素渲染器224。将参考图6至图7C更详细地描述锚管理器222。
元素渲染器224接收每个对应的元素的占位符并且针对每个元素基于占位符以及一个或多个锚的灵活性而确定初始空间分配。元素渲染器224可以包括图像元素渲染器、文本元素渲染器以及按钮元素渲染器。初始空间分配是元素能够基于占位符在内容项的布局中占据并且经受该元素的一个或多个锚的灵活性的空间。在一些实施方式中,图像分析器230(图4中示出)可以被与图像元素渲染器224一起用来确定图像的突出部分并且/或者执行对图像的智能裁切以确定初始空间分配。将参考图8更详细地描述图像渲染器224。
空间管理器226从一个或多个元素渲染器224接收初始空间分配并且针对所生成的内容项的每个元素确定最终空间分配。空间管理器226基于对应的初始空间分配针对仅具有固定锚的每个元素确定最终空间分配,基于对应的初始空间分配针对具有一个或多个灵活锚的每个元素确定最小空间分配,并且使用增长函数来修改具有一个或多个灵活锚的每个元素的空间分配以利用任何剩余的空间。将参考图9至图10B更详细地描述空间管理器226。
冲突解决器228接收针对内容项的一个或多个元素的最终空间分配并且基于最终空间分配而确定是否存在任何冲突。这样的冲突可以包括元素的重叠、元素超出内容项的尺寸的溢出、不足边距、文本截断和/或其它内容项模板特定冲突。如果存在冲突,则冲突解决器228可以从一个或多个元素的集合中消除一个元素并且将元素的新集合返回给锚管理器222以基于元素的新集合而确定占位符。被从一个或多个元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素对于内容项模板而言在重要性方面较低的最高索引值的元素)。在一些实施方式中,如果被确定要移除的元素被指示为所需元素,则冲突解决器228可以向布局解析器220发送数据以解析来自内容项模板的集合中的新内容项模板,或者冲突解决器228可以停止内容项的生成并且输出错误(例如,如果没有可以使用的其它内容项模板的话)。在一些实施方式中,冲突解决器228可以从冲突系统232(图4中示出)接收针对冲突的一个或多个规则。冲突系统232可以包括用于基于内容项大小而定义每个元素所需的边距的边距定义符。冲突系统232还可以包括基于内容项大小和/或其它内容项模板特定冲突规则而定义何时可能发生文本截断的冲突规则。
图4描绘图2的布局生成器200和计分器208的过程流程的实施方式的过程图的概述。将参考图5至图11更详细地描述该过程流程的细节。
参考图5,布局解析器220从内容项模板数据库206接收一个或多个布局模板的集合。内容项模板定义一个或多个元素以及要从该内容项模板生成的内容项的一个或多个元素的布置。在一些实施方式中,所述一个或多个内容项模板可以是定义对应的内容项模板的一个或多个元素的约束XML配置文件。在其它实施方式中,其它标记语言可以被用于所述一个或多个内容项模板。每个内容项模板包括作为该内容项模板的所需元素的至少一个元素。此外,内容项模板的每个元素包括索引值、元素名称以及定义该元素相对于另一元素和/或相对于内容项本身的布置的至少两个锚。每个元素的索引值可以被用来对内容项模板的元素进行优先级排序。
针对网幅型内容项的内容项模板XML配置文件的实施方式可以包括产品图像元素、按钮元素、徽标元素和标题元素的元素。这样的内容项模板XML配置文件可以由下列定义:
可以基于上述内容项模板XML配置文件来生成图14A至图14B中所示的内容项900、920。布局解析器220可以接收内容项模板XML配置文件并且将该文件解析成四个元素:产品图像元素、按钮元素、徽标元素和标题元素。布局解析器220还可以解析元素名称、索引值、关联锚和/或元素是否是需要的。布局解析器220然后将解析的布局元素的集合和关联数据发送到锚管理器222。
参考图6,锚管理器222接收解析的布局元素的集合和关联数据、第一尺寸值和第二尺寸值以及内容项数据。锚管理器222被配置成基于一个或多个元素的关联数据、第一尺寸值和第二尺寸值以及内容项数据而针对一个或多个解析的布局元素中的每一个确定占位符。占位符是元素能够在内容项中占据的最大空间。因为一些元素可以基于锚依赖于其它元素,所以锚管理器222执行拓扑排序以确定用来针对一个或多个元素确定占位符的顺序。也就是说,如果元素(诸如徽标元素)包括参考另一元素(诸如按钮元素)的锚,则可能需要在针对徽标元素确定占位符之前确定按钮元素的占位符。在一些实例中,拓扑排序还可以利用用来确定哪一个占位符的索引值来确定两个或更多个元素不依赖于其它元素还是依赖于已经针对其确定了占位符的元素。
锚被用来描述内容项模板的两个元素之间或者一个元素与要从内容项模板生成的内容项之间的关系。锚由基准(例如,另一元素或内容项本身)、距离(例如,固定距离,诸如像素(px),或基准的相对大小,诸如内容项的大小的10%)、类型(例如,元素的边缘,从该边缘测量到基准的距离,诸如顶部、底部、左部或右部)以及灵活性指示符(即,指示锚的位置是可变的还是固定的值)来定义。在一些实施方式中,如果灵活性指示符被省略,则锚缺省为固定锚。如果锚是固定的,则即使元素与另一元素重叠、超过内容项的尺寸大小等也不能够修改该锚。在这样的实例中,冲突解决器228将检测冲突,如将参考图11在下面更详细地描述的。如果锚是灵活锚,则针对元素的空间分配的那侧可以在大小上变化。例如,如果内容项模板包括徽标元素的皆为灵活的两个锚(例如,左部锚和右部锚),则,如将参考空间管理器226稍后更详细地讨论的,空间管理器226将增加徽标的空间分配以适配徽标元素的占位符可能的最大宽度。如果空间管理器226不能够将徽标的空间分配增加到徽标的占位符的最大宽度,则空间管理器226将徽标元素适配在占位符的中心并且将额外空间返回给缓冲器用于内容项的其它元素。
图7A至图7C描绘包括按钮元素310的内容项300的图示,该按钮元素具有以由第一锚和第二锚所定义的内容项300的布局的布置。第一锚320的表示以及第二锚330的表示被示出。如果第一锚由以下项定义:
anchor reference=“contentitem”type=“right”distance=“10px”
则按钮元素310的右侧被定位为离内容项100的右侧10个像素。参考图7B,如果内容项300在大小上减小,则即使内容项大小改变了,按钮元素310的右侧也保持离内容项300的右侧10个像素。如果右部锚替代地由以下项定义:
anchor reference=“contentitem”type=“right”distance=“0.2”
则按钮元素310的右侧被定位在离内容项300的右侧内容项300的大小的距离20%处。参考图7C,如果内容项300在大小上类似地减小,则按钮元素310的右侧的距离从内容项300的右侧类似地减小以维持20%距离。
返回参考图6并且参考针对以上网幅型内容项的内容项模板XML配置文件的实施方式,经解析的产品图像元素包括名称“productimage”、索引值1以及指示产品图像元素是内容项模板所需要的布尔值。针对内容项模板的经解析的产品图像元素布置由三个锚定义。第一锚具有对内容项本身的参考,具有左部的类型以及零个像素的距离。因此,产品图像元素的左侧被“锚定”到内容项的左侧。类似地,第二锚具有对内容项本身的参考,具有顶部的类型以及零个像素的距离。因此,产品图像元素的顶侧被“锚定”到内容项的顶侧。第三锚具有对内容项本身的参考,具有底部的类型以及零个像素的距离。因此,产品图像元素的底侧被“锚定”到内容项的底侧。产品图像元素不包括右侧锚,所以产品图像元素的右侧的位置依赖于来自内容项数据的图像数据。
经解析的按钮元素包括名称“按钮”和索引值3。按钮元素是不需要的,因为布尔值未指示该按钮元素是需要的。也就是说,如果值未指示元素是需要的,则该元素缺省为不需要的元素。针对内容项模板的按钮元素布置由两个锚定义。第一锚具有对经解析的徽标元素的参考,具有右部的类型以及20个像素的距离。因此,按钮元素的右侧被“锚定”在离徽标元素20个像素的按钮元素的右侧。第二锚具有对内容项本身的参考,具有底部的类型以及20个像素的距离。因此,按钮元素的底侧被“锚定”在离内容项的底部20个像素的按钮元素的底侧。按钮元素不包括左侧锚或顶侧锚。
经解析的徽标元素包括名称“徽标”和索引值4。徽标元素是不需要的,因为布尔值未指示该徽标元素是需要的。针对内容项模板的徽标元素布置由两个锚定义。第一锚具有对内容项本身的参考,具有右部的类型以及20个像素的距离。因此,徽标元素的右侧被“锚定”在离内容项的右侧20个像素的右侧。类似地,第二锚具有对内容项本身的参考,具有底部的类型以及20个像素的距离。因此,徽标元素的底侧被“锚定”在离内容项的底侧20个像素的底侧。徽标元素不包括左侧锚或顶侧锚。
经解析的标题元素包括名称“标题”和索引值2。标题元素是不需要的,因为布尔值未指示该标题元素是需要的。针对内容项模板的经解析的标题元素布置由四个锚定义。第一锚具有对产品图像元素的参考,具有左部的类型以及10个像素的距离。因此,标题元素的左侧被“锚定”在离产品图像元素的左侧10个像素的左侧。第二锚具有对徽标元素的参考,具有底部的类型以及10个像素的距离。因此,标题元素的底侧被“锚定”在离徽标元素的顶侧10个像素的底侧。第三锚具有对内容项本身的参考,具有右部的类型以及10个像素的距离。因此,标题元素的右侧被“锚定”在离内容项的右侧10个像素的右侧。第四锚具有对内容项本身的参考,具有顶部的类型以及10个像素的距离。因此,标题元素的顶侧被“锚定”在离内容项的顶侧10个像素的顶侧。
基于对锚的依赖,由锚管理器222执行的拓扑排序可以确定可以首先基于产品图像元素的索引值而确定产品图像元素占位符。可以其次基于相对于产品图像元素索引值的较高索引值而确定徽标元素占位符。可以第三基于相对于按钮元素索引值的较高索引值而确定标题元素占位符。最后,可以第四确定按钮元素占位符。
锚管理器222可以基于拓扑排序而针对每个元素确定占位符。对于要生成的具有宽200个像素的第一尺寸值和高200个像素的第二尺寸值的内容项并且产品图像元素的图像数据具有宽100个像素乘高200个像素的尺寸,那么锚管理器222能够将产品图像元素的占位符确定为{左部:0,顶部:0,底部:200,右部:100}。如果徽标图像元素的图像数据具有宽30个像素乘高30个像素的尺寸,则锚管理器222能够将徽标图像元素的占位符确定为{左部:150,顶部:150,底部:180,右部:180}。锚管理器222能够将标题元素的占位符确定为{左部:110,顶部:10,底部:140,右部:190}。最后,如果200像素乘200像素内容项的按钮是30像素乘20像素按钮,则锚管理器222能够将按钮元素的占位符确定为{左部:130,顶部:160,底部:180,右部:130}。锚管理器222将每个元素的所生成的占位符输出到对应的元素渲染器224。
参考图8,元素渲染器224从锚管理器222接收每个对应的元素的占位符并且针对每个元素基于占位符和/或一个或多个锚的灵活性来确定初始空间分配。元素渲染器224可以包括图像元素渲染器、文本元素渲染器以及按钮元素渲染器。
可以针对内容项模板的每个图像元素分配图像元素渲染器224。图像元素渲染器224针对内容项的对应的图像元素确定初始空间分配。如果图像元素的所有锚是固定的,则图像元素渲染器224将确定初始空间分配与占位符相同并且图像元素的图像将落在初始空间分配的区域中。
如果图像元素的一个或多个锚是灵活的并且一个或多个锚是固定的,则将基于图像元素的图像的原始纵横比和大小而确定初始空间分配。例如,图像渲染器224可以将图像的纵横比的改变限于预定范围,诸如0.8(内含)至1.25(内含)。例如,如果图像元素具有{左部:0,顶部:0,底部:200,右部:100}的占位符并且右部锚是灵活的,则可以将初始空间分配确定为{左部:0,顶部:0,底部:200,右部:[80,125]},其中宽度可以是80个像素(内含)至125个像素(内含)的范围。对于最终空间分配,图像元素的右侧的最终宽度值或位置可以随后由空间管理器226确定。
如果图像元素的锚是灵活的,则初始空间分配可以包括用于定义图像元素的位置的范围并且图像被定位在初始空间分配的中心。
可以针对内容项模板的每个文本元素分配文本元素渲染器224。文本元素渲染器224针对内容项模板的对应的文本元素确定初始空间分配。如果文本元素的所有锚是固定的,则针对文本元素的初始空间分配与文本元素的对应的占位符相同。如果文本元素的一个或多个锚是灵活的,则所确定的初始空间分配可以包括基于最小字体大小和最大字体大小的范围。最小字体大小和最大字体大小可以基于要生成的内容项的大小。
可以针对内容项模板的每个按钮元素分配按钮元素渲染器224。按钮元素渲染器224针对内容项模板的对应的按钮元素确定初始空间分配。在一些实施方式中,按钮的占位符、初始空间分配和最终空间分配可以是基于第一尺寸值和第二尺寸值的相同的预定大小(例如,可以使用按钮的预定大小)。在其它实施方式中,如果按钮元素的所有锚是固定的,则针对按钮元素的初始空间分配与按钮元素的对应的占位符相同。如果按钮元素的一个或多个锚是灵活的,则所确定的初始空间分配的灵活尺寸可以随着其它元素(诸如图像元素或文本元素)中的一个或多个的灵活尺寸而线性地缩放。
可以将针对内容项模板的每个元素的初始空间分配发送到空间管理器226以针对要生成的内容项确定最终空间分配。
参考图9,空间管理器226从元素渲染器224接收初始空间分配以针对每个元素确定最终空间分配。对于具有固定初始空间分配{例如,没有范围的{左部:0,顶部:0,底部:100,右部:100})的每个元素,空间管理器226将最终空间分配确定为与对应的初始空间分配相同。对于具有灵活锚的每个元素,空间管理器226基于对应的一个或多个初始空间分配最小范围值而针对每个元素确定最小空间分配并且然后使用增长模块250的增长函数来修改每个元素的空间分配以利用任何剩余的空间。也就是说,如果所有元素适配于对应的初始空间分配的最小范围值,则空间管理器226针对每个元素使用增长模块250的增长函数以每次迭代将具有灵活锚的每个元素的空间分配的尺寸递增一个像素,直到空间分配的尺寸不能够进一步递增而不与另一元素重叠为止。增长函数可以基于元素的索引值和元素的类型而依次递增每个元素。也就是说,增长函数首先将递增带有具有最低索引值的灵活锚的元素的尺寸,然后递增具有次最低索引值的元素的尺寸等,直到具有灵活锚的所有元素已被递增为止。在一些实施方式中,如果索引值是相等的,则增长函数可以相比于文本元素而优先递增图像元素并且相比于按钮元素而优先递增文本元素。增长函数迭代具有灵活锚的元素,直到空间分配的尺寸不能够进一步递增而不与另一元素重叠为止。
图10A至图10B描绘针对具有两个元素(图像元素410和文本元素420)的内容项400的增长模块250的增长函数的应用。图像元素410包括灵活右部锚并且文本元素420包括灵活左部锚和灵活右部锚。对于要生成的具有宽250个像素的第一尺寸值以及高100个像素的第二尺寸值的内容项400,由图像元素渲染器224为图像元素410而确定的初始空间分配可以是{左部:0,顶部:0,底部:100,右部:[100,120]}并且由文本元素渲染器224为文本元素420而确定的初始空间分配可以是{左部:[120-140],顶部:0,底部:100,右部:[230,250]}。图10A描绘针对离由图像元素渲染器224所确定的对应的初始空间分配为100的最小右部范围值而定位在内容项400中的图像元素410以及针对离由文本元素渲染器224所确定的对应的初始空间分配为140的最小左部范围值和为230的最小右部范围值而定位在内容项400中的文本元素420。应用增长模块250的增长函数,图像元素的右部范围值可以递增一个像素至101的值,文本元素420的左部范围值可以递增一个像素至139的值,并且文本元素420的右部范围值可以递增一个像素至231的值。如图10B中所示,增长函数可以迭代每个单像素递增直到针对图像元素410的最终空间分配是{左部:0,顶部:0,底部:100,右部:120}并且针对文本元素420的最终空间分配是{左部:120,顶部:0,底部:100,右部:250}为止。
一旦针对一个或多个元素的最终空间分配已由空间管理器226确定,最终空间分配就被发送到冲突解决器228。
参考图11,冲突解决器228接收最终空间分配并且基于最终空间分配而确定是否存在任何冲突。这样的冲突可以包括元素的重叠、元素超出内容项的尺寸的溢出、不足边距、文本截断和/或其它内容项模板特定冲突。冲突解决器228可以对每个最终空间分配的值进行比较以确定一个元素的最终空间分配的一部分是否与另一元素的最终空间分配的一部分重叠。冲突解决器228可以将每个最终空间分配的值与第一尺寸值和第二尺寸值进行比较,以确定最终空间分配是否超过要生成的内容项的尺寸值而使得元素溢出内容项的尺寸。在一些实施方式中,冲突解决器228可以将一个或多个边距值添加到最终空间分配并且对最终边距增加的空间分配进行比较以确定是否存在不足边距。在一些实例中,冲突解决器228可以基于内容项大小从冲突系统232(图4中示出)接收计算出的边距值。在仍然另外的实施方式中,冲突解决器228可以确定文本元素中的一个或多个词是否被截断。在仍然其它的实施方式中,冲突解决器228可以应用从冲突系统232接收到的其它内容项模板特定规则。
如果存在冲突,则冲突解决器228可以从一个或多个元素的集合中消除一个元素并且将元素的新缩减集合返回给锚管理器222以基于元素的新集合确定占位符。被从一个或多个元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素对于内容项模板而言在重要性方面较低的最高索引值的元素)。在一些实施方式中,如果被确定要移除的元素被指示为所需元素,则冲突解决器228可以向布局解析器220发送数据以解析来自内容项模板的集合中的新内容项模板,或者冲突解决器228可以停止内容项的生成并且输出错误(例如,如果没有可以使用的其它内容项模板的话)。
如果不存在冲突,则冲突解决器228可以将内容项的数据和最终空间分配传递给计分器208。计分器208可以基于最终空间分配而确定内容项的分数。内容项的分数可以基于与内容项模板的元素的数量相比所生成的内容项中的元素的数量(例如,如果内容项模板具有4个元素并且所生成的内容项由于冲突而仅能够使用3个元素,则可以减小分数)、未用像素的数量(例如,由元素占据的总像素除以内容项的总像素)、每条垂直或水平线的未用像素的平均数量和/或针对一个或多个元素的加权(例如,与具有较低加权的消除的文本元素相比,消除的图像元素可以具有较高的加权,导致较低分数)。
可以针对来自内容项模板的集合的数个内容项模板来执行内容项和元素的布局的过程并且可以确定每个生成的内容项布局的分数。在一些实施方式中,内容项生成系统120可以排名分数并且选择得分最高的所生成的内容项。在一些实施方式中,内容项生成系统120向内容项请求方202或者向要存储的内容项数据库210输出用于显示所选择的得分最高的所生成的内容项的数据。
图12描绘由内容项生成系统120所实现的用于基于登录页面URL、第一尺寸值和第二尺寸值来生成内容项的过程500的实施方式。过程500包括接收登录页面URL、第一尺寸值和第二尺寸值(块502)。可以从客户端装置、第一方内容提供者或第三方内容提供者接收登录页面URL、第一尺寸值和第二尺寸值。在一些实例中,可以响应于客户端装置请求第一方内容提供者的具有内容项位的资源而从客户端装置接收第一尺寸值和第二尺寸值。在其它实施方式中,可以响应于客户端装置请求第一方内容提供者的具有内容项位的资源而从第一方内容提供者接收第一尺寸值和第二尺寸值。在一些实施方式中,可以独立于客户端装置请求资源而从第三方内容提供者接收登录页面URL、第一尺寸值和第二尺寸值。例如,第三方内容提供者可以利用内容项生成系统提供者生成要存储在数据库中并响应于来自客户端装置或第一方内容提供者的后续内容项请求而派发的不同大小的内容项。内容项数据可以由登录页面分析系统根据登录页面URL确定。
过程500还可以包括接收具有元素集合的内容项模板(块504)。内容项生成系统可以从内容项模板数据库中检索内容项模板中的全部,因为可以从内容项模板数据库中检索内容项模板的集合或内容项模板的子集。在仍然另外的实施方式中,可以从数据库中检索或者从第三方内容提供者接收选择的内容项模板。
过程500还可以包括针对每个元素生成占位符(块506)。每个元素的所生成的占位符可以由锚管理器基于一个或多个元素的关联数据(诸如锚)、第一尺寸值和第二尺寸值以及内容项数据而生成。
过程500还包括基于所生成的占位符而针对每个元素确定空间分配(块508)。在一些实施方式中,初始空间分配可以由元素渲染器使用每个元素的占位符并且在一些实例中使用每个元素的一个或多个锚的灵活来确定。最终空间分配可以由空间管理器确定。最终空间分配可以包括使用增长函数来递增针对具有灵活锚的一个或多个元素的最小初始空间分配的尺寸。
过程500包括基于针对每个元素所确定的空间分配而确定是否存在冲突(块510)。冲突解决器可以确定是否存在重叠冲突、溢出冲突、不足边距冲突、文本截断冲突和/或其它内容项模板特定冲突。如果存在冲突,则冲突解决器可以从一个或多个元素的集合中消除一个元素并且将元素的新集合返回给锚管理器以基于元素的新集合确定占位符。被从一个或多个元素中移除的元素可以基于元素的索引值(例如,移除具有指示元素对于内容项模板而言在重要性方面较低的最高索引值的元素)。在一些实施方式中,如果被确定要移除的元素被指示为所需元素,则冲突解决器可以向布局解析器发送数据以解析来自内容项模板的集合中的新内容项模板或者冲突解决器可以停止内容项的生成并且输出错误(例如,如果没有可以使用的其它内容项模板的话)。
过程500还包括响应于确定不存在冲突而使用基于登录页面URL和所确定的空间分配的数据来生成内容项(块512)。
在一些实施方式中,过程500还可以包括确定所生成的内容项的分数(块514)。所生成的内容项的分数可以基于与内容项模板的元素的数量相比所生成的内容项中的元素的数量、未用像素的数量、每条垂直或水平线的未用像素的平均数量和/或针对一个或多个元素的加权。
在一些另外的实施方式中,过程500可以仍然进一步包括输出用于显示所生成的内容项的数据(块516)。在一些实施方式中,可以响应于来自客户端装置的请求而将用于显示所生成的内容项的数据传送到客户端装置。在其它实施方式中,可以将用于显示所生成的内容项的数据输出到数据库以存储所生成的内容项。
在一些实施方式中,过程500的时间复杂性可以是M*N^2,其中M是内容项模板的数量并且N是元素的数量。
图13描绘与登录页面URL相关联的登录页面资源600的示例。登录页面资源600包括徽标图像602、文本部分604、606、608、610、612、图像614、616、618、620、622、624、626以及菜单部分628。在一些实施方式中,登录页面分析系统204可以包括能够解释与登录页面URL相关联的登录页面资源600并且创建其可视表示(例如,图像、显示等)的资源渲染器。资源渲染器可以创建与登录页面URL相关联的登录页面资源600的“快照图像”并且/或者构建表示与登录页面URL相关联的登录页面资源600的各种组件的文档对象模型(DOM)树。在一些实施方式中,登录页面分析系统204可以提取包括徽标图像602、文本部分604和图像614的内容项数据。
图14A至图15B描绘使用内容项模板、第一尺寸值和第二尺寸值的任意尺寸值以及从登录页面资源600中所提取的内容项数据的所生成的内容项的实施方式。图14A描绘具有680个像素的第一尺寸值以及160个像素的第二尺寸值并且使用第一内容项模板的所生成的内容项700。所生成的内容项700包括徽标图像602、文本部分604、图像614和按钮702。图14B描绘具有580个像素的第一尺寸值以及250个像素的第二尺寸值并且使用第一内容项模板的所生成的内容项710。所生成的内容项710包括徽标图像602、文本部分604、图像614和按钮702。图15A描绘具有380个像素的第一尺寸值以及350个像素的第二尺寸值并且使用第二内容项模板的所生成的内容项800。所生成的内容项800包括徽标图像602、文本部分604、图像614和按钮702。图15B描绘具有280个像素的第一尺寸值以及450个像素的第二尺寸值并且使用第二内容项模板的所生成的内容项810。所生成的内容项810包括徽标图像602、文本部分604、图像614和按钮702。
图16是能够被用来实现客户端装置110、内容项选择系统108、第三方内容服务器102、资源服务器104等的计算机系统900的框图。计算系统900包括用于传达信息的总线905或其它通信组件以及耦合到总线905以用于处理信息的处理器910。计算系统900还能够包括耦合到总线以用于处理信息的一个或多个处理器910。计算系统900还包括耦接到总线905以用于存储信息以及要由处理器910执行的指令的主存储器915,诸如RAM或其它动态存储装置。主存储器915还能够被用于存储位置信息、临时变量或在由处理器910执行指令期间的其它中间信息。计算系统900还可以包括耦接到总线905以用于为处理器910存储静态信息和指令的ROM 920或其它静态存储装置。存储装置925(诸如固态装置、磁盘或光盘)耦接到总线905以便永久地存储信息和指令。计算装置900可以包括但不限于数字计算机,诸如膝上型电脑、台式电脑、工作站、个人数字助理、服务器、刀片服务器、主机、蜂窝电话、智能电话、移动计算装置(例如,笔记本、电子阅读器等)等。
计算系统900可以经由总线905耦接到显示器935,诸如液晶显示器(LCD)、薄膜晶体管LCD(TFT)、有机发光二极管(OLED)显示器、LED显示器、电子纸显示器、等离子体显示面板(PDP)和/或其它显示器等,以用于向用户显示信息。输入装置930(诸如包括字母数字键和其它键的键盘)可以耦接到总线905以便向处理器910传达信息和命令选择。在另一实施方式中,输入装置930可以与显示器935集成在一起,诸如在触摸屏显示器中。输入装置930可以包括光标控件,诸如鼠标、轨迹球或光标方向键,以用于向处理器910传达方向信息和命令选择并且以用于控制光标在显示器935上的移动。
根据各种实施方式,能够由计算系统900响应于处理器910执行包含在主存储器915中的指令的布置而实现本文中所描述的过程和/或方法。能够从另一计算机可读介质(诸如存储装置925)将这样的指令读取到主存储器915中。包含在主存储器915中的指令的布置的执行使计算系统900执行本文中所描述的说明性过程和/或方法步骤。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器915中的指令。在替代实施方式中,可以代替或者与软件指令相结合地使用硬连线电路来实现说明性实施方式。因此,实施方式不限于硬件电路和软件的任何特定组合。
尽管已经参考图16描述了计算系统900的实施方式,但是本说明书中所描述的主题和功能操作的实施方式能够用其它类型的数字电子电路或者用计算机软件、固件或硬件(包括本说明书中所公开的结构及其结构等同物)或者用它们中的一个或多个的组合加以实现。
本说明书中所描述的主题和操作的实施方式能够用数字电子电路或者用被具体化在有形介质上的计算机软件、固件或硬件(包括本说明书中所公开的结构及其结构等同物)或者用它们中的一个或多个的组合加以实现。本说明书中所描述的主题能够作为被编码在一个或多个计算机存储介质上以用于由数据处理设备执行或者控制数据处理设备的操作的一个或多个计算机程序(即,计算机程序指令的一个或多个模块)被实现。可替选地或此外,能够将程序指令编码在人工生成的传播信号(例如,被生成来对信息进行编码以便传输到适合的接收器设备以用于由数据处理设备执行的机器生成的电、光学或电磁信号)上。计算机存储介质可以是或者被包括在计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置或者它们中的一个或多个的组合中。而且,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是被编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是或者被包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其它存储装置)中。因此,计算机存储介质是既有形的又非暂时性的。
能够通过数据处理设备对存储在一个或多个计算机可读存储装置上或者从其它源接收的数据执行本说明书中所描述的操作。
术语“数据处理设备”、“计算装置”或“处理电路”包含用于处理数据的所有类型的设备、装置和机器,包括可编程处理器、计算机、片上系统或多个可编程处理、计算机或片上系统、编程处理器的一部分或上述的组合。设备能够包括专用逻辑电路,例如FPGA或ASIC。除硬件之外,设备还能够包括为所述的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、交叉平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。设备和执行环境能够实现各种不同的计算模型基础设施,诸如web服务、分布式计算以及网格计算基础设施。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)能够用任何形式的编程语言(包括编译或解释语言)、描述性或过程语言编写,并且它能够被以任何形式(包括作为独立程序或者作为适合于在计算环境中使用的模块、组件、子例行程序、对象或其它单元)部署。计算机程序可以但未必对应于文件系统中的文件。能够在保持其它程序或数据的文件的一部分(例如,存储在标记语音文档中的一个或多个脚本)中、在专用于所述的程序的单个文件中或者在多个协调文件(例如,存储一个或多个模块、子程序或代码的各部分的文件)中存储程序。能够将计算机程序部署成被在一个计算机上或在位于一个地点处或者跨越多个地点分布并且通过通信网络互连的多个计算机上执行。
例如,适合于执行计算机程序的处理器包括既通用又专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元素是用于依照指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括或者在操作上耦接以从用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)接收数据或者向一个或多个大容量存储装置传送数据或两者。然而,计算机未必具有这样的装置。而且,能够将计算机嵌入在另一装置(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器)等)中。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如:半导体存储器装置,例如,EPROM、EEPROM和闪速存储器装置;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CD-ROM盘和DVD盘。处理器和存储器能够由专用逻辑电路补充或者并入专用逻辑电路。
为了提供与用户的交互,能够在具有用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或LCD监视器)以及用户能够用来向计算机提供输入的键盘和指点装置(例如,鼠标或轨迹球)的计算机上实现本说明书中所描述的主题的实施方式。其它类型的装置也能够被用来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以包括声输入、语音输入或触觉输入的任何形式接收来自用户的输入。
虽然本说明书包含许多特定实施方式细节,但是这些不应该被解释为对可能要求保护的范围构成限制,而是相反被解释为特定于特定实施方式的特征的描述。还能够在单个实施方式中相结合地实现在本说明书中在单独的实施方式的背景下描述的特定特征。相反,还能够单独地在多个实施方式中或在任何适合的子组合中实现在单个实施方式的背景下描述的各种特征。而且,尽管特征可以被以上描述为在特定组合中起作用并且甚至最初如此要求保护,但是来自要求保护的组合的一个或多个特征能够在一些情况下被从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,虽然按特定次序在附图中描绘操作,但是这不应该被理解为要求这样的操作被以所示的特定次序或以顺序次序执行,或者要求执行所有图示的操作,以实现所希望的结果。在特定情况下,多任务处理和并行处理可能是有利的。而且,在以上所描述的实施方式中使各种系统组件分离不应该被理解为在所有实施方式中要求这样的分离,并且应该理解,所描述的程序组件和系统通常能够被集成在单个软件产品中或者封装到被具体化在有形介质上的多个软件产品中。
对“或”的参考可以被解释为包括的,使得使用“或”所描述的任何术语可以指示以下中的任一个所描述的术语中的单个、超过一个和全部。
因此,已经对主题的特定实施方式进行了描述。其它实施方式在以下权利要求的范围内。在一些情况下,权利要求中所记载的动作能够被以不同的次序执行并且仍然实现所希望的结果。此外,附图中所描绘的过程未必要求所示的特定次序或顺序次序来实现所希望的结果。在特定实施方式中,多任务处理和并行处理可能是有利的。
除非被陈述该效果,否则权利要求不应该被解读为限于所描述的次序或元素。应该理解,在不脱离所附权利要求的精神和范围的情况下,可以通过本领域的普通技术人员作出形式和细节上的各种改变。要求保护落入所附权利要求及其等同物的精神和范围内的所有实施方式。
Claims (20)
1.一种用于自动地生成内容项的系统,所述系统包括:
一个或多个处理器;以及存储指令的一个或多个存储装置,所述指令当由所述一个或多个处理器执行时,使所述一个或多个处理器执行包括以下的操作:
接收具有用于创建内容项的元素集合的内容项模板以及所述元素集合的内容项数据,其中,所述内容项模板的所述元素集合中的每个元素包括索引和锚,
针对所述内容项模板的所述元素集合中的每个元素生成占位符,
至少部分地基于针对所述元素集合中的每个元素的所生成的占位符针对所述元素集合中的每个元素确定空间分配,
基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突,以及
响应于确定不存在冲突而使用所述元素集合的所述内容项数据和所确定的空间分配来生成内容项。
2.根据权利要求1所述的系统,所述锚包括锚基准、类型和距离。
3.根据权利要求2所述的系统,所述锚基准是所述内容项模板的所述元素集合中的第二元素或所述内容项。
4.根据权利要求2所述的系统,其中,所述类型是相对于所述内容项的方向。
5.根据权利要求2所述的系统,其中,所述距离是预定值或相对于所述内容项的相对值。
6.根据权利要求2所述的系统,其中,所述锚还包括灵活性指示符。
7.根据权利要求1所述的系统,其中,所述内容项模板的所述元素集合中的元素还包括要求指示符。
8.根据权利要求1所述的系统,其中,针对所述元素集合中的每个元素生成所述占位符包括:
基于所述元素集合中的每个元素的索引对所述元素集合进行排序。
9.根据权利要求1所述的系统,其中,针对所述元素集合中的每个元素生成所述占位符包括:
至少部分地基于与所述每个元素相关联的所述锚针对所述元素集合中的每个元素确定左部值、顶部值、右部值和底部值。
10.根据权利要求1所述的系统,其中,针对所述元素集合中的每个元素确定空间分配包括:
基于针对所述元素集合中的元素的所生成的占位符针对所述元素确定初始空间分配,
基于所述初始空间分配针对所述元素集合中的所述元素确定最小空间分配,以及
将针对所述元素集合中的所述元素的所确定的最小空间分配的尺寸递增预定像素值。
11.根据权利要求1所述的系统,其中,确定是否存在冲突包括:确定所述元素集合中的第一元素的第一空间分配的一部分是否与所述元素集合中的第二元素的第二空间分配的一部分重叠。
12.根据权利要求1所述的系统,其中,确定是否存在冲突包括:基于所述元素集合中的元素的所确定的空间分配来确定所述元素是否超过所述内容项的尺寸。
13.根据权利要求1所述的系统,其中,所述一个或多个存储装置存储指令,所述指令当由所述一个或多个处理器执行时,使所述一个或多个处理器执行还包括以下的操作:
响应于存在冲突的确定而从所述元素集合中移除元素以创建第二元素集合,
针对所述内容项模板的所述第二元素集合中的每个元素生成第二占位符,
至少部分地基于针对所述第二元素集合中的每个元素的所生成的第二占位符针对所述第二元素集合中的每个元素确定第二空间分配,以及
基于针对所述第二元素集合中的每个元素的所确定的第二空间分配而确定是否存在冲突。
14.一种用于自动地生成内容项的方法,所述方法包括:
在一个或多个数据处理器处接收登录页面URL、第一尺寸值和第二尺寸值;
在一个或多个数据处理器处接收具有用于创建内容项的元素集合的内容项模板;
使用一个或多个数据处理器来至少部分地基于所述第一尺寸值和所述第二尺寸值针对所述内容项模板的所述元素集合中的每个元素生成占位符;
使用一个或多个数据处理器来至少部分地基于针对所述元素集合中的每个元素的所生成的占位符针对所述元素集合中的每个元素确定空间分配;
使用一个或多个处理器来基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突;
使用一个或多个处理器来响应于确定不存在冲突而使用所确定的空间分配以及与所述登录页面URL相关联的登录页面资源的内容项数据来生成内容项;以及
使用一个或多个数据处理器来至少部分地基于所确定的空间分配而确定所生成的内容项的分数。
15.根据权利要求14所述的方法,其中,所述内容项模板的所述元素集合中的每个元素包括索引和锚。
16.根据权利要求14所述的方法,其中,所述内容项模板的所述元素集合中的每个元素包括索引和锚,其中,所述锚包括锚基准、类型和距离。
17.根据权利要求14所述的方法,其中,所述冲突是以下中的至少一个:重叠冲突、溢出冲突、不足边距冲突或文本截断冲突。
18.根据权利要求14所述的方法,其中,所述分数是第一分数并且所生成的内容项是第一生成的内容项,所述方法还包括:
使用一个或多个数据处理器来至少部分地基于针对所述第二元素集合中的每个元素的第二确定的空间分配而确定第二生成的内容项的第二分数;
使用一个或多个数据处理器来对所述第一分数和所述第二分数进行比较;以及
使用一个或多个数据处理器来至少部分地基于经比较的第一分数和第二分数而选择所述第一生成的内容项或所述第二生成的内容项。
19.根据权利要求14所述的方法,其中,针对所述元素集合中的每个元素确定空间分配包括:
使用一个或多个数据处理器来基于针对所述元素集合中的元素的所生成的占位符针对所述元素确定初始空间分配,
使用一个或多个数据处理器来基于所述初始空间分配针对所述元素集合中的所述元素确定最小空间分配,以及
使用一个或多个数据处理器来将针对所述元素集合中的所述元素的所确定的最小空间分配的尺寸递增预定像素值。
20.一种存储指令的计算机可读存储装置,所述指令当由一个或多个处理器执行时,使所述一个或多个处理器执行包括以下的操作:
接收登录页面URL、第一尺寸值、第二尺寸值以及具有用于创建内容项的元素集合的内容项模板;
至少部分地基于所述第一尺寸值和所述第二尺寸值针对所述内容项模板的所述元素集合中的每个元素生成占位符;
至少部分地基于针对所述元素集合中的每个元素的所生成的占位符针对所述元素集合中的每个元素确定空间分配,其中,针对所述元素集合中的每个元素确定空间分配包括:
基于针对所述元素集合中的元素的所生成的占位符针对所述元素确定初始空间分配,
基于所述初始空间分配针对所述元素集合中的所述元素确定最小空间分配,以及
将针对所述元素集合中的所述元素的所确定的最小空间分配的尺寸递增预定像素值;
基于针对所述元素集合中的每个元素的所确定的空间分配而确定是否存在冲突;
响应于确定不存在冲突而使用所确定的空间分配以及与所述登录页面URL相关联的登录页面资源的内容项数据来生成内容项;以及
响应于来自客户端装置的内容项请求而输出用于显示所生成的内容项的数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/071880 WO2015117268A1 (en) | 2014-02-07 | 2014-02-07 | Arbitrary size content item generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462559A true CN106462559A (zh) | 2017-02-22 |
CN106462559B CN106462559B (zh) | 2019-10-15 |
Family
ID=53775057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480077640.0A Active CN106462559B (zh) | 2014-02-07 | 2014-02-07 | 任意大小内容项生成 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11687707B2 (zh) |
EP (1) | EP3103027B1 (zh) |
CN (1) | CN106462559B (zh) |
WO (1) | WO2015117268A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948581A (zh) * | 2019-03-28 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 图文渲染方法、装置、设备及可读存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8688514B1 (en) | 2011-06-24 | 2014-04-01 | Google Inc. | Ad selection using image data |
US10972530B2 (en) | 2016-12-30 | 2021-04-06 | Google Llc | Audio-based data structure generation |
US11087424B1 (en) | 2011-06-24 | 2021-08-10 | Google Llc | Image recognition-based content item selection |
US11093692B2 (en) | 2011-11-14 | 2021-08-17 | Google Llc | Extracting audiovisual features from digital components |
US10586127B1 (en) * | 2011-11-14 | 2020-03-10 | Google Llc | Extracting audiovisual features from content elements on online documents |
US11030239B2 (en) | 2013-05-31 | 2021-06-08 | Google Llc | Audio based entity-action pair based selection |
US20150180926A1 (en) * | 2013-12-19 | 2015-06-25 | Bloomberg Finance L.P. | System and method for streaming ftp data to client applications |
US20150205809A1 (en) * | 2014-01-17 | 2015-07-23 | Pagefair Limited | Image Obfuscation |
CN105138698B (zh) * | 2015-09-25 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 网页的动态布局方法和装置 |
US10956529B1 (en) | 2018-03-20 | 2021-03-23 | Pinterest, Inc. | Content presentation |
US11995135B2 (en) * | 2021-02-18 | 2024-05-28 | Glean Technologies, Inc. | Permissions-aware search with user suggested results |
US11593409B2 (en) | 2021-02-19 | 2023-02-28 | Glean Technologies, Inc. | Permissions-aware search with intelligent activity tracking and scoring across group hierarchies |
US11790104B2 (en) | 2021-02-18 | 2023-10-17 | Glean Technologies, Inc. | Permissions-aware search with document verification |
US11797612B2 (en) | 2021-09-29 | 2023-10-24 | Glean Technologies, Inc. | Identification of permissions-aware enterprise-specific term substitutions |
US12050712B2 (en) | 2021-09-30 | 2024-07-30 | Glean Technologies, Inc. | Enterprise knowledge assistant with permissions-aware automated responses |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030040926A1 (en) * | 2001-08-23 | 2003-02-27 | Milton John R. | System and method for populating a region in a publication |
CN1648848A (zh) * | 2004-01-30 | 2005-08-03 | 佳能株式会社 | 布局调整方法和装置 |
CN1731399A (zh) * | 2004-08-06 | 2006-02-08 | 佳能株式会社 | 信息处理装置及其控制方法 |
CN1912825A (zh) * | 2005-08-09 | 2007-02-14 | 佳能株式会社 | 信息处理装置及其控制方法 |
US20120057726A1 (en) * | 2010-09-03 | 2012-03-08 | Van Wijngaarden Sander Jeroen | Sound volume limiter using continuous evaluation of the incurred sound exposure dose to prevent hearing damage without degrading the user experience |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078096A1 (en) * | 2000-12-15 | 2002-06-20 | Milton John R. | System and method for pruning an article |
US20070079236A1 (en) * | 2005-10-04 | 2007-04-05 | Microsoft Corporation | Multi-form design with harmonic composition for dynamically aggregated documents |
JP2008129702A (ja) * | 2006-11-17 | 2008-06-05 | Canon Inc | 情報処理装置および制御方法および制御プログラム |
US20080147553A1 (en) * | 2006-12-04 | 2008-06-19 | Interverz, Llc | Automated On-line Generation and Distribution of Advertisement and Promotional Materials |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US7720814B2 (en) * | 2007-04-04 | 2010-05-18 | Microsoft Corporation | Repopulating a database with document content |
US20130205199A1 (en) * | 2010-10-25 | 2013-08-08 | Niranjan Damera-Venkata | Variable Template Based Document Generation |
CN101976261B (zh) * | 2010-11-04 | 2012-04-18 | 上海银杏界信息科技有限公司 | 网页数据存储与搜索方法 |
US9639614B2 (en) * | 2011-10-04 | 2017-05-02 | Microsoft Technology Licensing, Llc | Maximizing content item information on a search engine results page |
US20130132209A1 (en) * | 2011-11-11 | 2013-05-23 | Google Inc. | Generating an advertising campaign |
US8639704B2 (en) * | 2012-04-04 | 2014-01-28 | Gface Gmbh | Inherited user rating |
US20140089124A1 (en) * | 2012-09-26 | 2014-03-27 | Google Inc. | Dynamic Product Content Generation |
US9519649B2 (en) * | 2013-10-07 | 2016-12-13 | International Business Machines Corporation | Free space management in a database |
-
2014
- 2014-02-07 CN CN201480077640.0A patent/CN106462559B/zh active Active
- 2014-02-07 EP EP14881880.0A patent/EP3103027B1/en active Active
- 2014-02-07 WO PCT/CN2014/071880 patent/WO2015117268A1/en active Application Filing
- 2014-12-30 US US14/585,685 patent/US11687707B2/en active Active
-
2023
- 2023-05-12 US US18/196,746 patent/US20230281383A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030040926A1 (en) * | 2001-08-23 | 2003-02-27 | Milton John R. | System and method for populating a region in a publication |
CN1648848A (zh) * | 2004-01-30 | 2005-08-03 | 佳能株式会社 | 布局调整方法和装置 |
CN1731399A (zh) * | 2004-08-06 | 2006-02-08 | 佳能株式会社 | 信息处理装置及其控制方法 |
CN1912825A (zh) * | 2005-08-09 | 2007-02-14 | 佳能株式会社 | 信息处理装置及其控制方法 |
US20070038929A1 (en) * | 2005-08-09 | 2007-02-15 | Canon Kabushiki Kaisha | Information processing apparatus, control method therefor, and program |
US20120057726A1 (en) * | 2010-09-03 | 2012-03-08 | Van Wijngaarden Sander Jeroen | Sound volume limiter using continuous evaluation of the incurred sound exposure dose to prevent hearing damage without degrading the user experience |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948581A (zh) * | 2019-03-28 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 图文渲染方法、装置、设备及可读存储介质 |
CN109948581B (zh) * | 2019-03-28 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 图文渲染方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230281383A1 (en) | 2023-09-07 |
EP3103027B1 (en) | 2019-06-05 |
WO2015117268A1 (en) | 2015-08-13 |
US20150227504A1 (en) | 2015-08-13 |
US11687707B2 (en) | 2023-06-27 |
CN106462559B (zh) | 2019-10-15 |
EP3103027A1 (en) | 2016-12-14 |
EP3103027A4 (en) | 2017-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462559B (zh) | 任意大小内容项生成 | |
US8533141B2 (en) | Systems and methods for rule based inclusion of pixel retargeting in campaign management | |
US9465887B2 (en) | Systems and methods for optimizing content layout using behavior metrics | |
CN105874449B (zh) | 用于提取和生成用于显示内容的图像的系统和方法 | |
US20160110082A1 (en) | Arbitrary size content item generation | |
KR101806169B1 (ko) | 쇼핑 정보를 제공하는 방법, 장치, 시스템 및 컴퓨터 프로그램 | |
CN106688215A (zh) | 针对内容效能优化的自动点击类型选择 | |
CN105653545B (zh) | 在页面中提供业务对象信息的方法及装置 | |
JP2019096356A (ja) | ウェブページのためのコンテンツ項目サイズの自動的な決定 | |
US20150213514A1 (en) | Systems and methods for providing modular configurable creative units for delivery via intext advertising | |
CN101937446A (zh) | 网站加速器 | |
US9483740B1 (en) | Automated data classification | |
US11699019B2 (en) | Visual content optimization system using artificial intelligence (AI) based design generation and validation | |
US20160224999A1 (en) | Recommending common website features | |
CN111143555B (zh) | 基于大数据的客户画像生成方法、装置、设备及存储介质 | |
CN109151023A (zh) | 任务分配方法、装置及存储介质 | |
CN106489165A (zh) | 将来自应用的转化与所选内容项目匹配 | |
CN103995905A (zh) | 一种电子商务内容多维分类、导航及跳转方法 | |
KR102458510B1 (ko) | 실시간 보완 가능한 마케팅 시스템 | |
CN107545018A (zh) | 在基于反馈的系统效能确定中的时延降低 | |
CN105706081A (zh) | 结构化信息链接注释 | |
US9516089B1 (en) | Identifying and processing a number of features identified in a document to determine a type of the document | |
CN103744938A (zh) | 一种用于生成与目标系统对应的用户页面方法和装置 | |
CN109961199A (zh) | 一种分析数据波动的方法和装置 | |
CN108604232A (zh) | 通过模型化滚动行为而改善信息源 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |