Contextual reply enhancement system

By identifying and presenting associated users in social media and messaging platforms and providing enhanced interaction functions, the problem of platform difficulty in identifying interaction opportunities is solved, and user engagement and experience quality is improved.

CN119301554APending Publication Date: 2025-01-10SNAP INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202380044374.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-02
Filing Date
2023-06-02
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

Existing social media and messaging platforms are difficult to identify and demonstrate meaningful, engaging interaction opportunities between users, and complex interaction patterns lead to undesirable user experiences, especially on mobile devices.

Method used

By accessing user relationship data of the interactive system, identifying associated users, and presenting identification information of associated users within the interactive interface, responding to specific event triggering standards, providing action call graphic elements, activate interaction functions, and allowing users to transmit enhanced digital content.

Benefits of technology

It improves user engagement and content enhancement conversion rate, simplifies the operation process of interacting on mobile devices, and provides a more intuitive and convenient user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119301554A_ABST
    Figure CN119301554A_ABST
Patent Text Reader

Abstract

Methods and systems are disclosed that access relational data of a first user of an interactive system to identify a second user of the interactive system associated with the first user, such that identification information of the second user is presented within an interactive interface, and in response to identifying an event related to the second user, the second user is associated with the first user. And displaying the action calling graphic element associated with the identification information of the second user in the interactive interface. In response to detecting a user's selection of an action call graphical element, the methods and systems activate an interaction function to facilitate interaction between the first user and the second user. The interaction function includes at least one of: a communication function enabling a first user to communicate digital content to a second user using the interaction system; and enabling the first user to enhance the enhancement functionality of the digital content using the enhancement graphical feature.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority claim

[0002] This application claims the benefit of priority to U.S. Provisional Application Serial No. 63 / 348,305, filed on June 2, 2022, which is incorporated herein by reference in its entirety. Technical Field

[0003] The present disclosure relates generally to user interactions on communication platforms, and more particularly, to the initiation and enhancement of context-based reply interactions. Background Art

[0004] To increase user engagement and long-term loyalty, social media and messaging platforms have developed features that enrich user interactions or increase the frequency and quality of communication between users. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] In the accompanying drawings (which are not necessarily drawn to scale), similar reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, the highest digit or digits in the reference numeral refer to the figure number in which the element is first introduced. Some non-limiting examples are shown in the figures of the accompanying drawings, in which:

[0006] Figure 1 is a diagrammatic representation of a networked environment in which the present disclosure may be deployed, according to some examples.

[0007] Figure 2 is a diagrammatic representation of an interactive system having both client-side and server-side functionality, according to some examples.

[0008] Figure 3 is a diagrammatic representation of data structures as maintained in a database according to some examples.

[0009] Figure 4 is a flow chart illustrating a method for facilitating interaction between users according to some examples.

[0010] Figure 5 is a diagram of a user interface based on some examples.

[0011] Figure 6 is a diagram of a user interface based on some examples.

[0012] Figure 7 is a flow chart illustrating a method for recommending content enhancement according to some examples.

[0013] Figure 8 is a diagram of a user interface based on some examples.

[0014] Fig. 9is a diagram of a user interface based on some examples.

[0015] Fig.10 is a flow chart illustrating a method for recommending content enhancement according to some examples.

[0016] Fig.11 is a diagram of a user interface based on some examples.

[0017] Fig.12 is a graphical representation of messages according to some examples.

[0018] Fig.13 A system is shown in which a head wearable device according to some examples.

[0019] Fig.14 is a diagrammatic representation of a machine in the form of a computer system according to some examples within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein.

[0020] Fig.15 is a block diagram illustrating a software architecture in which examples may be implemented. DETAILED DESCRIPTION

[0021] To increase user engagement and long-term loyalty, social media and messaging platforms have developed features that enrich user interactions or enhance the frequency of user exchanges. However, conventional techniques fall short in enabling the platform to identify and present reasons or opportunities for a first user to initiate and conduct meaningful, engaging, and convenient interactions with a second user. Conventional techniques do not allow the platform to effectively detect events that are worthy of attention from one or more users, such as profile changes or features of past user interactions. In addition, conventional techniques require complex interaction patterns involving multiple steps in the context of multiple user interfaces in order to enable a first user to initiate an interaction with a second user in the context of a given event, select and enhance digital content, and send it to the second user. Complex interaction patterns result in a suboptimal user experience, particularly on mobile devices whose limited screen real estate makes it difficult to navigate such multiple or complex user interfaces.

[0022] The disclosure herein describes an example of a method and system for addressing the shortcomings of conventional technologies on social media and messaging platforms. The example method includes accessing relationship data associated with a first user of an interactive system to identify a second user of the interactive system associated with the first user. In some examples, the second user is a user in a set of users of the interactive system associated with the first user. The method presents identification information of each user in the set of associated users within an interactive interface. In some examples, the identification information of each user in the set of users includes a user name and / or an avatar. The method also includes identifying an event associated with a second user of the interactive system, and in response to identifying an event associated with the second user, presenting a call to action (CTA) graphic element associated with the identification information of the second user within the interactive interface. In response to detecting a user's selection of a CTA graphic element within the interactive interface, the method activates an interactive function to facilitate interaction between the first user and the second user. In some examples, the interactive function includes a communication function that enables the first user to transmit digital content to the second user using the interactive system. In some examples, the communication function is a reply camera function that enables the first user to capture at least one of a digital image or a digital video for transmission to the second user using the interactive system. In some examples, the interactive functionality includes an enhancement functionality that enables the first user to enhance the digital content using enhanced graphical features.

[0023] In some examples, the enhanced graphic feature corresponds to an event type of an event related to the second user. In some examples, the event related to the second user in the user set includes creating or establishing a recorded relationship between the first user and the second user of the interactive system. In some examples, the enhanced graphic feature indicates one or more recommended content enhancements in a set of recommended content enhancements. In some examples, the event type of the event related to the second user is a birthday event type, and the enhanced graphic feature is a birthday celebration graphic element. In some examples, each user in the associated user set is associated with the first user based on a bidirectional relationship. In some examples, each user in the associated user set is associated with the first user based on a unidirectional relationship. In some examples, each user in the associated user set is associated with the first user based on a bidirectional relationship or a unidirectional relationship. In some examples, some or all of such relationships are recorded relationships.

[0024] In some examples, identifying an event related to the second user includes applying one or more trigger criteria to the user data of the second user, and determining that the second user meets the one or more trigger criteria. In some examples, identifying an event related to the second user includes applying one or more trigger criteria to the user data of one or more other users associated with the second user. In some examples, the user data is at least one of user profile data and user message data. In some examples, the user profile data includes profile field data of a specific user (such as the first user or the second user) or multiple users. In some examples, the user message data includes a message or text message history of one or more users, a history of interaction between two or more users, and the like.

[0025] In some examples, applying one or more trigger criteria to the user data of the second user includes applying a machine learning model to the user data to determine one or more features of the user data; and determining that the second user satisfies one of the one or more trigger criteria includes determining that a feature of the user data of the second user satisfies one of the one or more trigger criteria. Examples of triggers include a friend's birthday, a friend's post or change to their profile, or a topic of certain discussion in a chat window.

[0026] In some examples, an interaction triggering criterion or criterion type (such as an event type or event) determined to be applicable to the second user is mapped to one or more content enhancements. In some examples, the method evaluates contextual data to determine a set of relevant content enhancements that correspond to content enhancements that will be most suitable, such as a "Happy Birthday" content enhancement when it is a friend's birthday. In some examples, the method causes a selectable user interface element (e.g., a selectable icon) to be displayed next to the second user in the list of identified associated users, the selectable user interface element displaying a set of one or more enhanced graphic features when selected, each enhanced graphic feature corresponding to at least one relevant content enhancement. Recommending relevant content enhancements creates inspiration for users, reduces the effort required to send enhanced content between users, increases the conversion rate of content enhancements, and increases overall user engagement. For example, next to a user who is having a birthday, the method displays a selectable user interface element, such as a selectable icon, which displays a set of recommended content enhancements via one or more enhanced graphic features when selected. Upon selecting a particular enhanced graphic feature, the system implementing the method opens a camera feed that begins applying the relevant selected content enhancement to the content captured by the camera system. The user then takes a photo or records a video and sends it to a friend.

[0027] In some examples, the method determines which content enhancements to recommend based on historical conversion rates. The method determines the user's preference for certain types of content enhancements in similar contexts based on the types of content enhancements previously displayed to the user and the user's selections. In some examples, the method identifies the conversion rates of specific friends associated with the trigger. In other examples, the method determines the conversion rates of a general group or a subset thereof, such as based on characteristics of the user or friends (e.g., age, gender, location, other personally identifiable information, etc.).

[0028] In some examples, the method applies one or more machine learning models. In some examples, a machine learning model is trained to identify relevant context for chat discussions between users, such as the main topic of discussion. Another machine learning model is trained to identify the most relevant content enhancements based on the user's preferences and / or a certain trigger, such as the most relevant content enhancement for birthdays or the most effective content enhancement for identifying specific friends.

[0029] In some examples, content enhancement adds digital elements to content captured by a camera system, such as by modifying, superimposing, changing or otherwise enhancing such camera content. A user may choose to transmit a live stream or capture a photo or video to send to someone. Content enhancement may identify objects or features, such as facial features and motion, and may overlay interesting animation effects, such as hats, or change faces in real time. Advantageously, providing users with relevant content enhancements may encourage users to communicate with other users. Associating content enhancement recommendations with triggers associated with the user's activities, interactions or profiles increases the relevance of such content enhancements. In addition, the method applies different types of triggers, such as triggers for application users, friends of users (e.g., birthdays), activities between the two (e.g., topics of discussion in a chat), and other external information (e.g., time of day, holidays, weather), to identify the most relevant content enhancements. The method may identify interactions between users within a submodule of an application, such as a game with two players or an external application (e.g., a linked application). Suggesting relevant content enhancements to users provides inspiration for users to connect with each other. Furthermore, providing such content augmentation recommendations on a user interface or on a friend list reduces the effort (e.g., the number of clicks on a user interface) to send extended reality (XR) augmented photos or videos to friends.

[0030] The example embodiments described herein allow a first user to be presented with a reminder about a friend's birthday, a notification of an ongoing friendship-related anniversary, or a prompt that a new connection or relationship has been established between the first user and the second user. Given an identified event, feature, or update of interest, the example embodiments provide a convenient way for the first user to initiate a related interaction with a second user (such as a friend who has a birthday). In addition, the example embodiments allow for engaging interactions, such as interactions that include text, images, or video content enriched by content enhancements (e.g., a birthday celebration theme filter can be applied to a picture of a friend who has a birthday). In order to maximize user convenience, given the limited user interface space of popular mobile devices, the example embodiments reduce the number of operations or graphical user interfaces required to display updates or events of interest to users and send them enhanced content. In order to motivate users and increase user engagement, the example embodiments identify and present related content enhancements for further user selection.

[0031] When considering the effects in the present disclosure, one or more methods in the method described herein can improve known systems, thereby providing additional functions (such as but not limited to the above functions), making them easier, faster or more intuitive to operate, and / or eliminating the need for certain efforts or resources that would otherwise be involved in the electronic interaction process. Therefore, the computing resources used by one or more machines, databases or networks can be more effectively utilized or even reduced. Although the example method in the present disclosure depicts a specific sequence of operations, the sequence can be changed without departing from the scope of the present disclosure. For example, some operations in the depicted operation can be performed in parallel or in different orders that do not substantially affect the function of the method. In other examples, the different components of the example device or system that implement the method can perform functions substantially simultaneously or in a specific order.

[0032] Networked computing environment

[0033] Figure 1 1 is a block diagram illustrating an example interactive system 100 for facilitating interactions over a network (e.g., exchanging text messages, making text, audio, and video calls, or playing games). The interactive system 100 includes a plurality of user systems 102, each of which hosts a plurality of applications including an interactive client 104 and other applications 106. Each interactive client 104 is communicatively coupled to other instances of the interactive client 104 (e.g., hosted on respective other user systems 102), an interactive server system 110, and a third-party server 112 via one or more communication networks including a network 108 (e.g., the Internet). The interactive client 104 may also communicate with the locally hosted application 106 using an application program interface (API).

[0034] Each user system 102 may include multiple user devices, such as a mobile device 114 , a head wearable device 116 , and a computer client device 118 , that are communicatively connected to exchange data and messages.

[0035] The interactive clients 104 interact with other interactive clients 104 and with the interactive server system 110 via the network 108. The data exchanged between the interactive clients 104 (e.g., interaction 120) and between the interactive clients 104 and the interactive server system 110 includes functions (e.g., commands for activating functions) and payload data (e.g., text, audio, video or other multimedia data).

[0036] The interactive server system 110 provides server-side functionality to the interactive clients 104 via the network 108. Although certain functions of the interactive system 100 are described herein as being performed by either the interactive client 104 or the interactive server system 110, it may be a design choice whether certain functions are located within the interactive client 104 or within the interactive server system 110. For example, it may be technically preferable to initially deploy certain technologies and functions within the interactive server system 110, but to later migrate the technologies and functions to the interactive client 104 where the user system 102 has sufficient processing power.

[0037] The interactive server system 110 supports various services and operations provided to the interactive clients 104. Such operations include sending data to the interactive clients 104, receiving data from the interactive clients 104, and processing data generated by the interactive clients 104. The data may include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, entity relationship information, and live event information. The data exchange within the interactive system 100 is activated and controlled by functions available through the user interface (UI) of the interactive client 104.

[0038] Turning now specifically to the interaction server system 110, an application program interface (API) server 122 is coupled to and provides a programming interface to the interaction server 124, thereby making the functionality of the interaction server 124 accessible to the interaction clients 104, other applications 106, and third-party servers 112. The interaction server 124 is communicatively coupled to a database server 126, thereby facilitating access to a database 128 that stores data associated with interactions processed by the interaction server 124. Similarly, a web server 130 is coupled to the interaction server 124 and provides a web-based interface to the interaction server 124. To this end, the web server 130 handles incoming network requests via the Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0039] The application program interface (API) server 122 receives and sends interaction data (e.g., commands and message payloads) between the interaction server 124 and the user system 102 (and, for example, the interaction client 104 and other applications 106) and the third-party server 112. Specifically, the application program interface (API) server 122 provides a set of interfaces (e.g., routines and protocols) that the interaction client 104 and other applications 106 can call or query to activate the functions of the interaction server 124. The application program interface (API) server 122 exposes various functions supported by the interaction server 124, including account registration; login functionality; sending interaction data from a particular interaction client 104 to another interaction client 104 via the interaction server 124; transferring media files (e.g., images or videos) from the interaction client 104 to the interaction server 124; setting up a media data collection (e.g., a story); retrieving a friend list of a user of the user system 102; retrieving messages and content; adding and deleting entities (e.g., friends) to an entity relationship graph (e.g., entity graph 310); locating friends in an entity relationship graph; and opening application events (e.g., related to the interaction client 104).

[0040] The interactive server 124 hosts multiple systems and subsystems, as shown below. Figure 2 Give a description.

[0041] Linked Applications

[0042] Returning to the interactive client 104, the features and functions of the external resource (e.g., the linked application 106 or applet) are available to the user via the interface of the interactive client 104. In this context, "external" refers to the fact that the application 106 or applet is outside the interactive client 104. Although the external resource is usually provided by a third party, it can also be provided by the creator or provider of the interactive client 104. The interactive client 104 receives the user's selection of the option to launch or access the features of such an external resource. The external resource can be an application 106 installed on the user system 102 (e.g., a "local app"), or a small-scale version of the application hosted on the user system 102 or located far from the user system 102 (e.g., on a third-party server 112) (e.g., a "mini program"). The small-scale version of the application includes a subset of the features and functions of the application (e.g., the full-scale, local version of the application) and is implemented using a markup language document. In some examples, the small-scale version of the application (e.g., a "mini program") is a web-based markup language version of the application and is implanted in the interactive client 104. In addition to using markup language documents (eg, .*ml files), applets may incorporate scripting languages ​​(eg, .*js files or .json files) and style sheets (eg, .*ss files).

[0043] In response to receiving a user selection of an option to launch or access a feature of an external resource, the interactive client 104 determines whether the selected external resource is a web-based external resource or a locally installed application 106. In some cases, an application 106 installed locally on the user system 102 may be independent of and launched separately from the interactive client 104, such as by selecting an icon corresponding to the application 106 on a home screen of the user system 102. A small-scale version of such an application may be launched or accessed via the interactive client 104, and in some examples, no portion of the small-scale application may be accessed outside of the interactive client 104 or a limited portion of the small-scale application may be accessed outside of the interactive client 104. The small-scale application may be launched by the interactive client 104 receiving a markup language document associated with the small-scale application from, for example, a third-party server 112 and processing such a document.

[0044] In response to determining that the external resource is a locally installed application 106, the interactive client 104 instructs the user system 102 to launch the external resource by executing the locally stored code corresponding to the external resource. In response to determining that the external resource is a web-based resource, the interactive client 104 communicates with the third-party server 112 (for example) to obtain a markup language document corresponding to the selected external resource. The interactive client 104 then processes the obtained markup language document to present the web-based external resource within the user interface of the interactive client 104.

[0045] The interactive client 104 can notify the user of the user system 102 or other users (e.g., "friends") associated with such a user of activities occurring in one or more external resources. For example, the interactive client 104 can provide participants in a conversation (e.g., a chat session) in the interactive client 104 with notifications related to the current or recent use of an external resource by one or more members of a user group. One or more users can be invited to join an active external resource or to start an external resource that was recently used but is currently inactive (in a friend group). The external resource can provide participants in the conversation (each using a corresponding interactive client 104) with the ability to share items, conditions, states, or locations in the external resource with one or more members of the user group in a chat session. The shared item can be an interactive chat card that members of the chat can interact with, such as starting a corresponding external resource, viewing specific information within an external resource, or bringing members of the chat to a specific location or state within an external resource. Within a given external resource, a response message can be sent to a user on the interactive client 104. Based on the current context of the external resource, the external resource can selectively include different media items in the response.

[0046] The interactive client 104 can present a list of available external resources (e.g., applications 106 or applets) to the user to launch or access a given external resource. The list can be presented in a context-sensitive menu. For example, icons representing different ones of the applications 106 (or applets) can change based on how the user launches the menu (e.g., from a conversational interface or from a non-conversational interface).

[0047] System Architecture

[0048] Figure 2 1 is a block diagram showing additional details about the interactive system 100 according to some examples. Specifically, the interactive system 100 is shown to include an interactive client 104 and an interactive server 124. The interactive system 100 includes a plurality of subsystems that are supported on the client side by the interactive client 104 and on the server side by the interactive server 124. In some examples, these subsystems are implemented as microservices. A microservice subsystem (e.g., a microservice application) can have components that enable the microservice subsystem to operate independently and communicate with other services. Example components of a microservice subsystem can include:

[0049] Functional logic: Functional logic implements the functionality of a microservice subsystem and represents the specific capabilities or functions provided by a microservice.

[0050] API interface: Microservices can communicate with each other through a well-defined API or interface using a lightweight protocol such as REST or messaging. The API interface defines the input and output of the microservice subsystem and how the microservice subsystem interacts with other microservice subsystems of the interactive system 100.

[0051] Data storage: The microservice subsystem may be responsible for its own data storage, which may be in the form of a database, cache, or other storage means (e.g., using database server 126 and database 128). This enables the microservice subsystem to operate independently of other microservices of interactive system 100.

[0052] Service discovery: A microservice subsystem can find and communicate with other microservice subsystems of the interactive system 100. The service discovery mechanism enables a microservice subsystem to locate and communicate with other microservice subsystems in a scalable and efficient manner.

[0053] Monitoring and logging: Microservice subsystems may need to be monitored and logged to ensure availability and performance. Monitoring and logging mechanisms enable tracking the health and performance of microservice subsystems.

[0054] In some examples, the interactive system 100 may adopt a monolithic architecture, a service-oriented architecture (SOA), a function-as-a-service (FaaS) architecture, or a modular architecture.

[0055] Example subsystems are discussed below.

[0056] Image processing system 202 provides various functions that enable a user to capture and enhance (eg, annotate or otherwise modify or edit) media content associated with a message.

[0057] The camera system 204 includes control software (e.g., in a camera application) that interacts with and controls the hardware camera hardware of the user system 102 (e.g., directly or via operating system control) to modify and enhance real-time images captured and displayed via the interactive client 104.

[0058] The enhancement system 206 provides functionality related to the generation and publication of enhancements (e.g., media overlays) for images captured in real time by the camera of the user system 102 or retrieved from the memory of the user system 102. For example, the enhancement system 206 is operable to select, present, and display media overlays (e.g., image filters or image lenses) for the interactive client 104 for enhancing real-time images received via the camera system 204 or stored images retrieved from the memory 1302 of the user system 102. These enhancements are selected and presented to the user of the interactive client 104 by the enhancement system 206 based on some input and data, such as:

[0059] The geolocation of the user system 102; and

[0060] Entity relationship information of users of the user system 102 .

[0061] Enhancement can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos or videos) at user system 102 for transmission in messages, or applied to video content such as video content streams or feeds sent from interactive client 104. Therefore, image processing system 202 can interact with various subsystems of communication system 208, and support various subsystems of communication system 208, such as messaging system 210 and video communication system 212.

[0062] Media overlays may include text or image data that can be superimposed on a photo taken by the user system 102 or a video stream produced by the user system 102. In some examples, the media overlay may be a location overlay (e.g., Venice Beach), the name of a live event, or a business name overlay (e.g., Beach Cafe). In other examples, the image processing system 202 uses the geolocation of the user system 102 to identify a media overlay including the name of a business at the geolocation of the user system 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 128 and accessed by the database server 126.

[0063] The image processing system 202 provides a user-based publishing platform that enables a user to select a geographic location on a map and upload content associated with the selected geographic location. The user can also specify situations in which a particular media overlay should be provided to other users. The image processing system 202 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geographic location.

[0064] The augmented creation system 214 supports the augmented reality developer platform and includes applications for content creators (e.g., artists and developers) to create and publish augmentations (e.g., augmented reality experiences) for the interactive clients 104. The augmented creation system 214 provides content creators with a library of built-in features and tools, including, for example, custom shaders, tracking techniques, and templates.

[0065] In some examples, the enhancement creation system 214 provides a merchant-based publishing platform that enables merchants to select specific enhancements associated with a geographic location via a bidding process. For example, the enhancement creation system 214 associates the media overlay of the highest bidding merchant with the corresponding geographic location for a predefined amount of time.

[0066] The communication system 208 is responsible for enabling and processing various forms of communication and interaction within the interactive system 100, and includes a messaging system 210, an audio communication system 216, and a video communication system 212. The messaging system 210 is responsible for enforcing temporary or time-limited access to content by the interactive clients 104. The messaging system 210 includes multiple timers (e.g., in a transient timer system) that selectively enable access (e.g., for presentation and display) of messages and associated content via the interactive clients 104 based on duration and display parameters associated with a message or a collection of messages (e.g., a story). The audio communication system 216 enables and supports audio communication (e.g., real-time audio chat) between multiple interactive clients 104. Similarly, the video communication system 212 enables and supports video communication (e.g., real-time video chat) between multiple interactive clients 104.

[0067] The user management system 218 is operationally responsible for managing user data and profiles and maintaining entity information (eg, stored in the entity table 308 , entity graph 310 , and profile data 302 ) about users of the interactive system 100 and relationships between users.

[0068] The collection management system 220 is responsible for managing collections or collections of media (e.g., collections of text, image video, and audio data) in operation. Collections of content (e.g., messages, including images, videos, text, and audio) can be organized into "event galleries" or "event stories". Such collections can be made available within a specified time period (e.g., the duration of the event to which the content relates). For example, content related to a concert can be available as a "story" for the duration of the concert. The collection management system 220 can also be responsible for publishing an icon that provides notifications of a specific collection to the user interface of the interactive client 104. The collection management system 220 includes a curation function that enables collection managers to manage and curate specific content collections. For example, the curation interface enables event organizers to curate collections of content related to a specific event (e.g., deleting inappropriate content or redundant messages). In addition, the collection management system 220 uses machine vision (or image recognition technology) and content rules to automatically curate content collections. In some examples, compensation can be paid to users for including user-generated content in a collection. In such a case, the collection management system 220 operates to automatically pay such users to use their content.

[0069] The mapping system 222 provides various geographic location (e.g., geolocation) functions and supports the presentation of map-based media content and messages by the interactive client 104. For example, the mapping system 222 enables the display of a user icon or avatar (e.g., stored in the profile data 302) on a map to indicate the current or past locations of the user's "friends" in the context of the map, as well as media content (e.g., a collection of messages including photos and videos) generated by these friends. For example, on the map interface of the interactive client 104, a message posted by the user to the interactive system 100 from a particular geographic location can be displayed to the "friends" of the particular user at the particular location in the context of the map. The user can also share his or her location and status information with other users of the interactive system 100 via the interactive client 104 (e.g., using an appropriate status avatar), where the location and status information is similarly displayed to the selected user in the context of the map interface of the interactive client 104.

[0070] The gaming system 224 provides various gaming functions in the context of the interactive client 104. The interactive client 104 provides a gaming interface that provides a list of available games that can be launched by a user in the context of the interactive client 104 and played with other users of the interactive system 100. The interactive system 100 also enables a particular user to invite other users to participate in playing a particular game by sending an invitation to such other users from the interactive client 104. The interactive client 104 also supports voice, video, and text messaging (e.g., chat) in the context of game play, provides leaderboards for games, and also supports the provision of in-game rewards (e.g., game coins and items).

[0071] The external resource system 226 provides an interface for the interactive client 104 to communicate with a remote server (e.g., a third-party server 112) to launch or access an external resource (i.e., an application or applet). Each third-party server 112 hosts, for example, an application or a small-scale version of an application based on a markup language (e.g., HTML5) (e.g., a game application, a utility application, a payment application, or a ride-sharing application). The interactive client 104 can launch a web-based resource (e.g., an application) by accessing an HTML5 file from a third-party server 112 associated with a web-based resource. The application hosted by the third-party server 112 is programmed in JavaScript using a software development kit (SDK) provided by the interactive server 124. The SDK includes an application program interface (API) with functions that can be called or activated by a web-based application. The interactive server 124 hosts a JavasScript library that provides access to a given external resource to specific user data of the interactive client 104. HTML5 is an example of a technology for programming games, but applications and resources programmed based on other technologies can be used.

[0072] In order to integrate the functionality of the SDK into the web-based resource, the SDK is downloaded from the interactive server 124 by the third-party server 112, or the SDK is received by the third-party server 112 in other ways. Once downloaded or received, the SDK is included as part of the application code of the web-based external resource. The code of the web-based resource can then call or activate certain functions of the SDK to integrate the features of the interactive client 104 into the web-based resource.

[0073] The SDK stored on the interactive server system 110 effectively provides a bridge between external resources (e.g., applications 106 or applet) and the interactive client 104. This gives the user a seamless experience of communicating with other users on the interactive client 104, while also preserving the appearance of the interactive client 104. In order to bridge the communication between the external resources and the interactive client 104, the SDK facilitates the communication between the third-party server 112 and the interactive client 104. The bridging script running on the user system 102 establishes two one-way communication channels between the external resources and the interactive client 104. Messages are sent asynchronously between the external resources and the interactive client 104 via these communication channels. Each SDK function activation is sent as a message and a callback. Each SDK function is implemented by constructing a unique callback identifier and sending a message with the callback identifier.

[0074] By using the SDK, not all information from the interactive client 104 is shared with the third-party server 112. The SDK limits which information is shared based on the needs of the external resource. Each third-party server 112 provides an HTML5 file corresponding to a web-based external resource to the interactive server 124. The interactive server 124 can add a visual representation (e.g., a box design or other graphics) of the web-based external resource in the interactive client 104. Once the user selects the visual representation or instructs the interactive client 104 to access the features of the web-based external resource through the GUI of the interactive client 104, the interactive client 104 obtains the HTML5 file and instantiates the resource for accessing the features of the web-based external resource.

[0075] The interactive client 104 presents a graphical user interface (e.g., a login page or title screen) for an external resource. During, before, or after presenting the login page or title screen, the interactive client 104 determines whether the launched external resource has been previously authorized to access the user data of the interactive client 104. In response to determining that the launched external resource has been previously authorized to access the user data of the interactive client 104, the interactive client 104 presents another graphical user interface of the external resource including the functions and features of the external resource. In response to determining that the launched external resource has not been previously authorized to access the user data of the interactive client 104, after displaying the login page or title screen of the external resource for a threshold period of time (e.g., 3 seconds), the interactive client 104 slides up a menu (e.g., animating the menu to emerge from the bottom of the screen to the middle or other part of the screen) for authorizing the external resource to access the user data. The menu identifies the type of user data that the external resource will be authorized to use. In response to receiving a user selection of the accept option, the interactive client 104 adds the external resource to the list of authorized external resources and allows the external resource to access the user data from the interactive client 104. External resources are authorized by the interactive client 104 to access user data under the OAuth 2 framework.

[0076] The interactive client 104 controls the type of user data shared with the external resource based on the type of external resource that is authorized. For example, an external resource including a full-scale application (e.g., application 106) is provided with access to a first type of user data (e.g., a two-dimensional avatar of a user with or without different avatar features). As another example, an external resource including a small-scale version of an application (e.g., a web-based version of the application) is provided with access to a second type of user data (e.g., payment information, a two-dimensional avatar of a user, a three-dimensional avatar of a user, and an avatar with various avatar features). Avatar features include different ways to customize the appearance of an avatar (e.g., different poses, facial features, clothing, etc.).

[0077] The advertising system 228 operatively enables third parties to purchase advertisements for presentation to end users via the interactive clients 104 and also handles the delivery and presentation of these advertisements.

[0078] The artificial intelligence and machine learning system 230 provides various services to different subsystems within the interactive system 100. For example, the artificial intelligence and machine learning system 230 operates with the image processing system 202 and the camera system 204 to analyze images and extract information, such as objects, text, or faces. This information can then be used by the image processing system 202 to enhance, filter, or manipulate images. The artificial intelligence and machine learning system 230 can be used by the enhancement system 206 to generate enhanced content and augmented reality experiences, such as adding virtual objects or animations to images of the real world. The communication system 208 and the messaging system 210 can use the artificial intelligence and machine learning system 230 to analyze communication patterns and provide understanding of how users interact with each other, as well as provide intelligent message classification and tagging, such as classifying messages based on viewpoints or topics. The artificial intelligence and machine learning system 230 can also provide chatbot functionality to the message interactions 120 between the user systems 102 and between the user systems 102 and the interactive server system 110. The artificial intelligence and machine learning system 230 may also work with the audio communication system 216 to provide speech recognition and natural language processing capabilities, thereby enabling a user to interact with the interactive system 100 using voice commands.

[0079] Data Architecture

[0080] Figure 3 is a diagram illustrating a data structure 300 that may be stored in a database 304 of an interactive server system 110 according to some examples. Although the contents of the database 304 are illustrated as including a plurality of tables, it should be understood that data may be stored in other types of data structures (e.g., object-oriented databases).

[0081] Database 304 includes message data stored in message table 306. For any particular message, the message data includes at least message sender data, message recipient (or receiver) data, and payload. Figure 3 Additional details regarding information that may be included in a message and included within the message data stored in message table 306 are described.

[0082] The entity table 308 stores entity data and is linked (e.g., referenced) to the entity graph 310 and the profile data 302. The entity for which records are maintained within the entity table 308 may include a person, a corporate entity, an organization, an object, a place, an event, etc. Regardless of the entity type, any entity about which the interactive server system 110 stores data may be an identified entity. Each entity is provided with a unique identifier and an entity type identifier (not shown).

[0083] The entity graph 310 stores information about relationships and associations between entities. By way of example only, such relationships may be social, professional (e.g., working at a common company or organization), interest-based, or activity-based. Some relationships between entities may be one-way, such as a personal user's subscription to a business or publishing user's digital content (e.g., a newspaper or other digital media channel or brand). Other relationships may be two-way, such as a "friend" relationship between various users of the interactive system 100.

[0084] Certain permissions and relationships can be attached to each relationship, and also to each direction of the relationship. For example, a two-way relationship (e.g., a friend relationship between various users) can include authorization for the disclosure of digital content items between various users, but certain restrictions or filters (e.g., based on content features, location data, or time of day data) can be imposed on the disclosure of these digital content items. Similarly, a subscription relationship between a personal user and a business user can impose varying degrees of restrictions on the disclosure of digital content from a business user to a personal user, and can greatly limit or prevent the disclosure of digital content from a personal user to a business user. As an example of an entity, a specific user can record certain restrictions in a record for the entity in the entity table 308 (e.g., by means of privacy settings). Such privacy settings can be applied to all types of relationships in the context of the interactive system 100, or can be selectively applied to certain types of relationships.

[0085] The profile data 302 stores multiple types of profile data about a particular entity. Based on the privacy settings specified by the particular entity, the profile data 302 can be selectively used and presented to other users of the interactive system 100. In the case where the entity is a person, the profile data 302 includes, for example, the user name, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a collection of such avatar representations) selected by the user. The particular user can then selectively include one or more of these avatar representations within the content of messages transmitted via the interactive system 100 and on a map interface displayed to other users by the interactive client 104. The collection of avatar representations can include a "status avatar" that presents a graphical representation of a status or activity that the user can choose to transmit at a particular time.

[0086] Where the entity is a group, profile data 302 for the group may similarly include one or more avatar representations associated with the group, in addition to the group name, members, and various settings for the relevant group (eg, notifications).

[0087] Database 304 also stores enhancement data, such as overlays or filters, in enhancement table 312. Enhancement data is associated with and applied to videos (data for videos is stored in video table 314) and images (data for images is stored in image table 316).

[0088] In some examples, filters are displayed as overlays on an image or video during presentation to a recipient user. Filters can be of various types, including filters selected by a user from a set of filters presented to a sending user by the interactive client 104 when the sending user is composing a message. Other types of filters include geolocation filters (also referred to as geofilters), which can be presented to a sending user based on geolocation. For example, a geolocation filter specific to a nearby or special location can be presented by the interactive client 104 within a user interface based on geolocation information determined by a global positioning system (GPS) unit of the user system 102.

[0089] Another type of filter is a data filter, which can be selectively presented to the sending user by the interaction client 104 based on other input or information collected during the message creation process by the user system 102. Examples of data filters include the current temperature at a particular location, the current speed at which the sending user is traveling, the battery life of the user system 102, or the current time.

[0090] Other augmented data that may be stored in the image table 316 include augmented reality content items (eg, corresponding to application "lenses" or augmented reality experiences). Augmented reality content items may be real-time special effects and sounds that may be added to an image or video.

[0091] The collection table 318 stores data about a collection of messages and associated images, video or audio data that are compiled into a collection (e.g., a story or gallery). The creation of a particular collection can be initiated by a particular user (e.g., each user for whom a record is maintained in the entity table 308). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcasted by the user. To this end, the user interface of the interactive client 104 may include a user-selectable icon to enable the sending user to add specific content to his or her personal story.

[0092] The collection may also constitute a "live story", which is a collection of content from multiple users created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" may constitute a curated stream of user-submitted content from various locations and events. Users whose client devices have location services enabled and who are at a co-located event at a particular time may be presented with the option of contributing content to a particular live story, for example, via the user interface of the interactive client 104. Live stories may be identified to the user by the interactive client 104 based on his or her location. The end result is a "live story" told from a group perspective.

[0093] Another type of content collection is called a "location story" that enables users whose user systems 102 are located within a specific geographic location (e.g., on a college or university campus) to contribute to a specific collection. In some examples, contributions to location stories may employ secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., is a student on a university campus).

[0094] As mentioned above, video table 314 stores video data that, in some examples, is associated with messages for which records are maintained within message table 306. Similarly, image table 316 stores image data associated with messages whose message data is stored in entity table 308. Entity table 308 may associate various enhancements from enhancement table 312 with various images and videos stored in image table 316 and video table 314.

[0095] Contextual Reply Enhancement System

[0096] Figure 4 is a flow chart illustrating a method 400 that may be performed by the interactive client 104 to facilitate interaction between users of the interactive system 100 according to some examples. Figure 5 and Figure 6 The user interface diagram shown in discusses the operation of method 400.

[0097] The method 400 starts at a start operation 402 and proceeds to an operation 404, where the interactive system 100 (e.g., via the user system 102 or the interactive server system 110) (e.g., from the entity graph 310) accesses the relationship data of the first user of the interactive system 100 to identify a group of other users of the interactive system 100, each of which is associated with the first user. In some examples, the first user is logged into the interactive system 100. In some examples, the first user is a currently active user (e.g., a user who is logged in at the time of method execution or shortly before and is using the relevant messaging or interactive capabilities or applications of the interactive client 104 or the interactive server system 110). In some examples, the first user may be logged into the interactive system 100 and may have been idle for several minutes or hours.

[0098] In some examples, the identified set of other users includes at least a second user of the interactive system. In some examples, the association between the other users and the first user takes the form of a recorded relationship with the first user. Figure 3 Such a relationship may be a two-way "friend" relationship, which includes a communication or publishing authorization between the first user and the user in the group of other users. In some examples, such a relationship is a one-way "subscription" relationship between a user and a commercial publishing entity. In some examples, other users associated with the first user (such as within the interactive function of the interactive system) include followers or friends, where users can follow other people or be followed by others, or form some form of relationship so that other users can see certain information, such as each other's posts on their feeds. In some examples, the group of other users may include "close" or "best" friends, which can create relationships to share additional information that is not available to others, such as private posts, targeted sharing of content, etc. In some examples, an associated user is a user mentioned or marked in a user's post, comment, chat message, or other communication that attracts the attention of the marked user and / or can initiate a conversation or discussion. In some examples, an associated user is a user who participates in a message chat with the first user (such as a private messaging feature that allows users to send messages directly to each other or group chat among many users). In some examples, an associated user is a user who joins a group based on shared interests or common goals. In these groups, users can interact and form relationships based on the group's focus and / or share information between group members. In some examples, associated users are users who express or receive support (e.g., express or receive support from the first user) through likes, comments, or shares. In some examples, associated users are influencers or brand ambassadors who have built a large number of followers and are regarded as authorities or trendsetters in their fields. In some examples, associated users are collaborators who work together on a project or create content together (e.g., with the first user).

[0099] At operation 406, and with reference to Figure 5 , the interactive client 104 operating on the mobile device 114 (e.g., the mobile device 114 or the head wearable device 116) causes identification information of each user in the group of other users (e.g., see identification information 502) to be presented in a chat interface 504 on the mobile device 114. The identification information includes, for example, a user name, an avatar, and status information. In some examples, the chat interface 504 includes a list of identified associated users in the form of a friend feed 506, which may include users who are online and available to communicate (e.g., chat) with the first user. In some examples, the list of associated users may be a list of friends, a list of historical chats between the first user and other users, or other lists of other associated users, a phone book, missed calls, received calls, call history, etc. In some examples, the interactive client determines that the list of associated users is to be displayed when the user selects an interface option on an application (such as a mobile application), when the user opens the mobile application, or when other users interact with the application. In other examples, the interactive client begins the method at operation 406 based on other factors, such as chat messages or other interactions (or historical interactions) between the user and other users, or such as not having any unread messages.

[0100] At operation 408, the interactive system 100 identifies an event related to a second specific user in the user set of the interactive system 100, and displays identification information 502 of the second specific user in the chat interface 504. In some examples, identifying such an event includes determining that the second user of the interactive system 100 satisfies at least one of the one or more interaction triggering criteria, and displaying identification information of the second user in the chat interface 504. In some examples, identifying such an event includes determining that a specific user in the user set of the interactive system 100 satisfies at least one of the one or more interaction triggering criteria, and selecting the identified specific user as the second user, and displaying identification information of the specific user in the chat interface 504.

[0101] In some examples, the trigger criteria include logic applied to user data associated with the first active user, the second user (or specific user), and / or other users. In some examples, such user data may include user profile data or user messages or interaction data of one or more users. User profile data refers to profile data of a given user (first user, second user, etc.) of a system or application, a friend or other user linked to a given user, or other users of an interactive system. Similarly, user message data is a message, text message, or interaction data (such as message history, interaction history, etc.) of a given user, a friend or other user linked to a given user, or other users of an interactive system. In some examples, the trigger criteria include logic applied to other types of data (such as time of day, day of the week, day of the month, or holiday).

[0102] Example interaction trigger criteria (referred to as trigger criteria for short) correspond to the occurrence of an event, such as an anniversary event associated with the second user (birthday, wedding anniversary, friendship anniversary, such as the creation or establishment anniversary of a recorded relationship between two users), a change to the second user profile, a post from the second user, etc. In some examples, the interactive system 100 identifies the birthday of the second (or specific) user and determines whether the birthday of the second user matches a current date or an upcoming date to determine whether the example birthday trigger criteria has been met. The trigger criteria satisfied by the second user may also refer to the creation or establishment of a new recorded (or recently recorded) relationship between the first user and the second user (e.g., the second user recently became a "friend" of the first user). In some examples, the method applies one or more machine learning models. In some examples, the machine learning model is trained to identify relevant contexts, such as a subset of user data, a derived version of user data (e.g., the main topic of discussion generated based on a chat discussion between users), etc. Another machine learning model can be trained to detect whether one or more trigger criteria apply to user data.

[0103] At operation 410, in response to identifying applicable trigger criteria (such as an event) related to the second user, the interactive system 100 causes a call to action (CTA) graphical element 508 to be presented within the chat interface 504 on the mobile device 114, such as Figure 5As shown. In the context of a list of users associated with the first user (such as a friend feed 506), the CTA graphic element 508 is presented or displayed in association with or adjacent to the identification information 502 of the second user. In one example, the CTA graphic element 508 is a user-selectable icon or button and is identified as a call to action by its content or tooltip. The CTA graphic element 508 can be presented or displayed based on a predetermined time period, a predetermined maximum number of impressions (impression cap) and / or an action taken by the first user such as replying, interacting with the second user and / or activating a content enhancement function, as shown below. In some examples, the predetermined time period and / or the predetermined maximum number of impressions (impression cap) vary depending on the type of event. In some examples, in the case of an anniversary event, a wedding or a birthday, the CTA graphic element 508 is displayed or presented for 24 hours (or other predefined time period). In some examples, in the case of a "missed call" event, the CTA graphic element 508 is displayed or presented for 48 hours (or other predefined time period). In some examples, in the case of a "reply message" event, the CTA graphic element 508 is displayed for 15 minutes to 1 day (or other predefined time period). In some examples, the CTA graphic element 508 is viewed by the user up to 10 times (e.g., the allowed number of impressions may be 3, 5, 10, etc.). If the maximum allowed number of impressions (e.g., an impression cap) has been reached and / or a predetermined time period associated with the display of the CTA graphic element 508 has been reached, the CTA graphic element 508 is no longer displayed.

[0104] return Figure 4 At operation 412, the interactive system 100 detects a selection of a CTA graphical element 508 associated with a second user in the context of the chat interface 504 by the first user. At operation 414, in response to the selection, the interactive system 100 activates an interactive function to facilitate interaction between the first user and the second user. The interactive function activated by selecting the CTA graphical element 508 is a communication function that enables the first user to transmit digital content (e.g., a digital image or digital video) selected or generated by the first user to the second user using the interactive system 100. In one example, the communication function is a reply camera function that enables the first user to capture a digital image or digital video, and the reply camera function provides a series of interfaces that enable convenient capture of digital images or videos and sending the digital content to the second user.

[0105] In some examples, the activated interactive functionality also includes an enhancement functionality that enables the first user to enhance the captured or selected digital content (e.g., a captured digital image or digital video) using an enhancement graphical feature (e.g., a lens or filter) before the digital content is transmitted to the second user. The trigger criteria (or type thereof) determined at operation 408 are mapped to one or more enhancement graphical features. The enhancement graphical features correspond to one or more content enhancements (see at least 10 for a detailed discussion of identifying and recommending relevant content enhancements). Figure 7 ). For example, where the determined event is a birthday event, the enhancement graphical feature presented by the enhancement function may indicate a content enhancement that matches the birthday event, such as a birthday celebration lens or filter. The first user may selectively apply a birthday-themed lens or filter to the captured digital image, and the lens or filter may also be automatically applied to the captured digital content (e.g., if only one relevant enhancement graphical feature corresponding to a unique relevant content enhancement is applicable).

[0106] Table 1 below shows a non-exclusive list of trigger criteria examples and corresponding logic, including examples of matching trigger criteria and / or their types with content enhancements and / or content enhancement types.

[0107]

[0108]

[0109]

[0110] Figure 6 is a user interface diagram illustrating an example camera user interface 602 presented in response to a user selection of a CTA graphical element 508. In this example, a content enhancement selection graphical element 604 corresponds to a type of trigger criteria determined at operation 408 (e.g., corresponding to a type of event detected). More specifically, according to some examples, the camera user interface 602 is presented by the interactive client 104 in the example form of a media application executed on the mobile device 114. In some examples, the camera user interface 602 is presented on an optical display of the head wearable device 116. The camera user interface 602 presents a live feed from a camera of the mobile device 114, which the user can then capture as a still digital image or digital video by selecting an appropriate option within an interactive area 606 of the camera user interface 602.

[0111] The camera user interface 602 displays user content items 608, such as digital images or digital videos captured by the camera of the mobile device 114. The user content items 608 may include image data, video data, audio data, or a combination of these data types, as well as enhancement or modification data (e.g., stickers, filters, or lenses superimposed on the content items 608).

[0112] The camera user interface 602 also includes an interactive area 606 having a functional or tool portion, in the exemplary form of a lens carousel 610. The lens carousel 610 presents various tools and functions that can be activated by the user of the mobile device 114 to interact with other users of the interactive system 100, to interact with content accessible via the interactive system 100, and to modify the captured user content item 608 displayed within the camera user interface 602. The interactive area 606 includes a content enhancement selection graphical element 604 (e.g., a user-selectable icon) that is user-selectable to activate an enhancement function (corresponding to an enhancement graphical feature or content enhancement) in a set of enhancement functions. The selected enhancement function can then operate to enhance or modify the user content item 608.

[0113] Figure 7 is a flow chart illustrating a method 700 for recommendation content enhancement implemented by the interactive system 100 according to some examples.

[0114] At operation 702, the interactive system 100 (eg, via the user system 102 or the interactive server system 110) determines that a list of other users associated with a first user of the interactive system 100 will be displayed on a user interface. Figure 4 Describes details about identifying the associated user.

[0115] At operation 704, the interactive system 100 accesses one or more trigger criteria (e.g., reference events or event types), and applies the one or more trigger criteria to user profile data corresponding to one or more other users of the interactive system 100 at operation 706. In some examples, the interactive system 100 may use other or additional types of user data, such as user message data, without any limitation on the scope of the present disclosure. At operation 708, the interactive system 100 determines that a specific second user among the one or more other users meets at least one trigger criterion. In some examples, the first user logs into the interactive system 100. In some examples, the first user is a currently active user (e.g., a user who logs in at the time of method execution or shortly before and is using the relevant messaging or interactive capabilities or applications of the interactive client 104 or the interactive server system 110). In some examples, the first user may be logged into the interactive system 100 and may have been idle for several minutes or hours.

[0116] At operation 710, the interactive system 100 identifies at least one recommended content enhancement associated with the trigger criteria. The trigger criteria are mapped to one or more content enhancements. For a particular trigger criteria, the interactive system accesses the mapping to identify a set of content enhancements to recommend. In some examples, the interactive system 100 applies a machine learning model trained to identify relevant content enhancements based on the type of trigger criteria. Some examples include a machine learning model that identifies relevant content enhancements for a single trigger or multiple triggers. In some examples, the machine learning model may identify the most relevant content enhancement for a birthday trigger. In some embodiments, the machine learning model receives additional information as input, such as the context of the interaction between users, user profile data, etc., to further narrow down the recommended content enhancements.

[0117] The interactive system 100 determines that the user profile data satisfies one or more trigger criteria, and selects one of the multiple trigger criteria for recommending content enhancement. The trigger criteria are associated with a priority value indicating the priority order of the content enhancement. For example, a birthday may have a higher priority than a missed call. The priority value corresponds to the relative importance or relevance of the trigger criteria and the associated content enhancement; in the case of multiple trigger criteria applicable to the user, the interactive system 100 may select the trigger criteria with the highest priority value, or the first K trigger criteria with the highest priority value (for a predetermined K, such as K=2 or K=3). In some examples, the interactive system 100 applies the trigger criteria satisfied by the most recent user profile data or the most recently updated profile data. In other examples, the interactive system applies weighting to a particular trigger criterion based on the data applied to the trigger criteria, the priority value of the trigger criteria, the historical use of the trigger criteria by the first user or the second user, and the like. In some examples, the interactive system evaluates multiple user profiles to determine whether a particular trigger criterion is met. For example, the trigger criterion may require the first user and the second user to include a specific value in their profiles, such as being in the same location.

[0118] In some examples, the interactive system 100 initially identifies a set of recommended content enhancements based on triggering criteria and then identifies a subset of the mapped set of content enhancements by determining the first user's or other users' preferences for types of content enhancements based on the first user's or other users' historical selections of content enhancements.

[0119] In operation 712, the interactive system 100 causes a first selectable user interface element associated with at least one recommended content enhancement to be displayed on the user interface along with the list of other users. In some examples, the first selectable user interface element is a selectable icon representing the recommended content enhancement (or the recommended enhanced graphical feature). In some examples, the interactive system 100 displays the first selectable user interface element (e.g., the selectable icon) adjacent to an identifier or name of the second user. The interactive system 100 displays the list of other users, wherein the users are placed in respective user interface cells. The interactive system 100 displays the first selectable user interface element (e.g., at least see the icon) for the second user within the user interface cell. Figure 8 and Fig. 9 ).

[0120] In some examples, the interactive system determines the number of recommended content enhancements to be displayed based on the characteristics of the interactive client 104 that the first user is using. The interactive system 100 can limit the number of recommended content enhancements to be displayed based on the screen size. In some examples, the interactive system changes the number based on whether the interactive client 104 is a mobile device or a laptop screen, or based on the screen size of different mobile devices.

[0121] In some examples, in response to the passage of a predetermined time period and / or after being enhanced with the recommended content, the interactive system 100 removes display of the first selectable user interface element. The predetermined time period is associated with the trigger criteria. In some examples, the birthday trigger criteria expires within 24 hours or other predefined time period, while the missed call trigger expires after 2 days or other predefined time period. In some examples, if the trigger is still active, but the first user navigates to a chat window with the user and sends a message without selecting the first selectable user interface element, the interactive system clears the trigger and does not show the first selectable user interface element pushed out for that particular trigger criteria.

[0122] Still refer to Figure 7 At operation 714, the interactive system 100 receives a user selection of the first selectable user interface element and displays the recommended content enhancements on the user interface. The user interface includes a second user selectable interface element that enables the first user to scroll through the plurality of recommended content enhancements.

[0123] The interactive system 100 displays recommended content enhancements based on a predetermined impression limit or impression cap (corresponding to a maximum number of impressions allowed) for each recommended enhancement. If a particular recommended content enhancement has received more than the maximum number of impressions allowed, it can be removed from display. In other examples, the interactive system dynamically adjusts the impression limit (impression cap) based on conversion rates (e.g., the rate at which content enhancements are displayed and selected) for the first user, the second user, the general group, and / or a subset of the group (e.g., users in a similar time zone, location, age range, race, education, occupation, marital status, income, etc.). In some examples, a recommended enhancement that has been consistently or preferentially selected by the first user or the second user and / or a subset of the group may be assigned a higher impression limit, which may have the effect of displaying it for a longer period of time.

[0124] The interactive system 100 applies the content enhancement to the camera feed from the camera system at operation 716, captures an image or video from the camera stream at operation 718, and sends the image or video to the second user's user system 102 at operation 720. According to some examples, the interactive system 100 applies a birthday content enhancement to the camera feed of the first user, captures a video in which the camera feed of the first user is modified to include a birthday hat and balloons in the background, and sends the captured video to the user system 102 of a particular second user on the second user's birthday.

[0125] The interactive system 100 allows for efficient use of user interfaces, thereby reducing the number of graphical user interfaces required to send a video or image with content enhancements to a particular user. In a conventional enhancement process, a user identifies something related to a friend (such as from a third-party application), opens a mobile application for the interactive system, selects an option to open a camera, searches for a particular content enhancement from a complete database of content enhancements based on a search query, records the video or image with the content enhancement applied, saves the recording locally on an interactive client, opens a messaging application, searches for a friend on the messaging application, opens a chat window with the friend, and finally attaches the locally saved video or image to send to a second user. In stark contrast, the interactive system 100 described herein automatically retrieves user profile data to apply to trigger criteria mapped to the relevant content enhancement. In addition, the interactive client 104 displays a selectable icon on the user list for the user to directly access the content enhancement.

[0126] Advantageously, the interactive system according to some examples provides a practical solution to the technical problems of limited user interface space, complex navigation in the user interface, or both. The interactive system automatically identifies relevant contextual enhancements using user profile data and displays an option on the user list for accessing such recommended contextual enhancements. The icon enables the user to directly access the camera feed to which the contextual enhancements are applied, and enables the user to record a picture or video and send it directly to a friend to whom the contextual enhancements are recommended. In addition, given the limited user interface space with a smaller computing device, the interactive system can display an icon in the same cell of a friend for the user to access the recommended content enhancement. Therefore, the technical problem of navigating through numerous graphical user interfaces to send enhanced pictures or videos is solved by a practical solution that automatically applies enhancement trigger criteria to user profile data.

[0127] Figure 8 800 is a user interface diagram showing a friend feed user interface 802 and a reply camera user interface 804, respectively, of the chat interface 504 and the camera user interface 602 according to some examples. In this example, the friend feed user interface 802 displays the friend feed 506 in the form of a list of other associated users (e.g., friends of the first user) or in the form of a list of historical chats with those individual users. The user interface is displayed on the interactive client of the first user. The first user selects a selectable user interface element 808 to view the list of historical chats. The interactive client displays user interface cells of the list of users, where each user being displayed is assigned to a particular user interface cell. In some examples, the user interface cell for each user includes a profile image or animated character of the user, the user's name, the last communication with the user, etc.

[0128] The interactive client retrieves the profiles of one or more individuals listed in the feed.In some examples, referring to the interactive client 104 and the user management system 218, the interactive client accesses the trigger criteria from the user management system to determine whether any of the individuals on the list meet the enhanced trigger criteria.

[0129] The friend feed 506 includes identification information 502 of a second user associated with the first user, and the profile data of the second user includes data that meets the birthday trigger criteria for detecting a birthday event. In some examples, applying the trigger criteria includes logic to check whether the user's birthday matches the current date. In some examples, the user interface cell of the second user information 502 includes a profile image or animated character of the second user, the name of the second user, the last communication with the second user (e.g., a message or call received 3 minutes ago), etc.

[0130] In some examples, in response to determining that the user data of the second user meets the birthday trigger criteria, the CTA graphical element 508 is presented within the friend feed user interface 802, near the identification information of the second user. In some examples, the CTA graphical element 508 itself identifies a specific enhanced graphical feature in the form of a lens (here, the pre-selected birthday lens 812). In different representations of the CTA graphical element 508, the CTA graphical element 508 includes a camera icon to convey that the user's selection of the CTA graphical element 508 triggers the reply camera function of the interactive system 100. In some examples, a user-selectable icon 806 (here, a birthday icon) is shown with the CTA graphical element 508 to identify the type of event detected. In some examples, the displayed selectable user interface element is represented by the icon 806 and / or the CTA graphical element 508.

[0131] In some examples, the interaction client 104 receives a user selection of a selectable user interface element (such as icon 806) indicating that the first user wishes to send a message with content enhancements to the second user. In response to the user selection, the interaction client 104 identifies one or more content enhancements associated with the trigger criteria for the second user by accessing a mapping of content enhancements to trigger criteria. For example, here corresponding enhanced graphic features 810 such as birthday celebration graphics and background images are applied to the user content item 608 to generate a composite image that can be conveniently sent to the user system 102 of the second user identified by the identification information 502. In some examples, the enhanced graphic features 810 are applied to the user content item 608 within the reply camera user interface 804.

[0132] In some examples, the interactive client 104 receives a user selection of a selectable user interface element represented by a CTA graphical element 508. Upon detecting the user selection of the CTA graphical element 508, the interactive system 100 presents a reply camera user interface 804. The user content item 608 is displayed within the reply camera user interface 804 as an image captured by the first user. The reply camera user interface 804 also includes a lens carousel 610, and a lens button 812 is pre-selected within the lens carousel 610. Accordingly, the corresponding enhanced graphical feature 810 (e.g., birthday celebration graphics and background image) is applied to the user content item 608 to generate a composite image that can be conveniently sent to the second user identified by the identification information 502. If desired, the user can select different enhanced functions corresponding to different enhanced graphical features from the lens carousel (e.g., discard birthday event related suggestions for different selections).

[0133] In some examples, the selected content enhancement (such as a particular lens) is applied to a live video feed of the camera system. The interactive client initiates opening the camera system to capture the live video feed and display it on the user interface of the interactive client 104 (e.g., as a user content item 608). In some examples, the enhancement 810 corresponds to the selected content enhancement (e.g., lens 812) applied to the live video feed of the camera system (e.g., content captured by the camera system).

[0134] Fig. 9 is a user interface diagram 900 illustrating a friend feed user interface 902 and a reply camera user interface 904 , respectively, of the chat interface 504 and the camera user interface 602 , according to some examples.

[0135] The friend feed user interface 902 presents a friend feed 910 that includes a list of users associated with a first user (here, the association is via a "friendship" relationship). The friend feed 910 includes identification information 906 of a particular second user for which the interactive system 100 detected a "new friend" event. In response to the event detection, a CTA graphical element 914 is presented within the friend feed user interface 902. The CTA graphical element 914 identifies a particular enhancement in the form of a lens. In a different representation of the CTA graphical element, the CTA graphical element includes a camera icon 918 to primarily convey that the user's selection of the CTA graphical element (in this case, via selection of the camera icon 918) triggers a reply camera function of the interactive system 100.

[0136] In response to the user's selection of the CTA graphical element 914, the reply camera user interface 904 is presented by the interactive system 100. The user content item 916 is a captured image taken by the first user via the camera of the user system 102. The reply camera user interface 904 also includes a lens carousel 920, in which the lens button 908 is pre-selected and the corresponding enhancement 912 is applied to the user content item 916 to generate a composite image that can be conveniently sent to the second user identified by the identification information 906 using the reply camera user interface 904.

[0137] In some examples, content enhancement 912 is applied to a live video feed captured by a camera system. The interactive client initiates opening the camera system to capture the live video feed (as user content item 916) and display it on a user interface of the interactive client 104. According to some examples, enhancement 912 corresponds to a selected content enhancement applied to a live video feed of the camera system (e.g., content captured by the camera system).

[0138] Fig.10is a flow chart illustrating a method 1000 for recommending content enhancements based on contextual information from messages exchanged between users, according to some examples.

[0139] At operation 1002, the interactive system 100 determines to display a list of other users associated with the first user, such as a list of historical chat messages with other users, on a user interface of the first user's user system 102. At operation 1004, the interactive system 100 accesses one or more trigger criteria. Details about identifying the associated users may be at least Figure 4 can be found in the description.

[0140] At operation 1006, the interactive system 100 retrieves messages sent between the first user and other users, and at operation 1008, applies the trained machine learning model to the retrieved messages to determine one or more features of the discussion between the users. For example, the interactive system 100 inputs all or a subset of messages sent between the first user and other users in the chat into the machine learning model. In another example, the interactive system 100 inputs a subset of messages based on the number of messages, a specific time period in which the messages were sent, specific keywords or phrases used, messages sent by the sender or recipient, topic tags used, etc.

[0141] The interactive system 100 receives contextual information from the machine learning model. For example, if a user is recommending certain restaurants to visit when traveling to California with a second user, the machine learning module outputs "restaurants" as a topic of discussion. In some examples, the machine learning model outputs more than one output, such as "restaurants," "travel," and "California." The multiple outputs are used to determine more relevant trigger criteria. In some examples, the multiple outputs are used to identify more than one relevant trigger criteria.

[0142] At operation 1010, the interactive system 100 determines that the feature in question satisfies a trigger criterion in one or more trigger criteria, and identifies a recommended set of content enhancements associated with the trigger criteria at operation 1012. For example, the interactive system 100 determines that the "restaurant" context matches the trigger criterion of food, and identifies a content enhancement that enhances the camera feed with digital items related to certain types of food. At operation 1014, the interactive system 100 causes the recommended set of content enhancements to be displayed for the first user on the user interface of the user system 102.

[0143] In some examples, the machine learning model is stored and applied on the interactive client 104, and the machine learning model is trained by the interactive server 124. In other examples, the machine learning model is applied and / or trained in other systems of the interactive system.

[0144] Fig.11A user interface diagram 1100 is shown showing a chat window 1102 between a first user and a second user, as well as a list of other users 1110 and icons 1112 representing recommended content enhancements related to characteristics of the conversation between the two users.

[0145] The first user and the second user exchange messages within the chat window 1102. For example, the second user asks in a message 1106, "Hey! How about we go get some pizza?" The first user's interactive client 104 evaluates the context of the discussion to determine whether the recommended content enhancement should be presented. The interactive client 104 inputs the text from the chat window into a machine learning model that is trained to recognize features in the text between users, such as the topic of the discussion. The machine learning model identifies that the topic of the discussion between the user of the interactive client and the second user 1104 is pizza.

[0146] The interactive client 104 accesses the trigger criteria to determine whether the characteristics of the discussion identified by the machine learning model meet the trigger criteria. The interactive client 104 identifies that the topic of the discussion meets a specific trigger criterion (e.g., a pizza trigger criterion). Based on the output of applying the trigger criteria to the machine learning model, the interactive client 104 adds a selectable user interface element (here, a pizza icon) 1112 near the second user 1108.

[0147] In response to a user selection of a user interface element, the interactive client 104 turns on the camera system and applies a first content enhancement simultaneously, wherein the first user has the option of scrolling through other content enhancements in a set of recommended content enhancements, captures a video or picture of a live video feed modified with a digital item, and sends a video or picture related to a feature (such as a subject of discussion) between the two users to a second user.

[0148] Data communication architecture

[0149] Fig.12 is a schematic diagram illustrating the structure of a message 1200 according to some examples, the message 1200 being generated by an interactive client 104 for transmission to another interactive client 104 via an interactive server 124. The content of a particular message 1200 is used to populate a message table 306 stored in a database 304 accessible by the interactive server 124. Similarly, the content of the message 1200 is stored in memory as "in-transit" or "in-flight" data of the user system 102 or the interactive server 124. The message 1200 is shown as including the following example components:

[0150] Message identifier 1202 : a unique identifier that identifies the message 1200 .

[0151] Message text payload 1204 : Text to be generated by the user via the user interface of the user system 102 and included in the message 1200 .

[0152] Message image payload 1206 : Image data captured by the camera component of the user system 102 or retrieved from the memory component of the user system 102 and included in the message 1200 . The image data for a message 1200 sent or received may be stored in the image table 316 .

[0153] Message video payload 1208: Video data captured by the camera component or retrieved from the memory component of the user system 102 and included in the message 1200. The video data for the message 1200 sent or received may be stored in the image table 316.

[0154] Message audio payload 1210 : audio data captured by a microphone or retrieved from a memory component of the user system 102 and included in the message 1200 .

[0155] Message enhancement data 1212: Enhancement data (e.g., filters, stickers, or other annotations or enhancements) representing enhancements to be applied to the message image payload 1206, message video payload 1208, or message audio payload 1210 of the message 1200. The enhancement data for a sent or received message 1200 may be stored in the enhancement table 312.

[0156] Message duration parameter 1214: A parameter value indicating the amount of time in seconds that the content of the message (e.g., message image payload 1206, message video payload 1208, message audio payload 1210) is to be presented to the user via the interactive client 104 or made accessible to the user.

[0157] Message geolocation parameters 1216: Geolocation data (e.g., latitude and longitude coordinates) associated with the content payload of the message. Multiple message geolocation parameter 1216 values ​​may be included in the payload, with each of these parameter values ​​being associated with a content item included in the content (e.g., a specific image within a message image payload 1206 or a specific video in a message video payload 1208).

[0158] Message story identifier 1218: An identifier value that identifies one or more content collections (e.g., a "story" identified in collection table 318) associated with a particular content item in the message image payload 1206 of the message 1200. For example, the identifier value may be used to associate multiple images within the message image payload 1206 with each of multiple content collections.

[0159] Message tags 1220: Each message 1200 may be tagged with a plurality of tags, each of which indicates the subject of the content included in the message payload. For example, where a particular image included in the message image payload 1206 depicts an animal (e.g., a lion), a tag value may be included within the message tags 1220 indicating the relevant animal. The tag value may be manually generated based on user input, or may be automatically generated using, for example, image recognition.

[0160] • Message sender identifier 1222: An identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​that indicates the user of the user system 102 on which the message 1200 was generated and from which the message 1200 was sent.

[0161] • Message recipient identifier 1224: Indicates an identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​of the user of the user system 102 to which the message 1200 is addressed.

[0162] The content (e.g., value) of each component of message 1200 may be a pointer to a location in a table where the content data value is stored. For example, the image value in message image payload 1206 may be a pointer (or address) to a location in image table 316. Similarly, the value in message video payload 1208 may point to data stored in image table 316, the value stored in message enhancement data 1212 may point to data stored in enhancement table 312, the value stored in message story identifier 1218 may point to data stored in collection table 318, and the values ​​stored in message sender identifier 1222 and message recipient identifier 1224 may point to user records stored in entity table 308.

[0163] System with head wearable device

[0164] Fig.13 A system 1300 is shown including a head wearable device 116 with a selector input device according to some examples. Fig.13 is a high-level functional block diagram of an example head wearable device 116 communicatively coupled to a mobile device 114 and various server systems 1304 (e.g., interactive server system 110) via various networks 108.

[0165] The head wearable device 116 includes one or more cameras, each of which may be, for example, a visible light camera 1306 , an infrared transmitter 1308 , and an infrared camera 1310 .

[0166] The mobile device 114 is connected to the head wearable device 116 using both a low power wireless connection 1312 and a high speed wireless connection 1314. The mobile device 114 is also connected to the server system 1304 and the network 1316.

[0167] The head wearable device 116 also includes two image displays in the optical assembly's image displays 1318. The two optical assembly's image displays 1318 include an image display associated with a left lateral side of the head wearable device 116 and an image display associated with a right lateral side of the head wearable device 116. The head wearable device 116 also includes an image display driver 1320, an image processor 1322, low power circuits 1324, and high speed circuits 1326. The optical assembly's image displays 1318 are used to present images and videos to a user of the head wearable device 116, including images that may include a graphical user interface.

[0168] The image display driver 1320 commands and controls the image display 1318 of the optical assembly. The image display driver 1320 can deliver the image data directly to the image display 1318 of the optical assembly for presentation or can convert the image data into a signal or data format suitable for delivery to the image display device. For example, the image data can be video data formatted according to a compression format such as H.264 (MPEG-4 Part 10), HEVC, Theora, Dirac, RealVideo RV40, VP8, VP9, ​​etc., while the static image data can be formatted according to a compression format such as Portable Network Graphics Group (PNG), Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF) or Exchangeable Image File Format (Exif), etc.

[0169] The head wearable device 116 includes a frame and rods (or temples) extending from lateral sides of the frame. The head wearable device 116 also includes a user input device 1328 (e.g., a touch sensor or a push button), including an input surface on the head wearable device 116. The user input device 1328 (e.g., a touch sensor or a push button) is used to receive input selections from a user for manipulating a graphical user interface of a presented image.

[0170] Fig.13The components of the head wearable device 116 shown in are located on one or more circuit boards (e.g., PCBs or flexible PCBs) in the frame or temples. Alternatively or additionally, the depicted components may be located in chunks, frames, hinges, or nose bridges of the head wearable device 116. The left visible light camera and the right visible light camera 1306 may include digital camera elements, such as complementary metal oxide semiconductor (CMOS) image sensors, charge coupled devices, camera lenses, or any other corresponding visible light or light capturing elements that can be used to capture data (including images of scenes with unknown objects).

[0171] The head wearable device 116 includes a memory 1302 that stores instructions for performing a subset or all of the functions described herein. The memory 1302 may also include a storage device.

[0172] like Fig.13 As shown, the high-speed circuit 1326 includes a high-speed processor 1330, a memory 1302, and a high-speed wireless circuit 1332. In some examples, the image display driver 1320 is coupled to the high-speed circuit 1326 and is operated by the high-speed processor 1330 to drive the left image display and the right image display in the image display 1318 of the optical assembly. The high-speed processor 1330 can be any processor capable of managing high-speed communications and operations of any general computing system required by the head wearable device 116. The high-speed processor 1330 includes the processing resources required to manage high-speed data transmission to a wireless local area network (WLAN) on the high-speed wireless connection 1314 using the high-speed wireless circuit 1332. In some examples, the high-speed processor 1330 executes an operating system (e.g., a LINUX operating system) or other such operating system of the head wearable device 116, and the operating system is stored in the memory 1302 for execution. In addition to any other duties, the high-speed processor 1330 that executes the software architecture of the head wearable device 116 is used to manage data transmission with the high-speed wireless circuit 1332. In some examples, high-speed wireless circuitry 1332 is configured to implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communications standard, also referred to herein as In some examples, high-speed wireless circuitry 1332 may implement other high-speed communication standards.

[0173] The low power wireless circuit 1334 and the high speed wireless circuit 1332 of the head wearable device 116 may include a short range transceiver (Bluetooth TM ) and a wireless WAN transceiver, a wireless LAN transceiver, or a WAN transceiver (e.g., cellular or ). Mobile device 114, including a transceiver for communicating via low power wireless connection 1312 and high speed wireless connection 1314, may be implemented using details of the architecture of head wearable device 116, as may other elements of network 1316.

[0174] The memory 1302 includes any storage device capable of storing various data and applications, including camera data generated by the left and right visible light cameras 1306, the infrared camera 1310, and the image processor 1322, and images generated to be displayed on an image display in the image display 1318 of the optical assembly through the image display driver 1320. Although the memory 1302 is shown as being integrated with the high-speed circuit 1326, in some examples, the memory 1302 can be a separate independent element of the head wearable device 116. In some such examples, electrical wiring can provide a connection from the image processor 1322 or the low-power processor 1336 to the memory 1302 through a chip including the high-speed processor 1330. In some examples, the high-speed processor 1330 can manage the addressing of the memory 1302 so that the low-power processor 1336 will start the high-speed processor 1330 at any time when a read or write operation involving the memory 1302 is required.

[0175] like Fig.13 As shown, the low-power processor 1336 or the high-speed processor 1330 of the head wearable device 116 can be coupled to a camera device (a visible light camera device 1306, an infrared emitter 1308, or an infrared camera device 1310), an image display driver 1320, a user input device 1328 (for example, a touch sensor or a push button), and a memory 1302.

[0176] The head wearable device 116 is connected to a host computer. For example, the head wearable device 116 is paired with the mobile device 114 via a high-speed wireless connection 1314 or connected to the server system 1304 via a network 1316. The server system 1304 can be one or more computing devices as part of a service or network computing system, for example, including a processor, a memory, and a network communication interface to communicate with the mobile device 114 and the head wearable device 116 through the network 1316.

[0177] The mobile device 114 includes a processor and a network communication interface coupled to the processor. The network communication interface allows communication via a network 1316, a low power wireless connection 1312, or a high speed wireless connection 1314. The mobile device 114 may further store at least some of the instructions in a memory of the mobile device 114 memory to implement the functions described herein.

[0178] The output components of the head wearable device 116 include visual components, such as a display (e.g., a liquid crystal display (LCD), a plasma display panel (PDP), a light emitting diode (LED) display, a projector, or a waveguide). The image display of the optical component is driven by the image display driver 1320. The output components of the head wearable device 116 also include acoustic components (e.g., speakers), tactile components (e.g., vibration motors), other signal generators, etc. The input components of the head wearable device 116, the mobile device 114, and the server system 1304 (e.g., user input devices 1328) may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), pointing-based input components (e.g., mice, touch pads, tracking balls, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and force of touch or touch gestures), audio input components (e.g., microphones), etc.

[0179] The head wearable device 116 may also include additional peripheral elements. Such peripheral elements may include biometric sensors, additional sensors, or display elements integrated with the head wearable device 116. For example, the peripheral elements may include any I / O components, including output components, motion components, position components, or any other such components described herein.

[0180] For example, biometric components include components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body gestures, or eye tracking), measuring biological signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The biometric components may include a brain-computer interface (BMI) system that allows communication between the brain and an external device or machine. This can be achieved by recording brain activity data, converting the data into a format that can be understood by a computer, and then using the resulting signals to control the device or machine.

[0181] Example types of BMI technologies include:

[0182] Electroencephalogram (EEG)-based BMI, which uses electrodes placed on the scalp to record electrical activity in the brain.

[0183] • Invasive BMIs, which use electrodes surgically implanted in the brain.

[0184] Optogenetic BMIs, which use light to control the activity of specific nerve cells in the brain.

[0185] Any biometric data collected by the biometric component is captured and stored only with the user's approval and is deleted upon user request. In addition, such biometric data may be used for very limited purposes (e.g., identification verification). In order to ensure the restricted and authorized use of biometric information and other personally identifiable information (PII), access to this data is limited to authorized personnel (if access to this data occurs). Any use of biometric data may be strictly limited to identification verification purposes, and the biometric data is not shared or sold to any third party without the user's explicit consent. In addition, appropriate technical and organizational measures are implemented to ensure the security and confidentiality of this sensitive information.

[0186] The motion component includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The position component includes a positioning sensor component for generating position coordinates (e.g., a global positioning system (GPS) receiver component), a Wi-Fi or Bluetooth receiver for generating positioning system coordinates, and a positioning sensor component for generating a positioning system coordinate. TM transceiver, altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which altitude can be obtained), orientation sensor component (e.g., a magnetometer), etc. Such positioning system coordinates can also be received from the mobile device 114 through the low-power wireless connection 1312 and the high-speed wireless connection 1314 via the low-power wireless circuit 1334 or the high-speed wireless circuit 1332.

[0187] Machine Architecture

[0188] Fig.141400 within which instructions 1402 (e.g., software, programs, applications, applet, app, or other executable code) may be executed for causing the machine 1400 to perform any one or more of the methods discussed herein. For example, the instructions 1402 may cause the machine 1400 to perform any one or more of the methods described herein. The instructions 1402 convert a general purpose, unprogrammed machine 1400 into a specific machine 1400 that is programmed to perform the functions described and illustrated in the manner described. The machine 1400 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1400 may operate as a server machine or a client machine in a server-client network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1400 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 1402 specifying actions to be taken by the machine 1400. In addition, although only a single machine 1400 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 1402 to perform any one or more of the methods discussed herein. For example, the machine 1400 may include any of the plurality of server devices that form part of the interactive server system 110 or the user system 102. In some examples, the machine 1400 may also include both a client system and a server system, wherein certain operations of a particular method or algorithm are performed on the server side, and certain operations of the particular method or algorithm are performed on the client side.

[0189] The machine 1400 may include a processor 1404, a memory 1406, and an input / output (I / O) component 1408 that may be configured to communicate with each other via a bus 1410. In an example, the processor 1404 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1412 that executes instructions 1402 and a processor 1414. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Fig.14 Multiple processors 1404 are shown, but the machine 1400 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0190] The memory 1406 includes a main memory 1416, a static memory 1418, and a storage unit 1420, which are all accessible by the processor 1404 via the bus 1410. The main memory 1406, the static memory 1418, and the storage unit 1420 store instructions 1402 that implement any one or more of the methods or functions described herein. The instructions 1402 may also reside, completely or partially, within the main memory 1416, within the static memory 1418, within the machine-readable medium 1422 within the storage unit 1420, within at least one of the processors 1404 (e.g., within a cache memory of a processor), or within any suitable combination thereof during execution thereof by the machine 1400.

[0191] I / O components 1408 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 1408 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine will be less likely to include such a touch input device. It should be appreciated that I / O components 1408 may include Fig.141408. In various examples, the I / O components 1408 may include a user output component 1424 and a user input component 1426. The user output component 1424 may include a visual component (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. The user input component 1426 may include an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, or other pointing instrument), a tactile input component (e.g., a physical button, a touch screen or other tactile input component that provides the location and force of a touch or touch gesture), an audio input component (e.g., a microphone), etc.

[0192] In other examples, the I / O component 1408 may include a biometric component 1428, a motion component 1430, an environmental component 1432, or a position component 1434, as well as a wide range of other components. For example, the biometric component 1428 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The biometric component may include a brain-computer interface (BMI) system that allows communication between the brain and an external device or machine. This can be achieved by recording brain activity data, converting the data into a format that can be understood by a computer, and then using the resulting signal to control the device or machine.

[0193] Example types of BMI technologies include:

[0194] Electroencephalogram (EEG)-based BMI, which uses electrodes placed on the scalp to record electrical activity in the brain.

[0195] • Invasive BMIs, which use electrodes surgically implanted in the brain.

[0196] Optogenetic BMIs, which use light to control the activity of specific nerve cells in the brain.

[0197] Any biometric data collected by the biometric component is captured and stored only with the user's approval and is deleted upon user request. In addition, such biometric data may be used for very limited purposes (e.g., identification verification). In order to ensure the restricted and authorized use of biometric information and other personally identifiable information (PII), access to this data is limited to authorized personnel (if access to this data occurs). Any use of biometric data may be strictly limited to identification verification purposes, and the data is not shared or sold to any third party without the user's explicit consent. In addition, appropriate technical and organizational measures are implemented to ensure the security and confidentiality of this sensitive information.

[0198] The motion component 1430 includes an acceleration sensor component (eg, an accelerometer), a gravity sensor component, and a rotation sensor component (eg, a gyroscope).

[0199] Environmental components 1432 include, for example, one or more cameras (with still image / photo and video capabilities), lighting sensor components (e.g., a photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., a barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., an infrared sensor that detects nearby objects), gas sensors (e.g., a gas detection sensor for detecting concentrations of hazardous gases for safety purposes or for measuring pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment.

[0200] With respect to cameras, user system 102 may have a camera system including, for example, a front-facing camera on a front surface of user system 102 and a rear-facing camera on a rear surface of user system 102. The front-facing camera may, for example, be used to capture still images and videos of a user of user system 102 (e.g., “selfies”), which may then be enhanced with the enhancement data (e.g., filters) described above. For example, the rear-facing camera may be used to capture still images and videos in a more conventional camera mode, which images are similarly enhanced with the enhancement data. In addition to the front-facing camera and the rear-facing camera, user system 102 may also include a 360° camera for capturing 360° photos and videos.

[0201] Additionally, the camera system of the user system 102 may include dual rear cameras (e.g., a main camera and a depth sensing camera), or even triple, quad, or quintuple rear camera configurations on the front and back sides of the user system 102. For example, these multi-camera systems may include a wide-angle camera, an ultra-wide-angle camera, a telephoto camera, a macro camera, and a depth sensor.

[0202] The location component 1434 includes a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), and the like.

[0203] Various technologies may be used to implement communications. I / O components 1408 also include communications components 1436 that are operable to couple machine 1400 to a network 1438 or device 1440 via a corresponding coupling or connection. For example, communications components 1436 may include a network interface component or another suitable device that interfaces with network 1438. In other examples, communications components 1436 may include wired communications components, wireless communications components, cellular communications components, near field communications (NFC) components, Parts (e.g. Low energy consumption), Components and other communication components for providing communication via other forms. Device 1440 can be another machine or any peripheral device among various peripheral devices (e.g., a peripheral device coupled via USB).

[0204] In addition, the communication component 1436 can detect the identifier, or include components operable to detect the identifier. For example, the communication component 1436 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., for detecting a one-dimensional barcode such as a Universal Product Code (UPC) barcode, a barcode such as a Quick Response (QR) code, an Aztec code, a Data Matrix, a Dataglyph, or a similar barcode. TM ), MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcode, multi-dimensional barcode and other optical codes) or acoustic detection components (e.g., microphones for audio signals for identifying tags). In addition, various information can be obtained via communication component 1436, such as positioning via Internet Protocol (IP) geolocation, Positioning obtained by signal triangulation, positioning obtained by detecting NFC beacon signals that can indicate a specific position, etc.

[0205] Various memories (e.g., main memory 1416, static memory 1418, and memory of processor 1404) and storage unit 1420 may store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1402) when executed by processor 1404 cause various operations to implement the disclosed examples.

[0206] The instructions 1402 may be sent or received via a network interface device (e.g., a network interface component included in the communication component 1436) using a transmission medium and using any of several well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)) over the network 1438. Similarly, the instructions 1402 may be sent or received via a coupling (e.g., a peer-to-peer coupling) with the device 1440 using a transmission medium.

[0207] Software Architecture

[0208] Fig.15 1500 is a block diagram illustrating a software architecture 1502 that may be installed on any one or more of the devices described herein. The software architecture 1502 is supported by hardware such as a machine 1504 including a processor 1506, a memory 1508, and an I / O component 1510. In this example, the software architecture 1502 may be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 1502 includes layers such as an operating system 1512, a library 1514, a framework 1516, and an application 1518. In operation, the application 1518 invokes an API call 1520 through the software stack and receives a message 1522 in response to the API call 1520.

[0209] The operating system 1512 manages hardware resources and provides public services. The operating system 1512 includes, for example, a kernel 1524, services 1526, and drivers 1528. The kernel 1524 acts as an abstraction layer between the hardware layer and other software layers. For example, the kernel 1524 provides memory management, processor management (e.g., scheduling), component management, networking and security settings, and other functions. Services 1526 can provide other public services to other software layers. Drivers 1528 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1528 may include display drivers, camera drivers, or Low-power drivers, Flash drivers, Serial communication drivers (e.g., USB drivers), Drivers, audio drivers, power management drivers, etc.

[0210] The libraries 1514 provide a common low-level infrastructure used by the applications 1518. The libraries 1514 may include a system library 1530 (e.g., a C standard library) that provides functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the libraries 1514 may include an API library 1532, such as a media library (e.g., a library for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., an OpenGL framework for rendering in two dimensions (2D) and three dimensions (3D) in graphics content on a display), a database library (e.g., SQLite providing various relational database functions), a web library (e.g., WebKit providing web browsing functions), etc. The library 1514 may also include various other libraries 1534 to provide many other APIs to the application 1518 .

[0211] The framework 1516 provides a common high-level infrastructure used by the applications 1518. For example, the framework 1516 provides various graphical user interface (GUI) functions, high-level resource management, and high-level positioning services. The framework 1516 can provide a wide range of other APIs that can be used by the applications 1518, some of which can be specific to a particular operating system or platform.

[0212] In an example, applications 1518 may include a home application 1536, a contacts application 1538, a browser application 1540, a book reader application 1542, a positioning application 1544, a media application 1546, a messaging application 1548, a game application 1550, and a variety of other applications such as third-party applications 1552. Applications 1518 are programs that execute functions defined in the program. Various programming languages ​​may be used to create one or more of the applications 1518 constructed in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C language or assembly language). In a specific example, third-party applications 1552 (e.g., those created by entities other than the vendor of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) can be used to develop applications on platforms such as IOS TM ANDROID TM , Mobile software running on the mobile operating system of the mobile phone or another mobile operating system. In this example, third-party applications 1552 can activate API calls 1520 provided by the operating system 1512 to facilitate the functions described herein.

[0213] Example

[0214] Example 1 is a method using at least one processor, the method comprising: accessing relationship data related to a first user of an interactive system to identify a second user of the interactive system associated with the first user; causing identification information of the second user of the interactive system to be presented within an interactive interface; identifying an event related to the second user of the interactive system; and in response to identifying the event related to the second user of the interactive system: causing a call to action graphic element associated with the identification information of the second user to be presented within the interactive interface; detecting a user selection of the call to action graphic element within the interactive interface; and in response to detecting the user selection of the call to action graphic element, activating an interactive function to facilitate interaction between the first user and the second user, the interactive function comprising at least one of the following: a communication function that enables the first user to use the interactive system to transmit digital content to the second user, and an enhanced function that enables the first user to use enhanced graphic features to enhance the digital content.

[0215] In Example 2, the subject matter of Example 1 includes, wherein the enhanced graphical feature corresponds to an event type of an event related to the second user.

[0216] In Example 3, the subject matter of Example 2 includes, wherein the event type of the event related to the second user is a birthday event type, and the enhanced graphical feature is a birthday celebration graphical element.

[0217] In Example 4, the subject matter of Examples 1 to 3 includes, wherein: the second user is a user in a user set of the interactive system, each user in the user set of the interactive system is associated with the first user based on at least one of the recorded bidirectional relationships or the recorded unidirectional relationships; and the method also includes presenting identification information of each user in the user set of the interactive system, and the identification information is presented within the interactive interface.

[0218] In Example 5, the subject matter of Examples 1 to 4 includes, wherein the identification information of the second user includes a user name and an avatar.

[0219] In Example 6, the subject matter of Examples 1 to 5 includes, wherein the event related to the second user includes creating a recorded relationship between the first user and the second user.

[0220] In Example 7, the subject matter of Examples 1 to 6 includes, wherein identifying the event related to the second user includes: applying one or more trigger criteria to user data of the second user; and determining that the second user satisfies one of the one or more trigger criteria.

[0221] In Example 8, the subject matter of Example 7 includes, wherein the user data of the second user of the interactive system is at least one of user profile data or user message data.

[0222] In Example 9, the subject matter of Examples 7 to 8 includes applying a machine learning model to user data to determine one or more features of the user data, and wherein determining that the second user satisfies one of the one or more trigger criteria includes determining that a feature of the user data of the second user satisfies one of the one or more trigger criteria.

[0223] In Example 10, the subject matter of Examples 1 to 9 includes, wherein the communication function is a reply camera function that enables a first user to capture at least one of a digital image or a digital video for transmission to a second user using the interactive system.

[0224] Example 11 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations for implementing any of Examples 1 to 10.

[0225] Example 12 is an apparatus comprising means for implementing any of Examples 1 to 10.

[0226] Example 13 is a system for implementing any of Examples 1 to 10.

[0227] Glossary

[0228] For example, a "carrier signal" refers to any intangible medium that can store, encode, or carry instructions for execution by a machine and includes digital or analog communication signals or other intangible media that facilitates communication of such instructions. Instructions may be sent or received over a network using a transmission medium via a network interface device.

[0229] For example, a "client device" refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communication device that a user may use to access a network.

[0230] For example, a “communication network” refers to one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a Plain Old Telephone Service (POTS) network, a cellular telephone network, a wireless network, A network, other type of network, or a combination of two or more such networks. For example, the network or a portion of the network may include a wireless network or a cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rate for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other data transmission technologies defined by various standard setting organizations, other long distance protocols, or other data transmission technologies.

[0231] For example, "component" refers to a logic or device, a physical entity with the following boundaries, which is defined by a function or subroutine call, a branch point, an API, or other technical definitions that provide partitioning or modularization for a specific processing or control function. A component can be combined with other components via its interface to perform machine processing. A component can be a packaged functional hardware unit designed for use with other components, and a part of a program that generally performs a specific function of a related function. A component can constitute a software component (e.g., a code implemented on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., an independent computer system, a client computer system, or a server computer system) or one or more hardware components (e.g., a processor or a processor group) of a computer system can be configured by software (e.g., an application or an application part) to operate to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include a dedicated circuit or logic that is permanently configured to perform certain operations. The hardware component may be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware component may also include a programmable logic or circuit that is temporarily configured to perform certain operations by software. For example, the hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific component of a machine), which is uniquely customized to perform the function of the configuration and is no longer a general-purpose processor. It will be recognized that it can be determined for cost and time considerations whether to mechanically implement the hardware component in a dedicated and permanently configured circuit or in a temporarily configured (e.g., configured by software) circuit to implement the hardware component. Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, that is, an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or perform certain operations described herein. Considering an example in which a hardware component is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component in the hardware component at any one time. For example, where a hardware component includes a general purpose processor that is configured by software to be a special purpose processor, the general purpose processor may be configured as different special purpose processors (e.g., including different hardware components) at different times. The software configures a specific one or more processors accordingly, such as to constitute a specific hardware component at one time and to constitute different hardware components at different times. Hardware components may provide information to other hardware components and receive information from other hardware components. Thus, the described hardware components may be considered to be communicatively coupled.In the case of multiple hardware components being present at the same time, communication can be achieved by signal transmission between or among two or more hardware components (e.g., by appropriate circuits and buses). In examples where multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessible to multiple hardware components and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled to it in communication. Then, other hardware components can access the memory device at a subsequent time to retrieve the stored output and process it. The hardware component can also initiate communication with an input device or an output device, and can operate on resources (e.g., a collection of information). The various operations of the example methods described in this article can be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform related operations. Whether it is temporarily configured or permanently configured, such a processor can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, "processor-implemented components" refer to hardware components implemented using one or more processors. Similarly, the method described in this article can be implemented at least in part by a processor, wherein one or more specific processors are examples of hardware. For example, at least some of the operations in the operation of the method can be performed by one or more processors or the parts implemented by the processor. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or as a "software as a service" (SaaS) operation. For example, at least some of the operations in the operation can be performed by a computer group (as an example of a machine including a processor), wherein these operations can be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., API). The execution of certain operations can be distributed between processors, not only resident in a single machine, but deployed across multiple machines. In some examples, a processor or a part implemented by a processor can be located in a single geographic location (e.g., in a home environment, an office environment, or a server cluster). In other examples, a processor or a part implemented by a processor can be distributed across multiple geographic locations.

[0232] For example, "computer-readable storage media" refers to both machine storage media and transmission media. Therefore, these terms include both storage devices / media and carrier waves / modulated data signals. The terms "machine-readable medium", "computer-readable medium", and "device-readable medium" mean the same thing and can be used interchangeably in this disclosure.

[0233] For example, a "transient message" is a message that is accessible for a limited duration. A transient message can be text, an image, a video, etc. The access time for a transient message can be set by the sender of the message. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.

[0234] For example, "machine storage media" refers to a single or multiple storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Thus, the term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage media", "device storage media", and "computer storage media" mean the same thing and may be used interchangeably in this disclosure. The terms "machine storage media", "computer storage media", and "device storage media" explicitly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal media".

[0235] For example, a “non-transitory computer-readable storage medium” refers to a tangible medium capable of storing, encoding, or carrying instructions to be executed by a machine.

[0236] For example, "signal medium" refers to any intangible medium that is capable of storing, encoding or carrying instructions executed by a machine and includes digital or analog communication signals or other intangible media that facilitate the communication of software or data. The term "signal medium" should be deemed to include any form of modulated data signals, carrier waves, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.

[0237] "User device" refers to a device that is, for example, accessed, controlled, or owned by a user and with which the user interacts to perform actions or interactions on the user device, including interactions with other users or computer systems.

[0238] "Extended reality" or (XR) is an umbrella term that encompasses augmented reality (AR), virtual reality (VR), mixed reality (MR), and everything in between. For simplicity, examples are described herein using one type of system (such as XR or AR). However, it should be understood that other types of systems are also applicable.

Claims

1. A method of using at least one processor, the method comprising: accessing relationship data associated with a first user of an interactive system to identify a second user of the interactive system associated with the first user; causing identification information of the second user of the interactive system to be presented in an interactive interface; identifying an event related to the second user of the interactive system; as well as In response to identifying the event related to the second user of the interactive system: causing a call-to-action graphic element associated with the identification information of the second user to be presented in the interactive interface; Detecting a user's selection of the call to action graphical element in the interactive interface; as well as In response to detecting a user selection of the call to action graphical element, activating an interactive function to facilitate interaction between the first user and the second user, the interactive function comprising at least one of the following: a communication function that enables the first user to transmit digital content to the second user using the interactive system, and The first user is enabled to use enhanced graphics features to enhance enhanced functionality of the digital content.

2. The method according to claim 1, wherein: The enhanced graphical feature corresponds to an event type of the event related to the second user.

3. The method according to claim 2, wherein: The event type of the event related to the second user is a birthday event type, and the enhanced graphical feature is a birthday celebration graphical element.

4. The method according to claim 1, wherein: The second user is a user in a user set of the interactive system, each user in the user set of the interactive system is associated with the first user based on at least one of the recorded bidirectional relationship or the recorded unidirectional relationship; as well as The method further comprises causing identification information of each user in a set of users of the interactive system to be presented, wherein the identification information is presented in the interactive interface.

5. The method according to claim 1, wherein: The identification information of the second user includes a user name and an avatar.

6. The method according to claim 1, wherein: The event related to the second user includes creating a recorded relationship between the first user and the second user.

7. The method according to claim 1, wherein: Identifying an event related to the second user of the interactive system comprises: applying one or more trigger criteria to the user data of the second user; It is determined that the second user satisfies one of the one or more triggering criteria.

8. The method according to claim 7, wherein: The user data of the second user of the interactive system is at least one of user profile data or user message data.

9. The method of claim 7, further comprising applying a machine learning model to the user data of the second user to determine one or more features of the user data, and wherein: Determining that the second user satisfies one of the one or more trigger criteria includes determining that a characteristic of the user data of the second user satisfies one of the one or more trigger criteria.

10. The method according to claim 1, wherein: The communication function is a reply camera function that enables the first user to capture at least one of a digital image or a digital video for transmission to the second user using the interactive system.

11. A computing device comprising: at least one processor; as well as at least one memory storing instructions that, when executed by the at least one processor, configure the computing device to perform operations comprising: accessing relationship data associated with a first user of an interactive system to identify a second user of the interactive system associated with the first user; causing identification information of the second user of the interactive system to be presented in an interactive interface; identifying an event related to the second user of the interactive system; as well as In response to identifying the event related to the second user of the interactive system: causing a call-to-action graphic element associated with the identification information of the second user to be presented in the interactive interface; Detecting a user's selection of the call to action graphical element in the interactive interface; as well as In response to detecting a user selection of the call to action graphical element, activating an interactive function to facilitate interaction between the first user and the second user, the interactive function comprising at least one of the following: a communication function that enables the first user to transmit digital content to the second user using the interactive system, and The first user is enabled to use enhanced graphics features to enhance enhanced functionality of the digital content.

12. The computing device of claim 11, wherein: The enhanced graphical feature corresponds to an event type of the event related to the second user.

13. The computing device of claim 12, wherein: The event type of the event related to the second user is a birthday event type, and the enhanced graphical feature is a birthday celebration graphical element.

14. The computing device of claim 11, wherein: The second user is a user in a user set of the interactive system, each user in the user set of the interactive system is associated with the first user based on at least one of the recorded bidirectional relationship or the recorded unidirectional relationship; as well as The operation also includes causing identification information of each user in the user set of the interactive system to be presented, and the identification information is presented in the interactive interface.

15. The computing device of claim 11, wherein: The identification information of the second user includes a user name and an avatar.

16. The computing device of claim 11, wherein: The event related to the second user includes creating a recorded relationship between the first user and the second user.

17. The computing device of claim 11, wherein: Identifying events related to the second user includes: applying one or more triggering criteria to the user data of the second user; and It is determined that the second user satisfies one of the one or more triggering criteria.

18. The computing device of claim 17, wherein: The user data of the second user is at least one of user profile data or user message data.

19. The computing device of claim 17, wherein: The operations also include: Applying a machine learning model to the user data to determine one or more features of the user data of the second user, and wherein determining that the second user satisfies one of the one or more trigger criteria includes determining that a feature of the user data of the second user satisfies one of the one or more trigger criteria.

20. The computing device of claim 11, wherein: The communication function is a reply camera function that enables the first user to capture at least one of a digital image or a digital video for transmission to the second user using the interactive system.

21. A non-transitory computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform operations comprising: accessing relationship data associated with a first user of an interactive system to identify a second user of the interactive system associated with the first user; causing identification information of the second user of the interactive system to be presented in an interactive interface; identifying an event related to the second user of the interactive system; as well as In response to identifying the event related to the second user of the interactive system: causing a call-to-action graphic element associated with the identification information of the second user to be presented in the interactive interface; Detecting a user's selection of the call to action graphical element in the interactive interface; as well as In response to detecting a user selection of the call to action graphical element, activating an interactive function to facilitate interaction between the first user and the second user, the interactive function comprising at least one of the following: a communication function that enables the first user to transmit digital content to the second user using the interactive system, and The first user is enabled to use enhanced graphics features to enhance enhanced functionality of the digital content.

Citation Information

Cited By

  • Contextual reply augmentation system

    US12341738B2