CN108701131A - 响应于滚动活动向信息资源动态附加补充内容的系统和方法 - Google Patents
响应于滚动活动向信息资源动态附加补充内容的系统和方法 Download PDFInfo
- Publication number
- CN108701131A CN108701131A CN201680028297.XA CN201680028297A CN108701131A CN 108701131 A CN108701131 A CN 108701131A CN 201680028297 A CN201680028297 A CN 201680028297A CN 108701131 A CN108701131 A CN 108701131A
- Authority
- CN
- China
- Prior art keywords
- content
- supplemental content
- project
- viewport
- information resources
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000005096 rolling process Methods 0.000 title claims description 69
- 230000000694 effects Effects 0.000 title claims description 27
- 230000003416 augmentation Effects 0.000 title description 3
- 230000000153 supplemental effect Effects 0.000 claims abstract description 418
- 238000013515 script Methods 0.000 claims description 149
- 238000012544 monitoring process Methods 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 87
- 230000000295 complement effect Effects 0.000 claims description 45
- 230000008901 benefit Effects 0.000 claims description 9
- 230000005055 memory storage Effects 0.000 claims 2
- 230000009471 action Effects 0.000 abstract description 22
- 239000013589 supplement Substances 0.000 description 21
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 13
- 210000003746 feather Anatomy 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000005389 magnetism Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
用于在信息资源上显示内容项目的方法和系统包括识别要附加到信息资源的DOM树的补充内容项目,并且识别显示在信息资源的第一容器中的第一内容项目。该方法还包括监视第一内容项目的预定部分相对于应用的视口的位置,并且响应于监视第一内容项目的预定部分的位置,确定第一内容项目在应用的视口内可见。该方法还包括将补充内容项目附加到在第一容器与信息资源的末尾之间的第一位置的第二容器中,并且响应于检测到朝向信息资源的末尾的滚动动作,在应用的视口内显示补充内容项目。
Description
相关申请
本申请要求于2016年2月8日提交的名称为“SYSTEMS AND METHODS FORDYNAMICALLY APPENDING SUPPLEMENTAL CONTENT TO AN INFORMATION RESOURCERESPONSIVE TO SCROLL ACTIVITY”的美国专利申请号15/018667以及于2015年8月21日提交的名称为“SYSTEMS AND METHODS FOR DYNAMICALLY APPENDING SUPPLEMENTAL CONTENTTO AN INFORMATION RESOURCE RESPONSIVE TO SCROLL ACTIVITY”的美国临时申请No.62/208180的权益和优先权。两个申请都以全文引用的方式并入到本文中。
背景技术
在诸如互联网的计算机网络环境中,内容发布者提供用于在终端用户计算设备上显示的内容项目。由发布者提供的内容项目可以显示在与该发布者相关联的网页上。
发明内容
至少一个方面涉及在内容发布者的信息资源上显示内容项目的系统。该系统包括至少一个处理器和存储器。存储器可以存储计算机可执行指令和补充内容滚动脚本。计算机可执行指令当在一个或多个处理器上执行时使系统识别要附加到信息资源的文档对象模型(DOM)树的补充内容项目并且识别在信息资源的第一容器中显示的第一内容项目。该系统可以监视第一内容项目的预定部分相对于应用的视口的位置,以及响应于监视第一内容项目的预定部分的位置,确定第一内容项目的预定部分在应用的视口内可见。该系统可以将补充内容项目附加到在第一容器与信息资源的末尾之间的第一位置处的第二容器中,以及响应于检测到朝向信息资源的末尾的滚动操作,在应用的视口内显示补充内容项目。
在一些实施方式中,补充内容滚动脚本可以被配置为使得系统从存在于内容发布者的其他信息资源中的多个补充内容项目选择补充内容项目。在一些实施方式中,补充内容滚动脚本可以被配置为使得系统生成第二容器以插入到信息资源的末尾,将补充内容项目插入到第二容器内,以及修改第二容器的一个或多个设置参数以匹配包括第一内容项目的第一容器的一个或多个设置参数。
在一些实施方式中,补充内容滚动脚本可以被配置为使得系统从存在于内容发布者的其他信息资源中的多个补充内容项目选择补充内容项目。在一些实施方式中,补充内容滚动脚本可以被配置为使系统生成第二容器以插入到信息资源的末尾,将补充内容项目插入到第二容器内,以及修改第二容器的一个或多个设置参数以匹配包括第一内容项目的第一容器的一个或多个设置参数。
在一些实施方式中,补充内容滚动脚本可以使系统识别补充内容项目在应用的视口内显示;响应于识别补充内容项目在应用的视口内显示,将在应用的地址栏中包括的统一资源定位符(URL)从包括第一内容项目的信息资源的第一URL修改为与补充内容相对应的另一信息资源的第二URL。
在一些实施方式中,监视第一内容项目的预定部分相对于应用的视口的位置可以包括确定第一内容项目的预定部分沿着第一轴的第一坐标值,确定与视口的一个边缘相对应的信息资源的第一部分的第二坐标值,以及确定与视口的第二边缘相对应的信息资源的第二部分沿着第一轴的第三坐标值。确定第一内容项目在应用的视口内可见可以包括确定第一坐标值位于第二坐标值与第三坐标值之间。
在一些实施方式中,补充内容滚动脚本可以使系统接收候选补充内容推荐。候选补充内容推荐可以包括其中存储候选补充内容项目的信息资源的URL。补充内容滚动脚本可以使系统更新虚拟队列以包括接收的候选补充内容推荐。
在一些实施方式中,识别补充内容项目可以包括识别多个补充内容项目。补充内容滚动脚本可以使系统生成多个可选择内容对象。多个可选择内容对象中的每个对应于相应的候选补充内容项目,并且包括相应的可动作项目(actionable item)。响应于检测到选择与多个补充内容项目相对应的多个可动作项目中的一个,补充内容滚动脚本可以使系统显示与该可动作项目相对应的补充内容项目。
在一些实施方式中,补充内容滚动脚本可以使系统识别补充内容项目在应用的视口内显示,以及响应于识别第一补充内容项目在应用的视口内显示而附加第二补充内容项目到在第二容器与信息资源的末尾之间的第二位置处的第三容器中。
至少一个方面涉及用于在信息资源上显示内容项目的系统。该系统包括至少一个处理器和存储器。存储器可以存储计算机可执行指令和补充内容滚动脚本。当在一个或多个处理器上执行时,计算机可执行指令可使系统从计算设备的应用接收对要插入到内容发布者的信息资源内的第三方内容项目的请求。当在一个或多个处理器上执行时,计算机可执行指令还可以使系统响应于该请求将补充内容滚动脚本发送到计算设备,以响应于在应用上执行的滚动活动来显示补充内容。补充内容滚动脚本包括补充内容识别模块、视口监视模块和补充内容附加模块。补充内容识别模块、视口监视模块和补充内容附加模块当在计算设备上执行时,使计算设备识别要附加到信息资源的DOM树的补充内容项目,识别在信息资源的第一容器中显示的第一内容项目,并且监视第一内容项目的预定部分相对于应用的视口的位置。补充内容识别模块、视口监视模块和补充内容附加模块当在计算设备上执行时,可以使计算设备响应于监视第一内容项目的预定部分的位置而确定第一内容项目的预定部分在应用的视口内可见,将补充内容项目附加到在第一内容项目与信息资源的末尾之间的第一位置的第二容器中,以及响应于检测朝向信息资源的末尾的滚动动作,在应用的视口内显示补充内容项目。
在一些实施方式中,当在计算设备上执行时,补充内容识别模块可以使计算设备从存在于内容发布者的第二信息资源中的多个补充内容项目选择补充内容项目。在一些实施方式中,补充内容附加模块当在计算设备上执行时,可使计算设备生成第二容器以插入到信息资源的末尾,并将补充内容项目插入到第二容器内。补充内容附加模块当在计算设备上执行时还可以使计算设备修改第二容器的一个或多个设置参数,以匹配包括第一内容项目的第一容器的一个或多个设置参数。
在一些实施方式中,视口监视模块当在计算设备上执行时,可使计算设备识别补充内容项目在应用的视口内显示。视口监视模块当在计算设备上执行时,可以响应于识别补充内容项目在应用的视口内显示而使计算设备将地址栏中包括的统一资源定位符(URL)从包括第一内容项目的信息资源的第一URL修改为与补充内容相对应的另一信息资源的第二URL。
在一些实施方式中,监视第一内容项目的预定部分相对于应用的视口的位置可以包括确定第一内容项目的预定部分沿着第一轴的第一坐标值,确定对应于视口的一个边缘的信息资源的第一部分的第二坐标值,以及确定与视口的第二边缘相对应的信息资源的第二部分沿着第一轴的第三坐标值。确定第一内容项目在应用的视口内可见包括确定第一坐标值位于第二坐标值与第三坐标值之间。
在一些实施方式中,补充内容识别模块当在计算设备上执行时,可使计算设备接收候选补充内容推荐。候选补充内容推荐可以包括其中存储候选补充内容项目的信息资源的URL。补充内容识别模块当在计算设备上执行时,可使计算设备更新虚拟队列以包括所接收的候选补充内容推荐。
在一些实施方式中,识别补充内容项目可以包括识别多个补充内容项目。补充内容附加模块当在计算设备上执行时,可使计算设备产生多个可选择内容对象。多个可选择内容对象中的每个对应于相应的候选补充内容项目,并且包括相应的可动作项目。补充内容附加模块当在计算设备上执行时,还可以使得计算设备响应于检测到选择与多个补充对象相对应的多个可动作项目中的一个来显示与该可动作项目相对应的补充内容项目。
在一些实施方式中,当在计算设备上执行时,视口监视模块可以使计算设备识别补充内容项目在应用的视口内显示,以及响应于识别在该应用的视口内显示补充内容项目,将另一补充内容项目附加到在第二容器与信息资源的末尾之间的第二位置处的第三容器中。
至少一个方面涉及一种响应于滚动活动而在信息资源上显示内容项目的方法。该方法包括:数据处理系统从客户端设备的应用接收对要插入到内容发布者的信息资源内的第三方内容项目的请求。该方法还包括:响应于该请求,数据处理系统发送补充内容滚动脚本,以响应于在应用上执行的滚动活动来显示补充内容。补充内容滚动脚本包括计算机可执行指令,其当由客户端设备的处理器执行时使客户端设备识别要附加到信息资源的DOM树的补充内容项目,识别在信息资源的第一容器中显示的第一内容项目,并且监视第一内容项目的预定部分相对于应用的视口的位置。计算机可执行指令当由客户端设备的处理器执行时,还使客户端设备响应于监视第一内容项目的预定部分的位置而确定第一内容项目的预定部分在应用的视口内可见。计算机可执行指令当在由客户端设备的处理器执行时也可以使客户端设备将补充内容附加到第一内容项目与信息资源的末尾之间的第一位置处的第二容器中,以及响应于检测到朝向信息资源的末尾的滚动操作,在应用的视口内显示补充内容项目。
在一些实施方式中,该方法还可以包括:生成第二容器以插入到信息资源的末尾,将补充内容项目插入到第二容器内,以及修改第二容器的一个或多个设置参数以匹配包括第一内容项目的第一容器的一个或多个设置参数。在一些实施方式中,补充内容滚动脚本可以被配置为使客户端设备识别补充内容项目在应用的视口内显示,以及响应于补充内容项目在应用的视口内被显示,将应用的地址栏中包括的统一资源定位符(URL)从信息资源的第一URL修改为与补充内容相对应的另一信息资源的第二URL。
在一些实施方式中,补充内容滚动脚本可以使客户端设备识别补充内容项目在应用的视口内显示,以及响应于识别第一补充内容项目在应用的视口内显示,将另一补充内容项目附加到在容器与信息资源的末尾之间的第二位置的第三容器中。
这些和其他方面和实施方式在下面详细讨论。上述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了各种方面和实施方式的说明和进一步的理解,并且被并入且构成本说明书的一部分。
附图说明
附图并不是按比例绘制的。相似的附图标记和标号表示相同的元件。为了清楚起见,并非每个部件在每个图中标注。在图中:
图1是描绘用于提供内容以在客户端设备上与资源信息一起显示的环境的实施方式的框图。
图2是描绘用于响应于滚动活动而将补充内容自动插入到信息资源的补充内容滚动系统的说明性实施方式的框图。
图3是示出根据说明性实施方式用于渲染信息资源的视口的框图。
图4示出了根据说明性实施方式的渲染资源的屏幕截图,示出了附加到信息资源的补充内容。
图5示出了根据另一说明性实施方式渲染信息资源的屏幕截图,示出了附加到信息资源的补充内容。
图6是描绘根据说明性实施方式来响应于滚动活动而将补充内容动态地附加到信息资源的方法的流程图。
图7是描绘可用于实施本文描述和示出的系统和方法的元素的计算机系统的通用架构的说明性实施方式的框图。
具体实施例
下文是响应于计算机网络环境中的滚动活动而将补充内容动态地附加到信息资源的方法、装置和系统有关的各种概念以及方法、装置和系统的实施方式的更详细描述。上面介绍并在下面更详细讨论的各种概念可以以许多方式中的任何一种来实施,因为所描述的概念不限于任何特定的实施方式。
随着越来越多的人转移到在线空间获得感兴趣的新闻和信息,在线发布者竞争吸引用户,保持用户参与并增强在线用户体验。许多在线用户通过诸如智能手机或平板电脑等移动设备访问在线内容。虽然移动设备为用户提供了在各个位置的连接性方面的灵活性,但是对用户而言,获取和浏览用户感兴趣的内容并不总是容易的任务。特别地,在观看(或消费)网页上的第一内容项目时,用户可能需要浏览两个或更多其他网页以找到并消费其他感兴趣的内容项目。例如,在发布者的网页上阅读了一段内容(例如文章或文本)之后,用户可能需要导航到该发布者的主页,检查由发布者提供给用户的其他感兴趣的文章(例如,通过在主页上进行上下滚动),并选择另一个内容项目(或文章)进行消费。有些用户发现这样的过程令人厌烦,令人厌倦,并且可以在观看第一段内容之后立即离开发布者的网站。
可以通过提供用于向用户提供补充内容的机制而不需要用户访问另一页面来实现改善用户体验。这种机制可以作为服务提供给多个发布者。
在本公开中,数据处理系统可以从客户端设备的应用接收对于要插入到内容发布者的信息资源内的第三方内容项目的请求。数据处理系统可以响应于该请求,向客户端设备发送补充内容滚动脚本,以响应于在应用上执行的滚动活动来显示补充内容。补充内容滚动脚本可以包括计算机可执行指令,当在客户端设备上执行时,计算机可执行指令可以使客户端设备识别要附加到信息资源的DOM树的补充内容项目,识别信息资源的第一内容项目并且监视第一内容项目相对于应用的视口的位置。计算机可执行指令当在客户端设备上执行时也可以使得客户端设备响应于监视第一内容项目的位置而确定第一内容项目在应用的视口内可见,并将补充内容项目附加到第一内容项目与信息资源的末尾之间的第一位置。计算机可执行指令当在客户端设备上执行时,还可以使客户端设备响应于检测到朝向信息资源的末尾的滚动操作,在应用的视口内显示补充内容项目。
给定“种子页面”和该种子页面的一组推荐文章(例如与种子页面在同一网站的不同页面上的文章),补充内容滚动脚本可以直接将文章内容附加到底部种子页面,以便用户不需要显式地通过轻击而导航该网站的页面。当用户继续向下滚动页面时,补充内容滚动脚本可以一次附加一个额外文章。所以,从用户的角度来看,有一个无限长的页面。当用户滚动时,统一资源定位符(URL)在地址栏中更改,以反映网页的地址,该网页包括在无限的页面内当前观看的文章。补充内容滚动脚本可以通过在种子页面底部的相应容器(例如iframe)中加载每个新文章来构造无限滚动页面,并将该容器(或iframe)的样式设计为与其余的页无缝混合。
图1是描绘用于补充内容推荐和基于滚动呈现的环境的一个实施方式的框图。环境100包括至少一个数据处理系统110。数据处理系统110可以包括至少一个处理器(或处理电路)和存储器。存储器存储处理器可执行指令,处理器可执行指令当在处理器上执行时使处理器执行本文所述的一个或多个操作。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够向处理器提供程序指令的电子、光学、磁性或任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)可编程ROM(EPROM)、闪存、光学介质或处理器可以从其读取指令的任何其他合适的存储器。该指令可以包括来自任何合适的计算机编程语言的代码。数据处理系统110可以包括可以执行各种功能的一个或多个计算设备或服务器。在一些实施方式中,数据处理系统110可以包括被配置为主持拍卖的广告拍卖系统。在一些实施方式中,数据处理系统110不包括广告拍卖系统,而是被配置为经由网络105与广告拍卖系统进行通信。
网络105可以包括诸如互联网、本地、广域、城域或其他区域网络、内联网、卫星网络、诸如语音或数据移动电话通信网络的其他计算机网络等计算机网络及其组合。环境100的数据处理系统110可以经由网络105例如与至少一个内容提供者计算设备115,至少一个内容发布者计算设备120或至少一个客户端设备125进行通信。网络105可以是在客户端设备125、数据处理系统110和一个或多个内容源(例如,web服务器,广告服务器等)之间中继信息的任何形式的计算机网络。例如,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105还可以包括任何数量的硬连线和/或无线连接。例如,客户端设备125可以与硬连线(例如,经由光纤线缆、CAT5线缆等)到网络105中的其他计算设备的收发器以无线方式(例如,经由WiFi、蜂窝、无线电等)通信。
内容提供者计算设备115可以包括服务器或其他计算设备,服务器或其他计算设备由内容提供者实体操作以提供用于在客户端设备125处的信息资源上显示的内容项目。由内容提供者计算设备115提供的内容可以包括用于在信息资源上显示的第三方内容项目或创意(例如,广告),诸如包括由内容发布者计算设备120提供的内容的网站或网页。内容项目也可以显示在搜索结果网页上。例如,内容提供者计算设备115可以提供用于在内容网页(诸如公司的网页,其中主要内容由公司提供)的内容位中显示,或者用于在搜索引擎提供的搜索结果到达网页上显示的其他内容项目或者是其他内容项目的源。与内容提供者计算设备115相关联的内容项目可以显示在除了网页之外的信息资源上,例如作为智能电话或其他客户端设备125上的应用的执行的一部分显示的内容。
内容发布者计算设备120可以包括由内容发布实体操作以提供用于经由网络105显示的主要内容的服务器或其他计算设备。例如,内容发布者计算设备120可以包括网页操作器,其提供主要内容以在网页上显示。主要内容可以包括由内容发布者计算设备120提供的内容以外的内容,并且网页可以包括被配置用于从内容提供者计算设备115显示第三方内容项目的内容位。例如,内容发布者计算设备120可以操作公司的网站,并且可以提供关于该公司的内容以在网站的网页上显示。网页可以包括配置用于显示内容提供者计算设备115的第三方内容项目的内容位。在一些实施方式中,内容发布者计算设备120可以包括操作搜索引擎的搜索引擎操作者的搜索引擎计算设备(例如,服务器)。搜索引擎网页(例如,结果或到达网页)的主要内容可以包括搜索结果以及在内容位中显示的第三方内容项目诸如来自内容提供者计算设备115的内容项目。在一些实施方式中内容发布者计算设备120可以包括用于服务视频内容的服务器。
客户端设备125可以包括被配置为经由网络105进行通信以显示诸如由内容发布者计算设备120提供的内容(例如,主要网页内容或其他信息资源)以及由内容提供者计算设备115提供的内容(例如,被配置为在网页的内容位(content slot)中显示的第三方内容项目)等数据的计算设备。客户端设备125、内容提供者计算设备115和内容发布者计算设备120可以包括台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字录像机、用于电视的机顶盒、视频游戏控制台或被配置为经由网络105通信的任何其他计算设备。客户端设备125可以是通信设备,终端用户能通过这种通信设备提交要接收内容的请求。请求可以是对搜索引擎的请求,并且请求可以包括搜索查询。在一些实施方式中,请求可以包括访问网页的请求。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括处理器和存储器,即处理电路。存储器存储机器指令,机器指令当在处理器上执行时使得处理器执行本文所描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够向处理器提供程序指令的电子、光学、磁性或任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)可编程ROM(EPROM),闪存、光学介质或处理器可以从其读取指令的任何其他合适的存储器。该指令可以包括来自任何合适的计算机编程语言的代码。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125还可以包括一个或多个用户接口设备。通常,用户接口设备是指通过生成感觉信息来向用户传达数据(例如,显示器上的可视化,一个或多个声音等)和/或将从用户接收到的感觉信息转换成电子信号的任何电子设备(例如,键盘、鼠标、指点设备、触摸屏显示器、麦克风等)。根据各种实施方式,一个或多个用户接口设备可以在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的壳体的内部(例如,内置显示器,麦克风等)或者在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的外部(例如,连接到用户计算设备115的监视器,连接到用户计算设备115的扬声器等)。例如,内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括电子显示器,其使用从一个或多个内容源和/或从数据处理系统110经由网络105接收的网页数据可视地显示网页。在一些实施方式中,诸如广告商的内容放置运动管理者或第三方内容提供者可以经由内容提供者计算设备115与数据处理系统110通信。在一些实施方式中,广告商可以经由显示在内容提供者计算设备115的用界面设备上的用户界面与数据处理通信系统110通信。
数据处理系统110可以包括至少一个服务器。例如,数据处理系统110可以包括位于至少一个数据中心或服务器场中的多个服务器。在一些实施方式中,数据处理系统110可以包括基于滚动的补充内容插入系统,例如补充内容推荐和呈现服务器或补充内容推荐和放置系统。数据处理系统110可以包括至少一个内容请求模块130、至少一个内容选择模块135、至少一个脚本提供者模块140、至少一个内容推荐模块150和至少一个数据库145。内容请求模块130、内容选择模块135、脚本提供者模块140和内容推荐模块150均可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、器具或其他逻辑设备,诸如被配置为经由网络105与数据库145和其他计算设备(例如,内容提供者计算设备115、内容发布者计算设备120或客户端设备125)通信的可编程逻辑阵列。
内容请求模块130、内容选择模块135、脚本提供者模块140和内容推荐模块150可以包括或执行至少一个计算机程序或至少一个脚本。内容请求模块130、内容选择模块135、脚本提供者模块140和内容推荐模块150可以是单独的组件、单个组件或数据处理系统110的一部分。内容请求模块130、内容选择模块135、脚本提供者模块140和内容推荐模块150可以包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。
数据处理系统110还可以包括一个或多个内容存储库或数据库145。数据库145可以在数据处理系统110的本地。在一些实施方式中,数据库145可以远离数据处理系统110,但是可以经由网络105与数据处理系统110通信。数据库145可以包括信息资源、第三方内容项目、一个或多个内容发布者的内容等等。在一些实施方式中,信息资源可以是可包括信息的网页、移动应用页面或其他文档、文件或实体。在一些实施方式中,数据库145可以包括一个或多个脚本,包括可用于推荐要附加到一个或多个信息资源的补充内容的内容推荐脚本或用于将补充内容附加到一个或多个信息资源的补充内容滚动脚本。
数据处理系统110的内容请求模块130可以被配置为从客户端设备125接收对内容的请求。对内容的请求可以包括对信息资源的请求、对一个或多个第三方内容项目的请求、对脚本的请求,例如补充内容滚动脚本或其组合。在其中对内容的请求包括对第三方内容的请求的一些实施方式中,该请求可以包括用于要在其上显示或呈现第三方内容的信息资源的地址或标识符。对第三方内容的请求还可以包括或识别一个或多个参数,数据处理系统110可以使用这一个或多个参数来确定响应于对第三方内容的请求而提供的内容。这些参数可以识别要在其中插入所请求的内容的内容位的大小。这些参数可以识别与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、客户端设备信息、所请求的第三方内容项目的大小信息或其组合。在一些实施方式中,对第三方内容的请求可以识别补充内容滚动脚本。在一些实施方式中,对第三方内容的请求可以包括指示资源信息的内容发布者订阅或者以其他方式选择参加内容滚动服务的标识符。
在一些实施方式中,对内容的请求可以包括对信息资源的请求。对信息资源的请求可以包括信息资源的地址或标识符。例如,对信息资源的请求可以包括诸如网页的特定资源的统一资源定位符(URL)(例如,“http://www.example.com”)。对信息资源的请求还可以包括客户端设备信息(诸如设备类型、设备标识符或其组合)。
在一些实施方式中,对内容的请求可以包括对补充内容滚动脚本的请求。在一些实施方式中,对补充内容滚动脚本的请求可以包括所请求的脚本的指示、资源信息的地址或标识符或其组合。在一些实施方式中,对补充内容滚动脚本的请求可以识别补充内容滚动脚本。在一些实施方式中,对补充内容滚动脚本的请求可以包括指示资源信息的内容发布者订阅或者以其他方式选择选择加入内容推荐和补充内容滚动服务的标识符。
在一些实施方式中,内容请求模块130可以被配置为解析对内容的请求,并确定是否将对内容的请求转发到内容选择模块135或脚本提供者模块140。例如,如果补充内容滚动脚本被确定为响应于接收到对内容的请求而被发送到客户端设备125,则内容请求模块130可以将对内容的请求转发到脚本提供者模块140。否则,请求模块130可以转发对第三方内容的请求到内容选择模块135。在一些实施方式中,内容请求模块130可以确定将对内容的请求转发到内容选择模块135和脚本提供者模块140。内容请求模块130可以基于对内容请求的类型(例如,对信息资源的请求、对第三方内容的请求或者对补充内容滚动脚本的请求)、对内容的请求中的指示符(例如,指示补充内容滚动脚本的指示符或指示信息资源适合内容推荐和补充内容滚动条件的指示符)、对内容的请求中的信息资源标识符或其组合来确定是否将脚本发送到客户端设备125。在一些实施方式中,内容请求模块130可以通过将信息资源的标识与信息资源标识符的列表(例如,适合接收补充内容滚动脚本的资源信息标识符)进行比较来确定脚本是否要被发送到客户端设备125。在一些实施方式中,信息资源标识符可以是URL。在一些实施方式中,信息资源标识符可以是信息资源所属的域。在一些实施方式中,信息资源标识符可以是对应于托管信息资源的服务器的IP地址。在一些实施方式中,内容请求模块130可以自动地将对内容的请求转发到内容选择模块135,而不必检查脚本是否要被发送到客户端设备125。
内容选择模块135可以被配置为响应于接收到对内容的请求来确定要发送到客户端设备125的内容。内容选择模块135可以基于包括在对内容的请求中的信息来确定要发送给客户端设备125的内容。例如,在接收到对信息资源的请求时,内容选择模块135可以使用在对内容的请求中的信息资源的地址或标识符来确定要发送到客户端设备125的内容。在接收到请求一个或多个第三方内容项目的情况下,内容选择模块135可以基于上面将呈现第三方内容项目的信息资源的地址或标识符、用于信息资源的内容类型信息(例如,运动、新闻、音乐、电影、旅行等),要显示第三方内容项目的位的大小信息、客户端设备信息(例如,设备类型、设备标识符、设备位置等)来选择第三方内容项目。在一些实施方式中,对第三方内容的请求还可以包括用于在信息资源上显示第三方内容项目的最小收入金额(或最低出价值)。在一些实施方式中,内容选择模块135可以与广告拍卖系统进行通信,并且提供包括在从客户端设备125接收的对第三方内容的请求中的广告拍卖系统信息。内容选择模块135还可以响应于将包括在第三方内容的请求中的信息提供给广告拍卖系统而从广告拍卖系统接收一个或多个第三方内容项目(或其指示)。在一些实施方式中,内容选择模块135可以访问数据库145并检索用于发送到客户端设备125的内容。在一些实施方式中,对内容的请求可以是在将补充内容滚动脚本提供给客户端设备并且在客户端设备上执行之后接收对第三方内容的请求。在一些这样的实施方式中,内容选择模块135可以选择一个或多个第三方内容项目以在由补充内容滚动脚本产生的内容位中显示。
在一些实施方式中,内容选择模块135可以被配置为响应于对内容的请求来确定脚本是否要被发送到客户端设备125。内容选择模块135可以基于内容请求的类型(例如,对信息资源的请求,对第三方内容的请求或对第三方内容的请求)、内容请求中的指示符(例如,指示补充内容滚动脚本的指示符或指示信息资源适合接收补充内容滚动脚本的指示符)、对内容的请求中的信息资源标识符或其组合来确定是否要向客户端设备125发送脚本。在一些实施方式中,内容选择模块135可以通过将信息资源的标识与信息资源标识符的列表(例如,适合接收补充内容滚动脚本的信息资源标识符)进行比较来确定脚本是否被发送到客户端设备125。在确定将脚本要被发送到客户端设备125时,内容选择模块135可以将对内容的请求或其指示转发到脚本提供者模块140。在一些实施方式中,内容选择模块135仍然可以选择第三方内容项目以与诸如补充内容滚动脚本的脚本一起发送到客户端设备125。
脚本提供者模块140可以被配置为从数据库145检索补充内容滚动脚本,并将检索到的脚本发送到客户端设备125(或者发送到另一实体以发送到客户端设备125)。在一些实施方式中,补充内容滚动脚本可以单独地或与一个或多个第三方内容项目一起发送到客户端设备125。在一些实施方式中,脚本提供者模块140、内容选择模块135或数据处理系统110的另一个实体可以将补充内容滚动脚本与请求的信息资源一起发送到客户端设备125。例如,脚本提供者模块140、内容选择模块135或数据处理系统110的另一实体可以在将补充内容滚动脚本或其一部分在发送到客户端设备125之前插入到信息资源中。
内容推荐模块150可以从客户端设备125接收对补充内容的请求,并且作为响应,确定用于发送到客户端设备125的一个或多个补充内容项目。例如,补充内容滚动脚本当在客户端设备125上执行时可以使客户端设备125从内容推荐模块150请求用于附加到信息资源或其文档对象模型(DOM)树的补充内容。特别地,补充内容滚动脚本可以插入用于请求补充内容计算机可执行指令,作为DOM树中的不可见元素或信息资源的可执行指令。在客户端设备125发起信息资源的显示时,还执行用于请求补充内容的计算机可执行指令,使得客户端设备125向内容推荐模块150发送对于要附加到信息资源的补充内容的请求。在一些实施方式中,对补充内容的请求可以包括信息资源的地址或标识符、客户端设备信息(诸如设备类型的指示、设备标识符、设备位置等)或其组合。在一些实施方式中,内容推荐模块150可以基于信息资源的地址或标识符、客户端设备信息、包括在对补充内容的请求中的其他信息或数据处理系统110可访问的其他信息,来确定一个或多个补充内容项目(诸如客户端设备125的历史在线活动、关于信息资源或第一内容项目的其他客户端设备的历史在线活动,与信息资源和/或信息资源发布者相关联的信息等)。在一些实施方式中,内容推荐模块150可以从由信息资源发布者提供(或发布)的内容来确定一个或多个补充内容项目。在一些实施方式中,内容推荐模块150可以采用与信息资源发布者的服务器可访问的一个或多个信息资源相对应的信息(诸如数据结构、DOM树等)来确定用于发送到客户端设备125的一个或多个补充内容项目。
在确定用于发送到客户端设备125的一个或多个补充内容项目之后,内容推荐模块150可以访问数据库145(或与内容发布者设备120通信)以检索所确定的一个或多个补充内容项目。在一些实施方式中,内容推荐模块150可以向内容选择模块135发送所确定的一个或多个补充内容项目的指示。然后,内容选择模块135可以从数据库145(或诸如内容发布器设备120的其他源)检索所确定的一个或多个补充内容项目以发送到客户端设备125。然后,内容推荐模块150、内容选择模块135或数据处理系统110的其他实体可以将一个或多个补充内容项目发送到客户端设备125。
在一些实施方式中,内容推荐模块150可以例如从数据库145获得指示与客户端设备125相关联的历史滚动操作的信息和/或当信息资源在其他客户端设备上显示时指示其他客户端设备的历史滚动操作的信息。在一些实施方式中,内容推荐模块150可以基于指示与客户端设备125相关联的历史滚动操作的信息和/或指示与信息资源相关联的其他客户端设备的历史滚动操作的信息来确定要推荐给客户端设备125的补充内容的数量。例如,如果信息资源已经被1000个客户端设备观看,并且视图中的900个导致用户在滚动到信息资源的末尾之前离开信息资源,则内容推荐模块150可以确定存在用户不太可能滚动到信息资源的末尾的高概率。因此,内容推荐模块150可以确定仅识别要附加到信息资源的一个补充内容项目而不是更大数量补充内容项目。结果,内容推荐模块150可以比其原本更早地终止识别补充内容的请求,从而提高计算资源利用的效率。
在一些实施方式中,内容推荐模块150可以基于设备信息(例如,设备类型,连接类型等)和/或与一个或多个补充内容项目有关的信息(例如,内容类型、样式等)来确定信息资源(或网页)的加载等待时间。在一些实施方式中,内容推荐模块150可以基于所确定的加载等待时间来确定要推荐给客户端设备125的补充内容的数量。
补充内容滚动脚本可以包括计算机可执行指令。计算机可执行指令可以包括诸如超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JavaScript等脚本。计算机可执行指令可以在客户端设备125的应用内执行,诸如使客户端设备125发送内容请求模块130所接收的内容请求的应用。应用可以包括例如互联网浏览器、移动应用或能够读取和执行计算机可执行指令的任何其他计算机程序。简而言之,当由客户端设备125的处理器执行时,计算机可执行指令可以使客户端设备的应用:(a)识别要附加到文档对象模型(DOM)树的补充内容项目,(b)识别信息资源的第一内容项目,(c)监视第一内容项目相对于应用的视口的位置,(d)响应于监视第一内容项目的第一内容项目的位置,确定第一内容项目在应用的视口内是可见的,(e)将补充内容项目附加到第一内容项目与信息资源的末尾之间的第一位置,以及(f)响应于检测到朝向信息资源的末尾的滚动动作,向在应用的视口内显示补充内容项目。关于补充内容滚动脚本的功能的额外细节在本文中关于图1、图2、图3、图4、图5和图6提供。
参考图2,图2是描绘用于响应于滚动活动而将补充内容自动插入到信息资源的补充内容滚动系统的说明性实施方式的框图。补充内容滚动系统200可以包括应用205、信息资源210、补充内容识别模块222、视口监视模块225、补充内容附加模块228和内容显示模块230。在一些实施方式中,补充内容识别模块222、视口监视模块225和补充内容附加模块228可以是补充滚动脚本220内的模块。内容显示模块230可以是应用205内的模块。在一些实施方式中,补充内容识别模块222、视口监视模块225、补充内容附加模块228和内容显示模块230中的任一个可以是应用205、信息资源210或补充滚动脚本220内的模块。
补充内容滚动系统200可以在计算设备的一个或多个处理器上运行或以其他方式执行,诸如在下文在图7中描述的那些处理器。应用205可以包括例如互联网浏览器、移动应用或能够执行或以其他方式调用计算机可执行指令的任何其他计算机程序,诸如包括在信息资源210、补充内容识别模块222、视口监视模块225,补充内容附加模块228和内容显示模块230中的计算机可执行指令。信息资源210可以包括一个或多个内容项目。内容项目可以包括由内容发布者提供的主要内容项目,由第三方内容发布者提供的第三方内容项目等。内容项目可以包括图像、文本、音频、视频等。在一些实施方式中,内容项目可以包括多个内容项目。例如,文章可以是内容项目,但是可以包括标题、一个或多个图像、一个或多个段落,其中的每个可以被认为是内容项目。信息资源210可以指定一个或多个内容项目的位置。在一些实施方式中,信息资源210可以包括指定一个或多个内容项目的形状、大小、位置和/或其他属性的DOM树。在一些实施方式中,内容项目可以对应于包括在DOM树中的DOM元素。在一些实施方式中,客户端设备可以基于从信息资源的内容发布者的服务器接收的一个或多个计算机可执行指令、文件、代码或资源来生成信息资源的DOM树。
应用205可以从托管信息资源的服务器(诸如信息资源的内容发布者的服务器或数据中心中的服务器)获得或接收信息资源210。例如,应用205可以向服务器发送包括信息资源210的地址或标识符的请求,并且作为响应,接收信息资源210。在其中服务器位于(或耦合到)图1所示的数据处理系统110内的一些实施方式中,应用205可以接收补充内容滚动脚本220以及信息资源210。例如,应用205可以接收插入到信息资源210内的补充内容滚动脚本220。
在一些实施方式中,在接收到信息资源210时,应用205可以向数据处理系统110发送对内容的请求。对内容的请求可以是对第三方内容项目的请求。例如,信息资源210可以包括第三方内容位,其可以包括计算机可执行指令,计算机可执行指令使应用205生成并向数据处理系统110发送对内容的请求。当第三方内容位的计算机可执行指令作为信息资源110的一部分执行时,计算机可执行指令使应用205(经由客户端装置125)发送对内容的请求,请求自数据处理系统110的第三方内容项目。对内容的请求可以包括信息资源210的地址或标识符、信息资源内容类型的指示、第三方内容位的大小信息、客户端设备信息、最小发布者收入值或其组合。在一些实施方式中,对内容的请求可以包括补充内容滚动脚本220的指示。在一些实施方式中,对内容的请求可以包括对补充内容滚动脚本220的请求。
响应于对内容的请求,应用205可以从数据处理系统110或另一个服务器接收补充内容滚动脚本220。在一些实施方式中,应用205可以接收补充内容滚动脚本220以及第三方内容项目。第三方内容项目将显示在第三方内容位中,该第三方内容位包括向数据处理系统110发送对内容的请求的指令。在一些实施方式中,应用205可以接收补充内容滚动脚本220而没有第三方内容项目。在一些实施方式中,应用205可以接收具有多个第三方内容项目的补充内容滚动脚本220。应用205(或客户端设备125的处理器)可以执行补充内容滚动脚本220。在一些实施方式中,执行补充内容滚动脚本220可以包括执行补充内容识别模块222、视口监视模块225、补充内容附加模块228、内容显示模块230或其组合。
补充内容识别模块222可以包括可在客户端设备125上执行的一个或多个计算机可执行指令。补充内容识别模块222可以使客户端设备125识别要附加到信息资源110的文档对象模型(DOM)树上的补充内容项目。在一些实施方式中,补充内容识别模块222可以使客户端设备125向数据处理系统110发送对要附加到信息资源210的DOM树的一个或多个补充内容项目的请求。例如,补充内容滚动脚本220可以使客户端设备将补充内容识别模块222作为不可见元素插入到信息资源210中。补充内容识别模块222可以由客户端设备125执行,并且使得客户端设备125向数据处理系统110的内容推荐模块150发送对补充内容项目的请求。在一些实施方式中,补充内容的请求可以包括信息资源210的地址或标识符、客户端设备信息(诸如设备类型的指示、设备标识符、设备位置等),与信息资源的发布者相关的信息或其组合。
补充内容识别模块222可以从数据处理系统110接收一个或多个候选补充内容项目(或其指示)。在一些实施方式中,补充内容识别模块22可以响应于对补充内容的请求来接收补充内容项目。在一些实施方式中,补充内容识别模块22可以在客户端设备首次访问信息资源时响应于客户端设备发送的对内容的请求来接收补充内容。候选补充内容项目可以包括信息资源210的发布者的内容项目。例如,内容推荐模块150可以从与发布者信息资源210相关联的多个信息资源中选择一个或多个信息资源。内容推荐模块150然后可以从所选择的信息资源确定一个或多个内容项目,以作为候选补充内容项目推荐给客户端设备125。在一些实施方式中,与发布者信息资源210相关联的多个信息资源可以包括属于信息资源210的发布者的单个域、网站、服务器的多个页面。在一些实施方式中,补充内容项目可以是文章、博客、图像或可能与原始包括在信息资源上的主要内容项目相似的其他内容项目。
在一些实施方式中,数据处理系统110可以响应于对补充内容的请求来推荐一个或多个补充内容项目。数据处理系统110可以向补充内容识别模块222发送一个或多个数据分组,数据分组可以包括信息资源的统一资源定位符(URL),其含有由数据处理系统110推荐的候选补充内容项目。在一些实施方式中,数据分组可以包括信息资源的URL、信息资源的源代码(或其部分)、信息资源的DOM树、与信息资源相关联的内容项目(例如图像或视频)或其组合。
在一些实施方式中,补充内容识别模块222可以生成、创建、维护或更新一个或多个补充内容队列。响应于对信息资源执行的滚动活动,补充内容队列可以包括要附加到信息资源的一个或多个补充内容项目。在一些实施方式中,响应于补充内容识别模块222接收候选补充内容推荐,补充内容识别模块222可以更新补充内容队列中的一个或多个以包括所接收的候选补充内容推荐。在一些实施方式中,补充内容识别模块222可将标识符或地址(例如URL)、标题、图像、视频段和/或与存储候选补充内容项目的信息资源相关联的其他信息转发到视口监视模块225、补充内容附加模块228或信息资源210的另一个模块,用于更新一个或多个补充内容队列。每个补充内容队列可以表示候选补充内容推荐的有序动态列表,使得与候选补充内容推荐的列表相关联的一个或多个内容项目可以被附加到信息资源210。补充内容队列可以包括存储候选补充内容项目的信息资源的URL(或其他标识符)队列。更新补充内容队列可以包括:将存储候选补充内容项目的信息资源的标识符(例如URL)添加到补充内容队列,删除存在于补充内容队列中的信息资源的标识符,对补充内容队列中的信息资源的标识符排序(或重新排序),或其组合。在一些实施方式中,补充内容识别模块222、视口监视模块225、补充内容附加模块228或信息资源210的另一模块可以选择候选补充内容推荐的子集以包括在虚拟队列中。
视口监视模块225可以被配置为使得客户端设备监视应用的视口以附加由数据处理系统110识别的一个或多个补充内容项目。视口监视模块225可被配置为使客户端设备识别信息资源的第一内容项目。在一些实施方式中,当客户端设备接收到信息资源时,第一内容项目可以是包括在信息资源中的内容项目。在一些实施方式中,内容项目可以是DOM元素。在一些实施方式中,内容项目可以是可被渲染以在客户端设备上显示的DOM元素。在一些实施方式中,内容项目可以是可被渲染以在客户端设备上显示的DOM元素的可视表示。在一些实施方式中,内容项目可以是文章的标题、文章本身、文章的图像等等。在一些实施方式中,视口监视模块225可以被配置为使得客户端设备将显示在信息资源上的第一个文章的标题识别为第一内容项目。在一些实施方式中,第一内容项目可以包括在容器中,例如信息资源的DOM树的iframe。第一内容项目可以是包括在容器中的文章。在一些实施方式中,第一内容项目可以是文章的任何部分,例如,标头、图像、标题等等。容器可以包括一个或多个内容项目。可以将容器配置为以内容项目对应于信息资源的特定外观和感觉的方式设计内容项目的样式。
视口监视模块225可以监视第一内容项目(或其预定部分)相对于应用的视口的位置。在一些实施方式中,视口监视模块225可以监视第一内容项目(或其预定部分)相对于视口的位置,以检测在应用的视口内显示第一内容项目的状况。
在一些实施方式中,视口监视模块225可以被配置为使得客户端设备确定第一内容项目(或其预定部分)相对于信息资源的参考点的坐标。在一些实施方式中,信息资源的参考点可以包括信息资源的顶角(top corner)。在一些实施方式中,视口监视模块225可以确定信息资源被配置为竖直或水平地延伸。在其中信息资源被配置为竖直延伸的实施方式中,视口监视模块225可以使客户端设备确定第一内容项目(或其预定部分)沿着竖直轴的坐标值或换言之y轴坐标。在其中信息资源被配置为水平延伸的实施方式中,视口监视模块225可以使客户端设备确定第一内容项目(或其预定部分)沿着水平轴的坐标值,或者换言之x轴坐标。坐标值可以是离信息资源的参考点的像素数、距离或缩放的距离。在一些实施方式中,坐标值可以是对应于第一内容项目的点的数字,例如内容项目的顶角。在一些实施方式中,第一内容项目的点可以是第一内容项目的任何点或对应于第一内容项目的任何点。在一些实施方式中,视口监视模块可以被配置为使得客户端设备识别内容项目上的预定义点或部分(例如,内容项目的中心,内容项目的边缘之一,内容项目的拐角之一等)。在一些实施方式中,视口监视模块可以使得客户端设备识别对应于信息资源滚动可沿着的轴的第一内容项目的坐标。例如,如果信息资源被配置为竖直地滚动,则视口监视模块可以使客户端设备识别第一内容项目的顶边缘或底边缘之一。如果信息资源被配置为水平滚动,则视口监视模块可以使客户端设备识别第一内容项目的左边缘或右边缘之一。
视口监视模块225可以被配置为使得客户端设备基于信息资源与视口的相对位置来监视信息资源的坐标值。例如,视口监视模块225可以使客户端设备识别与视口的第一边缘(例如,顶边缘)对准的信息资源的第一部分。当用户滚动信息资源时,信息资源的不同部分将与视口的第一边缘对准。在一些实施方式中,视口监视模块225可以被配置为使得客户端设备周期性地监视信息资源的哪个部分与视口的顶边缘对准,并且信息资源的哪个部分与视口的底边缘对准。在一些实施方式中,视口监视模块225可以被配置为使得客户端设备使用现有JavaScript函数识别与视口的顶边缘对准的信息资源的第一部分的第二坐标值,以及与视口的底边缘对准的信息资源的第二部分的第三坐标值。例如,视口监视模块225可以使用函数iframeElement.getBoundClientRect().top来识别对应于在特定滚动位置处与视口的顶边缘对准的信息资源的第二部分的第二坐标值。函数iframeElement.getBoundClientRect().top返回一个y坐标,用于识别与视口顶边缘对准的信息资源的第一部分。此外,视口监视模块225可以使用函数iframeElement.getBoundClientRect().bottom来识别与在特定滚动位置处的视口的底边缘对准的信息资源的第二部分相对应的第三坐标值。在一些实施方式中,可以通过将视口的高度加到第二坐标值来确定第三坐标值。
为了确定在客户端设备上执行的应用的视口内第一内容项目是可见的,视口监视模块225可以确定第一坐标值是否在第二坐标值与第三坐标值之间。视口监视模块225可以被配置为将第一内容项目(或其预定部分)的坐标值与视口的顶部和底部(或者,对于水平轴滚动,左和右)坐标值进行比较。如果第一内容项目(或其预定部分)的坐标值被确定为第二坐标值与第三坐标值之间的数字,则视口监视模块225可以确定第一内容项目在视口内是可见的。
在一些实施方式中,视口监视模块可以被配置为使得客户端设备检测在应用内是否发生滚动活动。例如,视口监视模块225可以被配置为从应用205接收指示与视口或信息资源210相关联的滚动条的滚动标签的移动(例如,向上或向下)的信息。在一些实施方式中,视口监视模块225可以被配置为基于例如从应用205接收到的滚动信息来监视滚动标签相对于滚动条或相对于视口的位置。在一些实施方式中,视口监视模块225可以通过使用一个或多个检测滚动活动的监听器(包括但不限于“OnScroll”等)来确定滚动活动是否发生。
现在还参考图3,图3是示出根据说明性实施方式的用于渲染信息资源的视口的框图。沿着视口的y轴的坐标在0与视口的长度L之间变化。信息资源210及其内容项目310在视口300中渲染。视口300包括滚动条305和相应的滚动标签307。当客户端设备125的用户移动(例如,向上或向下)滚动标签307时,视口中可见的信息资源的部分相应地改变。如上文所讨论,视口监视模块225可以通过检查与内容项目310相关联的y坐标是否在0与L之间来确定内容项目310是否在视口300中可见。在一些实施方式中,视口监视模块225可以监视滚动标签307的移动或滚动标签307相对于滚动条305的位置,以确定客户端设备125的用户是否正在主动地观看内容项目310(或信息资源210)。应当理解,一些计算设备可能不使用滚动标签和滚动条。例如,许多移动应用可能不依赖于滚动条。在一些实施方式中,确定在应用的视口内显示的内容可以基于信息资源本身上的参考点。
如本文所描述,视口监视模块可以使客户端设备125确定信息资源的第一内容项目(例如内容项目310)在视口内可见,视口监视模块225可以生成警报、通知或其他指令来调用补充内容附加模块228。
补充内容附加模块228可以被配置为使得客户端设备125将候选补充内容项目中的至少一个附加在信息资源中在所识别的内容项目310与信息资源210的末尾之间的位置。例如,补充内容附加模块228可以使客户端设备选择在候选补充内容队列顶部的候选补充内容项目,并将选择的候选补充内容项目附加到信息资源210。在一些实施方式中,附加在信息资源210处的候选补充内容项目可以包括补充内容附加模块228,使得客户端设备生成容器(例如iframe),并将候选补充内容项目插入到生成的容器中。补充内容附加模块228可以使客户端设备125创建或修改(或调整)容器的一个或多个设置参数(诸如大小参数、背景颜色、文本字体参数、亮度或其他设置参数)以匹配包括信息资源210中的第一内容项目310的另一个容器的相应设置参数。因此,当在客户端设备125上显示时,所附加的候选补充内容项目将在视觉上看起来好像它原本是信息资源210的一部分。在一些实施方式中,补充内容附加模块228可以使客户端设备125将与生成的容器(或iframe)相对应的DOM元素插入到信息资源210的DOM树中(例如,在DOM树的末尾处),使得当信息资源被渲染以经由应用显示时,补充内容项目出现在第一内容项目之后并朝向信息资源的末尾。
内容显示模块230可以被配置为在检测到朝向信息资源210的末尾的滚动操作时在视口300内显示附加的补充内容项目。例如,内容显示模块230可以使客户端设备从应用205或视口监视模块225接收朝向信息资源210的末尾的滚动操作的指示,并且作为响应,使得客户端设备125(或应用205)在视口300内显示与附加的补充内容项目相关联的内容。
现在参考图4,图4示出了根据说明性实施例的渲染资源的屏幕截图,示出了附加到信息资源的补充内容。在屏幕截图400中,内容项目410可以是最初包括在信息资源210中的第一内容项目,而内容项目420是附加到信息资源210的补充内容项目。内容项目420在跟随信息资源内原始内容项目410的位置附加到信息资源210。
响应于在客户端设备125上显示信息资源(例如发布者网页)210的请求,应用205可以向数据处理系统110发送对与信息资源210一起显示的广告的请求。响应于该请求,应用205可以接收补充内容滚动脚本220以及一个或多个广告。应用205可以执行补充内容滚动脚本220,其在执行时可以将不可见的内容推荐块插入到信息资源中。应用205可以将内容推荐块渲染到不可见的容器(诸如不可见的iframe)内。内容推荐块可以例如经由postMessage向发布者页面上运行的补充滚动脚本220发送与推荐内容项目相关联的一个或多个URL、标题和/或图像(例如内容项目420的URL、标题和/或图像)。补充内容滚动脚本可以使客户端设备或在客户端设备上执行的应用接收postMessage,并将推荐内容项目添加到虚拟队列中。
当内容项目410的一部分(诸如内容项目410的文章的顶部,标题,标头)在视图中(或在应用205的视口内)时,应用205经由补充内容滚动脚本220可以将下一个推荐内容项目(例如内容项目420)从虚拟队列中拉出,并将其附加到信息资源的DOM树(或DOM文档)的底部。可以使用函数iframeElement.getBoundingClientRect().top限定或确定文章的顶边缘,函数iframeElement.getBoundingClientRect().top返回相对于应用205的视口的y坐标。补充内容滚动脚本220可以确定返回的y坐标在0与定义为document.clientHeight的应用视口高度之间。
在加载或以其他方式插入推荐内容项目(例如内容项目420)时,补充内容滚动脚本220可以使应用将推荐内容项目的内容加载或以其他方式插入到新的容器(或iframe)中,该容器插入在信息资源的DOM树(或DOM文档)的底部。补充内容滚动脚本220可以将容器(或iframe)样式设计为全宽,并且没有边框。当内容项目420(经由相对应的文章)被完成加载时,应用205(经由补充内容滚动脚本220)可以调整容器(或iframe)的大小以适应文章长度。应用205(经由补充内容滚动脚本220)可以将需要的容器(或iframe)内具有target=_self(默认目标)的所有锚标签修改为target=_top,以便在父窗口中打开链接(例如显示内容项目410的窗口)。此外,如果内容项目420在视图中,则应用205(经由补充内容滚动脚本220)可以更新地址栏中的URL以反映内容项目420的地址。
图5示出了根据另一说明性实施方式渲染的信息资源的屏幕截图,示出了附加到信息资源的补充内容。在屏幕截图500中,内容项目510可以是信息资源210的原始内容项目,而内容项目520是附加的内容项目。根据图5所示的实施方式,补充内容附加模块228可以生成多个可选择内容对象,诸如内容对象525、535和545,每个内容对象对应于相应的补充内容项目。在一些实施方式中,可选择内容对象525、535和545中的每个可以被包括在内容对象550中,补充内容附加模块228可以将其插入到信息资源或新的容器(例如新的iframe)中。
多个可选择内容对象525、535和545中的每个可以包括用于选择要附加到信息资源和/或在视口中的显示的相对应补充内容项目的可动作项目。例如,在客户端设备检测到点击、轻击、触摸或(通过光标)悬停在包括于可选择内容对象525、535和545中的多个可动作项目之一上时,相应的补充内容项目可以是可用于在视口内显示。
在一些实施方式中,补充内容附加模块228可以将与可选择内容对象525、535和545相关联的所有补充内容项目附加到信息资源。补充内容附加模块228可以在内容项目410与发布者网页的末尾之间插入新的容器(例如iframe),并将与可选择内容对象525、535和545相关联的所有补充内容项目加载到容器(或iframe)。可选择内容对象525、535和545可以布置在新的容器中。在一些实施方式中,补充内容附加模块228可以设置补充内容项目中每个的属性,使得只有与所选择的可动作项目相对应的补充内容项目(并且通过关联,可选择内容对象)在任何给定时间是可见的,而其他的被设置为隐藏。补充内容附加模块228可以将与所选择的可动作项目相对应的相关联补充内容项目加载到新容器(或iframe)中。在一些实施方式中,补充内容附加模块228可以向信息资源附加(诸如插入于新的容器或iframe)与默认可选择内容对象525相对应的补充内容项目,并且使补充内容项目可用于在视口中显示。当客户端设备检测到选择了当前未显示的可选择内容对象(例如,选择可选择内容对象535或545)时,补充内容附加模块228可以使得客户端设备改变与默认可选择内容对象525(或与其对应的DOM元素)相对应的补充内容项目的属性从可见到不可见,同时使其可动作项目被选择的补充内容项目(或与其对应的DOM元素)成为可见状态。在一些实施方式中,补充内容附加模块228可以用其中可动作项目已被选择的补充内容项目来替换当前在新容器(或iframe)中的补充内容项目。以这种方式,可使其可动作项目已被选择的补充内容项目变得可见,使得当包括补充内容项目的信息资源的部分位于应用205的视口内时,其可动作项目已被选择的补充内容项目可以被观看。
在一些实施方式中,视口监视模块225可以使得客户端设备125周期性地或不间断地监视视口,以确定何时可以通过视口观看补充内容项目。响应于识别出可以通过视口观看补充内容项目,应用205或视口监视模块225可以使客户端设备将包括将在应用205的地址栏中的统一资源定位符(URL)从第一信息资源210的第一URL修改为与所附加并显示的补充内容项目相对应的第二信息资源的第二URL。换句话说,当滚动事件发生时,应用205或视口监视模块225可以使得客户端设备125监视哪个内容项目(或相对应的iframe)在视口中是可见的,并且确定与可见内容项目相关联的信息资源的URL。然后可以将与可见内容项目相关联的信息资源的URL显示在应用205的地址栏中。
在一些实施方式中,视口监视模块225可以使客户端设备检测到滚动事件已经发生,并且响应于客户端设备125检测到滚动事件已经发生,视口监视模块225可以使客户端设备125确定通过应用205的视口可以看到补充内容项目中的哪个(如果有的话)。客户端设备125可以通过将补充内容项目的一个或多个部分的坐标与视口的一个或多个边缘的坐标进行比较来确定这点。响应于客户端设备125确定通过视口可观看的补充内容项目的标识,视口监视模块225可以使客户端设备125修改顶部窗口的window.location object以匹配补充内容项目的容器(或iframe)容器的window.location object。
在一些实施方式中,补充内容滚动脚本220可以使得客户端设备125将补充内容项目附加到其中已经附加了一个或多个补充内容项目的信息资源。在一些实施方式中,补充内容滚动脚本220可以定义附加到信息资源的补充内容项目的最大阈值。在一些实施方式中,补充内容滚动脚本220可以不定义最大值,并且结果,客户端设备125可被配置为响应于滚动活动附加非常大量的补充内容项目。
在一些实施方式中,补充内容滚动脚本220可以包括计算机可执行指令,当由客户端设备执行时,计算机可执行指令可以使客户端设备125识别通过视口显示补充内容项目,检测滚动动作并且响应于滚动动作,使客户端设备125将另外的补充内容项目附加到信息资源。将另外的补充内容项目附加到信息资源可以包括在信息资源(或相应的DOM树)中插入新的(或附加的)容器(或iframe)并将其他补充内容项目加载到所插入的容器(或iframe)中。在一些实施方式中,客户端设备125可以将多个补充内容项目附加到信息资源。在一些实施方式中,补充内容滚动脚本220可以设置相对于在视口中显示的补充内容项目而附加的预定数量的补充内容项目。例如,如果预定数量为3,并且通过视口显示的补充内容项目是附加到信息资源的第四补充内容,则客户端设备125可以被配置为使得总共七个补充内容项目被包括在信息资源中。当用户向第五个滚动时,可附加另一补充内容项目。如果没有设置预定(或最大)数量的补充内容项目,那么随着检测到更多的滚动活动(例如朝向信息资源的末尾),补充内容滚动脚本220(或应用205)可以继续附加新的补充内容项目。
图6是描绘根据说明性实施方式来响应于滚动活动而将补充内容动态地附加到信息资源的方法的流程图。本文中关于方法400描述的功能可以由如图1所示的数据处理系统110或客户端设备125或者如图2所示的补充内容滚动系统200或者如图7所示的计算设备700或者其组合执行,或者以其他方式实现。具体地,图6描绘了在数据处理系统110与客户端设备125之间分布的方法600的功能。简而言之,客户端设备获得信息资源(框605)。客户端设备向数据处理系统发送对内容的请求(框610)。数据处理系统可以从客户端设备接收对内容的请求(框615)。数据处理系统可以将补充内容滚动脚本发送到客户端设备(框620)。客户端设备可以从数据处理系统接收具有补充内容滚动脚本的内容(框625)。客户端设备可以识别要附加到信息资源的DOM树的补充内容项目(框630)。客户端设备可以识别信息资源的第一内容项目(框635)。客户端设备可以监视第一内容项目相对于应用的视口的位置(框640)。视口监视模块可以被配置为使得客户端设备确定第一内容项目在应用的视口内可见(框645)。客户端设备可以将补充内容项目附加到在第一内容项目与信息资源的末尾之间的第一位置(框650)。响应于检测到朝向信息资源的末尾的滚动动作,客户端设备可以在应用的视口内显示补充内容项目(框655)。
更详细地,客户端设备获得信息资源(框605)。在客户端设备上执行的应用可以从托管信息资源的服务器(例如信息资源的内容发布者的服务器或数据中心的服务器)获取或接收信息资源。例如,应用可以生成并向服务器发送包括信息资源的地址或标识符的请求,并且作为响应,接收信息资源。
客户端设备向数据处理系统发送对内容的请求(框610),并且数据处理系统可以从客户端设备接收对内容的请求(框615)。响应于客户端设备接收请求的信息资源,可以由在客户端设备上执行的应用生成和发送对内容的请求。在一些实施方式中,应用可以响应于在信息资源中包括的内容对象(内容位)中执行的脚本而生成对内容的请求。内容对象可以包括用于生成从数据处理系统接收内容的请求的指令。
对内容的请求可以包括对信息资源的请求,对一个或多个第三方内容项目的请求,对诸如补充内容滚动脚本等脚本的请求或其组合。在其中对内容的请求包括对第三方内容的请求的一些实施方式中,该请求可以包括要在其上显示或呈现第三方内容的信息资源的地址或标识符。对第三方内容的请求还可以包括或识别一个或多个参数,数据处理系统可以使用这一个或多个参数来确定响应于对第三方内容的请求而提供的内容。这些参数可以识别其中要插入所请求的内容的内容位的大小。这些参数可以识别与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、客户端设备信息、所请求的第三方内容项目的大小信息或其组合。在一些实施方式中,对第三方内容的请求可以识别补充内容滚动脚本。在一些实施方式中,对第三方内容的请求可以包括指示资源信息的内容发布者订阅或者以其他方式选择加入内容滚动服务的标识符。
数据处理系统可以将补充内容滚动脚本发送到客户端设备(框620),并且客户端设备可以从数据处理系统接收补充内容滚动脚本(框625)。数据处理系统可以响应于接收到的对内容的请求来确定要发送给客户端设备的内容。数据处理系统可以基于包括在对内容的请求中的信息来确定要发送给客户端设备的内容。例如,在接收到对信息资源的请求时,数据处理系统可以使用在对内容的请求中的信息资源的地址或标识符来确定要发送给客户端设备的内容。
在一些实施方式中,数据处理系统可以访问数据处理系统的数据库并检索用于发送到客户端设备的内容。在一些实施方式中,对内容的请求可以是在向客户端设备提供补充内容滚动脚本并在客户端设备上执行之后接收的对第三方内容的请求。在一些这样的实施方式中,内容选择模块135可以选择一个或多个第三方内容项目以在由补充内容滚动脚本产生的内容位中显示。
数据处理系统可以基于对内容的请求(例如,对信息资源的请求、对第三方内容的请求或者对补充内容滚动脚本的请求)的类型、对内容的请求中的指示符(例如,指示补充内容滚动脚本的指示符或指示信息资源是符合内容推荐和补充内容滚动的指示符)、对内容的请求中的信息资源的标识符或其组合,来确定脚本是否要被发送到客户端设备。在一些实施方式中,数据处理系统可以通过将信息资源的标识与信息资源标识符(例如,适合接收补充内容滚动脚本的资源信息标识符)的列表进行比较来确定脚本是否要被发送到客户端设备。在一些实施方式中,信息资源标识符可以是URL。在一些实施方式中,信息资源标识符可以是信息资源所属的域。在一些实施方式中,信息资源标识符可以是对应于托管信息资源的服务器的IP地址。
客户端设备可以执行补充内容滚动脚本来执行框630-655的功能。通过执行补充内容滚动脚本,客户端设备可以识别要附加到信息资源的DOM树的补充内容项目(框630)。客户端设备可以识别要附加到信息资源的文档对象模型(DOM)树的补充内容项目。在一些实施方式中,客户端设备可以向数据处理系统发送对要附加到信息资源的DOM树的一个或多个补充内容项目的请求。例如,补充内容滚动脚本可以使客户端设备将补充内容识别模块222作为不可见元素插入到信息资源中。客户端设备125可以将补充内容项目的请求发送到数据处理系统110的内容推荐模块。在一些实施方式中,对补充内容的请求可以包括信息资源的地址或标识符、客户端设备信息(例如设备类型的指示、设备标识符、设备位置等),与信息资源的发布者相关的信息或其组合。
响应于对补充内容的请求,客户端设备可以从数据处理系统接收一个或多个候选补充内容项目(或其指示)。在一些实施方式中,客户端设备可以响应于对补充内容的请求来接收补充内容项目。在一些实施方式中,当客户端设备首次访问信息资源时,客户端设备可以响应于客户端设备发送的对内容的请求,接收一个或多个候选补充内容项目。候选补充内容项目可以包括在发布者的一个或多个其他信息资源上发布的信息资源的发布者的内容项目。在一些实施方式中,与发布者相关联的多个信息资源可以包括属于信息资源发布者的单个域、网站、服务器的多个页面。在一些实施方式中,补充内容项目可以是文章、博客、图像或可以与原始包括在信息资源上的主要内容项目类似的其他内容项目。
在一些实施方式中,数据处理系统可以响应于对补充内容的请求来推荐一个或多个补充内容项目。数据处理系统可以向客户端设备发送一个或多个数据分组,该数据分组可以包括含有由数据处理系统推荐的候选补充内容项目的信息资源的统一资源定位符(URL)。在一些实施方式中,数据分组可以包括信息资源的URL、信息资源(或其部分)的源代码、信息资源的DOM树、与信息资源相关联的内容项目(例如图像或视频)或其组合。
客户端设备可以识别信息资源的第一内容项目(框635)。在一些实施方式中,补充内容滚动脚本的视口监视模块可以被配置为使得客户端设备识别信息资源的第一内容项目。在一些实施方式中,当客户端设备接收到信息资源时,第一内容项目可以是包括在信息资源中的内容项目。在一些实施方式中,内容项目可以是DOM元素。在一些实施方式中,内容项目可以是可被渲染以在客户端设备上显示的DOM元素。在一些实施方式中,内容项目可以是文章的标题、文章本身、文章的图像等等。在一些实施方式中,视口监视模块可以被配置为使得客户端设备将显示在信息资源上的第一个文章的标题识别为第一内容项目。
客户端设备可以监视第一内容项目(或其预定部分)相对于应用的视口的位置(框640)。第一内容项目的预定部分可以包括文章的标题、文章的标头、文章的图像等。在一些实施方式中,视口监视模块可以监视第一内容项目(或其预定部分)相对于视口的位置,以检测第一内容项目在应用的视口内显示的状况。在一些实施方式中,视口监视模块可以被配置为使得客户端设备确定第一内容项目(或其预定部分)相对于信息资源的参考点的坐标。在一些实施方式中,信息资源的参考点可以包括信息资源的顶角。在一些实施方式中,视口监视模块可以确定信息资源被配置为竖直或水平延伸。在其中信息资源被配置为竖直延伸的实施方式中,视口监视模块可以使客户端设备确定第一内容项目(或其预定部分)沿着竖直轴的坐标值,或者换言之y轴坐标。在其中信息资源被配置为水平延伸的实施方式中,视口监视模块可以使客户端设备确定第一内容项目(或其预定部分)沿着水平轴的坐标值,或者换言之x轴坐标。坐标值可以是距信息资源的参考点相距的像素数、距离或缩放的距离。在一些实施方式中,坐标值可以是对应于第一内容项目(或其预定部分)的一点的数字,例如内容项目的顶角(或其预定部分)。在一些实施方式中,第一内容项目(或其预定部分)的点可以是第一内容项目的任何点、第一内容项目的预定部分或对应于第一内容项目或其预定部分的任何点。在一些实施方式中,视口监视模块可以被配置为使得客户端设备识别内容项目上的预定义点或第一内容项目的预定部分(例如,内容项目的中心或预定部分,内容项目的边缘或预定部分之一,内容项目的拐角或预定部分之一等)。在一些实施方式中,视口监视模块可以使客户端设备识别对应于信息资源滚动所沿着的轴的第一内容项目(或其预定部分)的边缘的坐标。例如,如果信息资源被配置为竖直地滚动,则视口监视模块可以使客户端设备识别第一内容项目(或其预定部分)的顶边缘或底边缘之一。如果信息资源被配置为水平滚动,则视口监视模块可以使客户端设备识别第一内容项目(或其预定部分)的左边缘或右边缘之一。
视口监视模块可以被配置为使得客户端设备基于信息资源相对于视口的位置来监视信息资源的坐标值。例如,视口监视模块可以使客户端设备识别与视口的第一边缘(例如,顶边缘)对准的信息资源的第一部分。当用户滚动信息资源时,信息资源的不同部分将与视口的第一边缘对准。在一些实施方式中,视口监视模块可以被配置为使得客户端设备周期性地监视信息资源的哪个部分与视口的顶边缘对准,并且信息资源的哪个部分与视口的底边缘对准。在一些实施方式中,视口监视模块可以被配置为使得客户端设备使用现有JavaScript函数识别与视口的顶边缘对准的信息资源的第一部分的第二坐标值,以及与视口底边缘对准的信息资源的第二部分的第三坐标值。例如,视口监视模块可以使用函数iframeElement.getBoundClientRect().top来识别对应于在特定滚动位置处与视口的顶边缘对准的信息资源的第二部分的第二坐标值。函数iframeElement.getBoundClientRect().top返回一个y坐标,用于识别与视口顶边缘对准的信息资源的第一部分。另外,视口监控模块可以使用函数iframeElement.getBoundClientRect().bottom来识别与特定滚动位置处的视口底边缘对准的信息资源的第二部分对应的第三个坐标值。在一些实施方式中,可以通过将视口的高度加到第二坐标值来确定第三坐标值。
视口监视模块可以被配置为使客户端设备确定第一内容项目(或其预定部分)在应用的视口内可见(框645)。为了确定第一内容项目(或其预定部分)在客户端设备上执行的应用的视口内是可见的,视口监视模块可以使客户端设备确定第一坐标值是否在第二坐标值与第三坐标值之间。视口监视模块可以被配置为使得客户端设备将第一内容项目(或其预定部分)的坐标值与视口的顶部和底部(或者,对于水平轴滚动,左和右)坐标值进行比较。如果第一内容项目的坐标值被确定为第二坐标值与第三坐标值之间的数字,则视口监视模块225可以确定第一内容项目(或其预定部分)在视口内可见。
在一些实施方式中,视口监视模块可以被配置为使得客户端设备检测在应用内是否发生滚动活动。例如,视口监视模块可以被配置为从客户端设备上执行的应用接收指示与视口或信息资源相关联的滚动条的滚动标签的移动(例如,向上或向下)的信息。在一些实施方式中,视口监视模块可以被配置为使得客户端设备基于例如从应用接收的滚动信息来监视滚动标签相对于滚动条或相对于视口的位置。在一些实施方式中,视口监视模块可以通过采用检测滚动活动的一个或多个监听器(包括但不限于“OnScroll”等)来确定滚动活动是否发生。
客户端设备可以将补充内容项目附加到第一内容项目与信息资源的末尾之间的第一位置(框650)。补充内容滚动脚本的补充内容附加模块可以被配置为使得客户端设备将候选补充内容项目中的至少一个附加到所识别的内容项目与信息资源210的末尾之间的信息资源的位置。例如,补充内容附加模块可以使客户端设备选择在候选补充内容队列顶部的候选补充内容项目,并将所选择的候选补充内容项目附加到信息资源。在信息资源处附加补充内容项目可以包括补充内容附加模块使得客户端设备生成和/或插入新的容器(例如新的iframe),并将候选补充内容项目插入(或加载)到新的容器(或iframe)中。补充内容附加模块可以使客户端设备将容器(或iframe)的一个或多个设置参数(例如大小参数、背景颜色、文本字体参数、亮度或其他设置参数)修改(或调整)成匹配包括信息资源中的第一内容项目的另一个容器(或另一个iframe)的相对应设置参数。例如,客户端设备可以将新容器(或新的iframe)的样式设计为全宽和/或没有边框。因此,当在客户端设备上显示时,附加的候选补充内容项目将在视觉上看起来好像它本来是信息资源的一部分。当补充内容项目被加载到新容器中时,客户端设备可以调整新容器(或新的iframe)的大小以适应补充内容项目的长度。客户端设备可以将新容器(或新的iframe)内具有target=_self(默认目标)的锚标签修改为target=_top,以便在父窗口中打开链接(例如,内容410的窗口显示)。此外,如果内容项目420在视图中,则应用205(或补充内容滚动脚本220)可以更新地址栏中的URL以反映内容项目420的地址。在一些实施方式中,补充内容附加模块228可以使客户端设备将与生成的新容器(或iframe)相对应的DOM元素插入到信息资源的DOM树中(例如,在DOM树的末尾),使得当信息资源被渲染以经由客户端设备显示时,补充内容项目出现在第一内容项目之后并且朝向信息资源的末尾。
响应于检测到朝向信息资源的末尾的滚动操作,客户端设备可以在应用的视口内显示补充内容项目(框655)。内容显示模块可以被配置为在检测到朝向信息资源的末尾的滚动动作时在视口内显示附加的补充内容项目。例如,内容显示模块可以使得客户端设备从应用或视口监视模块接收到朝向信息资源的末尾的滚动动作的指示,并且作为响应,使客户端设备(或应用)在视口内显示与附加的补充内容项目相关联的内容。
在一些实施方式中,视口监视模块225可以使客户端设备检测到滚动事件已经发生,并且响应于客户端设备125检测到滚动事件已经发生,视口监视模块225可以使客户端设备确定通过应用的视口可以看到补充内容项目的哪个(如果有的话)。客户端设备可以通过将补充内容项目的一个或多个部分的坐标与视口的一个或多个边缘的坐标进行比较来确定这点。响应于客户端设备确定通过视口可观看的补充内容项目的标识,视口监视模块225可以使客户端设备修改顶部窗口的window.location object以匹配补充内容项目的容器(或iframe)的window.location object。
在一些实施方式中,补充内容滚动脚本可以使得客户端设备将一个或多个附加容器中的额外补充内容项目附加到信息资源,在信息资源中一个或多个补充内容项目已经被附加在一个或多个相应容器中。在一些实施方式中,补充内容滚动脚本可以定义要附加到信息资源的补充内容项目的最大阈值。在一些实施方式中,补充内容滚动脚本可以不定义最大值,并且因此,客户端设备可被配置为响应于滚动活动附加很大量的补充内容项目。
在一些实施方式中,补充内容滚动脚本可以包括计算机可执行指令,当由客户端设备执行时,计算机可执行指令可以使客户端设备识别通过视口显示补充内容项目,检测滚动动作,并且响应于滚动动作使得客户端设备将另一相应容器中的补充内容项目附加到信息资源。将另一的补充内容项目附加到信息资源可以包括在信息资源(或相应的DOM树)中插入新的(或附加的)容器(或iframe)并将其他补充内容项目加载到所插入的容器(或iframe)中。在一些实施方式中,客户端设备可以向信息资源附加多个补充内容项目。在一些实施方式中,补充内容滚动脚本可以设置相对于在视口中显示的补充内容项目要附加的预定数量的补充内容项目。例如,如果预定数量为3,并且通过视口显示的补充内容项目是附加到信息资源的第四补充内容,则客户端设备可以被配置为使得总共七个补充内容项目包括在信息资源中。当用户朝向第五个滚动时,可以附加另一补充内容项目(例如在相应的添加的容器中)。如果没有设置预定(或最大)数量的补充内容项目,则随着检测到更多的滚动活动(例如朝向信息资源的末尾),补充内容滚动脚本220(或应用205)可以保持附加新的补充内容项目。
图7示出了根据各种实施例可以用于实施本文讨论的计算机系统中任一个的说明性计算机系统700的一般架构(包括系统110及其组件,例如内容请求模块130、内容选择模块135和脚本提供者模块140)。计算机系统700可以用于经由网络105提供信息以进行显示。图7的计算机系统700包括通信地耦合到存储器725的一个或多个处理器720、一个或多个通信接口705和一个或多个输出设备710(例如,一个或多个显示单元)和一个或多个输入设备715。处理器720可以包括在数据处理系统110或系统110的其他组件诸如内容请求模块130和内容选择模块135中。
在图7的计算机系统700中,存储器725可以包括任何计算机可读存储介质,并且可以存储计算机指令,例如用于实施本文描述的各个系统的各种功能的处理器可执行指令,以及与之相关、由此生成、或经由通信接口或输入设备(如果存在)接收的任何数据。再次参考图1的系统110,数据处理系统110可以包括存储器725以存储与一个或多个内容单元的库存的可用性有关的信息、一个或多个内容单元的预约等。存储器725可以包括数据库145。图7所示的处理器720可以用于执行存储在存储器725中的指令,并且这样做也可以从存储器读取或向存储器写入根据指令的执行而处理和/或生成的各种信息。
图7所示的计算机系统700的处理器720还可以通信地耦合到或控制通信接口705,以根据指令的执行来发送或接收各种信息。例如,通信接口705可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统700向其他设备(例如,其他计算机系统)发送信息或者从其他设备接收信息。尽管未在图1的系统中明确地示出,一个或多个通信接口促进系统70的组件之间的信息流。在一些实施方式中,通信接口可以被配置(例如,经由各种硬件组件或软件组件)成将网站提供为对于计算机系统700的至少一些方面的访问门户。通信接口705的示例包括用户可以用来与数据处理系统70通信的用户界面(例如,网页)。
可以提供图7所示的计算机系统700的输出设备710例如允许与执行指令相关联地观看或者以其他方式感知各种信息。可以例如提供输入设备715以允许用户在执行指令期间进行手动调整、做出选择、输入数据或以多种方式中的任何方式与处理器进行交互。本文进一步提供了可用于本文讨论的各种系统的与一般计算机系统架构相关的额外信息。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中实现,或者在包括在本说明书中公开的结构及其结构等同物的有形介质、固件或硬件上实现的计算机软件或者它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方式可以被实施为在计算机存储介质上编码的一个或多个计算机程序,即计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。程序指令可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上进行编码,生成这些信号以编码信息以便传输到合适的接收机装置以供数据处理设备执行。计算机存储介质可以是或者包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或其中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如,多个CD,磁盘或其他存储设备)中。
本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实施,其可以包括处理模块,该处理模块被配置为将互联网连接与更传统的电视节目源(例如,经由线缆、卫星、空中或其他信号接收)集成。智能电视模块可以被物理地并入电视机中,或者可以包括诸如机顶盒,蓝光或其他数字媒体播放器、游戏机、酒店电视系统和其他伴随设备之类的单独设备。智能电视模块可以被配置为允许观众在网络上、本地有线电视频道上、卫星电视频道或者在本地硬盘驱动器存储上搜索和查找视频、电影、照片和其他内容。机顶盒(STB)或机顶单元(STU)可以包括可能含有调谐器并连接到电视机和外部信号源的信息电器设备,其将信号转换成然后在电视屏幕或其他显示设备中显示的内容。智能电视模块可以被配置为提供主屏幕或顶级屏幕,其包括用于多个不同应用的图标,诸如网络浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他web“频道“等。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上操作,以向用户提供关于可用节目的额外信息,以允许用户控制智能电视模块等。在替代实施方式中,可以在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持式计算机、平板电脑或其他计算设备上实施。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、芯片上的系统或多个或其组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为相关计算机程序创建执行环境的代码,例如构成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中的一个或多个的组合。设备和执行环境可以实现各种不同的计算模型基础设施,如Web服务,分布式计算和网格计算基础设施。内容请求模块130和内容选择模块135可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性或程序语言,并且可以部署为任何形式,包括作为独立程序或模块、组件、子程序、对象或适用于计算环境的其他单元。计算机程序可以但不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分上的文件)。可以将计算机程序部署为在一个计算机上或位于一个站点上或者分布在多个站点上并由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并产生输出来执行动作。过程和逻辑流程也可以由专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)执行,并且装置也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适用于执行计算机程序的处理器例如包括通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备例如磁盘,磁光盘或光盘接收数据或传输数据到一个或多个大容量存储设备或者既从一个或多个大容量存储设备接收数据也向一个或多个大容量存储设备传输数据。然而,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器件,包括例如半导体存储设备,例如EPROM,EEPROM和闪速存储设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备(例如CRT(阴极射线管),等离子体或LCD(液晶显示器))监视器以及用户可以用来向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实施。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以包括任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档并从其接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收到的请求,将网页发送到用户的客户端设备上的网络浏览器。
本说明书中描述的主题的实施方式可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器),或者包括前端组件,例如具有图形用户界面或Web浏览器(用户可以通过图形用户界面或Web浏览器与本说明书中描述的主题的实施方式进行交互)的客户端计算机,或者一个或多个这样的后端,中间件或前端组件的计算系统中实施。系统的组件可以通过数字数据通信的任何形式或介质,例如通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),网间网络(例如互联网)和对等网络(例如,adhoc对等网络)。
诸如系统700或系统110的计算系统可以包括客户端和服务器。例如,数据处理系统110可以包括在一个或多个数据中心或服务器场中的一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端与服务器之间的关系是由于相应计算机上运行的计算机程序和彼此之间的客户端-服务器关系而产生的。在一些实施方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备生成的数据(例如,用户交互的结果)。
虽然本说明书包括许多具体的实施细节,但是这些不应被解释为对任何发明的范围或所要求保护的范围的限制,而是作为对本文描述的系统和方法的特定实施方式特有的特征的描述。在本说明书中在单独实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施方式中实施。此外,虽然上文可以将特征描述为以某些组合的方式起作用,并且甚至最初要求保护,但要求保护的组合的一个或多个特征在某些情况下可以从组合中被分离,并且所要求保护的组合可以针对子组合或者子组合的变型。
类似地,虽然在附图中以特定次序描绘操作,但是这不应被理解为要求以所示的特定次序或以循序次序执行这些操作或者执行所有所示的操作以实现所需的结果。在一些情况下,权利要求中所叙述的动作可以以不同的次序执行并且仍然实现期望的结果。此外,附图中所描绘的过程不一定需要所示的特定次序或循序次序来获得期望的结果。
在某些情况下,多任务和并行处理可能是有利的。此外,在上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。例如,内容请求模块130和内容选择模块135可以是数据处理系统110、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器的一部分或搜索引擎的一部分。
现在已经描述了一些说明性的实施方式,但是显而易见的是,前文只是说明性的而不是限制性的,以举例说明的方式给出。具体地说,尽管本文给出的许多示例涉及方法动作或系统元件的具体组合,但是这些动作和那些元件可以以其他方式组合以实现相同的目标。仅在与一个实施方式相关的情况下讨论的动作、元件和特征并不意图在其他实现或实施方式中被排除在类似角色之外。
这里使用的措辞和术语是为了描述的目的,不应被视为限制。“包含”、“包括”、“含有”、“涉及”、“特征为”、“特征在于”和及其变型意在包括其后列出的项目、其等同物和额外项目,以及仅由其后列出的项目组成的替代实施方式。在一个实施方式中,本文描述的系统和方法由一个、多于一个或所有所描述的元件,动作或组件的组合组成。
本文以单数形式提及的对系统和方法的实施方式或元件或动作的任何提及也可以涵盖包括多个这些元件的实施方式,并且对于本文中的任何实施方式或元件或动作的任何提及也可以涵盖实施方式只包括一个元件。单数或复数形式的提及不旨在将目前公开的系统或方法、其组件、动作或元件限制为单个或多个配置。对基于任何信息、动作或元素的任何动作或元件的提及可以包括其中动作或元件至少部分地基于任何信息、动作或元件的实施方式。
本文公开的任何实施方式可以与任何其他实施方式相结合,对“一实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定互斥而是旨在表示结合该实施方式描述的特定特点、结构或特性可以包括在至少一个实施方式中。这里使用的术语不一定都指相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式与任何其他实施方式,包括性地或排他性地组合。
对“或”的提及可以被解释为包含性的,使得使用“或”描述的任何术语可以表示单个、多于一个和全部所描述的术语中的任何一个。
在附图、详细描述或任何权利要求中的技术特征之后是附图标记的情况下,已经包括附图标记,其唯一目的是增加附图、详细描述和权利要求的可理解性。因此,附图标记及其不存在对任何权利要求元素的范围都没有任何限制。
本文描述的系统和方法可以以其他具体形式实施而不脱离其特征。虽然本文提供的示例涉及控制信息资源内容的显示,但是本文描述的系统和方法可以包括应用于其他环境。上述实施方式是说明性的而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前述描述来指示,并且在权利要求的等同物的含义和范围内的变化包括在其中。
Claims (20)
1.一种在内容发布者的信息资源上显示内容项目的系统,包括:
至少一个处理器;以及
存储器,所述存储器存储补充内容滚动脚本,所述补充内容滚动脚本当在所述一个或多个处理器上执行时使所述系统:
识别要附加到信息资源的文档对象模型(DOM)树的补充内容项目;
识别在所述信息资源的第一容器内显示的第一内容项目;
监视所述第一内容项目的预定部分相对于应用的视口的位置;
响应于监视所述第一内容项目的预定部分的位置,确定所述第一内容项目的预定部分在所述应用的视口内可见;
将所述补充内容项目附加到在所述第一容器与所述信息资源的末尾之间的第一位置处的第二容器中;以及
响应于检测到朝向所述信息资源的末尾的滚动操作,在所述应用的视口内显示所述补充内容项目。
2.根据权利要求1所述的系统,其中,所述信息资源包括第一信息资源,以及其中所述补充内容滚动脚本被配置成使所述系统从存在于所述内容发布者的第二信息资源中的多个补充内容项目选择所述补充内容项目。
3.根据权利要求1所述的系统,其中,所述补充内容滚动脚本被配置成使所述系统:
生成所述第二容器以插入到所述信息资源的末尾;
将所述补充内容项目插入到所述第二容器内;以及
修改所述第二容器的一个或多个设置参数以匹配包括所述第一内容项目的第一容器的一个或多个设置参数。
4.根据权利要求1所述的系统,其中,所述信息资源是第一信息资源,以及其中所述补充内容滚动脚本被配置成使所述系统:
识别所述补充内容项目在所述应用的视口内显示;以及
响应于识别所述补充内容项目在所述应用的视口内显示,将在所述应用的地址栏中包括的统一资源定位符(URL)从所述第一信息资源的第一URL修改为与所述补充内容相对应的第二信息资源的第二URL。
5.根据权利要求1所述的系统,其中,监视所述第一内容项目的预定部分相对于所述应用的视口的位置包括:
确定所述第一内容项目的预定部分沿着第一轴的第一坐标值;
确定与所述视口的一个边缘相对应的信息资源的第一部分的第二坐标值;以及
确定与所述视口的第二边缘相对应的信息资源的第二部分沿着所述第一轴的第三坐标值,
其中,确定所述第一内容项目的预定部分在所述应用的视口内可见包括:确定所述第一坐标值位于所述第二坐标值与所述第三坐标值之间。
6.根据权利要求1所述的系统,其中,所述补充内容滚动脚本被配置成使所述系统:
接收候选补充内容推荐,所述候选补充内容推荐包括其中存储候选补充内容项目的信息资源的URL;以及
更新虚拟队列以包括所述接收的候选补充内容推荐。
7.根据权利要求1所述的系统,其中,识别补充内容项目包括识别多个补充内容项目,以及其中所述补充内容滚动脚本被配置成使所述系统:
生成多个可选择内容对象,所述多个可选择内容对象中的每个对应于相应的候选补充内容项目,并且包括相应的可动作项目;以及
响应于检测到选择与所述多个补充内容项目相对应的多个可动作项目中的一个,显示与所述可动作项目相对应的补充内容项目。
8.根据权利要求7所述的系统,其中,所述补充内容项目是第一补充内容项目,以及其中所述补充内容滚动脚本被配置成使所述系统:
识别所述第一补充内容项目在所述应用的视口内显示;以及
响应于识别所述第一补充内容项目在所述应用的视口内显示,将第二补充内容项目附加到在所述第二容器与所述信息资源的末尾之间的第二位置处的第三容器中。
9.一种用于在信息资源上显示内容项目的系统,包括:
至少一个处理器;以及
存储器,所述存储器存储计算机可执行指令和补充内容滚动脚本,所述计算机可执行指令当在所述一个或多个处理器上执行时使所述系统:
从计算设备的应用接收对要插入到内容发布者的信息资源内的第三方内容项目的请求,
响应于所述请求,将所述补充内容滚动脚本发送到所述计算设备以响应于在所述应用上执行的滚动活动来显示补充内容,所述补充内容滚动脚本包括补充内容识别模块、视口监视模块和补充内容附加模块,其当由所述计算设备的处理器执行时使所述计算设备:
识别要附加到所述信息资源的文档对象模型(DOM)树的补充内容项目;
识别在所述信息资源的第一容器内显示的第一内容项目;
监视所述第一内容项目相对于所述应用的视口的位置;
响应于监视所述第一内容项目的预定部分的位置,确定所述第一内容项目的预定部分在所述应用的视口内可见;
将所述补充内容项目附加到在所述第一容器与所述信息资源的末尾之间的第一位置处的第二容器中;以及
响应于检测到朝向所述信息资源的末尾的滚动操作,在所述应用的视口内显示所述补充内容项目。
10.根据权利要求9所述的系统,其中,所述信息资源包括第一信息资源,以及其中所述补充内容识别模块被配置成使所述计算设备从存在于所述内容发布者的第二信息资源中的多个补充内容项目选择所述补充内容项目。
11.根据权利要求9所述的系统,其中,所述补充内容附加模块被配置成使所述计算设备:
生成所述第二容器以插入到所述信息资源的末尾;
将所述补充内容项目插入到所述第二容器内;以及
修改所述第二容器的一个或多个设置参数以匹配包括所述第一内容项目的第二容器的一个或多个设置参数。
12.根据权利要求9所述的系统,其中,所述信息资源是第一信息资源,以及其中所述视口监视模块被配置成使所述计算设备:
识别所述补充内容项目在所述应用的视口内显示;以及
响应于识别所述补充内容项目在所述应用的视口内显示,将在所述应用的地址栏中包括的统一资源定位符(URL)从所述第一信息资源的第一URL修改为与所述补充内容相对应的第二信息资源的第二URL。
13.根据权利要求9所述的系统,其中,监视所述第一内容项目的位置相对于所述应用的视口的位置包括:
确定所述第一内容项目的预定部分沿着第一轴的第一坐标值;
确定与所述视口的一个边缘相对应的信息资源的第一部分的第二坐标值;以及
确定与所述视口的第二边缘相对应的信息资源的第二部分沿着所述第一轴的第三坐标值,
其中,确定所述第一内容项目的预定部分在所述应用的视口内可见包括:确定所述第一坐标值位于所述第二坐标值与所述第三坐标值之间。
14.根据权利要求9所述的系统,其中,所述补充内容识别模块被配置成使所述计算设备:
接收候选补充内容推荐,所述候选补充内容推荐包括其中存储候选补充内容项目的信息资源的URL;以及
更新虚拟队列以包括所述接收的候选补充内容推荐。
15.根据权利要求9所述的系统,其中,识别补充内容项目包括识别多个补充内容项目,以及其中所述补充内容附加模块被配置成使所述计算机设备:
生成多个可选择内容对象,所述多个可选择内容对象中的每个对应于相应的候选补充内容项目,并且包括相应的可动作项目;以及
响应于检测到选择与所述多个补充内容项目相对应的多个可动作项目中的一个,显示与所述可动作项目相对应的补充内容项目。
16.根据权利要求9所述的系统,其中,所述补充内容项目是第一补充内容项目,以及其中所述视口监视模块被配置成使所述计算机设备:
识别所述第一补充内容项目在所述应用的视口内显示;以及
响应于识别所述第一补充内容项目在所述应用的视口内显示,将第二补充内容项目附加到在所述第一补充内容项目与所述信息资源的末尾之间的第二位置处。
17.一种响应于滚动活动在信息资源上显示内容项目的方法,包括:
由包括一个或多个处理器的数据处理系统从客户端设备的应用接收对要插入到内容发布者的信息资源内的第三方内容项目的请求;以及
响应于所述请求,由所述数据处理系统发送补充内容滚动脚本以响应于在所述应用上执行的滚动活动而显示补充内容,所述补充内容滚动脚本包括计算机可执行指令,其当由所述客户端设备的处理器执行时使所述客户端设备:
识别要附加到所述信息资源的文档对象模型(DOM)树的补充内容项目;
识别在所述信息资源的第一容器中显示的第一内容项目;
监视所述第一内容项目的预定部分相对于所述应用的视口的位置;
响应于监视所述第一内容项目的预定部分的位置,确定所述第一内容项目的预定部分在所述应用的视口内可见;
将所述补充内容项目附加到在所述第一容器与所述信息资源的末尾之间的第一位置处的第二容器中;以及
响应于检测到朝向所述信息资源的末尾的滚动操作,在所述应用的视口内显示所述补充内容项目。
18.根据权利要求17所述的方法,其中,所述补充内容滚动脚本包括计算机可执行指令,其当由所述客户端设备的处理器执行时使所述客户端设备:
生成所述第二容器以插入到所述信息资源的末尾;
将所述补充内容项目插入到所述第二容器内;以及
修改所述第二容器的一个或多个设置参数以匹配包括所述第一内容项目的第一容器的一个或多个设置参数。
19.根据权利要求17所述的方法,其中,所述信息资源是第一信息资源,以及其中所述补充内容滚动脚本包括计算机可执行指令,其当由所述客户端设备的处理器执行时使所述客户端设备:
识别所述补充内容项目在所述应用的视口内显示;以及
响应于识别所述补充内容项目在所述应用的视口内显示,将在所述应用的地址栏中包括的统一资源定位符(URL)从所述第一信息资源的第一URL修改为与所述补充内容相对应的第二信息资源的第二URL。
20.根据权利要求17所述的方法,其中,所述补充内容项目是第一补充内容项目,以及其中所述补充内容滚动脚本包括计算机可执行指令,其当由所述客户端设备的处理器执行时使所述客户端设备:
识别所述第一补充内容项目在所述应用的视口内显示;以及
响应于识别所述第一补充内容项目在所述应用的视口内显示,将第二补充内容项目附加到在所述容器与所述信息资源的末尾之间的第二位置处的第三容器中。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562208180P | 2015-08-21 | 2015-08-21 | |
US62/208,180 | 2015-08-21 | ||
US15/018,667 US10289296B1 (en) | 2015-08-21 | 2016-02-08 | Systems and methods for dynamically appending supplemental content to an information resource responsive to scroll activity |
US15/018,667 | 2016-02-08 | ||
PCT/US2016/047887 WO2017035026A1 (en) | 2015-08-21 | 2016-08-19 | Systems and methods for dynamically appending supplemental content to an information resource response to scroll activity |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108701131A true CN108701131A (zh) | 2018-10-23 |
Family
ID=56853837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680028297.XA Pending CN108701131A (zh) | 2015-08-21 | 2016-08-19 | 响应于滚动活动向信息资源动态附加补充内容的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10289296B1 (zh) |
EP (1) | EP3286668A1 (zh) |
CN (1) | CN108701131A (zh) |
WO (1) | WO2017035026A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156274A (zh) * | 2016-06-23 | 2016-11-23 | 北京金山安全软件有限公司 | 页面内容加载方法、装置及电子设备 |
US11042906B2 (en) * | 2016-08-15 | 2021-06-22 | Yieldmo, Inc. | Method for serving interactive content to a user |
KR101999340B1 (ko) * | 2017-04-24 | 2019-07-11 | 네이버 주식회사 | 웹 브라우징 인터페이스 제공 방법 및 장치 |
US20190130047A1 (en) * | 2017-10-31 | 2019-05-02 | Microsoft Technology Licensing, Llc | Centralized client-side component for retrieving remote content items |
US11170067B2 (en) * | 2017-12-13 | 2021-11-09 | Google Llc | Methods, systems, and media for updating a webpage rendered with cached content |
US10708333B2 (en) * | 2018-09-18 | 2020-07-07 | International Business Machines Corporation | Streaming media augmentation and delivery |
US10956295B1 (en) * | 2020-02-26 | 2021-03-23 | Sap Se | Automatic recognition for smart declaration of user interface elements |
EP3901752B1 (en) * | 2020-04-22 | 2024-09-11 | Taboola.com Ltd. | Display adjustments |
US20220019631A1 (en) * | 2020-07-16 | 2022-01-20 | Fox Sports Productions, Llc | System and method for animated website |
AU2022268966A1 (en) * | 2021-05-06 | 2023-11-02 | Glance Networks, Inc. | Masking sensitive information while screensharing html elements |
US11809215B2 (en) * | 2021-12-16 | 2023-11-07 | S&P Global Inc. | Controlled display of dynamic data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546747A (zh) * | 2010-11-09 | 2012-07-04 | 微软公司 | 从服务器部分加载和编辑文档 |
CN102884526A (zh) * | 2010-05-12 | 2013-01-16 | 国际商业机器公司 | 在应用窗口中显示项目 |
WO2014058144A1 (ko) * | 2012-10-10 | 2014-04-17 | 에스케이플래닛 주식회사 | 고속 스크롤 컨텐츠와 스크롤바 표시 방법 및 시스템 |
EP2743815A2 (en) * | 2012-12-12 | 2014-06-18 | LG Electronics, Inc. | Mobile terminal and method of controlling the mobile terminal |
CN104081387A (zh) * | 2011-12-02 | 2014-10-01 | 欧普拉软件公司 | 对Web内容的分页及导航 |
US20150007108A1 (en) * | 2013-06-28 | 2015-01-01 | Jive Software, Inc. | Infinite scrolling a very large dataset |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912694B1 (en) | 2000-06-28 | 2005-06-28 | Intel Corporation | Providing a scrolling function for a multiple frame web page |
AU2003275347A1 (en) | 2002-09-30 | 2004-04-23 | Embedded Internet Solutions, Inc. | Methods for optimizing display and navigation of web contents on wireless devices |
US20060174214A1 (en) | 2003-08-13 | 2006-08-03 | Mckee Timothy P | System and method for navigation of content in multiple display regions |
JP2005202766A (ja) | 2004-01-16 | 2005-07-28 | National Institute Of Information & Communication Technology | 類似コンテンツの同時提示システム |
US7430712B2 (en) | 2005-03-16 | 2008-09-30 | Ameriprise Financial, Inc. | System and method for dynamically resizing embeded web page content |
US7428709B2 (en) | 2005-04-13 | 2008-09-23 | Apple Inc. | Multiple-panel scrolling |
EP1783632B1 (en) | 2005-11-08 | 2012-12-19 | Intel Corporation | Content recommendation method with user feedback |
US7664739B2 (en) | 2006-02-14 | 2010-02-16 | Microsoft Corporation | Object search ui and dragging object results |
US8959104B2 (en) * | 2008-03-21 | 2015-02-17 | Microsoft Corporation | Presenting query suggestions based upon content items |
US20110184960A1 (en) | 2009-11-24 | 2011-07-28 | Scrible, Inc. | Methods and systems for content recommendation based on electronic document annotation |
US8381123B2 (en) * | 2008-06-27 | 2013-02-19 | Microsoft Corporation | Positioning and realizing of virtualized visible content within a viewport |
US20090327869A1 (en) | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Online ad serving |
US8145521B2 (en) * | 2008-07-15 | 2012-03-27 | Google Inc. | Geographic and keyword context in embedded applications |
CN102124466B (zh) | 2008-09-05 | 2013-09-11 | 索尼公司 | 内容推荐系统、内容推荐方法和内容推荐设备 |
US8181110B2 (en) * | 2008-10-14 | 2012-05-15 | I-Fax.Com Inc. | DOM based media viewer |
US20100179949A1 (en) | 2009-01-15 | 2010-07-15 | Safar Samir H | Method and system for an internet browser add-on providng simultaneous multiple interactive websites on one internet browser window |
US10216708B2 (en) | 2009-10-05 | 2019-02-26 | Adobe Systems Incorporated | Paginated viewport navigation over a fixed document layout |
US20110082755A1 (en) * | 2009-10-06 | 2011-04-07 | Oded Itzhak | System and method for presenting and metering advertisements |
CN102117290B (zh) | 2009-12-30 | 2015-03-18 | 北京搜狗科技发展有限公司 | 一种展现网页中页面元素的方法及系统 |
US8438504B2 (en) | 2010-01-06 | 2013-05-07 | Apple Inc. | Device, method, and graphical user interface for navigating through multiple viewing areas |
US8423901B2 (en) | 2010-03-15 | 2013-04-16 | International Business Machines Corporation | Displaying content outside IFRAME container |
US8904277B2 (en) * | 2010-08-31 | 2014-12-02 | Cbs Interactive Inc. | Platform for serving online content |
US9575615B1 (en) * | 2011-03-22 | 2017-02-21 | Amazon Technologies, Inc. | Presenting supplemental content |
US8610724B2 (en) * | 2011-07-29 | 2013-12-17 | Qualcomm Innovation Center, Inc. | Systems and methods for webpage adaptive rendering |
US9262766B2 (en) * | 2011-08-31 | 2016-02-16 | Vibrant Media, Inc. | Systems and methods for contextualizing services for inline mobile banner advertising |
WO2013033445A2 (en) | 2011-08-31 | 2013-03-07 | Vibrant Media Inc. | Systems and methods for contextualizing a toolbar, an image and inline mobile banner advertising |
US8307278B1 (en) | 2011-09-26 | 2012-11-06 | Google Inc. | Tiling mechanism to combine web services |
US9865005B1 (en) * | 2012-01-17 | 2018-01-09 | Comscore, Inc. | Unified content visibility and video content monitoring |
US20150160817A1 (en) * | 2012-04-10 | 2015-06-11 | Google Inc. | Search results including supplemental content triggered by user actions when browsing the search results |
WO2013165944A2 (en) * | 2012-05-02 | 2013-11-07 | Zedo, Inc. | Systems, techniques and mechanisms for displaying online advertisements in a viewable area of a web browser |
US20140358668A1 (en) * | 2012-07-25 | 2014-12-04 | Google Inc. | System and method for integrating supplemental content within a webpage |
US9355415B2 (en) | 2012-11-12 | 2016-05-31 | Google Inc. | Providing content recommendation to users on a site |
US20140195890A1 (en) * | 2013-01-09 | 2014-07-10 | Amazon Technologies, Inc. | Browser interface for accessing supplemental content associated with content pages |
US20140195337A1 (en) * | 2013-01-09 | 2014-07-10 | Amazon Technologies, Inc. | Browser interface for accessing supplemental content associated with content pages |
US20150213487A1 (en) * | 2013-02-03 | 2015-07-30 | Arize Nwosu | Methods and systems for advertising using scrollable refresh trigger |
US9632986B2 (en) | 2013-03-14 | 2017-04-25 | Aol Inc. | Systems and methods for horizontally paginating HTML content |
US20140281901A1 (en) * | 2013-03-18 | 2014-09-18 | Google Inc. | Estimating visibility of content items |
US10380239B2 (en) * | 2013-12-03 | 2019-08-13 | Sharethrough Inc. | Dynamic native advertisment insertion |
US10409884B2 (en) * | 2014-07-02 | 2019-09-10 | The Nielsen Company (Us), Llc | Methods and apparatus to identify sponsored media in a document object model |
JP6130335B2 (ja) * | 2014-07-18 | 2017-05-17 | ヤフー株式会社 | 情報表示プログラム、配信装置、情報表示方法および情報表示装置 |
US20160034976A1 (en) * | 2014-07-31 | 2016-02-04 | Yahoo!, Inc. | Advertisement presentation |
US10692531B2 (en) * | 2014-10-25 | 2020-06-23 | Yieldmo, Inc. | Methods for serving interactive content to a user |
US9852759B2 (en) * | 2014-10-25 | 2017-12-26 | Yieldmo, Inc. | Methods for serving interactive content to a user |
US11042906B2 (en) * | 2016-08-15 | 2021-06-22 | Yieldmo, Inc. | Method for serving interactive content to a user |
-
2016
- 2016-02-08 US US15/018,667 patent/US10289296B1/en active Active
- 2016-08-19 CN CN201680028297.XA patent/CN108701131A/zh active Pending
- 2016-08-19 WO PCT/US2016/047887 patent/WO2017035026A1/en active Search and Examination
- 2016-08-19 EP EP16760267.1A patent/EP3286668A1/en active Pending
-
2019
- 2019-04-09 US US16/379,344 patent/US10838609B2/en active Active
-
2020
- 2020-11-11 US US17/095,090 patent/US20210064206A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102884526A (zh) * | 2010-05-12 | 2013-01-16 | 国际商业机器公司 | 在应用窗口中显示项目 |
CN102546747A (zh) * | 2010-11-09 | 2012-07-04 | 微软公司 | 从服务器部分加载和编辑文档 |
CN104081387A (zh) * | 2011-12-02 | 2014-10-01 | 欧普拉软件公司 | 对Web内容的分页及导航 |
WO2014058144A1 (ko) * | 2012-10-10 | 2014-04-17 | 에스케이플래닛 주식회사 | 고속 스크롤 컨텐츠와 스크롤바 표시 방법 및 시스템 |
EP2743815A2 (en) * | 2012-12-12 | 2014-06-18 | LG Electronics, Inc. | Mobile terminal and method of controlling the mobile terminal |
US20150007108A1 (en) * | 2013-06-28 | 2015-01-01 | Jive Software, Inc. | Infinite scrolling a very large dataset |
Non-Patent Citations (1)
Title |
---|
RICHARD BAXTER: "On Infinite Scroll, pushState and SEO", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20150420095702/HTTPS://BUILTVISIBLE.COM/ON-INFINITE-SCROLL-PUSHSTATE/》 * |
Also Published As
Publication number | Publication date |
---|---|
US20190235720A1 (en) | 2019-08-01 |
WO2017035026A1 (en) | 2017-03-02 |
US10289296B1 (en) | 2019-05-14 |
US10838609B2 (en) | 2020-11-17 |
EP3286668A1 (en) | 2018-02-28 |
US20210064206A1 (en) | 2021-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701131A (zh) | 响应于滚动活动向信息资源动态附加补充内容的系统和方法 | |
US10778745B2 (en) | Systems and methods for providing a personalized visual display multiple products | |
JP6806894B2 (ja) | クライアントデバイス上で実行されるアプリケーションによるコンテンツアイテムの提示の不適切な実施を検出するためのシステムおよび方法 | |
US9020956B1 (en) | Sentiment and topic based content determination methods and systems | |
CN105981394B (zh) | 持久媒体播放器 | |
US9535887B2 (en) | Creation of a content display area on a web page | |
JP2019050010A (ja) | クリエイティブのランディングページに対して機能拡大部を提供するための方法およびシステム | |
CN108885522A (zh) | 渲染3d环境中的内容 | |
US11080767B2 (en) | Systems and methods for creating an interstitial ad experience within a scrolling content frame | |
US9665965B2 (en) | Video-associated objects | |
CN109345279A (zh) | 动态内容项目创建 | |
US9870578B2 (en) | Scrolling interstitial advertisements | |
CA2794110A1 (en) | System, method and apparatus for providing an application carousel | |
CN108140195A (zh) | 用于自动管理内容槽位在信息资源中的放置的系统和方法 | |
CN108475200A (zh) | 用于在无限滚动图形用户界面中归属滚动事件的系统和方法 | |
US20220051291A1 (en) | Apparatus and methods for adaptive signage | |
CA2857559C (en) | System and method for synchronized interactive layers for media broadcast | |
CN108027934A (zh) | 检测资源上的内容项槽位中的内容项的可见性 | |
CN104238884B (zh) | 基于数字全景的动态信息呈现与用户交互系统及设备 | |
WO2008140091A1 (ja) | ユ-ザ端末、登録サ-バ、広告登録方法、広告デ-タ送信方法及びプログラム | |
CN109565616A (zh) | 在移动电话上的交互式视频多屏体验 | |
US20180068347A1 (en) | Generating a browsing area of a web browser | |
JP7130719B2 (ja) | コンピュータプログラム、方法、及び、サーバ装置 | |
Rosenthal | Google TV-ready for prime time? It's not always about whether the technology works well. Sometimes, it's about the interconnectivity and ease of use |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181023 |
|
RJ01 | Rejection of invention patent application after publication |