CN110800013A - 用于为高速用户选择内容的系统和方法 - Google Patents

用于为高速用户选择内容的系统和方法 Download PDF

Info

Publication number
CN110800013A
CN110800013A CN201880043320.1A CN201880043320A CN110800013A CN 110800013 A CN110800013 A CN 110800013A CN 201880043320 A CN201880043320 A CN 201880043320A CN 110800013 A CN110800013 A CN 110800013A
Authority
CN
China
Prior art keywords
content
user
type
consumption rate
determining
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
Application number
CN201880043320.1A
Other languages
English (en)
Inventor
C·隆卡
D·泰兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snap Inc
Original Assignee
Snap Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Snap Inc filed Critical Snap Inc
Publication of CN110800013A publication Critical patent/CN110800013A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Abstract

公开了用于选择要呈现给用户的内容的系统、方法和计算机可读存储介质。在一方面,方法包括确定用户的内容消费速率,以及基于内容消费速率选择性地向用户呈现内容。内容消费速率可以基于在一段时间内呈现给用户的媒体内容的数量来确定。如果数量高于阈值,则可以呈现第一类型的内容,而如果数量低于(或等于)阈值,则可以呈现第二类型的内容,或者在一些方面,可以不呈现内容。在选择性呈现之后,可以与内容消费速率无关地呈现附加内容。

Description

用于为高速用户选择内容的系统和方法
相关申请的交叉引用
本申请要求于2017年11月7日提交的美国专利申请序列号15/805,952的优先权,其要求于2017年6月30日提交的美国临时申请序列号62/527,832的优先权权益,上述申请的每一个通过引用整体并入在此。
技术领域
本公开一般地涉及管理向社交网络的用户的内容显示的技术领域。具体地,公开了用于基于用户行为来更改所显示的内容的方法。
背景技术
社交网络成员展示出对他们可用的他们的各种特征使用的多样性。一些成员广泛地使用社交特征、与其它成员在一对一的基础上频繁地交换消息并对应。一些其它成员可能使用社交网络来获取新闻或其它信息,而没有充分使用社交网络特征。因此,需要适应用户如何使用这些社交网络的方法和系统。
附图说明
在不一定按比例绘制的附图中,相同的数字可以在不同的视图中描述相似的组件。具有不同字母后缀的相同数字可以表示相似组件的不同实例。在附图的图中,通过示例且非限制的方式示出了一些实施例。
图1是用于通过网络交换数据(例如,消息和相关联内容)的消息传递系统的一方面的框图。
图2是示出根据一些实施例的关于消息传递系统的进一步细节的框图。
图3是由图1的消息传递系统使用的示例性数据库模式。
图4是示出在一些实施例中的内容选择系统的功能组件的框图。
图5示出了可以在一些实施例中实现的内容显示的两个序列。
图6是所公开的实施例中的一个或多个实施例的数据流图。
图7是可以在一些实施例中实现的选择内容的方法的流程图。
图8是在一些方面中用于确定内容消费速率的方法的流程图。
图9是可以在一些实施例中实现的向用户有条件地呈现内容的方法的流程图。
图10是示出了所公开的一些方面的软件架构的框图。
图11是示出在一些实施例中可以包括的机器的组件(在此也称为“模块”)的框图。
具体实施方式
以下描述包括体现本公开的示例性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对发明主题的各种实施例的理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。一般地,不一定详细示出公知的指令实例、协议、结构和技术。
所公开的实施例认识到,并非所有对用户的内容呈现都被用户给予同等的考虑。此外,一些用户可能比其它用户更仔细地考虑内容。用户给予的考虑程度的一种指示是用户消费内容的速度或速率。例如,以第一速度或速率(例如,内容选择输入之间的时间延迟或每单位时间观看的内容段的数量)选择内容的用户能够比以较快的第二速度选择内容的第二用户给予内容更多的考虑。
因此,当确定向用户提供什么类型的内容时,所公开的方法和系统的一些方面考虑用户的内容消费速率。在一些方面,可以向反映出内容不太可能被给予过多考虑的这样的用户提供较低价值的内容。在一些方面,可以向具有较低内容消费速率的用户呈现具有较高价值的其它内容。
图1是示出用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,客户端设备102中的每一个托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如,因特网)通信地耦接到消息传递客户端应用104和消息传递服务器系统108的其它实例。如在此所使用的,“客户端设备”可以指与通信网络(诸如网络106)接口连接以从一个或多个服务器系统或其它客户端设备102获得资源的任何机器。客户端设备102可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子系统、游戏控制台、机顶盒或用户可用于访问网络106的任何其它通信装置。
在图1所示的示例中,每个消息传递客户端应用104能够经由网络106与另一消息传递客户端应用104和消息传递服务器系统108通信和交换数据。消息传递客户端应用104之间以及消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。
网络106可以包括以下网络或与以下网络共同操作:自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0002340020730000031
网络、另一种类型的网络,或两个以上此类网络的组合。例如,网络106或网络106的一部分可以包括无线或蜂窝网络,并且到网络106的连接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其它类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线服务(GPRS)技术、增强的GSM演进数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、或者由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
消息传递服务器系统108经由网络106向特定消息传递客户端应用104提供服务器端功能。虽然消息传递系统100的某些功能在此被描述为由消息传递客户端应用104或由消息传递服务器系统108执行,但是应当理解,消息传递客户端应用104或消息传递服务器系统108内的某些功能的位置是设计选择。例如,技术上优选的是在消息传递服务器系统108内初始部署某些技术和功能,但稍后将该技术和功能迁移到消息客户端应用104,其中客户端设备102具有足够的处理能力。
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据,以及处理由消息传递客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和直播事件信息。通过经由消息传递客户端应用104的用户界面(UI)可用的功能来调用和控制消息传递系统100内的数据交换。
现在具体转到消息传递服务器系统108,应用编程接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,这便于访问数据库120,在该数据库120中存储与由应用服务器112处理的消息相关联的数据。
API服务器110在客户端设备102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,API服务器110提供一组接口(例如,例程和协议),其可以由消息传递客户端应用104调用或查询,以便调用应用服务器112的功能。API服务器110暴露由应用服务器112支持的各种功能,包括账户注册、登录功能,经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息,对于另一消息传递客户端应用104的可能访问,从消息传递客户端应用104向应用服务器112发送媒体文件(例如,图像或视频),设置媒体数据集合(例如,故事),取得客户端设备102的用户的朋友列表,取得此类集合,取得消息和内容,将朋友添加到社交图和从社交图删除,社交图中的朋友的位置,以及检测应用事件(例如,与消息传递客户端应用104有关)。
应用服务器112托管多个应用和子系统,包括消息传递服务器应用114和社交网络系统116。消息传递服务器应用114实现多个消息处理技术和功能,特别涉及从消息传递客户端应用104的多个实例接收的消息中包括的内容(例如,文本和多媒体内容)的聚合和其它处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合成内容集合(例如,被称为故事或图库)。然后,消息传递服务器应用114使这些集合可用于消息传递客户端应用104。鉴于此类处理的硬件要求,消息传递服务器应用114也可以在服务器端执行其它处理器和存储器密集的数据处理。
社交网络系统116支持各种社交网络功能和服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统116保持和访问数据库120内的实体图。由社交网络系统116支持的功能和服务的示例包括特定用户具有与其的关系或用户“跟随”的消息传递系统100的其它用户的标识,以及特定用户的其它实体和关注的标识。
在公开的实施例中,社交消息传递系统可以测量特定用户消费内容的速率。用户消费内容的速率可能影响呈现给该用户的内容类型。例如,如果用户正在“略读”内容(例如,消费速率高于预定阈值),则用户也许不太可能在呈现内容时仔细考虑该内容。因此,呈现给该用户的内容不太可能影响用户的行为。通过测量用户消费内容的速率,可以实现对呈现给用户的内容的改善选择。
图2是示出根据示例性实施例的关于消息传递系统100的进一步细节的框图。具体地,消息传递系统100被示出为包括消息传递客户端应用104和应用服务器112,它们进而实现多个子系统,即短暂定时器系统202、集合管理系统204、注释系统206和内容选择系统208。
短暂定时器系统202负责实施对由消息传递客户端应用104和消息传递服务器应用114允许的内容的临时访问。为此,短暂定时器系统202包括多个定时器,该定时器基于与消息或消息集合(例如,SNAPCHAT故事,诸如下面讨论的故事组件404)相关联的持续时间和显示参数,经由消息传递客户端应用104选择性地显示和实现对消息和相关联内容的访问。下面提供关于短暂定时器系统202的操作的进一步细节。
集合管理系统204负责管理媒体集合(例如,文本、图像、视频和音频数据的集合)。在一些示例中,内容的集合(例如,消息,包括图像、视频、文本和音频)可以被组织成“事件库”或“事件故事”。此类集合可以对于指定的时间段内可用,诸如内容所涉及的事件的持续时间。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责将提供特定集合的存在的通知的图标发布到消息传递客户端应用104的用户界面。
注释系统206提供使用户能够注释或以其它方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与由消息传递系统100处理的消息的媒体覆盖的生成和发布有关的功能。例如,注释系统206基于客户端设备102的地理位置可操作地将媒体覆盖(例如,SNAPCHAT过滤器)提供给消息传递客户端应用104。在另一个示例中,注释系统206基于诸如客户端设备102的用户的社交网络信息的其它信息可操作地向消息传递客户端应用104提供媒体覆盖。媒体覆盖可包括音频和视觉内容和视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色覆盖。可以将音频和视觉内容或视觉效果应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括能够覆盖在由客户端设备102生成的照片之上的文本。在另一个示例中,媒体覆盖包括位置(例如,威尼斯海滩)的标识、直播事件的名称或商家的名称(例如,海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别包括客户端设备102的地理位置处的商家名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其它标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
在一个示例性实施例中,注释系统206提供基于用户的发布平台,其使用户能够在地图上选择地理位置,并上传与所选地理位置相关联的内容。用户还可以指定应该向其它用户提供特定媒体覆盖的环境。注释系统206生成包括上传的内容并将上传的内容与所选地理位置相关联的媒体覆盖。
在另一个示例性实施例中,注释系统206提供基于商家的发布平台,其使商家能够经由投标过程选择与地理位置相关联的特定媒体覆盖。例如,注释系统206将最高投标商家的媒体覆盖与对应的地理位置相关联持续预定义的时间量。
内容选择系统208可基于许多因素向用户提供选择性的内容呈现。如上所述,用户在使用消息传递系统100时可以变化。第一组用户可以例如通过阅读并考虑提供给他们的每条或大部分信息,仔细地消费由消息传递系统100提供的内容。第二组用户可以“略读”提供给他们的大部分内容,以比第一组用户快得多的速率消费内容。虽然第二组用户可能比第一组用户消费更多的内容,但是与第一组用户相比,第二组用户可能不太有效地理解正在消费的内容。这样,提供给第二组用户的消息可能没有提供给第一组用户的消息有效。因此,与提供给第一组用户的消息时相比,提供给第二组用户的消息的价值可能较小。
在一些情况下,第二组用户可以比其它类型的内容更有效地消费某些类型的内容。例如,第二组用户可能不太有效地消费需要更多时间审查和考虑的更复杂的内容,因为第二组用户未分配消费复杂内容所需要的时间。不太复杂的内容可能会更有效地被消费。例如,与例如需要数秒消费的具有多词文本消息的内容或者音频和/或视频内容的更复杂的内容相比,仅需简短一瞥可识别该内容提供的消息的内容可能更适合第二组用户。
图3是示出根据某些示例性实施例的可以存储在消息传递服务器系统108的数据库120中的数据的示意图300。虽然数据库120的内容被示出为包括多个表,但是应当理解,数据可以以其它类型的数据结构(例如,作为面向对象的数据库)存储。
数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。在实体表302内保持记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论类型如何,关于消息传递服务器系统108存储数据的任何实体都可以是识别的实体。为每个实体提供唯一标识符,以及实体类型标识符(未示出)。
实体图304另外存储关于实体之间或当中的关系和关联的信息。仅举例来说,这种关系可以是社交的、专业的(例如,在共同的公司或组织工作)、基于兴趣或基于活动的。
数据库120还以过滤器的示例形式将注释数据存储在注释表312中。对于存储在注释表312内的数据的过滤器与视频(存储在视频表310中的数据)和/或图像(存储在图像表308中的数据)相关联并应用于视频和/或图像。在一个示例中,过滤器是在向接收方用户呈现期间显示为在图像或视频上覆盖的覆盖。过滤器可以具有各种类型,包括当发送用户正在撰写消息时由消息传递客户端应用104向发送用户呈现的过滤器库中的用户选择的过滤器。其它类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,消息传递客户端应用104可以在用户界面内呈现特定于邻近或特殊位置的地理位置过滤器。另一种类型的过滤器是数据过滤器,其可以基于客户端设备102在消息创建过程期间收集的其它输入或信息,由消息传递客户端应用104选择性地将其呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户正在行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表308内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频的实时特殊效果和声音。
如上所述,视频表310存储视频数据,在一个实施例中,该视频数据与在消息表314内保持记录的消息相关联。类似地,图像表308存储与消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储关于消息和相关联图像、视频或音频数据的集合的数据,它们被编译成集合(例如,SNAPCHAT故事或图库)。特定集合的创建可以由特定用户(例如,在实体表302中保持记录的用户)发起。用户可以以已经由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。
集合还可以构成“现场故事”,其是来自多个用户的内容的集合,该集合是手动、自动或使用手动和自动技术的组合创建的。例如,“现场故事”可以构成来自不同位置和事件的用户提交内容的策展流。例如,经由消息传递客户端应用104的用户界面,其客户端设备102具有启用的位置服务并且在特定时间处于共同位置事件的用户可以被呈现有选项,以向特定的现场故事贡献内容。可以由消息传递客户端应用104基于他或她的位置向用户识别现场故事。最终结果是从社区角度讲述的“现场故事”。
另一种类型的内容集合被称为“位置故事”,其使其客户端设备102位于特定地理位置(例如,在学院或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要第二程度的认证以验证最终用户属于特定组织或其它实体(例如,是大学校园中的学生)。
图4是示出根据一些示例实施例的形成消息传递系统100的一部分的内容选择系统208的功能组件的框图。为了避免不必要的细节使发明主题模糊,已从图4中省略了与传达对发明主题的理解不密切相关的各种功能组件(例如,模块、引擎和数据库120)。然而,技术人员可以容易地认识到,各种附加功能组件可以被内容选择系统208支持,以促进在此未具体描述的附加功能。如图所示,内容选择系统208包括速率确定组件402、缓存组件404、内容选择组件406和内容显示组件408。
内容选择系统208的上述引用的功能组件配置为彼此通信(例如,经由总线、共享存储器、交换机或API)。这些组件共同地促进向用户的选择性内容呈现。
速率确定组件402负责确定消息传递系统100的用户速率。该速率可以表示用户消费由消息传递系统100提供的内容的速度。例如,在一些方面,速率确定组件402可以测量一段时间内呈现给特定用户的独立内容印象的数量。可替代地,速率确定组件402可以测量在内容印象显示和请求其它内容的后续用户输入之间的经过时间。这些经过时间可以平均以确定用户在每个内容印象上花费的时间量的整体测量。
缓存组件404可以存储从应用服务器112接收的内容。在一些方面,内容可以由消息传递客户端应用104从应用服务器112预取,使得该内容在需要时可用于向消息传递系统100的用户快速呈现。通过在消息传递客户端应用104处本地缓存内容,可以消除由网络时延以及应用服务器112和/或数据库服务器118内的时延引起的延迟。在一些方面,缓存组件404可以同时缓存不同类型的内容。例如,第一类型的内容和第二类型的内容可以由缓存组件404同时缓存。在一些方面,通过缓存至少两种类型的内容,这些方面可以提供对任一类型的内容的相对快的取得,这取决于消息传递客户端应用104的需求。
内容选择组件406可以选择要显示的内容。在一些方面,该选择可以基于由速率确定组件402确定的用户速率。例如,如果由速率确定组件402确定的速度满足第一标准,则可以显示某种类型的内容。在一些方面,如果速率满足第一标准,则可以不显示内容。在一些方面,如果速率满足第二标准,则可以显示第二类型的内容。
内容显示组件408可以显示由内容选择组件406选择的内容。内容显示组件408还可以显示用户请求的内容。
如相关计算机和有关互联网的领域的技术人员所理解的,图4所示的每个功能组件可以使用硬件(例如,机器的处理器)或逻辑的组合(例如,可执行软件指令)和执行逻辑的硬件(例如,机器的存储器和处理器)来实现。例如,作为内容选择系统208的部分而包括的任何组件可以在物理上包括一个或多个处理器410的布置(例如,机器的一个或多个处理器的子集),该处理器被配置为执行在此描述的用于该组件的操作。作为另一个示例,内容选择系统208的任何组件可以包括软件、硬件或两者,它们配置一个或多个处理器410的布置以执行在此描述的用于该组件的操作。因此,内容选择系统208的不同组件可以包括和配置此类处理器410的不同布置或此类处理器410在不同时间点的单个布置。
此外,图4中描绘的各种功能组件可以驻留在单个机器(例如,客户端设备102或服务器)上,或者可以以诸如基于云的架构的各种布置分布在多个机器上。另外,这些组件中的任何两个或更多个组件可以组合成单个组件,并且在此针对单个组件所描述的功能可以在多个组件之间细分。这些组件的功能细节在下面参考图5-9描述。
图5示出了内容显示的两个示例性序列。显示序列500示出了向第一用户的四个示例性内容印象502a-d的显示。虽然序列500示出了内容印象502a-d的显示,但是所公开的方法和系统也可以与其它类型内容的显示一起使用,例如视频、电子邮件、文本消息、即时消息或任何其它类型的显示内容。在一些方面,每个内容印象502a-d可以包括多条独立的内容。例如,网页可以由各条独立的内容组成。在一些情况下,这些独立的内容甚至可以从不同的远程位置获取,以形成单个内容印象。在一些方面,各个内容印象502a-d可以由用户的单个视觉感知的形成来定义。换言之,即使内容印象包括多条内容,该印象通常被观看用户感知为单个“事物”。
在显示一个或多个内容印象502a-d之后,可以从第一用户接收输入。示例性用户输入由箭头504a-d标识。例如,在显示印象502a之后,可以接收用户输入504a。印象502a的显示时间505a与用户输入504a的接收输入时间507a之间的时间示为时间t1。图5还分别示出了图像502b-d的显示时间505b-d。图5还分别示出了输入504b-d的输入时间507b-d。
内容显示组件408可以显示多个媒体内容,例如内容印象502a-d。所公开的方法和系统可以进一步确定在诸如内容印象502a的特定媒体内容的显示与诸如由504a表示的用户输入的接收之间的时间。用户输入504可以指示用户请求除图像502a之外的附加内容。响应于接收到输入504a,内容显示组件408可以显示内容印象502b。输入504b可以指示用户请求除内容印象502b之外的附加内容。作为响应,内容印象502c可以呈现给用户。速率确定组件402可以确定内容502a和/或502b的显示与后续相应输入504a和504b之间的经过时间。这分别示出为t1和t2。
速率确定组件402还可以合计经过时间t1-t4。例如,可以确定中值时间或平均时间。在一些方面,还可以确定经过时间之间的标准偏差。然后,内容选择组件406可以基于中值时间或平均时间和/或标准偏差来确定是否显示内容502e。
序列525包括分别在显示时间525a-d显示给第二用户的内容印象506a-506d。第二用户正在提供输入508a-d,它们分别在输入时间527a-d被接收。速率确定组件402可以测量时间t5-t8,以确定观看图像506a-d的用户以什么速度消费消息传递系统100提供的内容。例如,时间t5-t8可以通过分别计算在显示时间525a-d和输入时间527a-d之间的经过时间来确定。
图5示出提供输入504a-d的第一用户可能以比提供输入508a-d的第二用户更慢的速度消费内容。例如,如果相对于时间按比例绘制序列500和525,则与序列525消费四个内容印象506a-d需要的时间相比,序列500需要更多时间消费四个图像502a-d。因此,内容选择组件406可以基于t1-t4的合计与t5-t8的第二合计之间的差,选择不同类型的内容显示给序列500的第一用户(显示内容502e)和序列525的第二用户(显示内容506e)中的每一个。例如,第一合计可以满足第一标准,而第二合计可以不满足第一标准。这可能导致为第一和第二用户选择不同的内容类型(或者在一种情况下选择内容,在另一种情况下不选择内容)。
在序列500中显示所选内容502e并且在序列525中显示内容506e之后,可以分别在序列500和525中的每个序列中显示附加内容502f和506f。
图6是所公开的实施例中的一个或多个实施例的示例性数据流图。图6示出了上面讨论的消息传递服务器系统108和消息传递客户端应用104。图6示出了图像502a-d可以经由上面关于图5所讨论的内容显示组件408和消息传递客户端应用104在客户端设备102的电子显示器610上显示。
在消息传递客户端应用104内至少是缓存组件404和内容选择组件406。缓存组件404包括示例性高速缓存602和604。高速缓存602可以用于第一类型的内容,高速缓存604可以用于第二类型的内容。例如,第一类型的内容可以包括请求来自用户的输入的内容,而第二类型的内容可以不请求输入。可替代地,第一类型的内容可以包括具有高于阈值的单词数量的内容,而第二类型的内容可以包括比阈值少的单词。在一些情况下,第一类型的内容可以试图激励来自其所呈现的用户的一些动作。例如,该动作可能是单击内容中嵌入的链接或安装应用程序。在一些方面,第二类型的内容可以是品牌意识内容,其可能不请求或要求响应于呈现给用户的内容的任何用户动作。在各种实施例中,可以以某种方式识别第一类型的内容和第二类型的内容。例如,在一些方面,例如,在数据库120中,类型标识符可以与每个内容相关联。内容的类型与内容本身是分开的,因为两个不同的分开的内容不一定是两种类型的内容。
内容502e’和/或502e”可以由消息传递客户端应用104经由缓存组件404从消息传递服务器系统108请求。在一些方面,缓存组件404可以配置为预取至少一个诸如内容502e’的第一类型的内容印象和一个诸如内容502e”的第二类型的内容。通过缓存第一类型和第二类型中的每一个类型的内容,如果响应于来自内容选择组件406的请求从消息传递服务器系统108获取内容,则缓存组件404能够比以其它方式提供更快地向内容选择组件406提供内容502e’和/或502e”中的至少一个内容。
如上面关于图5所描述的,内容选择组件406可以评估图像502a-d的内容消费速率,并基于该速率确定是否在显示器610上显示内容502e’或502e”。例如,满足第一标准的速率可以导致内容选择组件406选择内容502’,否则选择内容502”。然后,所选内容502e’可以由内容显示组件408在显示器610上显示。在一些方面,代替显示内容502’,如果不满足第一标准,则可以不选择内容。
图7是选择内容的示例性方法的流程图。下面关于过程700和图7所讨论的一个或多个功能可以由电子硬件处理器执行。例如,存储在电子硬件存储器中的指令可以配置电子硬件处理器以执行下面讨论的一个或多个功能。例如,在一些方面,存储在消息传递客户端应用104和/或速率确定组件402、缓存组件404、内容选择组件406和/或内容显示组件408中的一个或多个组件中的指令可以配置硬件处理器,诸如图10的处理单元1154或图11的处理器1204,以执行下面讨论的一个或多个功能。在一些方面,存储在消息传递服务器应用114和/或社交网络系统116中的指令可以配置硬件处理器执行下面关于图7讨论的一个或多个功能。
在框705中,接收多个用户输入504。用户输入(例如,504a-d)在相应的多个输入时间发生。例如,如上面关于图5所讨论的,分别在输入时间507a-d和527a-d接收输入504a-d和/或输入508a-d。
在框708中,相应的多个媒体内容可以呈现在电子显示器(例如,610)上。媒体内容的呈现可以在相应的多个显示时间执行。例如,如图5所示,媒体内容印象502a-d分别在时间505a-d呈现,媒体内容印象506a-e分别在时间525a-e呈现。
在框710中,基于显示时间确定内容消费速率。在一些方面,框710可以确定在经过时间内显示的媒体内容印象506a-e的数量。例如,在一些方面,框710可以确定显示时间505a与输入时间504d或显示时间505d之间的经过时间,并且确定在该时间期间如何显示内容印象。例如,在上面关于图5讨论的序列500的示例中,一些实施方式将标识在显示时间505a与输入时间504d或显示时间505d之间消费的四个媒体内容印象502a-d。然后,速率可以通过将显示的媒体内容印象506a-d的数量除以经过时间来确定。在一些方面,框710可以由客户端设备102执行。在其它方面,框710可以由应用服务器112执行,并且在一些方面,可以由消息传递服务器应用114或社交网络系统116执行。例如,在一些方面,关于用户输入(例如,504a-d)和向用户的内容呈现的定时有关的统计可以由客户端设备102发送给应用服务器112。例如,在一些方面,每当或响应于用户的内容请求和/或当向用户显示内容时,可以将独立的消息从客户端设备102发送到应用服务器112。根据这些消息,例如,在一些方面基于接收到消息的定时和/或在其它方面基于消息中包括的统计,应用服务器112或包括的组件中的一个组件(例如消息传递服务器应用114或社交网络系统116)可以确定内容消费速率。图8提供了确定内容消费速率的替代方法。
判定框720确定合计的经过时间是否满足标准。例如,判定框720可以确定合计的经过时间是否低于阈值。例如,如上面关于图5所讨论的,一些用户可能比其它用户以更快的速率消费内容。以快速率消费内容的用户可能导致合计的经过时间低于阈值。内容选择组件406可以基于合计的时间低于阈值来选择给这些用户显示某种类型的内容(或者在一些方面没有内容)。如果合计的经过时间满足标准,则过程700移至框725,其在电子显示器610上呈现第一媒体内容印象。否则,过程700移至框730,其可在电子显示器上呈现第二媒体内容印象(例如,610)。可替代地,框730可以不在显示器(例如,610)上呈现任何内容。分别在框725和730中显示第一或第二内容可以基本上影响计算机执行过程700的操作。例如,分别在框725或730中呈现的第一和第二内容中的每个内容可以接收来自用户的不同的输入组,并且可能会基于这些输入生成完全不同的响应。作为一个示例,第一内容印象可以在配置为接收指示应当执行第一程序的输入的用户界面中呈现,而第二内容印象可以在配置为接收指示应当执行第二程序的输入的第二用户界面中呈现。因此,基于第一和第二程序之间的差异,计算机的操作可以取决于是否以无数方式呈现第一或第二内容印象而变化。例如,在一些方面,第一程序可以安装第三方应用,而第二程序可以在网络浏览应用中打开URL。
在框735中,附加内容(例如,502f或506f)可以在电子显示器(例如,610)上呈现。如上面关于图5所讨论的,在内容选择组件406基于用户速率确定要呈现的内容类型并且显示所选内容(例如,502e或506e)(或不显示内容)之后,可以显示诸如内容502f或内容506f的附加内容。在一些方面,附加内容502f和506f可以在配置为接受具有多种不同的可能类型的输入的用户界面中呈现。取决于输入的类型,可以发起进一步的计算机操作。在一些方面,框735包括从应用服务器112向客户端设备102发送指示附加内容502f和506f的一个或多个网络消息。在一些方面,网络消息可以包括定义内容的数据。在其它方面,网络消息可以标识例如位于数据库120中的内容。在这些方面中,客户端设备102然后可以响应于接收到网络消息而从数据库120获取所指示的内容。
图8是用于确定内容消费速率的示例性方法。下面关于过程710和图8讨论的一个或多个功能可以由电子硬件处理器执行。例如,存储在电子硬件存储器中的指令可以配置电子硬件处理器以执行下面讨论的一个或多个功能。例如,在一些方面,存储在消息传递客户端应用104和/或速率确定组件402中的指令可以配置硬件处理器,诸如图10的处理单元1154或图11的处理器1204,以执行下面讨论的一个或多个功能。
在框810中,确定多个显示时间中的每一个时间与后续用户输入时间之间的经过时间。在一些方面,每个经过时间可以被视为用户观看各个显示内容的时间量。例如,如图5所示,时间t1-t4可以分别基于显示时间505a-d和输入时间507a-d之间的差来确定。类似地,时间t5-t8可以基于显示时间525a-d与输入时间527a-d之间的差来确定。在一些方面,时间t1-t4和/或经过时间t5-t8可以被视为观看时间。
在一些方面,呈现给用户的内容可以是如上所述的短暂内容。在一些方面,取决于用户输入(例如,504),短暂内容的观看时间可以与例如可显示不确定的时间段的静态内容的内容而不同地确定。例如,在一些方面,用户可以快速消费短暂内容。在这些方面中的一些方面,短暂内容的快速消费可能是每个短暂内容印象可用的有限访问时间的结果。例如,如上所述,短暂定时器可以控制对内容的访问可用多久的时间和/或特定短暂内容印象可以显示多久的时间。
因此,在一些方面,如果用户消费一个或多个短暂内容印象,每个短暂内容印象具有(例如)两秒的访问时间(由短暂定时器限制),则基于该内容确定的消费速率可能不准确地表征用户对诸如上面讨论的第一类和/或第二类的内容的附加内容(例如,502f或506f)的注意力和接受度。因此,在一些方面,短暂内容的观看时间可以与静态内容的观看时间不同地确定。例如,在一些方面,短暂内容的观看时间可以不被包括在框810的内容消费速率的确定中。在其它方面,具有高于可用时间阈值的可用时间的短暂内容可以被包括在框810的内容消费速率确定中,而具有小于或等于阈值的可用时间的短暂内容可以不被包括在消费速率确定中。在一些方面,如果用户输入(例如,504a-d)在短暂内容的定时器停止并且结束对短暂内容的访问和/或显示之前引起其它内容的呈现,则短暂内容可以被包括在内容消费速率中。在除了特定短暂内容之外的方面中,在框810的时间计算中可以不考虑用于显示特定短暂内容的时间。
在框820中,合计经过时间。在一些方面,合计经过时间可以包括确定经过时间的中值和/或经过时间的平均值。在一些方面,还可以确定经过时间的标准偏差。在一些方面,通过找到经过时间的中值或对经过时间进行平均并且将一个(1)、二个(2)或三个(3)标准偏差加到平均值或中值来确定合计的经过时间。
在一些方面,框820确定的合计值可以视为图7的框710中的消费速率。
图9是向用户的内容有条件呈现的示例性方法的流程图。下面关于过程900和图9所讨论的一个或多个功能可以由电子硬件处理器执行。例如,存储在电子硬件存储器中的指令可以配置电子硬件处理器以执行下面讨论的一个或多个功能。例如,在一些方面,存储在消息传递客户端应用104和/或速率确定组件402、缓存组件404、内容选择组件406和/或内容显示组件408中的一个或多个组件的指令可以配置硬件处理器,如图10的处理单元1154或图11的处理器1204,以执行下面讨论的一个或多个功能。在一些方面,过程900可以是过程700的一般形式,如上面关于图7所讨论的。例如,在一些方面,过程900的框910可以包含过程700的框705-710。在一些方面,过程900的框920可以包含过程700的框720-730。在一些方面,框930可包括上面关于框735讨论的一个或多个功能。
在框910中,确定用户的内容消费速率。消费速率可以由电子设备确定。例如,消费速率可以由诸如上面关于图1讨论的客户端设备102的客户端设备确定。在一些方面,消费速率是设备在电子显示器(例如,610)上显示内容的速率。该速率可以基于每单位时间显示的数据量,或者每单位时间显示的唯一“印象”的数量。在一些方面,印象可以定义为内容的单个固定显示状态。在一些方面,框910可以包括上面关于框705-710讨论的一个或多个功能。
在一些方面,确定内容消费速率包括接收多个用户输入(例如,504a-d)(每个输入请求媒体内容呈现)、确定多个用户输入(例如,504a-d)的经过时间、以及基于多个用户输入(例如,504a-d)的数量和经过时间确定消费速率。例如,如上面关于图5讨论的,可以接收输入504a-d中的每一个输入。可以确定跨(例如输入504a和504d之间的)输入的经过时间。此外,可以为输入504a-d确定多个内容印象。例如,图像502b-d和502e或502f可以从输入504a-d得到。因此,四个印象或内容呈现从所考虑的输入得到。在一些方面,消费速率可以由内容印象的数量除以提供印象的经过时间来确定。
在一些方面,框910可以包括接收多个用户输入(每个输入请求媒体内容呈现)、响应于每个用户输入在电子显示器上呈现相应的媒体内容印象、确定呈现的媒体内容印象中的每一个媒体内容印象的多个观看时间、合计多个观看时间、以及基于合计的观看时间确定消费速率。在一些方面,确定呈现的媒体内容印象中的每一个媒体内容印象的观看时间包括确定呈现的媒体内容的呈现与多个用户输入中的后续输入之间的经过时间。在一些方面,合计多个观看时间包括确定测量的观看时间的平均值或中值。框910还可以包括基于平均值或中值选择性地呈现第一类型的媒体内容。在一些方面,合计多个观看时间包括确定多个观看时间的标准偏差。
在框920中,基于内容消费速率在电子显示器上选择性地呈现附加内容(例如,502f或506f)。在一些方面,如果内容消费速率满足第一标准,则可以提供第一类型的内容。否则,可以提供第二类型的内容,或者可能不提供内容。在一些方面,两个或更多个内容源用于两种或更多种类型的内容。例如,在一些方面,单独的数据库可用于不同类型的内容。可替代地,每个内容可以例如在内容数据库中具有相关联的类型标识符。内容的类型标识符可以与内容本身分开并且不同。内容数据库中的每个内容可以具有单独的但相关联的类型标识符。在这些方面中,选择第一类型的内容可以包括搜索数据库120以搜索与指示第一类型的类型标识符相关联的内容,而选择第二类型的内容可以包括搜索数据库120以搜索与指示第二类型的类型标识符相关联的内容。
在一些方面,当消费速率低于或高于阈值时,呈现第一类型的内容,在其它情况下提供第二类型的内容或不提供内容。在一些方面,如果平均值或中值满足第一标准,则选择呈现第一类型的媒体内容。在一些方面,如果平均值或中值和标准偏差满足第一标准,则选择呈现第一类型的媒体内容。一些方面包括如果平均值或中值高于阈值,则确定平均值或中值满足第一标准。在一些方面,阈值是基于用户的一个或多个特征来确定的。例如,年轻用户(低于或等于年龄阈值的年龄)可以使用比年长用户(高于年龄阈值的年龄)高的速率阈值。在一些方面,阈值可以基于用户的性别或用户的社交网络中的朋友的数量来确定。
如上面关于图6所描述的,在一些方面,选择性呈现的内容可以从诸如高速缓存602或高速缓存604的本地高速缓存中检索到。相对于将按需从诸如消息传递服务器系统108的网络服务器选择性获取呈现内容的解决方案,对选择性呈现的内容的缓存可以提供改善的性能。在一些方面,过程900包括用第一类型的内容预填充高速缓存(例如,602和/或604)和/或用第二类型的内容预填充第二高速缓存。在内容的选择性呈现之前并且可能在消费速率本身的确定之前,高速缓存的预填充可以通过经过网络从诸如消息传递服务器系统108的远程服务器请求第一和/或第二类型的内容来完成。然后,可以接收对(多个)请求的响应,该响应包括所请求的(多个)第一和/或第二类型的内容。然后,该内容可以被写入到高速缓存以完成预填充。
在框930中,进一步的内容呈现在电子显示器上。可以与在框910中确定的消费速率无关地显示该附加内容。因此,在一个示例实施例中,用户可以以在框910中确定的第一速率请求“N”个媒体内容。如果该速率高于阈值,则框920可以确定不显示任何内容。然后,在框930中可以呈现附加内容。第二用户可以以比第一速率慢的第二速率请求“N”个媒体内容。对于该用户,框920可以确定显示第一类型的内容。然后,框930可以向第二用户显示附加内容。因此,在该简单示例中,可以向第二用户呈现比第一用户更多的内容,即使两个用户都请求相同的数量“N”个媒体内容。在一些方面,框930可以包括上面关于框735讨论的一个或多个功能。
软件架构
图10是示出示例软件架构1106的框图,该软件架构可以与在此描述的各种硬件架构结合使用。图10是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以促进在此描述的功能。软件架构1106可以在诸如图11的机器1100的硬件上执行,该机器包括处理器1204、存储器/存储装置1206和I/O组件1218等。代表性硬件层1152被示出并且可以表示例如图11的机器1200。代表性硬件层1152包括具有相关联可执行指令1104的处理单元1154。可执行指令1104表示软件架构1106的可执行指令,包括在此描述的方法、组件等的实施方式。硬件层1152还包括存储器和/或存储装置1156,其也具有可执行指令1104。硬件层1152还可以包括其它硬件1258。
如在此所使用的,术语“组件”可以指具有由功能或子例程调用、分支点、API和/或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是被设计用于与其它组件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。
组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例性实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为操作以执行如在此描述的某些操作的硬件组件。硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。
硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。一旦由此类软件配置,硬件组件就成为特定的机器(或机器的特定组件),其被独特地定制以执行配置的功能并且不再是通用处理器。应当理解,可以通过成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。
处理器可以是或包括根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)或其任何组合。处理器可以进一步是具有可以同时执行指令1210的两个或更多个独立处理器(有时称为“核”)的多核处理器。
因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,以便以某种方式操作或执行在此描述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的一个或多个处理器,例如以在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现此类硬件组件之间或之中的通信。
例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另一硬件组件可以稍后访问存储器设备以取得和处理所存储的输出。硬件组件还可以发起与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,此类处理器可以构成处理器实现的组件,该处理器实现的组件操作以执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。
此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,API)访问。操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例性实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例性实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。
在图10的示例性架构中,软件架构1106可以概念化为层的堆栈,其中每个层提供特定功能。例如,软件架构1106可以包括诸如操作系统1102、库1120、框架/中间件1118、应用1116和呈现层1114的层。在操作上,层内的应用1116和/或其它组件可以通过软件堆栈调用API调用1108,并接收响应作为消息1110。所示的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件1118层,而其它操作系统可提供此类层。其它软件架构可以包括附加层或不同层。
操作系统1102可以管理硬件资源并提供公共服务。操作系统1102可以包括例如内核1122、服务1124和驱动器1126。内核1122可以充当硬件和其它软件层之间的抽象层。例如,内核1122可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务1124可以为其它软件层提供其它公共服务。驱动器1126负责控制底层硬件或与底层硬件接口连接。例如,取决于硬件配置,驱动器1126包括显示驱动器、相机驱动器、
Figure BDA0002340020730000231
驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、
Figure BDA0002340020730000232
驱动器、音频驱动器、电源管理驱动器等等。
库1120提供由应用1116和/或其它组件和/或层使用的公共基础结构。库1120提供允许其它软件组件以比直接与底层操作系统1102功能(例如,内核1122、服务1124和/或驱动器1126)接口连接更容易的方式执行任务的功能。库1120可以包括系统库1144(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库1120可以包括API库1146,诸如媒体库(例如,用于支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG的各种媒体格式的呈现和操作的库)、图形库(例如,可用于在显示器上渲染2D和3D图形内容的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、web库(例如,可提供web浏览功能的WebKit)等。库1120还可以包括各种其它库1148,以向应用1116和其它软件组件/模块提供许多其它API。
框架/中间件1118提供可由应用1116和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件1118可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1118可以提供可以由应用1116和/或其它软件组件/模块使用的广泛范围的其它API,其中的一些可以特定于特定操作系统1102或平台。
应用1116包括内置应用1138和/或第三方应用1140。代表性内置应用1138的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1140可以包括由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM
Figure BDA0002340020730000241
Phone或其它移动操作系统的移动操作系统上运行的移动软件。第三方应用1140可以调用由移动操作系统(诸如操作系统1102)提供的API调用1108以促进在此描述的功能。
应用1116可以使用内置操作系统功能(例如,内核1122、服务1124和/或驱动器1126)、库1120和框架/中间件1118来创建用户界面以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过呈现层(诸如呈现层1114)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分离。
示例性机器
图11是示出机器1200的示例性组件(在此也被称为“模块”)的框图。在一些方面,机器1200被配置为从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一个或多个方法。具体地,图11示出以计算机系统的示例形式的机器1200的图形表示,在该机器1200内可以执行用于使机器1200执行在此讨论的任何一种或多种方法的指令1210(例如,软件、程序、应用、小应用程序、应用软件或其它可执行代码)。这样,指令1210可以用于实现在此描述的模块或组件。指令1210将通用的未编程的机器1200转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器1200。在替代实施例中,机器1200作为独立设备操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器1200可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1200可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、web设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指定机器1200要采取的动作的指令1210的任何机器。此外,尽管仅示出了单个机器1200,但是术语“机器”还应被视为包括单独或联合执行指令1210以实施在此讨论的任何一种或多种方法的机器的集合。
机器1200可以包括可以被配置为例如经由总线1202彼此通信的处理器1204、存储器/存储装置1206和I/O组件1218。存储器/存储装置1206可以包括存储器1214,诸如主存储器或其它存储器存储装置,以及存储单元1216,两者都可诸如经由总线1202由处理器1204访问。存储单元1216和存储器1214存储体现在此描述的任何一种或多种方法或功能的指令1210。指令1210还可以在机器1200的其执行期间完全或部分地驻留在存储器1214内,存储单元1216内,处理器1204中的至少一个处理器内(例如,处理器的高速缓存存储器内),或其任何合适的组合。因此,存储器1214、存储单元1216和处理器1204的存储器是机器可读介质的示例。
如在此所使用的,术语“机器可读介质”、“计算机可读介质”等可以指能够临时或永久地存储指令1210和数据的任何组件、设备或其它有形介质。此类介质的示例可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓存存储器、其它类型的存储装置(例如,电可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应该视为包括能够存储指令1210的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存602或604和服务器)。术语“机器可读介质”还可以视为包括任何介质,或者多个介质的组合,其能够存储用于由机器1200执行的指令1210(例如,代码),使得指令1210在由机器1200的一个或多个处理器1204执行时使机器1200执行在此描述的任何一种或多种方法。因此,“机器可读介质”可以指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”不包括暂时信号本身。
I/O组件1218可以包括各种各样的组件以提供用于接收输入,提供输出,产生输出,发送信息,交换信息,捕获测量等的用户界面。在特定机器1200的用户界面中包括的特定I/O组件1218将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其它此类输入机构,而无头服务器机器将可能不包括此类触摸输入设备。应当理解,I/O组件1218可以包括图11中未示出的许多其它组件。I/O组件1218根据功能分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各种示例性实施例中,I/O组件1218可以包括输出组件1226和输入组件1228。输出组件1226可以包括视觉组件(例如显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如,振动电动机、阻力机构)、其它信号发生器等。输入组件1228可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于指点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触感输入组件(例如,物理按钮,提供触摸或触摸手势的位置和/或力的触摸屏,或其它触感输入组件)、音频输入组件(例如,麦克风)等。输入组件1228还可以包括一个或多个图像捕获设备,诸如用于生成数字图像和/或视频的数字摄像头。
在另外的示例性实施例中,I/O组件1218可以包括生物度量组件1230、运动组件1234、环境组件1236或定位组件1238以及广泛的其它组件。例如,生物度量组件1230可以包括检测表达(例如,手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1234可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1236可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1238可包括位置传感器组件(例如,GPS接收器组件)、高度传感器组件(例如,可以可以从其导出高度的检测空气压力的高度计或气压计)、取向传感器组件(例如,磁力计)等。
可以使用各种技术来实现通信。I/O组件1218可以包括通信组件1240,其可操作以分别经由耦接器1224和耦接器1222将机器1200耦接到网络1232或设备1220。例如,通信组件1240可以包括网络接口组件或与网络1232接口连接的其它合适的设备。在进一步的示例中,通信组件1240可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,
Figure BDA0002340020730000272
低功耗)、
Figure BDA0002340020730000273
组件和经由其它模式提供通信的其它通信组件。设备1220可以是另一机器或各种外围设备中的任何一种(例如,经由USB耦接的外围设备)。
此外,通信组件1240可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件1240可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、MaxiCode、PDF4111、超码、UCC RSS-2D条形码和其它光学代码的多维条形码),或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信组件1240来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由
Figure BDA0002340020730000281
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
在使用类似于“A、B或C中的至少一个”、“A、B和C中的至少一个”、“A、B或C中的一个或多个”或“A、B和C中的一个或多个”的短语的情况下,旨在将该短语解释为表示在一个实施例中可以单独存在A,在一个实施例中可以单独存在B,在一个实施例中可以单独存在C,或在单个实施例中可以存在元素A、B和C的任何组合,例如,可以存在A和B、A和C、B和C,或A和B和C。
在不脱离本公开的范围的情况下,可以对所公开的实施例进行改变和修改。如所附权利要求所表达的,这些和其它改变或修改旨在包括在本公开的范围内。
该专利文件的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人以专利和商标局专利文件或记录中出现的方式对专利文件或专利公开内容传真复制,但在任何情况下均保留所有版权。以下公告适用于如下所述以及构成该文件的一部分的附图中的软件和数据:版权2017,SNAP公司,保留所有权利。

Claims (20)

1.一种显示在线内容的方法,包括:
通过电子设备接收多个用户输入,每个输入请求媒体内容呈现;
通过所述电子设备确定所述多个用户输入的经过时间;
通过所述电子设备基于所述多个用户输入的数量和所述经过时间来确定消费速率;以及
通过所述电子设备基于所述内容消费速率选择性地向所述用户呈现附加内容。
2.根据权利要求1所述的方法,其中,基于所述内容消费速率选择性地向所述用户呈现所述附加内容包括:当所述消费速率满足第一标准时呈现第一类型的内容,以及在其它情况下呈现第二类型的内容或不呈现内容。
3.根据权利要求2所述的方法,还包括从所述电子设备上的第一内容高速缓存中检索所述第一类型的内容,以及从与所述第一内容高速缓存在物理上分开的第二高速缓存中检索所述第二类型的内容。
4.根据权利要求3所述的方法,还包括通过计算机网络发送对于所述第一类型的内容的请求、从所述计算机网络接收包括所述第一类型的内容的消息、以及将所述第一类型的媒体内容存储在所述高速缓存中。
5.根据权利要求1所述的方法,还包括在内容的选择性呈现之后,与所述消费速率无关地向所述用户呈现附加内容。
6.根据权利要求1所述的方法,还包括:
接收多个用户输入,每个输入请求媒体内容呈现;
响应于每个用户输入,在电子显示器上呈现相应的媒体内容;
确定所呈现的媒体内容中的每个媒体内容的多个观看时间;
合计所述多个观看时间;以及
基于所合计的观看时间确定所述消费速率。
7.根据权利要求6所述的方法,其中,确定所呈现的媒体内容中的每个媒体内容的所述观看时间包括确定在所呈现的媒体内容的呈现与所述多个用户输入的后续输入之间的经过时间。
8.根据权利要求6所述的方法,其中,合计所述多个观看时间包括确定所测量的观看时间的平均值或中值,所述方法还包括基于所述平均值或中值来选择呈现所述第一类型的媒体内容。
9.根据权利要求8所述的方法,其中,合计所述多个观看时间还包括确定所述多个观看时间的标准偏差,所述方法还包括基于所述标准偏差选择性地呈现所述第一类型的媒体。
10.根据权利要求8所述的方法,还包括如果所述平均值或中值满足第一标准,则选择用于呈现的所述第一类型的媒体内容。
11.根据权利要求10所述的方法,还包括如果所述平均值或中值和所述标准偏差满足所述第一标准,则选择用于呈现的所述第一类型的媒体内容。
12.根据权利要求10所述的方法,还包括如果所述平均值或中值高于阈值,则确定所述平均值或中值满足所述第一标准。
13.根据权利要求10所述的方法,还包括基于用户的一个或多个特征确定所述阈值。
14.一种无线设备,包括:
电子显示器;
电子硬件处理器,其配置为:
确定用户的内容消费速率;以及
通过所述电子设备基于所述内容消费速率在所述电子显示器上选择性地向所述用户呈现附加内容。
15.根据权利要求14所述的无线设备,其中所述电子硬件处理器还被配置为如果所述内容消费速率满足第一标准,则呈现第一类型的内容,以及在其它情况下呈现第二类型的内容。
16.根据权利要求15所述的无线设备,还包括硬件存储器,所述硬件存储器包括第一高速缓存和第二高速缓存,其中,所述电子硬件处理器还被配置为从第一高速缓存中检索所述第一类型的内容以及从第二高速缓存中检索所述第二类型的内容。
17.一种非暂时性计算机可读介质,其包括指令,所述指令在被执行时使电子硬件处理器执行内容选择的方法,所述方法包括:
确定用户的内容消费速率;以及
通过电子设备基于所述内容消费速率在电子显示器上选择性地向所述用户呈现附加内容。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,确定所述内容消费速率包括确定在一段时间内在电子显示器上向所述用户呈现的媒体内容的数量,以及基于所述数量确定所述内容消费速率。
19.根据权利要求17所述的非暂时性计算机可读介质,所述方法还包括:
接收多个用户输入,每个输入请求内容印象;
响应于每个用户输入,在电子显示器上呈现相应的内容印象;
确定所述内容印象中的每个内容印象的多个观看时间;
合计所述多个观看时间;以及
基于所合计的观看时间确定所述消费速率。
20.根据权利要求17所述的非暂时性计算机可读介质,其中,基于所述内容消费速率选择性地向所述用户呈现所述附加内容包括:当所述消费速率满足第一标准时,呈现第一类型的内容,以及在其它情况下呈现第二类型的内容或不呈现内容,所述方法还包括从所述电子设备上的第一内容高速缓存中检索所述第一类型的内容,以及从与所述第一内容高速缓存在物理上分开的第二高速缓存中检索所述第二类型的内容。
CN201880043320.1A 2017-06-30 2018-06-29 用于为高速用户选择内容的系统和方法 Pending CN110800013A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762527832P 2017-06-30 2017-06-30
US62/527,832 2017-06-30
US15/805,952 US10986194B2 (en) 2017-06-30 2017-11-07 Selecting content for high velocity users
US15/805,952 2017-11-07
PCT/US2018/040438 WO2019006395A1 (en) 2017-06-30 2018-06-29 SYSTEMS AND METHODS OF CONTENT SELECTION FOR VERY FAST USERS

Publications (1)

Publication Number Publication Date
CN110800013A true CN110800013A (zh) 2020-02-14

Family

ID=64738398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880043320.1A Pending CN110800013A (zh) 2017-06-30 2018-06-29 用于为高速用户选择内容的系统和方法

Country Status (5)

Country Link
US (2) US10986194B2 (zh)
EP (1) EP3646276A1 (zh)
KR (1) KR102292447B1 (zh)
CN (1) CN110800013A (zh)
WO (1) WO2019006395A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11595489B2 (en) 2017-06-30 2023-02-28 Snap Inc. Selecting content for high velocity users

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750542B2 (en) 2020-04-27 2023-09-05 Snap Inc. Invitation media overlays for shared collections of media content items
US11665116B2 (en) 2020-04-27 2023-05-30 Snap Inc. Invitation media overlays for private collections of media content items
US11695696B2 (en) * 2021-11-23 2023-07-04 Capital One Services, Llc Prepopulation of caches
US11916787B2 (en) 2021-11-23 2024-02-27 Capital One Services, Llc Stream listening cache updater
US11765252B2 (en) 2021-11-23 2023-09-19 Capital One Services, Llc Prepopulation of call center cache

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090192870A1 (en) * 2008-01-29 2009-07-30 At&T Knowledge Ventures, L.P. System and method for monitoring consumption of marketing content
CA2757668C (en) * 2008-04-11 2021-03-02 Desire2Learn Incorporated Systems, methods and apparatus for providing media content
US9094461B2 (en) * 2012-10-19 2015-07-28 Google Inc. Filtering a stream of content
US11558480B2 (en) * 2014-07-16 2023-01-17 Comcast Cable Communications Management, Llc Tracking content use via social media
US10122660B2 (en) 2015-03-27 2018-11-06 MINDBODY, Inc. Contextual mobile communication platform
EP3258398B1 (en) * 2016-06-17 2020-12-23 Tata Consultancy Services Limited Engaged micro-interactions on digital devices
US20180367626A1 (en) * 2017-06-19 2018-12-20 Get Attached, Inc. Automatic digital media interaction feedback
US10986194B2 (en) 2017-06-30 2021-04-20 Snap Inc. Selecting content for high velocity users

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11595489B2 (en) 2017-06-30 2023-02-28 Snap Inc. Selecting content for high velocity users

Also Published As

Publication number Publication date
US10986194B2 (en) 2021-04-20
US11595489B2 (en) 2023-02-28
EP3646276A1 (en) 2020-05-06
WO2019006395A1 (en) 2019-01-03
US20210218821A1 (en) 2021-07-15
KR102292447B1 (ko) 2021-08-25
KR20200024264A (ko) 2020-03-06
US20190007507A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
US10785597B2 (en) System to track engagement of media items
US11687222B2 (en) Prioritizing display of user icons associated with content
US11258749B2 (en) Restricted group content collection
US11620045B2 (en) Alternate content insertion logic
US11178086B2 (en) Media item attachment system
US11595489B2 (en) Selecting content for high velocity users
CN112771526A (zh) 协作型公共用户简档
CN112740279A (zh) 协作成就界面
CN111133723A (zh) 独立于应用的消息传递系统
US11822874B2 (en) User-specified replacement of terms in messaging
US11323398B1 (en) Systems, devices, and methods for progressive attachments
US20230017029A1 (en) Media preview system

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