CN115698946A - 软件开发工具包参与监测器 - Google Patents

软件开发工具包参与监测器 Download PDF

Info

Publication number
CN115698946A
CN115698946A CN202180041351.5A CN202180041351A CN115698946A CN 115698946 A CN115698946 A CN 115698946A CN 202180041351 A CN202180041351 A CN 202180041351A CN 115698946 A CN115698946 A CN 115698946A
Authority
CN
China
Prior art keywords
application
sdk
message
party
party application
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
CN202180041351.5A
Other languages
English (en)
Inventor
帕特里克·曼迪亚
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 CN115698946A publication Critical patent/CN115698946A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

由消息系统提供的示例开发者工具系统包括软件开发工具包(SKD)参与监测器,该软件开发工具包(SKD)参与监测器允许捕获使用开发者工具系统的第三方资源(例如,第三方应用)中的应用打开事件。SKD参与监测器被配置成以保护第三方开发者的隐私并且避免向消息系统后端环境传递关于第三方资源使用的个人可识别信息(PII)的方式操作。

Description

软件开发工具包参与监测器
优先权要求
本申请要求于2020年6月10日提交的美国临时申请序列号63/037,512以及于2021年3月25日提交的美国专利申请序列号17/212,584的优先权权益,上述美国临时申请和美国专利申请中的每一个通过引用整体并入本文中。
技术领域
本公开内容总体涉及软件开发者工具包(SDK)的构建和利用。
背景技术
使用户能够在线访问内容以及与其他用户进行交互的计算机实现的程序的普及性持续增长。存在使用户能够通过消息客户端与其他用户共享内容的各种计算机实现的应用。这样的计算机实现的应用(称为app)中的一些可以被设计成在移动设备例如电话、平板电脑或可穿戴设备上运行,同时具有在服务器计算机系统上提供的后端服务以执行可能需要比在客户端设备处执行所需的合理资源更多的资源的操作(例如,存储大量数据或执行计算上昂贵的处理)。例如,消息系统可以提供用于修改或增强内容的各种工具,以利用移动设备的摄像装置以及内容增强工具并且经由网络通信共享所捕获的内容。可以通过一个或更多个SDK使计算机实现的应用的选定功能对第三方应用的开发者可用。
附图说明
在不一定按比例绘制的附图中,相似的附图标记可以在不同的视图中描述类似的部件。为了容易地识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次引入时所在的图号。在附图中通过示例而非限制的方式示出了一些实施方式,在附图中:
图1是根据一些示例的其中可以部署SDK参与监测器的联网环境的图解表示。
图2是根据一些示例的具有客户端侧和服务器侧两者的功能的消息系统的图解表示。
图3是根据一些示例的如在数据库中维护的数据结构的图解表示。
图4是根据一些示例的消息的图解表示。
图5是根据一些示例的访问限制处理的流程图。
图6是根据一些示例的嵌入式SKD的图解表示。
图7是根据一些示例的用于监测嵌入式SKD的参与的方法的流程图。
图8是根据一些示例的计算机系统形式的机器的图解表示,在该计算机系统内,可以执行一组指令以使机器执行根据一些示例的本文所讨论的方法中的任何一种或更多种方法。
具体实施方式
本公开内容的实施方式通过以下操作改进计算机实现的应用的功能:在SDK嵌入在第三方应用中时增强对SDK的实际和潜在利用的可见性,同时通过避免向SDK提供者系统传送关于第三方应用用户的个人可识别信息(PII)来保护用户的隐私。通过构建SKD参与监测器并且将该SKD参与监测器包括在嵌入在第三方应用中的SDK中,解决了监测嵌入在第三方应用中的SDK的潜在参与的技术问题。因为打开包括嵌入式SDK的第三方应用可以潜在地跟随使用SDK访问由支持SDK的后端系统提供的一个或更多个功能的操作,所以应用打开事件和各种相关联的信息对预测SDK的利用可以是有用的。
SDK参与监测器被配置成捕获指示嵌入有SDK的第三方应用的打开的系统发起的事件和用户发起的事件。出于本说明书的目的,指示第三方应用的打开的事件被称为应用打开事件。响应于检测到应用打开事件,SDK参与监测器从检测到的事件中得到没有PPI的相关联的信息,并且将所得到的相关联的信息传送至作为支持SDK的后端系统的SDK提供者系统。出于本公开内容的目的,由SDK参与监测器检测到应用打开事件所触发的包括所得到的没有PPI的相关联的信息的通信被称为打开事件消息。
出于本说明书的目的,SDK参与监测器和一个或更多个SDK统称为嵌入式SDK,当嵌入在第三方应用中时,每个SDK都有助于访问由SDK提供者系统提供的选定功能。可以在托管用于相关联的消息客户端的后端服务的消息系统的情境内使用SKD参与监测器,其中用于相关联的消息客户端的后端服务是SDK提供者系统。
包括在客户端设备处执行并且由在消息服务器系统处提供的后端服务支持的消息客户端的消息系统被配置成使用户能够利用托管消息客户端的客户端设备的摄像装置捕获图像和视频,并且经由网络通信与其他用户共享所捕获的内容。消息系统可以被配置成提供可经由消息客户端访问的增强现实(AR)部件。AR部件可以用于修改摄像装置所捕获的内容,例如通过在所捕获的图像或视频帧之上叠加图片或动画,或者通过添加三维(3D)效果、对象、文字和变换。
消息系统可以包括使用户能够将若干内容项例如图像或短视频组合成集合的功能,该集合可以在这些内容项通过使用消息客户端的摄像装置视图屏幕被捕获时进行广播。摄像装置视图屏幕是由消息客户端显示的屏幕,其包括摄像装置的数字图像传感器的输出、可操作以通过摄像装置捕获图像或者开始和停止视频录制的用户可选择的元素,并且该摄像装置视图屏幕还可以显示表示相应AR部件的一个或更多个用户可选择的元素。消息系统还可以使用户能够创建其自己的个性化卡通化身,所述个性化卡通化身可以被包括到消息中以使在线通信更具娱乐性和表现力。为了使第三方开发者能够使用这些功能中的一些或全部功能——例如AR体验、内容项的集合和个性化卡通化身,消息系统可以使用开发者工具服务器,该开发者工具服务器维护可以嵌入在第三方应用中的一个或更多个SDK以及SKD参与监测器作为嵌入式SDK。作为嵌入式SDK的可以嵌入在第三方应用中的一个或更多个SDK以及SKD参与监测器的示例包括AR工具包、集合工具包和登录工具包。AR工具包被配置成使第三方应用的用户能够访问由消息系统提供的AR部件中的一个或更多个AR部件和/或促进由第三方应用的开发者创建新的AR部件。例如,AR工具包可以向第三方应用的用户提供对AR部件的访问,该AR部件检测由数字图像传感器捕获的人的头部位置,并且在检测到的头部位置上方叠加派对帽的图像,使得观看者将看到在摄像装置视图屏幕上呈现为佩戴着派对帽的人。当嵌入式SDK检测到指示增强现实工具包的参与的事件时,例如检测到用户发起的关于相关联的视觉控制的手势时,嵌入式SDK将安装在同一客户端设备处的消息客户端启动至由该消息客户端提供的摄像装置视图屏幕。
集合工具包被配置成使第三方应用的用户能够访问使用户能够将若干内容项例如图像或短视频组合成集合的功能,该集合可以在这些内容项被捕获时进行广播。登录工具包使消息系统的用户能够使用用户关于消息系统的凭证连接至第三方应用。
包括在嵌入式SDK中的SDK参与监测器检测每个应用打开事件,并且以打开事件消息的形式将其报告给消息系统。应用打开事件指示启动应用的操作以及应用的前台化(foregrounding)的操作。出于本说明书的目的,从在客户端设备处执行的应用中移除前台焦点的操作被称为后台化(backgrounding)。将前台焦点恢复到应用的操作被称为前台化。前台化不同于启动应用,因为正在被前台化的应用先前已经被启动,并且正在后台执行。应用打开事件可以例如由以下操作引起:激活来自应用的通知,其中在客户端设备的屏幕处呈现通知;从在客户端设备处的后台中执行的一个或更多个应用的轮播(carousel)中选择应用;或者激活在客户端设备的屏幕处表示应用的图标。
SDK参与监测器监测由日历日期表示的每个24小时时段客户端设备处的应用打开事件的数目。每当SDK参与监测器检测到应用打开事件,SDK参与监测器就更新存储在客户端设备处的日历日期的应用打开事件的计数。在一些示例中,SDK参与监测器基于所更新的应用打开事件的计数生成每日桶(daily bucket)标识符,并且在用于向SDK提供者系统传送的打开事件消息中包括所生成的每日桶标识符而不是所更新的应用打开事件的计数。SDK参与监测器在打开事件消息中包括与应用打开事件相关联的日历日期而不是应用打开事件的时间戳。与应用打开事件相关联的日历日期是由SDK参与监测器以日、月和年的形式生成的。SDK参与监测器在客户端设备处生成日历日期和每日桶标识符。在客户端设备处生成日历日期和每日桶标识符,并且向SDK提供者系统传送每日桶标识符而不是应用打开事件的计数以及传送日历日期而不是应用打开事件的时间戳,有助于保护第三方应用用户的PPI不被泄露给SDK提供者系统,因为SDK提供者系统可以由与提供第三方应用的实体不同的实体来操作。
在一些示例中,每日桶标识符的生成包括:如果所更新的应用打开事件的计数小于第一值,则将每日桶标识符设置为应用打开事件的计数(在通过响应于新检测到的应用打开事件而增加计数来更新应用打开事件的计数之后);以及如果所更新的应用打开事件的计数大于或等于第一值,则将每日桶标识符设置为第二值。例如,如果应用打开事件的计数是10或更少,则SDK参与监测器将每日桶标识符设置为应用打开事件的计数(如果应用打开事件的计数是1,则SDK参与监测器将每日桶标识符设置为1,如果应用打开事件的计数是2,则SDK参与监测器将每日桶标识符设置为2,如果应用打开事件的计数是3,则SDK参与监测器将每日桶标识符设置为3,以此类推直到应用打开事件的计数达到10)。如果应用打开事件的计数大于10,则SDK参与监测器将每日桶标识符设置为某个其他预定的值,例如10或任何其他数字,并且将该值作为每日桶标识符包括在针对该日历日期的每个后续打开事件消息中。应当理解,可以使用各种不同的模式生成每日桶标识符,例如,将不同的每日桶标识符分配给不同的值范围。例如,桶标识符“1”可以用于指示检测到的事件的数目在1与3之间,桶标识符“2”可以用于指示检测到的事件的数目在4与12之间,桶标识符“3”可以用于指示检测到的事件的数目大于12,等等。
打开事件消息可以包括除了每日桶标识符和相关联的日历日期之外的信息,例如第三方应用的标识。在一些示例中,SDK参与监测器还被配置成确定哪些开发工具包被包括在嵌入式SDK中,并且将嵌入式SDK中的一个或更多个开发工具包的相应标识作为打开事件消息的一部分传送给SDK提供者系统。包括在嵌入式SDK中的开发工具包的示例是增强现实(AR)工具包,该增强现实(AR)工具包向第三方应用提供对SDK提供者系统中的AR体验的访问。当包括AR工具包的嵌入式SDK检测到指示AR工具包的参与的事件时,嵌入式SDK将由SDK提供者系统提供的消息客户端启动到由消息客户端提供的摄像装置视图屏幕。
虽然下文在消息系统的背景下描述了SDK参与监测器,但是本文所描述的方法可以有利地用于利用SDK的各种计算机实现的应用中。
联网计算环境
图1是示出用于通过网络交换数据(例如,消息和相关联的内容)的示例系统100的框图。系统100包括客户端设备102的多个实例,其中的每个实例托管包括消息客户端104和第三方应用103的多个应用。第三方应用103被配置成使用户能够访问由第三方系统130提供的功能。
每个消息客户端104经由网络106(例如,因特网)通信地耦接至消息客户端104的其他实例和消息服务器系统108。
消息客户端104被配置成经由网络106与另一消息客户端104以及与消息服务器系统108进行通信并交换数据。在消息客户端104之间以及在消息客户端104与消息服务器系统108之间交换的数据包括功能(例如,用于激活功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息服务器系统108经由网络106向特定消息客户端104提供服务器侧功能。虽然系统100的某些功能在本文中被描述为由消息客户端104或由消息服务器系统108执行,但是某些功能在消息客户端104或消息服务器系统108内的定位可以是设计选择。例如,在技术上可以优选的是:最初将某个技术和功能部署在消息服务器系统108内,但是稍后将该技术和功能迁移至客户端设备102具有足够处理能力的消息客户端104。
消息服务器系统108支持向消息客户端104提供的各种服务和操作。这样的操作包括向消息客户端104发送数据、从消息客户端104接收数据以及对由消息客户端104生成的数据进行处理。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体增强和叠加、消息内容持久性条件、社交网络信息和实况事件信息。通过经由消息客户端104的用户接口(UI)可用的功能来激活和控制系统100内的数据交换。
现在具体地转至消息服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问数据库120。web服务器124耦接至应用服务器112,并且向应用服务器112提供基于web的接口。为此,web服务器124通过超文本传输协议(HTTP)和若干其他相关协议处理传入的网络请求。数据库120存储与由应用服务器112处理的消息相关联的数据,例如,关于特定实体的简档数据。在实体是个人的情况下,简档数据包括例如用户名、通知和隐私设置、以及用户自我报告的年龄和与用户对其简档数据所做更改相关的记录。
应用程序接口(API)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供一组接口(例如,例程和协议),消息客户端104可以调用或查询该组接口以便激活应用服务器112的功能。API服务器110暴露由应用服务器112支持的各种功能,包括:帐户注册;登录功能;经由应用服务器112将消息从特定消息客户端104发送至另一消息客户端104;将媒体文件(例如,图像或视频)从消息客户端104发送至消息服务器114并用于另一消息客户端104的可能访问;打开(例如,与消息客户端104有关的)应用事件;以及由消息服务器系统108提供的开发者工具所支持的供第三方计算机系统使用的各种功能。
应用服务器112托管若干服务器应用和子系统,包括例如消息服务器114、图像处理服务器116以及社交网络服务器122。消息服务器114实现了若干消息处理技术和功能,特别是与包括在从消息客户端104的多个实例接收到的消息中的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。图像处理服务器116专用于执行各种图像处理操作,通常相对于从消息服务器114发送或在消息服务器114处接收的消息的有效载荷内的图像或视频执行各种图像处理操作。社交网络服务器122支持各种社交联网功能和服务,并且使这些功能和服务可用于消息服务器114。
图1中还示出了开发者工具服务器117。开发者工具服务器117维护一个或更多个软件开发者工具包(SDK),所述一个或更多个软件开发者工具包(SDK)使用户能够在他们的应用(也被称为第三方应用)中集成由消息服务器系统108提供的功能中的一些功能。由开发者工具服务器117提供的功能可以经由开发者门户从第三方计算机系统访问,该开发者门户可以经由web浏览器访问。在一些示例中,向第三方计算机系统(例如,第三方系统130)提供对由开发者工具服务器117提供的功能的访问的开发者门户可以被下载至第三方计算机系统,在这种情况下,可以不需要使用web浏览器。第三方系统130被示出为包括开发者门户132。如上所述,开发者门户132可以经由在第三方系统130上执行的web浏览器访问,或者可以被下载至第三方系统130。如上面所提及的,由第三方系统130提供的功能可以由用户经由第三方应用103访问。安装在客户端设备102上的第三方应用103被示出为包括嵌入式SDK 105。嵌入式SDK 105包括上面所描述的SDK参与监测器,并且还包括一个或更多个SDK,每个SDK有助于访问由相关联的SDK提供者系统(即,在该示例中,由消息服务器系统108)提供的选定功能或一组功能。
系统架构
图2是示出根据一些示例的关于系统100的其他细节的框图。具体地,系统100被示出为包括消息客户端104、开发者门户132和应用服务器112。系统100包含若干子系统,这些子系统在客户端侧由消息客户端104和/或开发者门户132支持,并且在服务器侧由应用服务器112支持。这些子系统包括例如短暂定时器系统202、集合管理系统204和增强系统206。
短暂定时器系统202负责迫使由消息客户端104和消息服务器114对内容进行临时或限时访问。短暂定时器系统202包含若干定时器,这些定时器基于与消息或消息集合(例如,故事)相关联的持续时间和显示参数,选择性地实现经由消息客户端104访问消息和相关联的内容(例如,用于呈现和显示)。下面提供关于短暂定时器系统202的操作的其他细节。
集合管理系统204负责管理媒体的组或集合(例如,文本、图像、视频和音频数据的集合)。可以将内容(例如,包括图像、视频、文本和音频的消息)的集合组织成“事件库”或“事件故事”。可以使这样的集合在指定时间段例如在与内容有关的事件的持续时间内可用。例如,可以使与音乐会有关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息客户端104的用户接口发布提供特定集合存在的通知的图标。
此外,集合管理系统204包括策展接口212,该策展接口212使得集合管理者能够管理和策展特定内容集合。例如,策展接口212使得事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些示例中,可以向用户支付补偿以用于将用户生成的内容包括到集合中。在这样的情况下,集合管理系统204进行操作以自动地向这样的用户进行支付以使用他们的内容。
在一些示例中,可以使由集合管理系统204提供的功能对第三方开发者可用,以用于通过开发者工具服务器117将其包括到相关联的第三方应用中。
增强系统206提供使用户能够增强(例如,注释或以其他方式修改或编辑)可能与消息相关联的媒体内容的各种功能。例如,增强系统206提供与生成和发布用于由系统100处理的消息的媒体叠加(media overlay)有关的功能。媒体叠加可以存储在数据库120中并通过数据库服务器118进行访问。
在一些示例中,增强系统206被配置成提供对AR部件的访问,所述AR部件可以使用适合于应用开发的编程语言例如JavaScript或Java来实现,并且在消息服务器系统中由相应的AR部件标识符来标识。AR部件可以包括或者引用对应于图像修改、过滤、媒体叠加、变换等的各种图像处理操作。这些图像处理操作可以提供真实世界环境的交互体验,其中由数字图像传感器或摄像装置捕获的对象、表面、背景、照明等由计算机生成的感知信息增强。在这种情况下,AR部件包括将选定的增强现实体验应用于图像或视频馈送所需的数据、参数和其他资产的集合。
在一些实施方式中,AR部件包括被配置成以某种方式修改或变换在客户端设备的图形用户界面(GUI)内呈现的图像数据的模块。例如,可以使用AR部件数据对内容图像执行复杂的添加或变换,例如在视频剪辑中向人的头部添加兔子耳朵、向视频剪辑添加具有背景颜色的浮动心、改变视频剪辑内的人的特征的比例、或者许多其他这样的变换。这包括实时修改以及对所存储的内容的修改两者,所述实时修改在使用与客户端设备相关联的摄像装置捕获图像并且然后在客户端设备的屏幕上显示图像时利用AR部件修改对图像进行修改,所述所存储的内容例如可以使用AR部件进行修改的图库中的视频剪辑。
可以由AR部件提供的各种增强现实功能包括检测对象(例如,脸、手、身体、猫、狗、表面、对象等)、当这些对象离开、进入视频帧中的视场以及在视频帧中的视场周围移动时对其进行跟踪、以及在跟踪这些对象时对其进行修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同的方法。例如,一些实施方式可以涉及生成一个或多个对象的3D网格模型,并且在视频内使用模型的变换和动画纹理来实现变换。在其他实施方式中,可以使用对对象上的点的跟踪来将图像或纹理放置在所跟踪的位置处,该图像或纹理可以是二维或三维的。在另外的实施方式中,可以使用视频帧的神经网络分析来将图像、模型或纹理放置在内容(例如,图像或视频的帧)中。因此,AR部件数据既指用于在内容中创建变换的图像、模型和纹理,也指利用对象检测、跟踪和放置实现这样的转换所需要的附加建模和分析信息。
在一些示例中,可以使增强系统206所提供的功能对第三方开发者可用,以用于通过开发者工具服务器117将其包括到第三方应用中。
数据架构
图3是示出根据某些示例的可以存储在消息服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示为包括若干表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
数据库120包括存储在消息表302内的消息数据。对于任何特定的一条消息,该消息数据包括至少消息发送者数据、消息接收方(或接收者)数据和有效载荷。消息的有效载荷可以包括利用嵌入在第三方应用中的SDK生成的内容。下面参照图4描述关于可以被包括在消息中并且被包括在存储在消息表302中的消息数据内的信息的其他细节。
实体表304存储实体数据,并且(例如,参考地)链接至实体图306和简档数据308。在实体表304内针对其维护记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论实体类型如何,消息服务器系统108存储关于其的数据的任何实体可以是识别的实体。每个实体被提供有唯一标识符以及实体类型标识符(未示出)。
实体图306存储关于实体之间的关系和关联的信息。仅举例而言,这样的关系可以是社交的、职业的(例如,在共同的公司或组织工作)、基于兴趣的或基于活动的。参考由AR部件提供的功能,实体图306存储以下信息:该信息可以在AR部件被配置成允许使用除了控制相关联的客户端设备的用户的肖像图像之外的用户的肖像图像来修改目标媒体内容对象的情况下,用于确定连接至表示控制相关联的客户端设备的用户的简档的另一简档。如上面所提及的,用户的肖像图像可以存储在消息系统中表示用户的用户简档中。
简档数据308存储关于特定实体的多种类型的简档数据。基于由特定实体指定的隐私设置,简档数据308可以被选择性地使用并呈现给消息系统100的其他用户。在实体是个人的情况下,简档数据308包括例如用户名、电话号码、地址、设置(例如,通知和隐私设置)、以及用户选择的化身表示(或这样的化身表示的集合)。然后,特定用户可以将这些化身表示中的一个或更多个化身表示选择性地包括在经由消息系统100传送的消息的内容内以及在由消息客户端104向其他用户显示的地图界面上。化身表示的集合可以包括“状态化身”,其呈现用户可以选择在特定时间传达的状态或活动的图解表示。
数据库120还在增强表310中存储增强数据。增强数据与视频(其数据存储在视频表314中)和图像(其数据存储在图像表316中)相关联并应用于视频和图像。在一些示例中,增强数据由包括AR部件的各种AR部件使用。增强数据的示例是目标媒体内容对象,如上面所描述的,目标媒体内容对象可以与AR部件相关联并用于为用户生成AR体验。
增强数据的另一示例是可以在AR部件中使用以实现图像变换的增强现实(AR)工具。图像变换包括在使用客户端设备102的数字图像传感器捕获图像(例如,视频帧)时修改该图像的实时修改。修改后的图像与修改一起显示在客户端设备102的屏幕上。AR工具还可以用于将修改应用于所存储的内容,例如存储在图库中的视频剪辑或静态图像。在可以访问多个AR工具的客户端设备102中,用户可以将不同的AR工具(例如,通过使用被配置成利用不同AR工具的不同AR部件)应用于单个视频剪辑,以查看不同的AR工具将如何修改同一视频剪辑。例如,通过为相同的捕获内容选择不同的AR工具,可以将应用不同伪随机移动模型的多个AR工具应用于相同的捕获内容。类似地,实时视频捕获可以与所示出的修改一起使用,以示出当前由客户端设备102所提供的摄像装置的数字图像传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以仅显示在屏幕上而不存储在存储器中,或者由数字图像传感器捕获的内容可以在有或没有修改(或两者)的情况下被记录并存储在存储器中。消息客户端104可以被配置成包括预览功能,该预览功能可以同时在显示器中的不同窗口内示出由不同AR工具产生的修改将看起来如何。例如,这可以使用户能够查看同时呈现在显示器上的具有不同伪随机动画的多个窗口。
在一些示例中,当与要变换的内容一起选择特定修改时,要变换的元素由计算设备识别,并且然后如果要变换的元素存在于视频的帧中,则要变换的元素被检测和跟踪。根据修改请求来修改对象的元素,从而变换视频流的帧。对于不同种类的变换,可以通过不同的方法执行对视频流的帧的变换。例如,对于主要是指改变对象的元素的形式的帧的变换,计算对象的每个元素的特征点(例如,使用主动形状模型(ASM)或其他已知方法)。然后,针对对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,每个元素的提及的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求针对每个元素生成第一点的第一集合,并且基于该第一点的集合和修改请求针对每个元素生成第二点的集合。然后,可以通过基于第一点的集合和第二点的集合以及网格修改对象的元素,来变换视频流的帧。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲经修改的对象的背景。
在一些示例中,可以通过计算对象的每个元素的特征点并基于所计算的特征点生成网格来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,并且然后生成基于这些点的各种区域。然后通过将每个元素的区域与至少一个元素中的每一个元素的位置对准来跟踪对象的元素,并且可以基于修改请求来修改区域的属性,从而变换视频流的帧。取决于具体的修改请求,所提及的区域的属性可以以不同的方式进行变换。这样的修改可以涉及:改变区域的颜色;从视频流的帧中移除区域的至少某个部分;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为控制点,以用于确定用于模型动画的选项的整个状态空间。
故事表312存储与消息和相关联的图像、视频或音频数据的集合有关的数据,这些数据被编译成集合(例如,故事或图库)。特定集合的创建可以由特定用户(例如,在实体表304中维护其记录的每个用户)发起。用户可以以已由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息客户端104的用户接口可以包括用户可选择的图标,以使得发送用户能够将特定内容添加到他或她的个人故事。在一些示例中,故事表312存储使用AR部件创建的一个或更多个图像或视频。
集合还可以构成作为来自多个用户的内容的集合的“现场故事”,该内容的集合是手动地、自动地或使用手动技术和自动技术的组合创建的。例如,“现场故事”可以构成来自不同定位和事件的用户提交内容的策展流。可以例如经由消息客户端104的用户接口向其客户端设备启用了定位服务并且在特定时间处于共同定位事件处的用户呈现选项,以将内容贡献给特定的现场故事。可以由消息客户端104基于他或她的定位向用户标识现场故事。最终结果是从社群角度讲述的“现场故事”。
另一类型的内容集合被称为“定位故事”,其使得其客户端设备102位于特定地理定位(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些示例中,对定位故事的贡献可能需要二级认证,以验证最终用户属于特定组织或其他实体(例如,是大学校园中的学生)。
如上面所提及的,视频表314存储视频数据,在一个示例中,该视频数据与其记录维护在消息表302内的消息相关联。类似地,图像表316存储与其消息数据存储在实体表304中的消息相关联的图像数据。实体表304可以使来自增强表310的各种增强与存储在图像表316和视频表314中的各种图像和视频相关联。
数据通信架构
图4是示出根据一些示例的消息400的结构的示意图,消息400由消息客户端104生成,以用于传送至另外的消息客户端104或消息服务器114。特定消息400的内容用于填充存储在数据库120内的消息表302,该消息表302可由消息服务器114访问。类似地,消息400的内容被存储在存储器中作为客户端设备102或应用服务器112的“传输中”或“飞行中”数据。在一些示例中,消息400的内容包括使用AR部件创建的图像或视频。消息400被示出为包括以下示例组成部分:
·消息标识符402:识别消息400的唯一标识符。
·消息文本有效载荷404:要由用户经由客户端设备102的用户接口生成并且包括在消息400中的文本。
·消息图像有效载荷406:由客户端设备102的摄像装置部件捕获的或从客户端设备102的存储器部件中检索到的并且包括在消息400中的图像数据。用于发送或接收的消息400的图像数据可以存储在图像表316中。在一些示例中,用于发送或接收的消息400的图像数据是利用嵌入在第三方应用中的SDK增强的图像。
·消息视频有效载荷408:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的并且包括在消息400中的视频数据。用于发送或接收的消息400的视频数据可以存储在视频表314中。
·消息音频有效载荷410:由麦克风捕获的或从客户端设备102的存储器部件检索到的并且包括在消息400中的音频数据。
·消息增强数据412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410的增强的增强数据(例如,过滤器、贴纸或其他注释或增强)。用于发送或接收的消息400的增强数据可以存储在增强表310中。
·消息持续时间参数414:参数值,其指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将经由消息客户端104呈现给用户或使其可由用户访问的以秒为单位的时间量。
·消息地理定位参数416:与消息的内容有效载荷相关联的地理定位数据(例如,纬度坐标和经度坐标)。在有效载荷中可以包括多个消息地理定位参数416值,这些参数值中的每个参数值与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像,或消息视频有效载荷408中的特定视频)相关联。
·消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,在故事表312中标识的“故事”)的标识符值。例如,可以使用标识符值将消息图像有效载荷406内的多个图像各自与多个内容集合相关联。
·消息标签420:每个消息400可以用多个标签来标记,这些标签中的每个标签都指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如,狮子)的情况下,可以在消息标签420内包括指示相关动物的标签值。标签值可以基于用户输入手动地生成,或者可以使用例如图像识别自动地生成。
·消息发送者标识符422:指示在其上生成消息400以及从其发送消息400的客户端设备102的用户的标识符(例如,消息系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符424:指示消息400寻址到的客户端设备102的用户的标识符(例如,消息系统标识符、电子邮件地址或设备标识符)。
消息400的各种组成部分的内容(例如,值)可以是指向表中的存储内容数据值的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表316内的位置(或位置的地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表314内的数据,存储在消息增强412内的值可以指向存储在增强表310中的数据,存储在消息故事标识符418内的值可以指向存储在故事表312中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表304中的用户记录。
基于时间的访问限制架构
图5是示出访问限制处理500的示意图,根据该访问限制处理,对内容(例如,短暂消息502以及相关联的数据的多媒体有效载荷)或内容集合(例如,短暂消息组504)的访问可以是时间受限的(例如,短暂的)。在一些示例中,短暂消息502的内容包括利用嵌入在第三方应用中的SDK增强的图像。
短暂消息502被示出为与消息持续时间参数506相关联,该消息持续时间参数506的值确定将由消息客户端104向短暂消息502的接收用户显示短暂消息502的时间量。在一个示例中,取决于发送用户使用消息持续时间参数506指定的时间量,可由接收用户查看短暂消息502最多长达10秒。
消息持续时间参数506和消息接收者标识符424被示出为是消息定时器512的输入,该消息定时器512负责确定向由消息接收者标识符424标识的特定接收用户示出短暂消息502的时间量。特别地,将仅在由消息持续时间参数506的值确定的时间段内向相关的接收用户示出短暂消息502。消息定时器512被示出为向更一般化的短暂定时器系统202提供输出,该短暂定时器系统202负责向接收用户显示内容(例如,短暂消息502)的总体定时。
在图5中短暂消息502被示出为包括在短暂消息组504(例如,个人故事或事件故事中的消息的集合)内。短暂消息组504具有相关联的组持续时间参数508,该组持续时间参数508的值确定短暂消息组504被呈现并且可由消息系统100的用户访问的持续时间。例如,组持续时间参数508可以是音乐会的持续时间,其中短暂消息组504是与该音乐会有关的内容的集合。可替选地,用户(拥有用户或者策展者用户)可以在执行短暂消息组504的设置和创建时指定组持续时间参数508的值。
此外,短暂消息组504内的每个短暂消息502具有相关联的组参与参数510,该组参与参数510的值确定在短暂消息组504的情境内可访问短暂消息502的持续时间。因此,在短暂消息组504本身根据组持续时间参数508过期之前,特定的短暂消息组504可以在短暂消息组504的情境内“过期”并且变得不可访问。组持续时间参数508、组参与参数510和消息接收者标识符424各自向组定时器514提供输入,该组定时器514首先在操作上确定短暂消息组504的特定短暂消息502是否将被显示给特定接收用户,并且如果是,则确定显示多长时间。注意,由于消息接收者标识符424,短暂消息组504也知道特定接收用户的身份。
因此,组定时器514在操作上控制相关联的短暂消息组504以及包括在短暂消息组504中的单独的短暂消息502的整体寿命。在一个示例中,短暂消息组504内的每个短暂消息502在由组持续时间参数508指定的时间段内保持可查看和可访问。在另一示例中,在短暂消息组504的情境内,某个短暂消息502可以基于组参与参数510而过期。注意,即使在短暂消息组504的情境内,消息持续时间参数506也仍然可以确定向接收用户显示特定短暂消息502的持续时间。因此,消息持续时间参数506确定向接收用户显示特定短暂消息502的持续时间,而不管接收用户是在短暂消息组504的情境内还是在短暂消息组504的情境外查看该短暂消息502。
此外,短暂定时器系统202可以基于确定已经超过相关联的组参与参数510而在操作上从短暂消息组504中移除该特定的短暂消息502。例如,当发送用户已经建立了从发布起24小时的组参与参数510时,短暂定时器系统202将在指定的24小时之后从短暂消息组504中移除相关的短暂消息502。当针对短暂消息组504内的每个短暂消息502的组参与参数510已经过期时,或者当短暂消息组504本身根据组持续时间参数508已经过期时,短暂定时器系统202也进行操作以移除短暂消息组504。
在某些使用情况下,特定短暂消息组504的创建者可以指定无限期的组持续时间参数508。在这种情况下,短暂消息组504内最后剩余的短暂消息502的组参与参数510的过期将确定短暂消息组504本身何时过期。在这种情况下,添加至短暂消息组504的具有新的组参与参数510的新的短暂消息502,有效地将短暂消息组504的寿命延长至等于组参与参数510的值。
响应于短暂定时器系统202确定短暂消息组504已经过期(例如,不再是可访问的),短暂定时器系统202与消息系统100(以及例如,特别是消息客户端104)进行通信,以使与相关的短暂消息组504相关联的标记(例如,图标)不再显示在消息客户端104的用户界面内。类似地,当短暂定时器系统202确定特定短暂消息502的消息持续时间参数506已经过期时,短暂定时器系统202使消息客户端104不再显示与短暂消息502相关联的标记(例如,图标或文本标识)。
嵌入式SDK
图6是根据一些示例的嵌入式SDK 600的图解表示。如图6所示,嵌入式SDK 600包括SDK参与监测器610和若干开发工具包——增强现实工具包620、集合工具包630和登录工具包640。
增强现实工具包620被配置成使第三方应用的用户能够访问由参照图2描述的增强系统206提供的功能中的至少一些功能。例如,增强现实工具包620可以向第三方应用的用户提供对AR部件的访问,该AR部件检测由数字图像传感器捕获的人的头部位置,并且在检测到的头部位置上方叠加派对帽的图像,使得观看者将看到在摄像装置视图屏幕上呈现为佩戴着派对帽的人。当嵌入式SDK 600检测到指示增强现实工具包620的参与的事件(例如,用户发起的关于相关联的视觉控制的手势)时,嵌入式SDK 600将消息客户端104启动至由消息客户端104提供的摄像装置视图屏幕。
集合工具包630被配置成使第三方应用的用户能够访问以下功能,该功能使用户能够将若干内容项(例如图像或短视频)组合成可以在这些内容项被捕获时进行广播的集合。登录工具包640被配置成使第三方应用的用户能够使用该用户关于消息系统的凭证连接至第三方应用。
SDK参与监测器610包括事件检测器612、日历日期生成器614和每日会话桶构建器616。事件检测器612检测每个应用打开事件,并且将应用打开事件以打开事件消息的形式报告给SDK提供者系统。如上所述,应用打开事件指示启动应用的操作,以及前台化应用的操作。日历日期生成器614以日、月和年的形式生成与应用打开事件相关联的日历日期。每当事件检测器612检测到应用打开事件时,每日会话桶构建器616就更新存储在客户端设备处的针对该日历日期的应用打开事件的计数,并且基于所更新的应用打开事件的计数生成每日桶标识符,并将所生成的每日桶标识符包括在打开事件消息中,以用于传送至SDK提供者系统。参照图7对由嵌入式SDK 600执行的一些操作进行描述。
用于监测嵌入式SDK的参与的方法
图7是根据一些示例的用于监测嵌入式SDK的参与的方法的流程图。虽然所描述的流程图可以将操作示出为顺序处理,但是操作中的许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。在其操作完成时,处理终止。处理可以对应于方法、过程、算法等。方法的操作可以全部或部分地执行、可以与其他方法中的操作中的一些或全部操作结合执行、并且可以通过任何数目的不同系统例如本文所描述的系统或其任何部分(例如,包括在任何系统中的处理器)来执行。
在各种示例中,一些或全部处理逻辑驻留在客户端设备102处。当在嵌入在第三方应用中的SDK中检测到指示在客户端设备处打开第三方应用的应用打开事件时,方法700在操作710处开始。在操作720处,确定检测到的应用打开事件的日历日期。在操作730处,针对该日历日期更新应用打开事件的计数,并且在操作740处基于所更新的应用打开事件的计数生成每日桶标识符。在操作750处,如上面所描述的,嵌入式SDK以打开事件消息的形式向SDK提供者系统发送日历日期和桶标识符。
机器架构
图8是机器800的图解表示,在该机器800内,可以执行用于使机器800执行本文所讨论的方法中的任何一种或更多种方法的指令808(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令808可以使机器800执行本文所描述的方法中的任何一种或更多种方法。指令808将通用的非编程的机器800转换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器800。机器800可以作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器800可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器800可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器800采取的动作的指令808的任何机器。此外,虽然仅示出了单个机器800,但是术语“机器”还应被认为包括单独地或联合地执行指令808以执行本文所讨论的方法中的任何一种或更多种方法的机器的集合。例如,机器800可以包括客户端设备102或者形成消息服务器系统108的一部分的多个服务器设备中的任何一个。在一些示例中,机器800还可以包括客户端系统和服务器系统两者,其中在服务器侧执行特定方法或算法的某些操作,并且在客户端侧执行特定方法或算法的某些操作。
机器800可以包括处理器802、存储器804和输入/输出I/O部件838,所述处理器802、存储器804和输入/输出I/O部件838可以被配置成经由总线840彼此通信。在示例中,处理器802(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如执行指令808的处理器806和处理器810。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图8示出了多个处理器802,但是机器800可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
存储器804包括主存储器812、静态存储器814和存储单元816,其均可由处理器802经由总线840访问。主存储器804、静态存储器814和存储单元816存储体现本文所描述的方法或功能中的任何一种或更多种方法或功能的指令808。指令808在其被机器800执行期间还可以完全地或部分地驻留在主存储器812内、在静态存储器814内、在存储单元816内的机器可读介质818内、在处理器802中的至少一个处理器内(例如,在处理器的高速缓存存储器内)、或者在其任何合适的组合内。
I/O部件838可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定I/O部件838将取决于机器的类型。例如,诸如移动电话的便携式机器可以包括触摸输入设备或其他这样的输入机构,而无头(headless)服务器机器可能将不包括这样的触摸输入设备。应当理解,I/O部件838可以包括图8中未示出的许多其他部件。在各种示例中,I/O部件838可以包括用户输出部件824和用户输入部件826。用户输出部件824可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号生成器等。用户输入部件826可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的定位和力的触摸屏或者其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例中,I/O部件838可以包括生物计量部件828、运动部件830、环境部件832或位置部件834以及各种各样的其他部件。例如,生物计量部件828包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件830包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
环境部件832包括例如一个或更多个摄像装置(具有静止图像/照片和视频能力)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)、或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。
关于摄像装置,客户端设备102可以具有摄像装置系统,该摄像装置系统包括例如客户端设备102的前表面上的前置摄像装置和客户端设备102的后表面上的后置摄像装置。前置摄像装置可以例如用于捕获客户端设备102的用户的静止图像和视频(例如,“自拍”),然后可以利用上面所描述的增强数据(例如,过滤器)对所述静止图像和视频进行增强。后置摄像装置可以例如用于以更传统的摄像装置模式捕获静止图像和视频,其中这些图像类似地利用增强数据进行增强。除了前置摄像装置和后置摄像装置之外,客户端设备102还可以包括用于捕获360°照片和视频的360°摄像装置。
此外,客户端设备102的摄像装置系统可以包括双后置摄像装置(例如,主摄像装置以及深度感测摄像装置),或者甚至在客户端设备102的前后侧上包括三重、四重或五重后置摄像装置配置。例如,这些多摄像装置系统可以包括广角摄像装置、超广角摄像装置、长焦摄像装置、微距摄像装置和深度传感器。
位置部件834包括定位传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测气压的高度计或气压计,根据该气压可以得到海拔)、取向传感器部件(例如,磁力计)等。
可以使用各种技术来实现通信。I/O部件838还包括通信部件836,该通信部件836能够进行操作以经由相应的耦接或连接将机器800耦接至网络820或设备822。例如,通信部件836可以包括用于与网络820对接的网络接口部件或另一合适的设备。在其他示例中,通信部件836可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、
Figure BDA0003988599880000201
部件(例如,
Figure BDA0003988599880000202
低功耗)、
Figure BDA0003988599880000203
部件和经由其他模态提供通信的其他通信部件。设备822可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件836可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件836可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品码(UPC)条形码的一维条形码、诸如快速响应(QR)码的多维条形码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF418、超码(Ultra Code)、UCC RSS-2D条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别经标记的音频信号的麦克风)。另外,可以经由通信部件836得到各种信息,例如经由因特网协议(IP)地理定位的定位、经由
Figure BDA0003988599880000211
信号三角测量的定位、经由检测可以指示特定定位的NFC信标信号的定位等。
各种存储器(例如,主存储器812、静态存储器814以及处理器802的存储器)以及存储单元816可以存储由本文所描述的方法或功能中的任何一种或更多种方法或功能实现或使用的一组或更多组指令和数据结构(例如,软件)。在由处理器802执行的情况下,这些指令(例如,指令808)使得各种操作实现所公开的示例。
可以经由网络接口设备(例如,通信部件836中包括的网络接口部件),使用传输介质并且使用若干公知的传输协议中的任意一种传输协议(例如,超文本传输协议(HTTP)),通过网络820来发送或接收指令808。类似地,可以使用传输介质经由与设备822的耦接(例如,对等耦接)来发送或接收指令808。
术语表
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以有助于这些指令的通信。可以使用传输介质经由网络接口设备来通过网络发送或接收指令。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0003988599880000212
网络、其他类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电业务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远距离协议或其他数据传输技术。
“部件”是指设备、物理实体或具有由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术来定义的边界的逻辑。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,实施在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置为进行操作以执行如本文所描述的某些操作的硬件部件。也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,硬件部件就成为被独特地定制成执行所配置的功能的特定机器(或机器的特定部件),而不再是通用处理器。应当理解,机械地、在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中实现硬件部件的决定可以由成本和时间考虑来驱动。因此,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文所描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置成为专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。因此,软件将一个或多个特定处理器配置成例如在一个时刻处构成特定硬件部件,并且在不同的时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在所述存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在其通信地耦接至的存储器设备中。然后,另一硬件部件可以在随后的时间访问存储器设备以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文所描述的示例方法的各种操作可以至少部分地由被临时地配置(例如,由软件)或永久地配置成执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文所描述的一个或更多个操作或功能的处理器实现的部件。如本文所使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文所描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器802或者处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作可经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是跨多个机器部署。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理定位中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨多个地理定位分布。
“计算机可读存储介质”是指机器存储介质和传输介质两者。因此,术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物并且可以在本公开内容中可互换地使用。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的高速缓存和服务器)。因此,该术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以可互换地使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,所述载波、调制数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且“信号介质”包括数字或模拟通信信号或其他无形介质以有助于软件或数据的传送。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特性中的一个或更多个特性以对信号中的信息进行编码的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的事物并且可以在本公开内容中可互换地使用。

Claims (20)

1.一种方法,包括:
在嵌入在第三方应用中的软件开发工具包(SDK)中,检测指示在客户端设备处打开所述第三方应用的应用打开事件,所述SDK由与支持所述第三方应用的第三方提供者系统不同的SDK提供者系统提供;
响应于检测到所述应用打开事件,确定所述应用打开事件的日历日期,针对所述日历日期更新应用打开事件的计数,并且基于所更新的应用打开事件的计数生成每日桶标识符;以及
向所述SDK提供者系统发送打开事件消息,所述打开事件消息包括所述日历日期和所述桶标识符。
2.根据权利要求1所述的方法,其中,打开所述第三方应用包括在所述客户端设备处启动所述第三方应用。
3.根据权利要求1所述的方法,其中,打开所述第三方应用包括将所述第三方应用置于所述客户端设备的屏幕的前台。
4.根据权利要求1所述的方法,其中,生成所述每日桶标识符包括:如果所更新的应用打开事件的计数小于第一值,则将所述每日桶标识符设置为所更新的应用打开事件的计数。
5.根据权利要求4所述的方法,其中,生成所述每日桶标识符包括:如果所更新的应用打开事件的计数大于或等于所述第一值,则将所述每日桶标识符设置为第二值。
6.根据权利要求1所述的方法,其中,所述打开事件消息包括所述第三方应用的标识。
7.根据权利要求1所述的方法,其中,所述打开事件消息包括在所嵌入的SDK中的一个或更多个开发工具包的相应标识。
8.根据权利要求7所述的方法,其中,所述一个或更多个开发工具包中的增强现实(AR)工具包向所述第三方应用提供对所述SDK提供者系统中的AR体验的访问。
9.根据权利要求8所述的方法,包括:在所嵌入的SDK中检测指示所述AR工具包的参与的事件,并且作为响应,将由所述SDK提供者系统支持的消息客户端启动至由所述消息客户端提供的摄像装置视图屏幕。
10.根据权利要求1所述的方法,其中,确定所述应用打开事件的日历日期、针对所述日历日期更新应用打开事件的计数以及生成所述每日桶标识符是在所述客户端设备处执行的。
11.一种系统,包括:
一个或更多个处理器;以及
包括指令的非暂态计算机可读存储介质,所述指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
在嵌入在第三方应用中的软件开发工具包(SDK)中,检测指示在客户端设备处打开所述第三方应用的应用打开事件,所述SDK由与支持所述第三方应用的第三方提供者系统不同的SDK提供者系统提供;
响应于检测到所述应用打开事件,确定所述应用打开事件的日历日期,针对所述日历日期更新应用打开事件的计数,并且基于所更新的应用打开事件的计数生成每日桶标识符;以及
向所述SDK提供者系统发送打开事件消息,所述打开事件消息包括所述日历日期和所述桶标识符。
12.根据权利要求11所述的系统,其中,打开所述第三方应用包括在所述客户端设备处启动所述第三方应用。
13.根据权利要求11所述的系统,其中,打开所述第三方应用包括将所述第三方应用置于所述客户端设备的屏幕的前台。
14.根据权利要求11所述的系统,其中,生成所述每日桶标识符包括:如果所更新的应用打开事件的计数小于第一值,则将所述每日桶标识符设置为所更新的应用打开事件的计数。
15.根据权利要求14所述的系统,其中,生成所述每日桶标识符包括:如果所更新的应用打开事件的计数大于或等于所述第一值,则将所述每日桶标识符设置为第二值。
16.根据权利要求11所述的系统,其中,所述打开事件消息包括所述第三方应用的标识。
17.根据权利要求11所述的系统,其中,所述打开事件消息包括在所嵌入的SDK中的一个或更多个开发工具包的相应标识。
18.根据权利要求17所述的系统,其中,所述一个或更多个开发工具包中的增强现实(AR)工具包向所述第三方应用提供对所述SDK提供者系统中的AR体验的访问。
19.根据权利要求18所述的系统,其中,所述一个或更多个处理器执行的指令所引起的操作还包括:
检测指示所述AR工具包的参与的事件,并且作为响应,将由所述SDK提供者系统支持的消息客户端启动至由所述消息客户端提供的摄像装置视图屏幕。
20.一种具有指令数据的机器可读非暂态存储介质,所述指令数据能够由机器执行以使所述机器执行操作,所述操作包括:
在嵌入在第三方应用中的软件开发工具包(SDK)中,检测指示在客户端设备处打开所述第三方应用的应用打开事件,所述SDK由与支持所述第三方应用的第三方提供者系统不同的SDK提供者系统提供;
响应于检测到所述应用打开事件,确定所述应用打开事件的日历日期,针对所述日历日期更新应用打开事件的计数,并且基于所更新的应用打开事件的计数生成每日桶标识符;以及
向所述SDK提供者系统发送打开事件消息,所述打开事件消息包括所述日历日期和所述桶标识符。
CN202180041351.5A 2020-06-10 2021-06-02 软件开发工具包参与监测器 Pending CN115698946A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063037512P 2020-06-10 2020-06-10
US63/037,512 2020-06-10
US17/212,584 2021-03-25
US17/212,584 US11579847B2 (en) 2020-06-10 2021-03-25 Software development kit engagement monitor
PCT/US2021/035383 WO2021252235A1 (en) 2020-06-10 2021-06-02 Software development kit engagement monitor

Publications (1)

Publication Number Publication Date
CN115698946A true CN115698946A (zh) 2023-02-03

Family

ID=78825430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180041351.5A Pending CN115698946A (zh) 2020-06-10 2021-06-02 软件开发工具包参与监测器

Country Status (5)

Country Link
US (2) US11579847B2 (zh)
EP (1) EP4165504A1 (zh)
KR (1) KR20230020543A (zh)
CN (1) CN115698946A (zh)
WO (1) WO2021252235A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579847B2 (en) 2020-06-10 2023-02-14 Snap Inc. Software development kit engagement monitor
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
CN114666098A (zh) * 2022-02-28 2022-06-24 重庆趣链数字科技有限公司 一种移动端无侵入式事件监听通用上链机制
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488489A (zh) * 2013-09-30 2014-01-01 乐视网信息技术(北京)股份有限公司 一种数据处理方法及装置
US20160087868A1 (en) * 2014-09-19 2016-03-24 Splunk Inc. Injecting Custom Classes In Application Code To Facilitate Network Traffic Monitoring
US20170178253A1 (en) * 2015-12-19 2017-06-22 Linkedin Corporation User data store for online advertisement events
KR20180037342A (ko) * 2016-10-04 2018-04-12 주식회사 리나소프트 어플리케이션 에러 모니터링 및 통계관리 서비스 및 방법
WO2018153207A1 (zh) * 2017-02-23 2018-08-30 腾讯科技(深圳)有限公司 数据处理方法、服务器、终端及系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972449B2 (en) * 2005-12-29 2015-03-03 Nextlabs, Inc. Preventing conflicts of interests between two or more groups
US8612582B2 (en) * 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8199507B2 (en) * 2008-12-19 2012-06-12 Openpeak Inc. Telephony and digital media services device
US8745213B2 (en) * 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8964298B2 (en) * 2010-02-28 2015-02-24 Microsoft Corporation Video display modification based on sensor input for a see-through near-to-eye display
US20130278631A1 (en) * 2010-02-28 2013-10-24 Osterhout Group, Inc. 3d positioning of augmented reality information
US9292758B2 (en) * 2012-05-14 2016-03-22 Sphero, Inc. Augmentation of elements in data content
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US20150007145A1 (en) * 2013-07-01 2015-01-01 Samsung Electronics Co., Ltd. Computing system with instrumentation mechanism and capture mechanism and method of operation thereof
US9923953B2 (en) * 2013-07-31 2018-03-20 Adenda Media Inc. Extending mobile applications to the lock screen of a mobile device
US20160171540A1 (en) * 2014-12-12 2016-06-16 Suryanarayana MANGIPUDI Dynamic Omnichannel Relevant Content And Services Targeting In Real Time
US10084865B2 (en) * 2015-02-26 2018-09-25 Urban Airship, Inc. Mobile event notifications
US10200486B2 (en) * 2015-02-26 2019-02-05 Urban Airship, Inc. Mobile event notifications for network enabled objects
CN107145489B (zh) 2016-03-01 2020-12-01 阿里巴巴集团控股有限公司 一种基于云平台的客户端应用的信息统计方法和装置
US10785327B2 (en) 2016-06-02 2020-09-22 Google Llc Client device application interaction monitoring
US20180121461A1 (en) * 2016-10-31 2018-05-03 Facebook, Inc. Methods and Systems for Deduplicating Redundant Usage Data for an Application
KR102330829B1 (ko) * 2017-03-27 2021-11-24 삼성전자주식회사 전자 장치에서 증강현실 기능 제공 방법 및 장치
US10455378B2 (en) * 2017-05-09 2019-10-22 ROKO Labs, LLC System and method for generating analytics for conversations within applications
EP3619629A4 (en) * 2017-05-10 2020-12-09 Embee Mobile, Inc. SYSTEM AND METHOD FOR DETECTING MOBILE BEHAVIOR, USE OR CONTENT EXPOSURE
CA3040625C (en) 2017-07-28 2023-09-05 4Iiii Innovations Inc. Systems and methods for time based remote control of product functionality
US20200264859A1 (en) * 2017-09-19 2020-08-20 Christopher Jones System and Method for Tracking Application Data
US10489951B2 (en) * 2017-09-29 2019-11-26 Qualcomm Incorporated Display of a live scene and auxiliary object
WO2019171237A1 (en) * 2018-03-05 2019-09-12 Tensera Networks Ltd. Application preloading in the presence of user actions
US10579245B1 (en) * 2018-09-21 2020-03-03 Mid-Atlantic Door Group, Inc. Apparatuses and methods for graphical user interface display to increase completeness and accuracy of measured parameter values for installation of garage doors
CN112956157B (zh) * 2019-01-29 2023-03-14 算话智能科技有限公司 追踪客户端设备事件的系统和方法
US11050699B2 (en) * 2019-08-06 2021-06-29 Airship Group, Inc. Cross-channel orchestration of messages
US11074065B2 (en) * 2019-12-06 2021-07-27 Salesforce.Com, Inc. Rule-based dynamic command triggers in mobile applications
US11579847B2 (en) 2020-06-10 2023-02-14 Snap Inc. Software development kit engagement monitor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488489A (zh) * 2013-09-30 2014-01-01 乐视网信息技术(北京)股份有限公司 一种数据处理方法及装置
US20160087868A1 (en) * 2014-09-19 2016-03-24 Splunk Inc. Injecting Custom Classes In Application Code To Facilitate Network Traffic Monitoring
US20170178253A1 (en) * 2015-12-19 2017-06-22 Linkedin Corporation User data store for online advertisement events
KR20180037342A (ko) * 2016-10-04 2018-04-12 주식회사 리나소프트 어플리케이션 에러 모니터링 및 통계관리 서비스 및 방법
WO2018153207A1 (zh) * 2017-02-23 2018-08-30 腾讯科技(深圳)有限公司 数据处理方法、服务器、终端及系统

Also Published As

Publication number Publication date
US20230168865A1 (en) 2023-06-01
US11579847B2 (en) 2023-02-14
WO2021252235A1 (en) 2021-12-16
EP4165504A1 (en) 2023-04-19
US20210389932A1 (en) 2021-12-16
KR20230020543A (ko) 2023-02-10

Similar Documents

Publication Publication Date Title
KR102495686B1 (ko) 지오-펜스 평가 시스템
CN110300951B (zh) 媒体项附接系统
US11579847B2 (en) Software development kit engagement monitor
CN115699703A (zh) 动态增强现实组件
US11805084B2 (en) Bidirectional bridge for web view
US11869164B2 (en) Using portrait images in augmented reality components
CN116547717A (zh) 面部动画合成
US11743340B2 (en) Deep linking to augmented reality components
CN116458150A (zh) 屏幕记录摄像装置模式
CN117561719A (zh) 取景器环形闪光灯
US11500454B2 (en) Body UI for augmented reality components
CN116349220A (zh) 实时视频编辑
CN116710895A (zh) 用于增强现实组件的身体ui
WO2022146729A1 (en) Body ui for augmented reality components
CN117597690A (zh) 用于可定制媒体的混合搜索系统

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