在诸如因特网或其它网络的联网环境中,第一方内容提供商可以提供用于在资源(例如网页、文档、应用和/或其它资源)上公开呈现的信息。第一方内容可以包括由第一方内容提供商经由例如用于通过因特网在客户端设备上呈现的资源服务器提供的文本、视频和/或音频信息。第一方内容可以是由客户端设备请求的网页或在客户端设备上运行的独立应用(例如,视频游戏、聊天程序等)。还可以由第三方内容提供商提供附加的第三方内容,用于在客户端设备上与由第一方内容提供商提供的第一方内容一起呈现。例如,第三方内容可以是结合所请求的资源或应用(例如,游戏内的广告)出现的公共服务公告或广告,诸如网页(例如,来自搜索引擎的搜索结果网页、包括在线文章的网页、社交网络服务的网页等)。因此,查看资源的人可以访问作为资源主题的第一方内容以及可能或可能不与资源主题相关的第三方内容。
技术实现要素:
本文描述的实施方式涉及使用给定的URL和宽度和高度约束自动生成任意大小的内容条目(content item)的系统和方法。系统可以接收内容条目模板,该内容条目模板具有用于创建内容条目的元素集合和用于该元素集合的内容条目数据。可以为每个元素生成占位符,并且可以为每个元素生成空间分配。一旦为元素分配了空间,则基于每个元素的空间分配来确定是否存在冲突,并且如果不存在冲突,则可以使用内容条目数据和所确定的空间分配来生成内容条目。在一些情况下,系统将使用真实浏览器离线地预呈现或生成布局信息如空间分配,使得为任意大小的内容条目模板选择公共内容条目大小,并且将存储布局信息。当请求该公共内容条目大小的内容条目时,系统获取待渲染的内容条目的布局信息和资源。系统将HTML文件中的布局信息和资产信息连同JavaScript文件一起发送到客户端设备,以在客户端设备组装内容条目。JavaScript文件检测布局信息是否包括在HTML文件中,并且如果是,则在客户端设备处在呈现内容条目时使用预先生成的布局信息。如果没有布局信息包括在具有资产信息的HTML文件中,则JavaScript文件将确定客户端设备处的布局。
还可以实现内容条目成分(component)来定义一种或多种类型的内容条目模板元素,并且可以包括每种类型的元素的属性,诸如名称、类型、优先级和权重。内容条目模板然后可以包括若干布局变体,其中每个布局变体具有调用定义的内容条目成分的一个或多个元素,并且每个元素定义它如何与其它元素相关以及如何在元素内部布置成分。布局变体可以组合成一个配置文件,然后配置文件和布局引擎JavaScript可以链接到同一个HTML文件。
此外,内容条目生成系统可以利用智能资产选择来选择资产,诸如内容条目模板的元素集合的内容条目数据,和/或基于客户端设备的场境数据(例如,如果移动客户端设备具有较差或低带宽连接(例如2G对比WiFi的更好或更高带宽连接)或使用具有与内容条目时隙大小类似宽高比的图像资产,则从最终呈现的广告中消除图像)来从待生成的内容条目中减除元素。因此,内容条目生成系统可以基于场境数据为客户端设备生成定制的任意大小的内容条目。
一个实现涉及一种用于自动生成内容条目的系统。该系统包括一个或多个处理器和一个或多个存储设备,其包括使得一个或多个处理器执行若干操作的指令。这些操作包括接收模板,该模板具有用于创建内容条目的元素集合和用于该元素集合的内容条目数据,所述元素集合的内容条目数据包括根据从客户端设备接收的场境数据而选择的资产。所述操作还包括为模板的元素集合中的每个元素生成占位符,并且至少部分地基于为元素集合中的每个元素生成的占位符来确定该元素集合中每个元素的空间分配。操作还包括基于为元素集合的每个元素确定的空间分配来确定是否存在冲突,并且响应于确定不存在冲突,使用元素集合的内容条目数据和确定的空间分配来生成内容条目。
另一实现涉及一种用于生成内容条目模板的布局数据的方法。该方法包括接收着陆页URL、第一尺度值和第二尺度值。所述方法还包括:接收具有用于创建内容条目的元素集合的内容条目模板,以及至少部分地基于所述第一尺度值和第二尺度值为该内容条目模板的元素集合中的每个元素生成占位符。该方法还包括至少部分地基于为该元素集合的每个元素生成的占位符来确定该元素集合中的每个元素的空间分配,并且基于为该元素集合的每个元素确定的空间分配来确定是否存在冲突。该方法还包括基于所确定的空间分配并响应于确定不存在冲突,在数据库中存储用于该内容条目模板的与第一尺度值和第二尺度值相关联的布局数据。
另一实施方式涉及存储指令的计算机可读存储设备,当由一个或多个处理器执行时,使得一个或多个处理器执行若干操作。操作可以包括从客户端设备接收对内容条目的请求,该请求包括内容条目槽的第一尺度值、内容条目槽的第二尺度值以及场境数据。操作还包括响应于来自客户端设备的请求确定待提供的内容条目的着陆页URL,以及基于着陆页URL和接收的场境数据确定内容条目的内容条目数据。操作还包括输出内容条目模板、确定的内容条目数据以及脚本,使得由客户端设备根据所述内容条目模板和确定的内容条目数据生成内容条目。
附图说明
在附图和以下描述中阐述了一个或多个实现的细节。从说明书、附图和权利要求书,本公开的其它特征、方面和优点将变得显而易见,其中:
图1是描述经由计算机网络提供信息的系统的实现的概图;
图2是更详细地描述内容条目生成系统的实现并具有布局生成器和评分器的框图;
图3是更详细地描绘图2的布局生成器的实现的框图,其具有布局解析器、锚定管理器、一个或多个元素渲染器、空间管理器和冲突消解器;
图4是描绘用于图2的布局生成器和评分器的处理流程的实现的框过程图。
图5是描绘图3-图4的布局剖析器的实现的框图;
图6是描绘图3-图4的锚定管理器的实现的框图;
图7是描绘图3-图4的一个或多个元素渲染器的实现的框图;
图8是描绘具有生长模块的图3-图4的空间管理器的实现的框图;
图9A是描绘具有用于图像元素的初始最小空间分配和用于文本元素的初始最小空间分配的内容条目的实现的图;
图9B是图9A的内容条目的图,其具有用于图像元素的最终空间分配以及在应用了空间管理器8的生长模块的生长函数之后的文本元素的最终空间分配;
图10是描绘图3-图4的冲突消解器的实现的框图;
图11是描绘用于为图2的内容条目生成系统创建内容条目模板的配置文件的过程的实现的过程图;
图12是描绘用于生成内容条目的过程的实现的过程图;
图13是描绘用于向客户端设备提供脚本以使客户端设备生成内容条目的显示数据的过程的实现的过程图;
图14是描绘与着陆页URL相关联的着陆页资源的实现的框图;
图14A是描绘基于场境数据生成的第一生成内容条目的实现的框图;
图14B是描绘基于其它场境数据生成的第二生成内容条目的实现的框图。
图15A是描绘具有第三任意尺度并使用第二内容条目模板的生成的内容条目的实现的框图。
图15B是描述具有第四任意尺度并使用第二内容条目模板的另一个生成的内容条目的实现的框图;和
图16是描绘可用于实现本文所描述和示出的系统和方法的各种元件的计算机系统的一般架构的框图。
应理解,为了说明的目的,一些或所有附图是示意性表示。提供附图是为了说明一个或多个实施例的目的,明确理解它们将不用于限制权利要求的范围或含义。
具体实施方式
下面是与用于在计算机网络上提供信息的方法、装置和系统相关的各种概念和实现的更详细的描述。以上介绍的以及下面更详细讨论的各种概念可以以多种方式中的任一种来实现,因为所描述的概念不限于任何特定的实现方式。提供具体实现和应用主要是为了说明的目的。
计算设备(例如,客户端设备)可以查看资源,诸如网页、文档、应用等。在一些实现中,计算设备可以经由因特网通过与服务器通信来访问资源,例如对应于该资源的网页服务器。资源包括作为来自第一方内容提供商的资源的主题的第一方内容,并且还可以包括附加的第三方提供的内容,诸如广告或其它内容。在一个实现中,响应于接收到访问网页的请求,网页服务器和/或客户端设备可以与数据处理系统(例如内容条目选择系统)通信,以请求内容条目与所请求的网页一起呈现,诸如通过执行资源的代码来请求要与资源一起呈现第三方内容条目。内容条目选择系统可以选择第三方内容条目并且提供数据以实现在客户端设备的显示器上呈现具有所请求的网页的内容条目。在一些情况下,使用与搜索查询响应相关联的资源来选择和服务内容条目。例如,搜索引擎可以在搜索结果网页上返回搜索结果,并且可以在搜索结果网页的一个或多个内容条目槽(slot)中包括与搜索查询相关的第三方内容条目。
计算设备(例如,客户端设备)还可以用于查看或执行应用,诸如移动应用。应用可以包括作为来自第一方内容提供商的应用的主题的第一方内容,并且还可以包括附加的第三方提供的内容,诸如广告或其它内容。在一个实现中,响应于应用的使用,资源服务器和/或客户端设备可以与诸如内容条目选择系统的数据处理系统通信,以请求向应用和/或其它的用户界面呈现内容条目。内容条目选择系统可以选择第三方内容条目并且提供数据以实现在客户端设备的显示器上与应用一起呈现内容条目。
在一些情况下,设备标识符可以与客户端设备相关联。设备标识符可以是与客户端设备相关联的随机化数字,以在对资源和/或内容条目的后续请求期间标识设备。在一些情况下,设备标识符可以被配置为存储和/或使得客户端设备将与客户端设备相关的信息发送到内容条目选择系统和/或资产服务器(例如,传感器数据的值,网络浏览器类型、操作系统、历史资产请求、历史内容条目请求等)。
在这里讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供机会来控制程序或特性是否收集用户信息(如关于用户的社交网络、社交动作或活动、专业、用户的偏好或用户的当前位置),或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容。另外,可以在存储或使用某些数据之前以一种或多种方式来处理这些数据,使得去除个人可标识信息。例如,可以对用户的身份进行处理,使得不能确定该用户的个人可识别信息,或者可以在获得位置信息(例如城市、邮政编码或州级别)的地方,泛化用户的地理位置,使得不能确定用户的具体位置。因此,用户可以控制内容服务器如何收集和使用关于该用户的信息。
第三方内容提供商在经由因特网或其它网络提供第三方内容条目以使得与所请求的资源一起呈现时可以利用内容条目管理服务来控制或以其它方式影响第三方内容条目的选择和服务。例如,第三方内容提供商可以指定在选择第三方内容条目时使用的选择标准(诸如关键字)和对应的出价值。出价值可以由竞投中的内容条目选择系统利用以选择和提供内容条目以使得与资源一起呈现。例如,如果用户与提供商的内容条目交互,则第三方内容提供商可以在竞投中设置与支付一定数量的钱的协议相对应的出价(例如,如果用户点击了提供商的内容条目则提供商同意支付$3)。在其它情况下,如果选择和服务内容条目,则第三方内容提供商可以在竞投中设置与支付一定金额的协议相对应的出价(例如,每次内容条目被选择和服务提供商同意支付$0.005,或者提供商同意在每次选择或点击内容条目时支付$0.05)。在一些情况下,内容条目选择系统使用内容条目交互数据来确定第三方内容提供商的内容条目的性能。例如,用户可能更倾向于点击某些网页上的第三方内容条目而不是其它网页。因此,投放第三方内容条目的竞投出价对于高执行网页的网页类别和/或其它标准可以更高,而对于低执行网页的网页类别和/或其它标准可以更低。
在一些情况下,可以确定第三方内容条目的一个或多个效能指标,并且可以经由用于内容条目管理帐户的用户界面向第三方内容提供商提供这样的效能指标的指示。例如,效能指标可以包括每次闪现的费用(CPI)或每千次闪现的费用(CPM),其中例如,每当内容条目被选择用于与资源一起呈现时,可以对闪现进行计数。在一些情况下,效能指标可以包括点击率(CTR),其被定义为内容条目上的点击次数除以闪现数。还有其它效能指标,例如每动作费用(CPA)(其中动作可以是点击内容条目或其中的链接、产品的购买、内容条目的推荐等),转换率(CVR)、每次点击费用(CPC)(当点击内容条目时计数)、每次销售费用(CPS)、每次引导费用(CPL)、有效CPM(eCPM)和/或其它效能指标可以被使用。
在一些情况下,网页或其它资源(如应用)包括一个或多个内容条目槽,其中可以显示所选择和提供的第三方内容条目。定义用于网页或其它资产的内容条目槽的代码(例如,HTML等)可以包括用于从内容条目选择系统请求第三方内容条目与网页一起呈现的指令。在一些实现中,代码可以包括具有可以包括一个或多个参数(例如,/page/contentitem?devid=abc123&devnfo=A34r0)的内容条目请求URL的图像请求。在一些实现中,这样的参数可以是诸如“devid=abc123”和/或“devnfo=A34r0”的编码字符串。
内容条目选择系统对要与资源服务一起提供的第三方内容条目的选择可以基于几个影响因素,诸如预测的点进率(pCTR)、预测的转换率(pCVR)、与内容条目相关联的出价等。这些影响因素可以用于生成诸如得分的值,针对其内容条目选择系统可以通过竞投来与其它内容条目的其它得分进行比较。
在针对资源(如网页)的内容条目槽的竞投期间,第三方内容提供商可对各种第三方内容条目利用若干不同类型的出价数值。例如,竞投可以包括基于用户是否点击第三方内容条目,用户是否基于第三方内容条目的呈现执行特定动作,是否选择第三方内容条目和服务的出价,和/或其它类型的出价。例如,基于第三方内容条目是否被选择和提供的出价可以是较低的出价(如$0.005),而基于用户是否执行特定动作的出价可以是较高的出价(如$5)。在一些情况下,可以调整出价以考虑与出价类型相关联的概率和/或由于其它原因而调整。例如,用户执行特定动作的概率可以低,例如0.2%,而所选择和服务的第三方内容条目的概率可以是100%(例如,如果它在竞投期间被选择,则选择和服务的内容条目将出现,因此出价未被调整)。因此,可以基于出价值和概率或另一修改值来产生诸如得分或归一化值的值以用于竞投。基于第三方内容条目是否被选择和提供的出价的值或得分可以是$0.005*1.00=0.005,并且基于用户是否执行特定动作的出价的值或得分可以是$5*0.002=0.01。为了最大化所产生的收入,内容条目选择系统可以选择来自竞投的具有最高值的第三方内容条目。在一些实现中,内容条目选择系统可以基于用户是否由于与该出价相关联的较高的值或得分而执行特定动作来选择与出价相关联的内容条目。
一旦内容条目选择系统选择了第三方内容条目,就可以使用网络将实现在客户端设备的显示器上呈现第三方内容条目的数据提供给客户端设备。
在一些情况下,使用着陆页(landing page)统一资源定位符(URL)、第一尺度值和第二尺度值来自动生成第三方内容提供商的内容条目可能是有用的。也就是说,给定第三方内容提供商的着陆页和内容条目槽的尺度(dimension),如广告的内容条目,可以使用该尺度和根据着陆页网址确定的内容条目数据基于一个或多个内容条目模板来自动生成。在一些实现中,内容条目可以是按需生成的,如响应于对内容条目的请求,或者可以生成内容条目,并且内容条目的数据可存储在数据库中或在用户界面中呈现给生成内容条目的第三方内容提供商。
可以从客户端设备、第一方内容提供商或第三方内容提供商接收着陆页URL、第一尺度值和/或第二尺度值。在一些实例中,响应于客户端设备请求具有内容条目槽的第一方内容提供商的资源,可以从客户端设备接收第一尺度值和第二尺度值。客户端设备可以接收第一方资产的数据,并向内容条目选择系统发送对包括第一尺度值和第二尺度值的内容条目(例如广告)的请求。内容条目选择系统可以选择第三方内容提供商,并且内容条目生成系统或内容条目生成脚本可以用于使用第三方内容提供商的着陆页URL、第一尺度值以及第二尺度值生成内容条目。在一些实现中,内容条目选择系统可以输出布局数据以使用第一方内容提供商的资源来显示预生成的内容条目。在其它实现中,内容条目选择系统可以输出具有用于脚本的内容条目数据的内容条目生成脚本,以在客户端设备处生成内容条目。在一些实例中,响应于客户端设备请求具有内容条目槽的第一方内容提供商的资源,可以从第一方内容提供商接收第一尺度值和第二尺度值。
在一些实现中,可以从独立于请求资源的客户端设备的第三方内容提供商接收着陆页URL、第一尺度值和第二尺度值。例如,第三方内容提供商可以利用内容条目生成系统或内容条目生成脚本来生成不同大小的内容条目以存储在数据库中,并用于响应来自客户端设备或第一方内容提供商的后续内容条目请求。
从着陆页URL确定的内容条目数据可以使用资源渲染器来确定,资源渲染器能够解释与着陆页URL相关联的资源并创建其视觉表示(如图像、显示等)。例如,着陆页URL的资源可以包括标记的内容(如HTML、XML、图像URL等)以及格式化信息(如CSS、XSL等)。资源渲染器可以根据万维网联盟(W3C)标准来下载标记的内容和格式化信息,并呈现与着陆页URL相关联的资源。因此,资源渲染器可以创建与着陆页URL相关联的资源的“快照图像”和/或构造表示与着陆页URL相关联的资源的各种成分的文档对象模型(DOM)树。
在一些实现中,内容条目数据可以包括图像数据、颜色数据、文本数据、徽标(logo)数据等。在一些实现中,图像模块可以解析与着陆页URL相关联的资源的DOM树,并提取图像数据的图像和图像元数据(例如,图像URL、显示位置、显示尺寸、替代文本等)。在一些情况下,颜色模块可以使用与着陆页URL相关联的资源的快照图像和/或DOM树来选择要生成的内容条目的颜色数据的颜色。文本模块可以被配置为诸如通过使用与着陆页URL相关联的资源的DOM树或快照图像来自动生成内容条目的文本数据(如文本描述、标题等)以创建显示在与着陆页URL相关联的资源上的文字摘要。在另外的实例中,可以使用与着陆页URL相关联的资源的DOM树或快照图像来提取一个或多个徽标的徽标数据。徽标图像可以是商标、企业徽标、产品徽标、公司徽标或与特定产品、服务或组织相关联的任何其它图像。在一些实现中,可以从数据库检索内容条目数据,诸如图像数据、颜色数据、文本数据、徽标数据等,或者从用于所生成的内容条目的第三方内容提供商接收内容条目数据。
在一些实现中,连同着陆页URL、第一尺度值和/或第二尺度值,还可以一起包括场境数据。场境数据(contextual data)可以包括设备类型数据、网络连接类型数据、网络连接速度数据等。如这里将更详细地描述的,场境数据可以用于为所生成的内容条目选择内容条目数据,以定制基于所述场境数据生成的内容条目。例如,场境数据可以包括指示WiFi网络连接类型的数据。要生成的内容条目的选择的内容数据可以包括更大的图像、高清晰度视频等。在另一种情况下,场境数据可以包括指示2G网络连接类型的数据。要生成的内容条目的选择的内容数据可以替代地包括较小的图像、低清晰度视频等,或者可以从内容条目中省略一个或多个元素以减少内容条目的数据量。在其它实例中,内容条目数据的选择也可以基于第一尺度值和第二尺度值。例如,可以选择具有与要生成的内容条目相似的纵横比的内容条目的图像。
一个或多个内容条目模板可以存储在内容条目模板数据库中,并且响应于来自内容条目生成系统的对一个或多个内容条目模板的请求而被检索。内容条目模板定义待由内容条目模板生成的内容条目的元素和元素的布置。在一些实现中,一个或多个内容条目模板可以是定义内容条目模板的一个或多个元素的有约束XML配置文件。每个内容条目模板可以定义该内容条目模板的一个或多个内容条目成分。每个内容条目成分可以包括属性,诸如名称、类型、优先级和权重。名称属性可以是设计者定义的名称以引用内容条目成分。类型属性可以是与默认优先级和/或默认权重相关联的设计者选择的内容条目类型,诸如标题、徽标、产品、描述、按钮等。优先级属性可以是设计者定义的值,其可以用于对内容条目模板的元素的移除进行优先级排序。在一些实现中,值越低,优先级越高,其中对于不能从生成的内容条目去除的元素具有0值。权重属性可以是设计者定义的值,其可以用于在附加空间可用时对内容条目的元素的增长进行优先级排序。
内容条目模板还包括用于内容条目的一个或多个模板,其利用内容条目成分中的一个或多个来定义内容条目的布局的一个或多个元素。在一些实例中,内容条目模板可以包括一个或多个用于元素的渲染框。每个渲染框和/或元素包括内容条目成分中的一个或多个,以及定义元素相对于另一元素和/或相对于内容条目本身的布置的至少两个锚(例如,按钮元素可以由相对于内容条目的右边缘的右锚和相对于内容条目的底部边缘的底锚定义)。
锚(anchor)用于描述内容条目模板的两个元素之间或者元素与待由内容条目模板生成的内容条目之间的关系。锚利用引用(例如,另一元素)或至内容条目本身的距离(例如,诸如像素(px)的固定距离或诸如10%的相对距离)来定义。
使用一个或多个内容条目模板和内容条目数据,针对给定的尺度集合,例如第一尺度值和第二尺度值,内容条目生成系统和/或内容条目生成脚本可以对每个内容条目模板生成并评分内容条目,以最大化空间利用。内容条目生成系统和/或内容条目生成脚本可以解析内容条目模板的布局配置文件,以确定内容条目模板的一个或多个元素的布局元素数据。内容条目生成系统和/或内容条目生成脚本然后可以基于布局元素数据的锚、要生成的内容条目的尺度值以及内容条目数据来确定一个或多个元素的每个元素的占位符。内容条目生成系统和/或内容条目生成脚本可以使用一个或多个元素渲染器基于占位符来确定一个或多个元素的每个元素的初始空间分配。
内容条目生成系统和/或内容条目生成脚本可以基于初始空间分配来确定一个或多个元素的每个元素的最终空间分配,并且通过使用生长函数来修改任何元素,扩展初始空间分配以最大化内容条目的空间利用。然后,内容条目生成系统和/或内容条目生成脚本可以基于所确定的最终空间分配来确定对于内容条目是否存在任何冲突。这样的冲突可以包括元素的重叠、超出内容条目的尺度的元素的溢出、不足的余量、文本截断和/或其它内容条目模板专有的冲突。
如果存在冲突,则内容条目生成系统和/或内容条目生成脚本可以从内容条目模板的一个或多个元素中减除元素,并且返回,基于缩减的元素集合来确定占位符。从一个或多个元素中去除的元素可以基于元素的优先级值(例如,去除指示该元素对内容条目模板的重要性较低具有最高优先级值的元素)。在一些实现中,确定要去除的元素可以基于布局元素数据被指示为所需元素。在这样的实例中,内容条目生成系统和/或内容条目生成脚本可以选择新的内容条目模板,解析模板,并且继续使用新的模板生成内容条目。在其它实例中,内容条目生成系统和/或内容条目生成脚本可以停止内容条目的生成并输出错误(例如,如果没有其它内容条目模板可以被使用)。
如果不存在冲突,则在一些实现中,内容条目生成系统和/或内容条目生成脚本可以确定内容条目的得分(score)。内容条目的得分可以基于所生成的内容条目中的元素的数量与内容条目模板的元素数量、未使用像素的数量、每垂直或水平线的未使用像素的平均数量、一个或多个元素的权重等的比较。在一些实现中,内容条目生成系统和/或内容条目生成脚本可以生成若干内容条目,每个内容条目具有相关联的得分,并且内容条目生成系统可以对得分进行排序,选择生成的最高得分的内容条目。在一些实现中,显示所选择的生成的最高得分内容条目的数据可以从内容条目生成系统输出到客户端设备,以使用第一方内容提供商资源显示生成的内容条目。在其它实现中,显示内容条目的数据可以由内容条目生成脚本利用以在客户端设备的显示器上显示生成的内容条目。
在其它实现中,用于显示生成的最高得分内容条目的布局数据和/或数据可以存储在数据库中以在稍后时间输出。例如,对于每个内容条目模板,可以针对内容条目槽尺度预定集合的生成布局数据,诸如300像素(px)×250px、336px×280px、970px×100px、160px×600px、320px×50px等。针对内容条目槽尺度的预定集合中的每一个,布局数据可以使用在诸如服务器的计算设备上执行的真实网络浏览器生成。因此,当接收到具有与内容条目槽尺度的预定集合中的一个相对应的内容条目槽尺度的请求时,则可以检索内容条目槽尺度的预定集合中的一个的布局数据并将其发送到客户端设备,其中内容条目的内容条目数据将被显示在客户端设备的显示器上。在客户端设备上执行的脚本然后可以使用布局数据和内容条目数据生成显示数据,用于在客户端设备上显示内容条目。
在另外的实施方式中,所生成的内容条目的全部或子集及其相关联的得分可以存储在数据库中。在其它实现中,可以将所生成的内容条目的全部或子集和相关联的得分的数据输出到第三方内容提供商的计算设备的用户界面以供选择。例如,内容条目生成系统可以被集成到用于第三方内容提供商的内容条目生成用户界面中。响应于输入来自第三方内容提供商的所需内容条目的着陆页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#、Java、JavaScript、Perl、HTML、XML、Python和Visual Basic。处理器可以处理指令和输出数据以实现向资源服务器104和/或客户端设备110呈现一个或多个内容条目。除了处理电路之外,内容条目选择系统108可以包括一个或多个被配置为存储数据的数据库。内容条目选择系统108还可以包括被配置为经由网络106接收数据并且将数据从内容条目选择系统108提供到网络106上的任何其它设备的接口。内容条目选择系统108可以包括服务器,例如广告服务器或其它。
内容条目选择系统108可以包括内容条目生成系统120。在一些实现中,内容条目生成系统120可以是与内容条目选择系统108相同的系统的一部分,或者内容条目生成系统120可以与内容条目选择系统108分离。例如,内容条目生成系统120可以是内容条目选择系统108的子系统,或者内容条目生成系统120可以是与内容条目选择系统108通信的分离的系统。在内容条目生成系统120与内容条目选择系统108分离的实现中,内容条目生成系统120可以按照与本文描述的内容条目选择系统108类似的方式构建。
在另外的实施方式中,可以省略内容条目选择系统108,并且内容条目生成系统120可以连接到网络106以与第三方内容服务器102、资源服务器104和/或客户端设备110通信。
客户端设备110可以包括一个或多个设备,诸如计算机、膝上型计算机、桌面、智能电话、平板电脑、个人数字助理、用于电视机的机顶盒、智能电视或经由网络106与其它设备通信的服务器设备。设备可以是包括数据处理器和存储器的任何形式的电子设备。存储器可以存储机器指令,当由处理器执行时,使得处理器执行这里描述的操作中的一个或多个。存储器还可以存储数据以实现在计算设备上呈现一个或多个资源、内容条目等。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够向处理器提供程序指令的电子、光学、磁性或任何其它存储或传输设备。存储器可以包括软盘、光盘只读存储器(CD-ROM)、数字通用盘(DVD)、磁盘、存储器芯片、只读存储器(ROM)、随机存取存储器(RAM)可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、闪存、光学介质或者处理器可以从其读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,例如但不限于,C、C++、C#、HTML、和Visual和XML。
客户端设备110可以执行软件应用(例如,网络浏览器或其它应用)以通过网络106从其它计算设备检索内容。这样的应用可以被配置为从资源服务器104检索第一方内容。在一些情况下,在客户端设备110上运行的应用本身可以是第一方内容(例如,游戏、媒体播放器等)。在一个实现中,客户端设备110可以执行在客户端设备的显示器上提供浏览器窗口的网络浏览器应用。提供浏览器窗口的网络浏览器应用可以通过从输入设备(例如,定点设备、键盘、触摸屏或其它形式)接收统一资源定位符(URL)的输入来操作。作为响应,执行来自网络浏览器应用的指令的客户端设备的一个或多个处理器可以从连接到由URL地址(例如,资源服务器104)引用的网络106的另一设备请求数据。然后,另一设备可以向客户端设备110提供网页数据和/或其它数据,这使得可视标记被客户端设备110的显示器显示。因此,浏览器窗口显示所检索的第一方内容,例如来自各种网站的网页,以便于用户与第一方内容的交互。
资源服务器104可以包括计算设备,如被配置为托管诸如网页或其它资源(例如,文章、评论线索、音乐、视频、图形、搜索结果、信息反馈等)的服务器。资源服务器104可以是计算机服务器(例如,文件传输协议(FTP)服务器、文件共享服务器,web服务器等)或服务器的组合(例如,数据中心、云计算平台等)。资源服务器104可以向客户端设备110提供资源数据或其它内容(例如,文本文档、PDF文件和其它形式的电子文档)。在一个实现中,客户端设备110可以经由网络106访问资源服务器104请求数据以实现资源服务器104的资源的呈现。
一个或多个第三方内容提供商可以具有第三方内容服务器102以经由网络106直接或间接地向内容条目选择系统108和/或向其它计算设备提供第三方内容条目的数据。内容条目可以是呈现在客户端设备110的显示器上的任何格式,例如图形、文本、图像、音频、视频等。内容条目也可以是格式的组合(混合)。内容条目可能是横向内容条目、插入式内容条目、弹出内容条目、富媒体内容条目、混合内容条目、内容条目,跨域iframe内容条目等。内容条目可能包括嵌入信息,例如超链接、元数据、链接、机器可执行指令、注释等。在一些实例中,第三方内容服务器108可以集成到内容条目选择系统108中和/或第三方内容条目的数据可以存储在内容条目选择系统108的数据库中。
在实现中,内容条目选择系统108可以经由网络106接收对内容条目的请求以使得与资源一起提供。可以从资源服务器104、客户端设备110和/或任何其它计算设备接收所接收的请求。资源服务器104可以由第一方内容提供商拥有或运行,该第一方内容提供商可以包括用于内容条目选择系统108以在资源服务器上提供第一方内容提供商的一个或多个资源的第三方内容条目的指令。在一个实现中,资源可以包括网页。
客户端设备110可以是由用户操作的计算设备(由设备标示符表示),其在访问资源服务器104的资源时可以向内容条目选择系统108请求内容条目使得与资源一起呈现。内容条目请求可以包括请求设备信息(例如,网络浏览器类型、操作系统类型、来自请求设备的一个或多个先前资源请求、由请求设备接收的一个或多个先前内容条目、用于请求设备的语言设置、用于请求设备的地理位置、请求设备处的一天中的时间、请求设备处的一周中的一天、请求设备处的一个月中的一天、请求设备处的一年中的一天等)和资源信息(例如,所请求的资源的URL、所请求的资源的内容的一个或多个关键字、资源的内容的文本、资源的标题、资源的类别、资源的类型等)。内容条目选择系统108接收的信息可以包括超文本传输协议(HTTP)cookie,其包含表示客户端设备110的设备标识符(例如,随机数)。
在一些实现中,设备信息和/或资源信息可以被附加到内容条目请求URL(如contentitem.item/page/contentitem?devid=abc123&devnfo=A34r0)。在一些实现中,设备信息和/或资源信息可以在被附加到内容条目请求URL之前被编码。内容条目选择系统108可以利用请求设备信息和/或资源信息来选择内容条目的第三方内容条目和/或第三方内容提供商以用于所请求的资源以及呈现在客户端设备的显示器上。如以下更详细描述的,在一些实现中,内容条目生成系统120可以响应于对内容条目的请求来生成一个或多个内容条目。
在一些情况下,资源服务器104的资源可以包括搜索引擎特性(feature)。搜索引擎特性可以经由输入特性(输入文本框等)接收搜索查询(例如,文本串)。搜索引擎可以基于搜索查询来搜索用于相关搜索结果的文档的索引(例如,其它资源,诸如网页等)。搜索结果可以作为第二资源被发送,以在客户端设备110的显示器上呈现相关搜索结果,诸如搜索结果网页。搜索结果可以包括网页标题、超链接等。一个或多个第三方内容条目也可以与搜索结果一起呈现在搜索结果网页的内容条目槽中。因此,资源服务器104和/或客户端设备110可以从内容条目选择系统108请求一个或多个内容条目呈现在搜索结果网页的内容条目槽中。内容条目请求可以包括附加信息,诸如用户设备信息、资源信息、内容条目的数量、内容条目的格式、搜索查询字符串、搜索查询字符串的关键字、与查询相关的信息(例如,地理位置信息和/或时间信息)等。在一些实现中,可以在搜索结果和第三方内容条目之间进行描述以避免混淆。
在另一实现中,内容条目生成系统120可以独立于对内容条目的请求来生成一个或多个内容条目(如,预生成一个或多个内容条目)。内容条目生成系统120可以响应于来自第三方内容提供商的请求(例如经由第三方内容服务器102和/或第三方内容提供商的客户端设备110)生成一个或多个内容条目。在一些实现中,一个或多个生成的内容条目和/或一个或多个生成的内容条目的布局数据可以存储在数据库中以响应于后续内容条目请求而被选择和提供。在一些情况下,一个或多个生成的内容条目可以在用户界面中呈现给第三方内容提供商,使得第三方内容提供商可以选择一个或多个生成的内容条目来保存并存储在数据库中。
尽管前面已经提供了用于使用内容条目生成系统120选择和向客户端设备110提供内容条目和/或生成内容条目的系统100的概述,现在将更详细地描述使用任意尺度数据生成内容条目的实现。
参考图2,内容条目生成系统120包括布局生成器200和评分器208。如将参考图3-图11更详细地描述的,布局生成器200被配置为接收内容条目生成数据、一个或多个内容条目模板和内容条目数据,以基于一个或多个内容条目模板来生成一个或多个内容条目和/或一个或多个内容条目的布局数据。评分器208被配置为生成用于所生成的一个或多个内容条目的布局的得分。在一些实现中,内容条目生成系统120被配置为基于得分对生成的一个或多个内容条目的布局进行排名,并选择最高得分的布局。然后,内容条目生成系统120可以响应于来自内容条目请求器202的内容条目生成数据,发送数据以显示所生成的内容条目的最高得分布局。在一些实现中,内容条目生成系统120可以存储数据以显示在内容条目数据库210(以虚线示出)中的生成的最高得分内容条目的和/或生成的最高得分内容条目的布局数据。在一些情况下,内容条目槽尺度的预定集合中的每一个的布局数据可被生成并存储在内容条目数据库210中。内容条目槽尺度的预定集合可以是常用内容条目槽尺度,诸如300像素(px)×250px、336px×280px、970px×100px、60px×600px、320px×50px等。针对内容条目槽尺度的预定集合中的每一个,布局数据可以使用在内容条目生成系统120上执行的网络浏览器来生成。因此,当接收到具有作为与内容条目槽尺度的预定集合之一相对应的内容条目生成数据的内容条目槽尺度的请求时,则内容条目槽尺度的预定集合的布局数据可以被获取并发送到客户端设备,其具有要在客户端设备的显示器上显示的内容条目的内容条目数据。
在另外的实施方式中,内容条目生成系统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、显示位置、显示大小、替代文本等)、字体信息(例如,字体名称、大小、效果等)、颜色信息、(例如,RGB颜色值、十六进制颜色代码等)和与着陆页URL相关联的资源的文本信息。着陆页分析系统204可以将快照图像和/或DOM树存储在存储器中以供后续使用。
在一些实现中,内容条目数据可以包括图像数据、颜色数据、文本数据、徽标数据等。在一些实现中,图像模块可以解析与着陆页URL相关联的资源的DOM树,并提取图像数据的图像和图像元数据(例如,图像URL、显示位置、显示尺寸、替代文本等)。图像元数据可以用于确定在与着陆页URL相关联的资源上显示的每个图像的页面显著性。在一些实现中,图像模块从其它数据源(例如,先前使用或批准的图像的库、库存图像的库等)提取图像和图像元数据。
在一些实现中,图像模块可以分析提取的图像以检测图像的视觉内容。检测可视内容可以包括例如确定图像中表示的显著对象的位置,确定图像中的文本的位置,和/或确定图像是否可被裁剪或处理以改善图像的视觉影响。在一些实现中,图像模块分析提取的图像以检测图像的语义内容。检测语义内容可以包括例如识别图像中描绘的对象或图像传达的含义。图像模块可以向描述其语义内容的图像分配一个或多个标签或关键字。标签和/或关键字可以用于确定图像与特定第三方内容条目的相关性。
图像模块可以处理图像以准备用于在第三方内容条目中使用的图像。图像处理可以包括裁剪图像以强调显著对象或去除文本、调整图像大小、格式化图像或以其它方式调整图像。
图像模块可以基于图像的各种属性来对图像进行过滤和排名。图像模块可以确定每个图像的质量得分和/或页面上的显著性得分。图像的质量得分可以基于各种图像属性指示图像的美学外观。显著性得分可以指示在与着陆页URL相关联的资源上显示所提取的图像的显著性。图像模块可以丢弃或过滤具有小于阈值显示尺寸的显示尺寸或小于阈值质量得分的质量得分的图像。在一些实现中,着陆页分析系统204的图像模块基于与图像相关联的显著性得分对图像进行排序。图像模块可以选择排名最高的一个或多个图像以包括在内容条目数据中。在一些实现中,图像模块可以确定每个图像的数据大小,以确定更大数据大小的图像和更小数据大小的图像。
在一些情况下,着陆页分析系统204的颜色模块可以使用与着陆页URL相关联的资源的快照图像和/或DOM树来选择内容条目数据的颜色。例如,颜色模块可以选择用于背景、标题、描述、按钮背景和/或内容条目的按钮文本的颜色。颜色方案可以包括与在与着陆页URL相关联的资源上显示的颜色相对应的一种或多种颜色。在一些实现方式中,颜色模块可以使用聚类技术(例如,k均值聚类)从快照图像提取几个颜色聚类。
文本模块可以被配置为诸如通过使用与着陆页URL相关联的资源的DOM树或快照图像来自动生成内容条目的文本数据(例如,文本描述、标题等)网址,以创建与着陆页URL相关联的资源上显示的文本的摘要。在一些实现中,除了与着陆页URL相关联的资源之外,或作为替代,文本模块可以从其它数据源获取文本数据。例如,文本模块216可以从用户创建的商家、产品或服务的评论接收文本数据。可以从允许用户张贴或提交与特定企业、产品或服务相关的评论、点评或其它文本的因特网资源(例如,网站)检索评论。在一些实现中,文本模块可以识别和提取包括用于包括在内容条目数据中的肯定短语的评论的摘录。在一些实现中,文本模块可以识别文本的字体,并且包括指示内容条目数据中的字体的数据。
在另外的实例中,可以使用与着陆页URL相关联的资源的DOM树或快照图像来提取一个或多个徽标的徽标数据。徽标图像可以是商标、企业徽标、产品徽标、公司徽标或与特定产品、服务或组织相关联的任何其它图像。在一些实现中,着陆页分析系统204可以基于着陆页URL和/或着陆页URL的域名来查询数据库以识别徽标图像,使得可以通过指定URL来容易地检索徽标信息。
在一些实现中,例如当第三方内容提供商正在利用内容条目生成系统120来生成独立于内容条目请求的一个或多个内容条目时,第三方内容提供商可以将内容条目数据发送到内容条目生成系统120,使得着陆页分析系统204不分析与着陆页URL相关联的资源以确定和获得内容条目数据。
在一些实现中,内容条目生成数据还可以包括场境数据。场境数据可以包括设备类型数据、网络连接类型数据、网络连接速度数据等。场境数据可以用于为所生成的内容条目选择内容条目数据,以基于场境数据来定制生成的内容条目。例如,场境数据可以包括指示WiFi网络连接类型的数据。图像模块可以基于场境数据选择或排名较大数据大小的图像、高清晰度视频等。在另一实例中,场境数据可以包括指示2G网络连接类型的数据。图像模块可以基于场境数据选择或排名较小数据大小图像、低清晰度视频等。在其它实例中,图像模块可以基于第一尺度值和第二尺度值选择或排名图像。例如,图像模块可以基于第一尺度值和第二尺度值的纵横比与一个或多个候选图像的纵横比的相似度来选择或排名图像。
再参考图2,内容条目生成系统120从内容条目模板数据库206接收一个或多个内容条目模板。在其它实例中,内容条目生成系统120可以从内容条目模板的设计者接收一个或多个内容条目模板。内容条目模板定义要从内容条目模板生成的内容条目的元素和元素的布置。在一些实现中,一个或多个内容条目模板可以是定义内容条目模板的一个或多个元素的有约束XML配置文件。每个内容条目模板可以定义该内容条目模板的一个或多个内容条目成分。每个内容条目成分可以包括属性,诸如名称、类型、优先级和权重。名称属性可以是设计者定义的名称以引用内容条目成分。类型属性可以是与默认优先级和/或默认权重相关联的设计者选择的内容条目类型,诸如标题、徽标、产品图像、描述、按钮等。优先级属性可以是设计者定义的值,其可以用于对内容条目模板的元素的去除进行优先级排序。在一些实现中,值越低,优先级越高,对于不能从生成的内容条目目中去除的元素具有0值。权重属性可以是设计者定义的值,其可以用于在附加空间可用时对内容条目的元素的增长进行优先级排序。
内容条目模板还包括用于内容条目的一个或多个模板,其利用内容条目成分中的一个或多个来定义内容条目的布局的一个或多个元素。在一些情况下,内容条目模板可以包括用于元素的一个或多个渲染框。每个渲染框和/或元素包括一个或多个内容条目成分以及定义元素相对于另一元素和/或相对于内容条目本身的布置的至少两个锚(例如,可以通过相对于内容条目的右边缘的右锚和相对于内容条目的底部边缘的底锚定义按钮元素)。
在一些实现中,内容条目生成系统120可以从内容条目模板数据库206获取所有内容条目模板作为内容条目模板的集合。在其它实现中,对于内容条目模板的子集,内容条目生成系统120可以过滤内容条目模板数据库206的内容条目模板。在其它实现中,内容条目生成系统120可以例如响应于针对内容条目槽的第三方内容提供商的选择来获取单个内容条目模板。
在一些实现中,内容条目生成系统120可使用第一尺度值和第二尺度值来确定内容条目模板的集合以生成内容条目。例如,如果第一尺度值是580个像素(即宽度为580个像素),并且第二尺度值是100个像素(即高度为100个像素),则具有垂直堆叠的图像、文本、徽标、按钮元素的内容条目模板由于有限的垂直高度尺寸可能不适合于这种尺寸。因此,内容条目生成系统120可以从获取自内容条目模板数据库206的内容条目模板的集合中排除这样的内容条目模板。在一些实现中,内容条目模板可以标注有指示从内容条目模板的生成的内容条目的最小和/或最大宽高比的一个或多个值。内容条目生成系统120可以确定第一尺度值与第二尺度值的比率,并且使用所确定的比率来过滤所确定的比率低于最小长宽比或高于最大长宽比的内容条目模板。因此,可以基于第一尺度值和第二尺度值排除内容条目模板。
在一些实现中,除了尺度值过滤之外或者代替尺度值过滤,可以基于内容条目数据来过滤内容条目模板。例如,如果内容条目数据不包括文本数据,则内容条目生成系统120可以仅获取不包括文本元素的内容条目模板。内容条目模板可以标注有一个或多个值,用来指示用于这种过滤的包括在内容条目模板中的元素。
使用内容条目生成数据、一个或多个内容条目模板的集合和内容条目数据,布局生成器200生成如本文更详细描述的一个或多个内容条目。在其它实现中,布局生成器200可以是脚本,可以连同内容条目生成数据、所选择的内容条目模板和所选择的内容条目数据发送到客户端设备,以生成内容条目。因此,内容条目生成系统120可以接收内容条目生成数据、选择内容条目模板以及选择用于该脚本的内容条目数据以生成内容条目。
参考图3,布局生成器200包括布局解析器220、锚定管理器222、一个或多个元素渲染器224、空间管理器226和冲突消解器228。布局解析器220接收内容条目模板并将内容条目模板解析为一个或多个布局元素和/或渲染框以及一个或多个布局元素和/或渲染框的相关联的数据(例如,成分类型、成分布置、锚数据、元素或渲染框名称、优先级值、权重值等)。将参考图5更详细地描述布局解析器220。
锚定管理器222接收一个或多个解析的布局元素和/或渲染框和相关联的数据的集合,并且基于一个或多个元素的相关联数据、第一尺度值和第二尺度值以及内容条目数据确定解析的布局元素和/或渲染框的集合中的每一个的占位符。占位符(placeholder)是元素或渲染框可以在内容条目中占据的最大空间,这基于元素的锚、待生成的内容条目的尺度以及用于填充该元素的内容条目数据。因为一些元素或渲染框根据锚可依赖于其它元素或渲染框,所以锚定管理器222执行拓扑排序以确定一个次序,按照该次序确定一个或多个元素或渲染框的占位符。也就是说,如果诸如徽标元素的元素包括引用诸如按钮元素的另一元素的锚,则可能需要在确定该徽标元素的占位符之前确定该按钮元素的占位符。如果按钮元素还包括到另一元素(例如图像元素)的锚,则可能需要在用于该按钮元素或该徽标元素的占位符之前确定图像元素的占位符。因此,执行拓扑排序以基于它们的锚依赖性对布局元素或渲染框进行排序。可以使用锚定管理器222来确定元素和/或渲染框的排序列表的每个元素或渲染框的占位符。锚定管理器222将每个元素和/或渲染框的占位符输出到相应的元素渲染器224。在一些实现中,锚定管理器222可基于所接收的场境数据省略一个或多个元素和/或渲染框以减少内容条目的数据量。例如,如果场境数据包括指示低吞吐量或低速网络连接类型(例如2G连接类型)的网络连接类型数据,则锚定管理器222可以基于各元素的优先级属性来排除一个或多个元素和/或渲染框。将参考图6更详细地描述锚定管理器222。
元素渲染器224接收每个对应元素和/或渲染框的占位符,并基于占位符和每个元素或渲染框的一个或多个锚确定初始空间分配。元素渲染器224可以包括图像元素渲染器、文本元素渲染器和按钮元素渲染器。初始空间分配是元素可以基于占位符在内容条目的布局中占据的空间,并受元素或渲染框的一个或多个锚的影响。在一些实现中,图像分析器230(图4中所示)可与图像元件渲染器224一起使用以确定图像的显著部分和/或执行图像的智能裁剪以确定初始空间分配。将参考图8更详细地描述元素渲染器224。
空间管理器226从一个或多个元素渲染器224接收初始空间分配,并为所生成的内容条目的每个元素和/或渲染框确定最终空间分配。空间管理器226基于对应的初始空间分配确定每个元素和/或渲染框的最终空间分配,基于相应的初始空间分配、一个或多个锚以及权重属性确定每个元素和/或渲染框的最小空间分配,并且使用生长函数修改每个元素和/或渲染框的空间分配以利用受权重属性和一个或多个锚影响的任何剩余空间。将参考图8-图9B更详细地描述空间管理器226。
冲突消解器228接收内容条目的一个或多个元素和/或渲染框的最终空间分配,并且基于最终空间分配确定是否存在任何冲突。这样的冲突可以包括元素和/或渲染框的重叠,超出内容条目的尺度的元素或渲染框的溢出、不足的余量、文本截断和/或其它内容条目模板专有的冲突。如果存在冲突,则冲突消解器228可以从一个或多个元素和/或渲染框的集合中减除元素,并且向锚定管理器222返回新的元素和/或渲染框集合,以基于元素和/或渲染框的新集合来确定占位符。从一个或多个元素和/或渲染框中移除的元素可以基于元素的优先级属性(例如,移除具有最高优先级属性值的元素,该最高优先级属性值指示元素在内容条目模板上的重要性较低)。在一些实现中,如果确定要移除的元素被指示为所需元素(例如,具有优先级属性值0),则冲突消解器228可以向布局解析器220发送数据以从内容条目模板的集合解析新的内容条目模板或冲突消解器228可以停止内容条目的生成并输出错误(例如,如果没有其它内容条目模板可以被使用和/或如果要使用单个模板)。在一些实现中,冲突消解器228可以从冲突系统232(图4所示)接收用于冲突的一个或多个规则。冲突系统232可以包括余量定义器,以基于内容条目大小来定义每个元素和/或渲染框所需的余量(margin)。冲突系统232还可以包括基于内容条目大小和/或其它内容条目模板特定冲突规则来定义文本截断何时可能发生的冲突规则。
图4描绘了由内容条目生成系统120实现的图2的布局生成器200和评分器208的处理流程的实现的过程图的概述。将参照图5-图10更详细地描述处理流程的细节。
参考图5,布局剖析器220从内容条目模板数据库206接收一个或多个布局模板的集合。内容条目模板定义一个或多个元素和/或渲染框以及一个或多个元素和/或渲染框的布置,用于根据该内容条目模板生成内容条目。在一些实现中,一个或多个内容条目模板可以是限定相应内容条目模板的一个或多个元素和/或渲染框的有约束XML配置文件。在其它实现中,其它标记语言可以用于一个或多个内容条目模板。每个内容条目模板可以定义该内容条目模板的一个或多个内容条目成分。每个内容条目成分可包括属性,如名称、类型、优先级和权重。名称属性可以是设计者定义的名称以引用内容条目成分。类型属性可以是与默认优先级和/或默认权重相关联的设计者选择的内容条目类型,如标题、徽标、产品图像、描述、按钮等。优先级属性可以是设计者定义的值,其可以用于对内容条目模板的元素的去除进行优先级排序。在一些实现中,值越低,优先级越高,对于不能从生成的内容条目去除的元素具有0值。权重属性可以是设计者定义的值,其可以用于在附加空间可用时对内容条目的元素的增长进行优先级排序。
用于内容条目模板XML配置文件的定义的内容条目成分的实现可以如下定义:
elements:{
product1image:‘product,0,2’,
logoimage:‘logo,0’,
text1:‘headline’,
text2:‘description,0’,
clicktext:‘button,0’
},
其中product1image内容条目成分具有类型属性“product”,优先级属性0和权重属性2;logoimage内容条目成分具有类型属性“logo”和优先级属性0;text1内容条目成分具有类型属性“headline;”,text2内容条目成分具有类型属性“description”和优先级属性0;并且clicktext内容条目成分具有类型属性“button”和优先级属性0。因此,所定义的这些内容条目成分可以被包括以作为用于内容条目模板的一个或多个元素和/或内容条目模板XML配置文件的内容条目模板的一个或多个渲染框。
内容条目模板还包括用于内容条目的一个或多个模板,其利用内容条目成分中的一个或多个来定义内容条目的布局的一个或多个元素。在一些情况下,内容条目模板可以包括用于元素的一个或多个渲染框。每个渲染框和/或元素包括内容条目成分中的一个或多个,以及定义元素和/或渲染框相对于另一个元素和/或渲染框和/或相对于内容条目本身的布置的至少两个锚(例如,按钮元素可以由相对于内容条目的右边缘的右锚和相对于内容条目的底部边缘的底锚定义)。
使用上述内容条目成分的横幅型内容条目模板的内容条目模板XML配置文件的实现方式可以由以下定义:
在上述横幅模板中,为模板定义了三个渲染框。第一渲染框“productimage”包括“spec”属性,其声明存在单个内容条目成分“product1image”,其对于第一渲染框左对齐。第一渲染框还包括四个锚,左、顶、右和底,其中左锚、顶锚和底锚指示第一渲染框将被锚定到要生成的内容条目的左边、顶边和底边。右锚包括相对值50%,其指示第一渲染框的右部分在离开要生成的内容条目的右边缘的内容条目的宽度的50%处。
第二渲染框“textbox”包括“spec”属性,其声明存在两个内容条目成分“text1”和“text2”,其垂直堆叠且具有相等间距,并且第二渲染框顶部对齐。第一渲染框还包括四个锚,左、顶、右和底,其中顶锚和底锚指示第一渲染框将被锚定到要生成的内容条目的顶部和底部边缘。左锚包括对“productimage”第一渲染框的引用,并且右锚包括对“logoandbutton”第三渲染框的引用,其指示第二渲染框的左部分将与第一渲染框相邻,并且所述第二渲染框的右侧部分将与第三渲染框相邻。第二渲染框与第一和第三渲染框之间的间隔将由内容条目生成系统120和/或内容条目产生脚本优化。
第三渲染框“logoandbutton”包括“spec”属性,其声明是垂直堆叠并具有相等间距的两个内容条目成分“logoimage”和“clicktext”,并且第三渲染框是右对齐的。第三渲染框还包括三个锚,左、顶和底,其中顶锚和底锚指示第三渲染框将被锚定到要生成的内容条目的顶部和底部边缘。左锚包括相对值50%,其指示第三渲染框的左部分在离开要生成的内容条目的左边缘的内容条目的宽度的50%。在一些实现中,若干内容条目模板或布局可以被包括在单个内容条目模板XML配置文件中。
布局解析器220可以接收内容条目模板XML配置文件,并将文件解析到三个渲染框中,并且进一步解析为每个渲染框的各种元素。布局解析器220还可以解析每个渲染框的“spec”属性、成分、优先级属性值、相关联的锚和/或元素的布置。布局解析器220然后将解析的布局元素和/或渲染框的集合和相关联的数据发送到锚定管理器222。
参考图6,锚定管理器222接收解析的布局元素和/或渲染框的集合和相关数据、第一尺度值和第二尺度值以及内容条目数据。锚定管理器222被配置为基于一个或多个元素的相关联数据、第一尺度值和第二尺度值以及内容条目数据来确定一个或多个被解析的布局元素和/或渲染框中每一个的占位符。占位符是元素和/或渲染框可在内容条目中占据的最大空间。因为一些元素和/或渲染框可以依赖于基于锚的其它元素和/或渲染框,所以锚定管理器222执行拓扑排序以确定为一个或多个元素和/或渲染框确定占位符的次序。也就是说,如果诸如用于上述“textbox”的第二渲染框的元素或渲染框包括引用另一元素的锚,诸如用于“productimage”的第一渲染框和用于“logoandbutton”的第三渲染框,则可能需要在确定第二渲染框的占位符之前确定第一渲染框和第三渲染框的占位符。在一些情况下,拓扑排序还可以利用优先级属性值来确定哪个占位符来确定两个或更多个元素是否依赖于其它元素和/或渲染框,或者依赖于已经确定占位符的元素和/或渲染框。
锚被用于描述内容条目模板的两个元素和/或渲染框之间或者元素和/或渲染框与根据内容条目模板生成的内容条目之间的关系。锚由引用(例如,另一元素、渲染框或内容条目本身)、距离(例如,固定距离,诸如像素(px))或引用的相对尺寸(例如10%),以及类型(例如,从其测量到参考的距离的元素的边缘,诸如顶部、底部、左侧或右侧)定义。在一些实现中,空间管理器226可以基于给出用于内容条目槽的第一尺度值和第二尺度值的元素和/或渲染框的权重属性和任何可用空间来增加元素和/或渲染框的空间分配以适合元素和/或渲染框的占位符的可能的最大宽度和/或高度。如果空间管理器226不能将元素和/或渲染框的空间分配增加到元素和/或渲染框的占位符的最大宽度和/或高度,则空间管理器226将适合该元素和/或渲染框放置在占位符的中心,并为内容条目的其它元素和/或渲染框返回缓冲区的额外空间。
基于锚的依赖性,由锚定管理器222执行的拓扑排序可以确定,可以首先基于优先级属性值和“textbox”渲染框对“productimage”和“logoandbutton”渲染框的依赖来确定“productimage”和“logoandbutton”渲染框的占位符。锚定管理器222可以基于具有定义的所有四个锚的“productimage”渲染框,通过“logoandbutton”渲染框上方的“productimage”渲染框开始。
锚定管理器222可以基于拓扑排序来确定每个元素和/或渲染框的占位符。对于要生成的具有200像素宽的第一尺度值和200像素高的第二尺度值的内容条目,以及“productimage”渲染框的产品图像元素的图像数据具有100像素宽×200像素高的尺度,则锚定管理器222可以将“productimage”渲染框的占位符确定为{left:0,top:0,bottom:200,right:100}。如果“logoandbutton”渲染框的徽标图像元素的图像数据具有30像素宽×30像素高的尺度,并且“logoandbutton”渲染框的按钮元素也是30像素宽×30像素高,则锚定管理器222可以将“logoandbutton”渲染框的占位符确定为{左:170,顶部:70,底部:130,右:200}。锚定管理器222可以将“textbox”渲染框的占位符确定为{left:100,top:0,bottom:200,right:170}。在一些实例中,锚定管理器220可以为每个元素生成占位符,作为渲染框的补充或替代。锚定管理器222将每个元素和/或渲染框的生成的占位符发送到相应的元素渲染器224。
参考图7,元素渲染器224接收来自锚定管理器222的每个相应元素和/或具有相应元素的渲染框的占位符,并且基于每个元素和/或渲染框的一个或多个锚的占位符来确定初始空间分配。元素渲染器224可以包括图像元素渲染器、文本元素渲染器和按钮元素渲染器。
可以为内容条目模板的每个图像元素分配图像元素渲染器224。图像元素渲染器224确定内容条目的对应图像元素的初始空间分配。可以基于图像元素的图像的原始长宽比和大小来确定初始空间分配。例如,图像渲染器224可以将图像的宽高比的变化限制到预定范围,例如0.8,包括1.25。例如,如果图像元素具有{left:0,top:0,bottom:200,right:100}的占位符,并且图像是200像素高乘100像素宽,则初始空间分配可以被确定为{left:0,top:0,bottom:200,right:[80,125]},其中宽度可以是包括80个像素到125个像素的范围。图像元素的右侧的最终宽度值或位置可以随后由空间管理器226确定以用于最终空间分配。如果图像的高度和宽度都小于初始空间分配的尺度,则图像位于初始空间分配的中心。
可以为内容条目模板的每个文本元素分配文本元素渲染器224。文本元素渲染器224确定内容条目模板的对应文本元素的初始空间分配。如果文本元素的文本大小与初始空间分配相同,则文本元素与文本元素的相应占位符相同。如果文本的大小小于或大于初始占位符,则所确定的初始空间分配可包括基于最小字体大小和最大字体大小的范围。最小字体大小和最大字体大小可以基于要生成的内容条目的大小。也就是说,字体大小可以与要生成的内容条目的尺度的大小成比例或以其它方式变化。
可以为内容条目模板的每个按钮元素分配按钮元素渲染器224。按钮元素渲染器224确定内容条目模板的相应按钮元素的初始空间分配。在一些实现中,用于按钮的占位符、初始空间分配和最终空间分配可以是基于第一尺度值和第二尺度值的相同的预定大小(例如,可以使用用于按钮的预定大小)。在其它实现中,如果按钮元素的大小是定义的大小,则按钮元素的初始空间分配与按钮元素的相应占位符相同。在一些实现中,按钮的大小可以是灵活的,使得针对按钮的确定的初始空间分配可以基于诸如图像元素或文本元素的一个或多个其它元素进行线性缩放。
可以将内容条目模板的每个元素和/或每个渲染框的每个元素的初始空间分配发送到空间管理器226,以确定要生成的内容条目的最终空间分配。
参考图8,空间管理器226从元素渲染器224接收初始空间分配,以确定每个元素和/或每个渲染框的每个元素的最终空间分配。对于具有与初始空间分配相同大小的每个元素,空间管理器226确定最终空间分配与相应的初始空间分配相同。对于具有与初始空间分配不同的大小的每个元素,空间管理器226基于相应的初始空间分配最小范围值来确定每个元素的最小空间分配,并且使用生长模块250的生长函数修改每个元素的空间分配以利用任何剩余空间。也就是说,如果所有元素适合于元素和/或渲染框的相应初始空间分配的最小范围值,则空间管理器226针对每个元素和/或渲染框的每个元素使用生长模块250的生长函数以每次迭代将每个元素的空间分配的尺度增加一个像素,直到空间分配的尺度不能在不与另一个元素和/或渲染框重叠的情况下进一步增加。在一些实现中,生长函数可以基于元素和/或成分的权重属性值来按顺序增加每个元素。也就是说,生长函数可以首先增加具有最低数值权重属性值的元素的尺寸,然后增加具有次最低数值权重属性值的元素的尺寸等,直到可以增加的所有元素已经增加。在一些实现中,如果数值权重属性值相等,则增长函数可以使图像元素优先于文本元素和文本元素优先于按钮元素。生长函数迭代合格的元素,直到空间分配的尺度不能在不与另一个元素重叠的情况下进一步增加。
在一些实现中,数值权重属性值可对应于每次迭代生长元素和/或成分的像素数目。例如,数值权重属性值2可以指示元素和/或成分将增加2个像素,而其它元素和/或成分增加1个像素。
图9A-图9B示出了对于具有两个元素(图像元素310和文本元素320)的内容条目300的生长模块250的生长函数的应用。图像元素310被锚定到要生成的内容条目的左边缘,但右锚可以通过增长函数扩展。文本元素320包括以初始占位符为中心,并且左锚和右锚都可以通过生长函数来扩展。对于要生成的具有200像素宽的第一尺度值和100像素高的第二尺度值的内容条目300,由图像元素渲染器224为图像元素310和/或图像元素的渲染框确定的初始空间分配可以基于图像的大小为100像素×100像素的{left:0,top:0,bottom:100,right:[80,120]},并且用于图像元素310的渲染框的锚指示渲染框将被锚定到要生成的内容条目的左边缘、顶部边缘和底部边缘。右锚可以具有相对值50%,其指示第一渲染框的右部分在离开待生成的内容条目的右边缘的内容条目的宽度的50%处。由文本元素渲染器224为文本元素320确定的初始空间分配可以是基于文本的大小为100像素×60像素的{left:[80,120],top:0,bottom:100,right:[180,200]},并且用于文本元素320的渲染框的锚指示渲染框将被向右对准并被锚定到要生成的内容条目的顶部边缘和底部边缘。左锚可以取决于图像元素,使得文本元素320的左边缘将与要生成的内容条目的图像元素310相邻。图9A描绘了对于来自由图像元素渲染器224确定的对应初始空间分配的最小右范围值80的内容条目300中定位的图像元素310和来自由文本元素渲染器224确定的对应的初始空间分配的最小左范围值的120和最小右范围值180的内容条目300中定位的文本元素320。应用生长模块250的生长函数,图像元素的右范围值可以增加一个像素到值81,可以将文本元素320的左侧范围值增加一个像素到值119,并且文本元素320的右侧范围值可以增加一个像素到值181。增长函数可以迭代通过每个单个像素增量,直到图像元素310的最终空间分配是{left:0,top:0,bottom:100,right:100},并且文本元素320的最终空间分配是{left:top:0,bottom:100,right:200},如图9B所示。
一旦由空间管理器226已经确定了一个或多个元素和/或渲染框的最终空间分配,则将最终空间分配发送到冲突消解器228。
参考图10,冲突消解器228接收最终空间分配,并基于最终空间分配确定是否存在任何冲突。这样的冲突可以包括元素和/或渲染框的重叠、超出内容条目和/或渲染框的尺度的元素溢出、不足的余量、文本截断和/或其它内容条目模板专有的冲突。冲突消解器228可以比较每个最终空间分配的值,以确定一个元素和/或渲染框的最终空间分配的一部分是否与另一个元素和/或渲染框的最终空间分配的一部分重叠。冲突消解器228可以将每个最终空间分配的值与第一尺度值和第二尺度值进行比较,以确定最终空间分配是否超过要生成的内容条目的尺度值而使得元素和/或渲染框溢出内容条目的尺度。在一些实现中,冲突消解器228可以向最终空间分配添加一个或多个余量值,并且比较最终余量增加的空间分配以确定是否存在不足的余量。在一些情况下,冲突消解器228可以基于内容条目大小从冲突系统232(图4所示)接收计算的余量值。在另外的实现中,冲突消解器228可以确定文本元素中的一个或多个词是否被截断。在其它实现中,冲突消解器228可以应用从冲突系统232接收的其它内容条目模板专有的规则。
如果存在冲突,则冲突消解器228可以从一个或多个元素和/或渲染框的集合中去除元素和/或渲染框,并且向锚定管理器222返回新的缩减的元素和/或渲染框的集合,以基于新的元素集合和/或渲染框来确定占位符。从一个或多个元素和/或渲染框中移除的元素和/或渲染框可以基于元素的优先级值(例如,去除具有指示元素和/或渲染框在内容条目模板的重要性较低的最高数值优先级值的元素和/或渲染框)。在一些实现中,如果确定要移除的元素被指示为所需元素,则冲突消解器228可以向布局剖析器220发送数据以从内容条目模板的集合解析新的内容条目模板或冲突消解器228可以停止内容条目的生成并输出错误(例如,如果没有其它内容条目模板可以被使用)。
如果不存在冲突,则冲突消解器228可以将用于内容条目的数据和最终空间分配传递给评分器208。评分器208可以基于最终空间分配来确定内容条目的得分。内容条目的得分可以基于较之内容条目模板的元素的数量的所生成的内容条目中的元素的数量(例如,如果内容条目模板具有4个元素,并且生成的内容条目只能使用3,由于冲突,可以减少得分),未使用像素的数量(例如,由元素占据的总像素除以内容条目的总像素),每垂直或水平线的未使用像素的平均数量,和/或一个或多个元素的权重(例如,与具有较低权重的消除的文本元素相比,消除的图像元素可以具有更高的权重,导致得分较低)。
可以对来自内容条目模板集合的若干内容条目模板执行生成内容条目和元素的布局的过程,并且可以确定每个生成的内容条目布局的得分。在一些实现中,内容条目生成系统120可以对得分进行排名并选择最高得分生成的内容条目。在一些实现中,内容条目生成系统120输出数据以将所选择的生成的最高评分内容条目显示到内容条目请求器202或显示到要存储的内容条目数据库210。
在一些实现中,可针对内容条目槽尺度产的预定集合生布局数据,例如300像素(px)×250px、336px×280px、970px×100px、160px×600px、320px×50px等的公共内容条目槽尺度。利用计算设备(例如服务器)上执行的真实网络浏览器针对内容条目槽尺度预定集合,布局数据可以通过使用布局生成器200来生成。因此,当接收到具有与内容条目槽尺度的预定集合中的一个相对应的内容条目槽尺度的请求时,内容条目槽尺度的预定集合中的一个的布局数据可以被获取并发送到客户端设备,其中内容条目的内容条目数据在客户端设备的显示器上显示。在客户端设备上执行的脚本然后可以使用布局数据和内容条目数据生成用于在客户端设备上显示内容条目的显示数据,而不必重新计算布局数据。
在一些实现中,布局生成器200可以是脚本,其可以对接收的内容条目模板执行上述步骤,以在客户端设备处使用内容条目模板、第一尺度值、第二尺度值和内容条目数据来生成布局数据和所生成的内容条目的显示数据。也就是说,在一些情况下,内容条目生成系统120可以从客户端设备接收对包括第一尺度值和第二尺度值的任意大小的内容条目的请求。内容条目生成系统120可以例如经由第三方内容提供商的选择标准、关于客户端设备的数据以及竞投的出价,确定要为任意大小的内容条目槽生成的内容条目的第三方内容提供商。
一旦选择了第三方内容提供商,就可以通过内容条目生成系统120的着陆页分析系统204来接收和/或确定着陆页URL。在一些实现中,连同对内容条目生成系统的请求可以一起包括场境数据。场境数据可以包括设备类型数据、网络连接类型数据、网络连接速度数据等。场境数据可以用于为所生成的内容条目选择内容条目数据,以基于场境数据来定制生成的内容条目。例如,场境数据可以包括指示WiFi网络连接类型的数据。着陆页分析系统204的图像模块可以基于场境数据选择或排名较大数据尺寸图像、较高清晰度视频等。在另一实例中,场境数据可以包括指示2G网络连接类型的数据。着陆页分析系统204的图像模块可以基于场境数据选择或排名较小数据尺寸图像、较低清晰度视频等。在其它实例中,着陆页分析系统204的图像模块可以基于第一尺度值和第二尺度值来选择或排名图像。例如,图像模块可以基于第一尺度值和第二尺度值的纵横比与一个或多个候选图像的纵横比的相似度来选择或排序图像。
然后,内容条目生成系统120可以向客户端设备发送脚本、内容条目模板、第一尺度值、第二尺度值和内容条目数据,其中具有布局生成器200的脚本生成将要被生成的内容条目的布局数据和用于在客户端设备的显示器上显示内容条目的显示数据。
图11描绘了用于为内容条目生成系统120的内容条目模板创建配置文件的过程400。过程400包括为配置文件创建一个或多个成分(框402)。一个或多个成分的创建可以包括定义一个或多个属性,诸如名称、类型、优先级和权重。名称属性可以是设计者定义的名称以引用内容条目成分。类型属性可以是与默认优先级和/或默认权重相关联的设计者选择的内容条目类型,诸如标题、徽标、产品图像、描述、按钮等。优先级属性可以是设计者定义的值,其可以用于对内容条目模板的元素的移除进行优先级排序。在一些实现中,值越低,优先级越高,对于不能从生成的内容条目去除的元素具有0值。权重属性可以是设计者定义的值,其可以用于在附加空间可用时对内容条目的元素的增长进行优先级排序。
过程400还包括为配置文件创建一个或多个内容条目模板(框404)。一个或多个内容条目模板的创建可以包括创建利用上述内容条目成分的一个或多个类型的内容条目模板。内容条目模板可以包括一个或多个元素和/或带有一个或多个元素的一个或多个渲染框,并且在一些实现中,可以包括渲染框中的一个或多个元素的布置,诸如垂直列表、表、产品表、背景图像、形状等,以及对齐,诸如左、右、顶、底等。一个或多个元素和/或一个或多个渲染框可以包括一个或多个锚,如本文所述。
在一些情况下,过程400可以包括使用一个或多个内容条目槽大小(如公共内容条目槽大小之一)来测试配置文件(框406)。也就是说,内容条目模板的设计者可以利用执行布局生成器200的脚本,其具有通常内容条目槽大小作为第一尺度值和第二尺度值,以测试内容条目模板。测试的内容条目模板可以在测试之后提交或不进行测试。
图12描绘了用于基于由内容条目生成系统120实现的着陆页URL、第一尺度值和第二尺度值从内容条目槽尺度的预定集合生成一个或多个内容条目槽尺度的布局数据的过程500的实现。过程500包括接收着陆页URL、第一尺度值和第二尺度值(框502)。着陆页URL、第一尺度值和第二尺度值可以从内容条目生成系统120的数据库接收。第一尺度值和第二尺度值可以是300px×250px、336px×280px、970px×100px、160px×600px、320px×50px等的对应于公共内容条目槽尺度的尺度值。在一些实现中,着陆页URL、第一尺度值和第二尺度值可以替代地由第三方内容提供商指定并接收。例如,第三方内容提供商可以利用内容条目生成系统来生成要存储在数据库中并且用于响应于来自客户端设备或第一方内容提供商的后续内容条目请求的不同公共内容条目槽大小的内容条目。内容条目数据可以由着陆页分析系统从着陆页URL确定。
过程500还可以包括接收用于创建内容条目的内容条目模板,该内容条目模板具有元素和/或渲染框集合(框504)。可以从数据库检索或从第三方内容提供商接收所选择的内容条目模板。
过程500还可以包括为内容条目模板的每个元素和/或渲染框生成占位符(框506)。为每个元素和/或渲染框生成的占位符可以由锚定管理器基于用于一个或多个元素和/或渲染框的关联数据(诸如锚、第一尺度值和第二尺度值)以及内容条目数据生成。
过程500还包括基于所生成的占位符来确定每个元素和/或渲染框的空间分配(框508)。在一些实现中,初始空间分配可以由元素渲染器使用每个元素和/或渲染框的每个元素的占位符来确定。最终空间分配可以由空间管理器确定。最终空间分配可以包括使用生长函数来增加用于一个或多个元素和/或渲染框的最小初始空间分配的尺度。
过程500包括基于为每个元素和/或渲染框的所确定的空间分配来确定是否存在冲突(框510)。冲突消解器可以确定存在重叠冲突、溢出冲突、不足余量冲突、文本截断冲突和/或其它内容条目模板专有冲突。如果存在冲突,则冲突消解器可以从一个或多个元素和/或渲染框的集合中减除元素和/或渲染框,并且把元素和/或渲染框的新的集合返回到锚定管理器以使得基于元素和/或渲染框的新的集合确定占位符。从一个或多个元素和/或渲染框中移除的元素和/或渲染框可以基于元素的优先级值(例如,去除指示元素在内容条目模板的重要性较低的具有最高数值优先级值的元素的元素和/或渲染框)。在一些实现中,如果确定要移除的元素被指示为所需元素,则冲突消解器可以停止内容条目的生成并输出错误。
过程500还包括:使用所确定的空间分配,并且响应于确定不存在冲突(框512),从内容条目的内容条目槽尺度的预定集合生成一个或多个内容条目槽尺度的布局数据。在一些实现中,布局数据可以是布局的每个元素和/或每个渲染框的初始x坐标、y坐标、宽度、高度和/或字体大小的形式。也就是说,基于所生成的布局数据的元素和/或渲染框的布局位置可以由(x,y,width,height,font-size)定义。包括布局位置的布局数据可以存储在数据库中,以便在接收到具有相同内容条目槽尺度的请求时供后续使用。
在一些实现中,当对具有与第一尺度值和第二尺度值相同的尺度的内容条目槽的内容条目的请求创建布局数据时,响应于请求布局数据可以从数据库检索并输出到客户端设备。在一些情况下,可以将基于布局数据在客户端设备处生成内容条目的显示数据的脚本与布局数据一起输出到客户端设备。
图13描绘了用于向客户端设备提供脚本并使客户端设备生成用于生成的内容条目的显示数据的另一过程600。过程600包括接收第一尺度值和第二尺度值(框602)。可以从客户端设备接收第一尺度值和第二尺度值,作为对内容条目槽的内容条目的请求的一部分。在一些实现中,也可以连同第一尺度值和第二尺度值接收场境数据。场境数据可包括设备类型数据、网络连接类型数据、网络连接速度数据等。
该过程还包括接收接收着陆页URL(框604)。可以响应于内容条目生成系统120和/或由内容条目生成系统120选择,通过确定要为其生成内容条目的第三方内容提供商来接收着陆页URL,诸如经由用于第三方内容提供商的选择标准、关于客户端设备的数据以及竞投的出价。一旦选择了第三方内容提供商,就可以通过内容条目生成系统120的着陆页分析系统204来接收和/或确定着陆页URL。内容条目生成系统120基于着陆页URL确定内容条目数据。在一些实现中,场境数据可用于确定或选择所生成的内容条目的内容条目数据,以基于场境数据定制所生成的内容条目。例如,场境数据可以包括指示WiFi网络连接类型的数据。着陆页分析系统204的图像模块可以较高基于场境数据选择或排序较大数据尺寸图像、较高清晰度视频等等。在另一实例中,场境数据可以包括指示2G网络连接类型的数据。着陆页分析系统204的图像模块可以较小基于场境数据选择或排序较小数据尺寸图像、较低清晰度视频等。在其它实例中,着陆页分析系统204的图像模块可以基于第一尺度值和第二尺度值来选择或排序图像。例如,图像模块可以基于第一尺度值和第二尺度值的纵横比与一个或多个候选图像的纵横比的相似度来选择或排序图像。
如果针对所接收的第一尺度值和第二尺度值已经存储了布局数据,则内容条目生成系统可从数据库检索布局数据(框606),并将布局数据与内容条目数据一起传输到脚本的客户端设备,使得使用布局数据和内容条目数据在客户端设备处生成内容条目的显示数据(框608)。如果布局数据还没有被存储,则内容条目生成系统120然后可以向客户端设备发送具有布局生成器200的脚本、内容条目模板、第一尺度值、第二尺度值和内容条目数据(框610),其中具有布局生成器200的脚本生成要生成的内容条目的布局数据和用于在客户端设备的显示器上显示内容条目的显示数据。
图14描绘了与着陆页URL相关联的着陆页资源700的示例。着陆页资源700包括徽标图像702、文本部分704、706、708、710、712、图像714、716、718、720、722、724、726和菜单部分728。在一些实现中,着陆页分析系统204可以包括能够解释与着陆页URL相关联的着陆页资源700并创建其的可视表示(例如,图像、显示器等)的资源渲染器。资源渲染器可以创建与着陆页URL相关联的着陆页资源700的“快照图像”和/或构造表示与着陆页URL相关联的着陆页资源700的各种成分的文档对象模型(DOM)树。在一些实现中,着陆页分析系统204可以提取包括徽标图像702、文本部分704和图像714的内容条目数据。
图14A-15B描绘了使用内容条目模板、第一尺度值和第二尺度值的任意尺度值以及从着陆页资源提取的内容条目数据的生成的内容条目的实现。图14A描绘具有350像素宽的第一尺度值和50像素高的第二尺度值并使用内容条目模板的第一生成内容条目800。第一生成内容条目800包括产品图像802、文本部分804和徽标图像806。第一内容生成内容条目800可以包括基于指示连接速度和/或连接类型是WiFi连接的场境数据的产品图像802。图14B描绘了具有350像素宽的第一尺度值和50像素高的第二尺度值并使用内容条目模板的第二生成的内容条目810。第二生成的内容条目810包括文本部分804、徽标图像806和按钮812。第二内容生成的内容条目810可以基于指示连接速度和/或连接类型是较低速度或类型的连接(例如2G或3G连接)的场境数据来排除产品图像802。图15A描绘了具有970像素宽的第一尺度值和100像素的第二尺度值并使用第二内容条目模板的生成的内容条目900。所生成的内容条目900包括产品图像902、文本部分904、标识图像906和按钮908。产品图像902是具有第一宽高比的第一图像,其中高度大于图像的宽度。图15B描绘了具有970像素的第一尺度值和100像素的第二尺度值并且使用第二内容条目模板的第二生成的内容条目910。生成的内容条目910包括第二产品图像912、文本部分904、徽标图像906和按钮908。第二产品图像912是具有第二长宽比的第二图像,其中宽度大于图片的高度。在一些实现中,着陆页分析系统204和/或内容条目生成系统120可以将第一尺度值和第二尺度值的宽高比与一个或多个候选产品图像的长宽比进行比较,例如第一产品图像902和第二产品图像912。着陆页分析系统204和/或内容条目生成系统120然后可以选择具有最接近或最相似的纵横比的产品图像(例如,通过比较二尺度值之间的聚合差)。因此,着陆页分析系统204和/或内容条目生成系统120可以基于具有更相似纵横比的图像为内容条目模板选择第二产品图像912。
图16是可用于实现客户端设备110、内容条目选择系统108、第三方内容服务器102、资源服务器104等的计算机系统1000的框图。计算系统1000包括总线1005或其它用于传送信息的通信组件和耦合到总线1005用于处理信息的处理器1010。计算系统1000还可以包括耦合到总线以用于处理信息的一个或多个处理器1010。计算系统1000还包括耦合到总线1005的主存储器1015,诸如RAM或其它动态存储设备,用于存储信息和由处理器1010执行的指令。主存储器1015还可以用于存储位置信息、临时变量或在由处理器1010执行指令期间的其它中间信息。计算系统1000还可以包括耦合到总线1005的ROM1020或其它静态存储设备,用于存储用于处理器1010的静态信息和指令。诸如固态设备、磁盘或光盘的存储设备1025耦合到总线1005,用于持久地存储信息和指令。计算设备1000可以包括但不限于诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机、蜂窝电话、智能电话、移动计算设备(例如记事本、e读卡器等)等。
计算系统1000可以经由总线1005耦合到显示器1035,诸如液晶显示器(LCD)、薄膜晶体管LCD(TFT)、有机发光二极管(OLED)显示器、LED显示器、电子纸张显示器、等离子体显示面板(PDP)和/或其它显示器等,用于向用户显示信息。诸如包括字母数字和其它键的键盘的输入设备1030可以耦合到总线1005,用于向处理器1010传送信息和命令选择。在另一实现中,例如在触摸屏显示器中,输入设备1030可以与显示器1035集成。输入设备1030可以包括用于向处理器1010传送方向信息和命令选择并用于控制显示器1035上的光标移动的诸如鼠标、轨迹球或光标方向键的光标控制。
根据各种实施方式,本文所描述的过程和/或方法可以响应于处理器1010执行包含在主存储器1015中的指令的布置而由计算系统1000实现。这样的指令可以被从诸如存储设备1025的另一计算机可读介质读入主存储器1015。包含在主存储器1015中的指令的布置的执行使得计算系统1000执行本文描述的说明性过程和/或方法步骤。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器1015中的指令。在替代实现中,可以使用硬连线电路来代替软件指令或与软件指令组合来实现说明性实现。因此,实现不限于硬件电路和软件的任何特定组合。
尽管已经参考图16描述了计算系统1000的实现,但是本说明书中描述的主题和功能操作的实现可以在其它类型的数字电子电路中,或在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。
本说明书中描述的主题和操作的实现可以在数字电子电路中实现,或者在包括本说明书中公开的结构及其结构等同物的有形介质、固件或硬件上实现的计算机软件中实现,或者它们中的一个或多个的组合。在本说明书中描述的主题可以被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,编码在一个或多个计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。可选地或另外地,程序指令可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上编码,所述信号被生成以对信息进行编码以传输到合适的接收机设备,以供数据处理设备执行。计算机存储介质可以是或可以包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备中,或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是或者包括在一个或多个单独的组件或介质(例如,多个CD、盘或其它存储设备)中。因此,计算机存储介质是有形的和非暂时的。
在本说明书中描述的操作可以由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它源接收的数据执行。
术语“数据处理装置”、“计算设备”或“处理电路”包括用于处理数据的所有种类的装置、设备和机器,包括可编程处理器、计算机、芯片上系统或者多个、编程处理器的一部分或前述的组合。该装置可以包括专用逻辑电路,例如FPGA或ASIC。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合。装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性或过程语言,并且它可以部署在包括作为独立程序或作为模块、组件、子例程,对象或适合在计算环境中使用的其它单元的任何形式。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,专用于所述程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
适合于执行计算机程序的处理器包括例如通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传送数据。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD ROM和DVD盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实现可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD监视器)的计算机上实现以及键盘和指示设备,例如鼠标或轨迹球,用户可以通过该指示设备向计算机提供输入。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为对所要求保护的范围的限制,而是作为对特定实施方式特定的特征的描述。在单独实现的情形中,本说明书中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的情形中描述的各种特征也可以在多个实现中单独地或以任何合适的子组合来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以针对子组合或变体的子组合。
类似地,虽然在附图中以特定顺序描绘操作,但是这不应被理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者所有所示的操作被执行以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或封装到多个包含在有形媒体上的软件产品中。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示所描述的术语中的单个、多于一个和所有术语中的任何一个。
因此,已经描述了主题的特定实现。其它实现在所附权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或顺序的顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
权利要求书不应被解读为限于所描述的顺序或元件,除非声明了该效果。应当理解,在不脱离所附权利要求的精神和范围的情况下,本领域的普通技术人员可以进行形式和细节上的各种改变。要求保护落入所附权利要求及其等同物的精神和范围内的所有实施方式。