Methods and systems for augmented reality and computer readable media
By collecting and analyzing usage data of augmented reality content items, the problem of insufficient user interaction tracking in the existing system was solved, enabling accurate identification of user groups and content optimization, thereby improving the effectiveness of content creation and user experience.
Patent Information
- Application Number
- CN202180066596.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-09-28
- Filing Date
- 2021-09-29
- Publication Date
- 2026-01-02
- Estimated Expiration
- 2041-09-29
AI Technical Summary
Existing systems and methods are unable to effectively track and analyze the usage of augmented reality content items, lack detailed information on user interactions and usage metrics related to the creators' desired outcomes, thus limiting the decision-making capabilities of augmented reality content creators.
By collecting and analyzing usage data for augmented reality content items, we can determine the correlation between usage metrics and creator-specified outcomes, and generate user interface data to provide detailed user interaction information and target audience analysis.
Augmented reality content creators can more accurately identify potential user groups, optimize content creation and advertising campaigns, and improve the efficiency of content items and user satisfaction.
Smart Images

Figure CN116324845B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This patent application claims the benefit of U.S. Provisional Patent Application No. 63 / 085,876, filed September 30, 2020, and U.S. Patent Application No. 17 / 488,069, filed September 28, 2021, which are incorporated herein by reference in their entirety. Technical Field
[0003] This patent application relates to the field of augmented reality technology, and more specifically, to the analysis of augmented reality content item usage data. Background Technology
[0004] Applications executed by client devices can be used to generate content. For example, client applications can be used to generate message sending and receiving content, image content, video content, audio content, media overlays, documents, creative works, and combinations thereof. In various situations, user content can be modified by augmented reality content. Summary of the Invention
[0005] According to one aspect of this disclosure, a method for augmented reality is provided, comprising: determining usage data for a plurality of augmented reality content items by one or more computing devices, each including a processor and a memory, the usage data indicating the amount of interaction by a user of a client application with respect to each of the plurality of augmented reality content items; determining, by at least one of the one or more computing devices, a plurality of usage metrics for the augmented reality content items among the plurality of augmented reality content items, the augmented reality content items being generated by an augmented reality content creator, based on the usage data; determining, by at least one of the one or more computing devices, a level of relevance between a usage metric among the plurality of usage metrics and a result specified by the augmented reality content creator; determining, by at least one of the one or more computing devices, a fitness estimate of the usage metric relative to the result based on the relevance level; and generating, by at least one of the one or more computing devices, user interface data corresponding to a user interface indicating the fitness estimate of the usage metric.
[0006] According to another aspect of the disclosure, a system for augmented reality is provided, comprising: one or more hardware processors; and one or more non-transitory computer-readable storage media comprising computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising: determining usage data for a plurality of augmented reality content items, the usage data indicating an amount of interaction by a user of a client application with respective ones of the plurality of augmented reality content items; determining, based on the usage data, a plurality of usage metrics for an augmented reality content item of the plurality of augmented reality content items, the augmented reality content item being produced by an augmented reality content creator; determining a level of correlation between a usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; determining, based on the level of correlation, a fitness estimate of the usage metric with respect to the outcome; and generating user interface data corresponding to a user interface indicating the fitness estimate of the usage metric.
[0007] According to yet another aspect of the disclosure, one or more non-transitory computer-readable media are provided, comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising: determining usage data for a plurality of augmented reality content items, the usage data indicating an amount of interaction by a user of a client application with respective ones of the plurality of augmented reality content items; determining, based on the usage data, a plurality of usage metrics for an augmented reality content item of the plurality of augmented reality content items, the augmented reality content item being produced by an augmented reality content creator; determining a level of correlation between a usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; determining, based on the level of correlation, a fitness estimate of the usage metric with respect to the outcome; and generating user interface data corresponding to a user interface indicating the fitness estimate of the usage metric. BRIEF DESCRIPTION OF DRAWINGS
[0008] In the drawings, which are not necessarily drawn to scale, like numerals can describe similar components in different views. Like numerals having
[0009] Figure 1 is a graphical representation of an architecture for exchanging data (e.g., messages and related content) over a network according to one or more example implementations.
[0010] Figure 2is a graphical representation of a system that can have both client-side and server-side functionality, according to some examples.
[0011] Figure 3 is a schematic diagram illustrating data that can be stored in a database of a server system, according to one or more example implementations.
[0012] Figure 4 is a schematic diagram illustrating an example framework of content that can be accessed via a client application, according to one or more example implementations.
[0013] Figure 5 is a graphical representation of an architecture for analyzing augmented reality content usage data, according to one or more example implementations.
[0014] Figure 6 is a flowchart illustrating example operations of a process for determining measures of fitness of usage metrics of augmented reality content items relative to outcomes specified by augmented reality content creators, according to one or more example implementations.
[0015] Figure 7 is an illustration of a user interface indicating information about measures of fitness for use of a plurality of augmented reality content item usage metrics, according to one or more example implementations.
[0016] Figure 8 is a block diagram illustrating components of a machine in the form of a computer system, according to one or more example implementations, that can read and execute instructions from one or more machine-readable media to perform any one or more of the methodologies described herein.
[0017] Figure 9 is a block diagram illustrating a representative software architecture that can be used in conjunction with one or more hardware architectures, described herein, according to one or more example implementations. DETAILED DESCRIPTION
[0018] Personal and organizations can create augmented reality content items that can be consumed by users of client applications that can execute the augmented reality content items. For example, augmented reality content items can be created that modify the appearance of one or more objects included in user content, where the user content can include at least one of image content, video content, or audio content captured via a client application using one or more input devices of a client device. To illustrate, an augmented reality content item can modify the appearance of one or more persons included in user content. In one or more examples, the augmented reality content item can modify the user content by adding at least one of image content or video content that modifies the appearance of an object included in the user content to the user content. In various examples, the augmented reality content item can cause content that overlays at least a portion of an object included in the user content to be displayed. Further, the augmented reality content can modify pixel data of the image content or video content to change the appearance of at least one object included in the user content.
[0019] In existing systems and methods, the amount of information that augmented reality content creators can obtain regarding the use of their augmented reality content items is limited. In one or more examples, augmented reality content creators can obtain information indicating the amount of time that a user of a client application has viewed an augmented reality content item or the number of times an augmented reality content item has been shared with other users of the client application. Additionally, augmented reality content creators are generally able to obtain limited information about the characteristics of users of a client application that are consuming augmented reality content items generated by these creators. Existing systems and methods generate augmented reality content that lacks technical functionality for tracking the use of augmented reality content items in ways that provide augmented reality content creators with more robust information about the use of augmented reality content items that they have created. In particular, existing systems and methods provide limited granularity about user interactions with augmented reality content items during the creation of the augmented reality content items. Further, the technical infrastructure used by existing systems and methods limits the availability and amount of information about the characteristics of users that interact with augmented reality content items. Moreover, augmented reality content creators are generally unable to obtain information indicating usage metrics related to results and / or goals desired by the augmented reality content creators, such as the number of purchases of a product corresponding to an augmented reality content item or the amount of time that users of a client application interact with an augmented reality content item.
[0020] Implementations of the systems, methods, techniques, instruction sequences, and computer machine program products described herein are directed to collecting and analyzing augmented reality content item usage data. Implementations described herein can be used to obtain additional information related to usage of augmented reality content items that existing systems and methods are not capable of obtaining. For example, implementations described herein can collect profile information of users of client applications that interact with augmented reality content items. Implementations described herein can also analyze the collected information about client application users. In this way, the systems and methods described herein can provide augmented reality content creators with detailed information about users that consume augmented reality content items generated by these creators. In one or more scenarios, augmented reality content creators can tailor their augmented reality content items to audiences of other client application users based on characteristics of client application users that have previously interacted with their augmented reality content items. Additionally, augmented reality content creators can implement advertising campaigns to have their augmented reality content made known to additional client application users that share characteristics with client application users that have previously interacted with augmented reality content items generated by these creators.
[0021] In various examples, the systems and methods described herein can enable creators of augmented reality content items to associate multiple particular user interface elements with features of augmented reality content items. For example, a creator of augmented reality content can select features of their augmented reality content item to track user interactions with the features for those features. To illustrate, an augmented reality content item can include multiple features that a user of a client application can interact with, and a creator of the augmented reality content item can indicate that one or more of the features are associated with selectable user interface elements. In these cases, user input indicating that at least one of the selectable user interface elements has been selected can be collected and analyzed. In this way, additional interactions of a user of a client application with an augmented reality content item that cannot be captured by existing systems and methods can be tracked, and a greater degree of granularity about interactions with features of an augmented reality content item can be tracked relative to existing systems and methods. In one or more examples, metrics indicating an amount of user interaction with an augmented reality content item or an amount of user interaction with features of an augmented reality content item can be determined based on data obtained by tracking selections of user interface elements corresponding to the augmented reality content item.
[0022] In various examples, usage metrics for characterizing the amount of interaction between users of the client application and the augmented reality content item can also be evaluated. In one or more examples, some usage metrics can be more indicative of one or more outcomes desired by the augmented reality content creator than other usage metrics. The systems and methods described herein can evaluate usage metrics determined with respect to the augmented reality content item and can identify, for a given augmented reality content item, at least one usage metric having at least a threshold probability of indicating a desired outcome. In further examples, the augmented reality content item can be modified to increase usage metrics having the highest probability of correlating to outcomes specified by the augmented reality content creator. In one or more implementations, the augmented reality content creator can be provided with recommendations indicating features of the augmented reality content item having at least a threshold probability of resulting in outcomes specified by the augmented reality content creator.
[0023] The systems and methods described herein can also determine profile information for users of the client application that interact with the augmented reality content item. In various examples, the implementations described herein can identify interactions of users of the client application with augmented reality content and store profile information for the users of the client application in association with the augmented reality content. The systems and methods described herein can then analyze the user profile information to determine a characterization of users of the client application that interact with the augmented reality content item. The characterization of the users of the client application that interact with the augmented reality content item can be indicative of characteristics of the users of the client application that interact with the augmented reality content item. In one or more examples, the profile information for users of the client application that interact with the augmented reality content item can be analyzed to determine a target audience for the augmented reality content item.
[0024] Accordingly, the systems, methods, techniques, sequences of instructions, and computer program products described herein provide various implementations to collect more information about the usage of augmented reality content by providing an underlying technical architecture that enables tracking of interactions of users of the client application with various features of the augmented reality content item as compared to existing systems and methods. The systems and methods described herein also provide augmented reality content creators with additional insights about users of the client application that interact with augmented reality content items generated by these creators as compared to existing systems and methods. In this way, the augmented reality content creators can identify users of the client application that are more likely to interact with their augmented reality content items as compared to existing systems and methods. In cases where the augmented reality content item is related to one or more products, the augmented reality content creators are more likely to identify users of the client application that will purchase their products as compared to existing systems and methods.
[0025] Figure 1is a pictorial representation of an architecture 100 for exchanging data (e.g., messages and related content) over a network. The architecture 100 can include a plurality of client devices 102. The client devices 102 can individually include, but are not limited to, a mobile telephone, a desktop computer, a laptop computing device, a portable digital assistant (PDA), a smart phone, a tablet computing device, an ultrabook, a netbook, a multi-processor system, a microprocessor-based or programmable consumer electronic system, a game console, a set-top box, a computer in a vehicle, a wearable device, one or more combinations thereof, or any other communication device that a user can use to access one or more components included in the architecture 100.
[0026] Each client device 102 can host a plurality of applications, including a client application 104 and one or more third-party applications 106. A user can use the client application 104 to create content, such as videos, images (e.g., photographs), audio, and media overlays. In one or more illustrative examples, the client application 104 can include social networking functionality that enables users to create and exchange content. In various examples, the client application 104 can include messaging functionality that can be used to send messages between instances of the client application executed by various client devices 102. Messages created using the client application 104 can include videos, one or more images, audio, media overlays, text, content produced using one or more authoring tools, annotations, and the like. In one or more implementations, the client application 104 can be used to view and generate interactive messages, view locations of other users of the client application 104 on a map, chat with other users of the client application 104, and the like.
[0027] One or more users can be a human, a machine, or other apparatus that interacts with a client device, such as the client devices 102. In example implementations, a user can not be part of the architecture 100, but can interact with one or more components in the architecture 100 via a client device 102 or otherwise. In various examples, a user can provide input (e.g., touch screen input or alphanumeric input) to a client device 102, and that input can be communicated to other entities in the architecture 100. In this case, the other entities in the architecture 100, in response to the user input, can communicate information to the client device 102 to be presented to the user. In this way, a user can interact with various entities in the architecture 100 using a client device 102.
[0028] Each instance of the client application 104 can communicate with and exchange data with at least one of another instance of the client application, one or more third-party applications 106, or the server system 108. The data exchanged between instances of the client application 104, between third-party applications 106, and between at least one instance of the client application 104 and at least one third-party application 106 includes functionality (e.g., commands to invoke functionality) and payload data (e.g., text, audio, image, video, or other multimedia data). The data exchanged between instances of the client application 104, between third-party applications 106, and between at least one instance of the client application 104 and at least one third-party application 106 can be exchanged directly from an instance of an application executed by the client device 102 and an instance of an application executed by an additional client device 102. Further, the data exchanged between the client applications 104, between the third-party applications 106, and between at least one client application 104 and at least one third-party application 106 can be transmitted indirectly (e.g., via one or more intermediary servers) from an instance of an application executed by the client device 102 to another instance of an application executed by an additional client device 102. In one or more illustrative examples, one or more intermediary servers used in indirect communication between applications can be included in the server system 108.
[0029] The third-party applications 106 can be separate from and distinct from the client application 104. The third-party applications 106 can be downloaded and installed by the client device 102 independently of the client application 104. In various implementations, the third-party applications 106 can be downloaded and installed by the client device 102 prior to or subsequent to downloading and installing the client application 104. The third-party applications 106 can be applications provided by an entity or organization different from an entity or organization that provides the client application 104. The third-party applications 106 can be accessed by the client device 102 using login credentials that are distinct from the client application 104. That is, the third-party applications 106 can maintain a first user account, and the client application 104 can maintain a second user account. In one or more implementations, the third-party applications 106 can be accessed by the client device 102 to perform various activities and interactions, such as listening to music, videos, tracking workouts, viewing graphical elements (e.g., stickers), communicating with other users, etc. As an example, the third-party applications 106 can include a social networking application, a dating application, a ride or car sharing application, a shopping application, a transaction application, a gaming application, an imaging application, a music application, a video browsing application, a workout tracking application, a health monitoring application, a browsing application’s graphical elements or stickers, or any other suitable application.
[0030] The server system 108 provides server-side functionality to the client application 104 via one or more networks 110. According to some example implementations, the server system 108 can be a cloud computing environment. For example, in one illustrative example, the server system 108, and one or more servers associated with the server system 108, can be associated with a cloud-based application. In one or more implementations, the client device 102 and the server system 108 can be coupled via one or more networks 110.
[0031] The server system 108 supports various services and operations that are provided to the client application 104. Such operations include transmitting data to the client application 104, receiving data from the client application 104, and processing data generated by the client application 104. This data can include, for example, message content, media content, client device information, geolocation information, media annotations and overlays, message content persistence conditions, social network information, and live event information. The exchange of data within the architecture 100 is invoked and controlled through functionality available via a user interface (UI) of the client application 104.
[0032] While certain functionality of the architecture 100 is described herein as being performed by the client application 104 or by the server system 108, the positioning of functionality within the client application 104 or the server system 108 is a design choice. For example, it can be technically preferable, for example, to initially deploy certain techniques and functionality within the server system 108, but subsequently migrate that technique and functionality to the client application 104 where the client device 102 has sufficient processing power.
[0033] The server system 108 includes an application programming interface (API) server 112 that is coupled to, and provides a programming interface to, an application server 114. The application server 114 is communicatively coupled to a database server 116 that facilitates access to one or more databases 118. The one or more databases 118 can store data associated with information processed by the application server 114. The one or more databases 118 can be storage devices storing information such as unprocessed media content, raw media content (e.g., high quality media content) from users, processed media content (e.g., media content formatted for sharing with and viewing on a client device 102), context data related to media content items, context data related to user devices (e.g., computing devices or client devices 102), media overlays, media overlay smart widgets or smart elements, user data, user device information, media content (e.g., videos and images), media content data (e.g., data associated with videos and images), computing device context data, serialized data, session data items, user device location data, mapping information, interactive message usage data, interactive message metric data, and the like. The one or more databases 118 can also store information related to third party servers, client devices 102, client applications 104, users, third party applications 106, and the like.
[0034] The API server 112 receives and sends (e.g., in the form of commands and message payloads) data between the client device 102 and the application server 114. Specifically, the application program interface (API) server 112 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client application 104 to invoke functionality of the application server 114. The application program interface (API) server 112 exposes various functions supported by the application server 114, including account registration, login functionality, sending messages from one instance of the client application 104 to another instance of the client application 104 via the application server 114, sending media files (e.g., images, audio, video) from the client application 104 to the application server 114 and for possible access by another client application 104, setting collections of media content (e.g., galleries, stories, message collections, or media collections), retrieving a list of friends of a user of a client device 102, retrieving such collections, retrieving messages and content, adding and deleting friends to a social graph, locating friends in a social graph, and opening application events (e.g., related to the client application 104).
[0035] The server system 108 can also include a web server 120. The web server 120 is coupled to the application server 114 and provides web-based interfaces to the application server 114. To this end, the web server 120 processes incoming network requests using the Hypertext Transfer Protocol (HTTP) and several other related protocols over the Internet, for example.
[0036] The application server 114 hosts a number of applications and subsystems, including a messaging application system 122, a media content processing system 124, a social network system 126, an augmented reality (AR) content creation system 128, an AR content usage system 130, and an AR content metrics analysis system 132. The messaging application system 122 implements a number of message processing technologies and functions, particularly with respect to the aggregation and other processing of content (e.g., textual and multimedia content) included in messages received from multiple instances of the client application 104. For example, the messaging application system 122 can communicate messages using email (email), instant messaging (IM), short message service (SMS), text, facsimile, or voice (e.g., Voice over Internet Protocol (VoIP)) messages via wired networks (e.g., the Internet), plain old telephone service (POTS), or wireless networks (e.g., mobile, cellular, WIFI, Long Term Evolution (LTE), or Bluetooth). The messaging application system 122 can aggregate textual and media content from multiple sources into collections of content. The messaging application system 122 then makes these collections available to the client application 104. Such processing can also be performed by the messaging application system 122 on the server side, taking into account the hardware requirements for other processor and memory intensive data processing.
[0037] The media content processing system 124 is specialized to perform various media content processing operations, typically involving images, audio, or video received within the payload of messages or other content items at the messaging application system 122. The media content processing system 124 can access one or more data stores (e.g., the database 118) to retrieve stored data for processing media content and to store results of processed media content.
[0038] The social-networking system 126 supports various social-networking functions and services, and makes these functions and services available to the messaging application system 122. To this end, the social-networking system 126 maintains and accesses a graph of entities within the database 118. Examples of functions and services supported by the social-networking system 126 include identifying other users of the client application 104 with whom a particular user has relationships or is "following," as well as identifying other entities and interests of a particular user. The social-networking system 126 can access location information associated with each of a user's friends or other social-networking connections to determine where they live geographically or are currently located. Additionally, the social-networking system 126 can maintain a location profile for each of a user's friends indicating the geographic locations in which the user's friends live.
[0039] The AR content creation system 128 can be used to generate AR content items 134. Individual AR content items 134 can include computer-readable instructions that are executable to modify user content captured by the client device 102. In various examples, the AR content creation system 128 can provide one or more user interfaces that can be used to create AR content items 134. To illustrate, the AR content creation system 128 can provide one or more user interfaces to import at least one of image content, video content, or audio content that can be used to generate AR content items 134. The AR content creation system 128 can also provide one or more user interfaces with one or more creative tools that can be used to create one or more of the AR content items 134. In one or more illustrative examples, the AR content creation system 128 can implement at least one of a drawing tool, a writing tool, a sketching tool, or a coloring tool that can be used to generate AR content items 134.
[0040] The AR content creation system 128 can also enable a creator of the AR content item 134 to provide an indication that interactions of a user of the client application 104 with the AR content item 134 are to be monitored or tracked. In one or more examples, the AR content creation system can enable a creator of the AR content item 134 to identify one or more features of the AR content item 134 to track. The features of the AR content item 134 that are tracked can be related to the interactive element 136 of the AR content item 134. The interactive element 136 can include a user interface element that can receive input. For example, the interactive element 136 can correspond to a portion of a user interface that can detect input of a user of the client application 104. The input can be detected by using at least one of an input device, such as a cursor, a stylus, a finger, other tool, or a speaker of the client device 102. The input can involve selecting a user interface element, moving a user interface element, or other methods of indicating interaction with the interactive element 136. In this way, input detected by the user interface element corresponding to the interactive element 136 of the AR content item 134 can be collected, stored in, for example, the database 118, and analyzed.
[0041] In various examples, the interactive element 136 can be selectable to cause one or more actions to be performed with respect to user content generated by the client application 104. In one or more scenarios, the interactive element 136 can be selectable to cause one or more visual effects to be displayed with respect to the user content. In one or more additional examples, the interactive element 136 can be selectable to cause video content to be displayed, to cause audio content to be played, to cause animated content to be displayed, to cause text content to be displayed, to cause image content to be displayed, or to cause one or more combinations of the above. In one or more illustrative examples, the AR content creation system 128 can provide one or more user interfaces that enable selection of one or more interactive elements 136 to be tracked.
[0042] In various examples, a user interface tool, such as a cursor or a pointer, can be used to indicate a feature of the AR content item 134 or a region of the AR content item 134 for which user interaction is to be tracked. Tracking use of the AR content item 134 can include at least one of the following: identifying or counting interactions of a user of the client application 104 with the AR content item 134. Interactions with the AR content item 134 can include at least one of the following: applying the AR content item 134 to user content, sharing the AR content item 134 with another user of the client application 104, generating a message that includes the AR content item 134 or that includes a link corresponding to the AR content item 134, activating the interactive element 136 of the AR content item 134, selecting a user interface element corresponding to the interactive element 136 of the AR content item 134, unlocking the AR content item 134, purchasing the AR content item 134, or selecting an icon corresponding to the AR content item 134.
[0043] In one or more implementations, the AR content creation system 128 can provide one or more templates that indicate features of AR content items 134 that can be tracked. The AR content creation system 128 can provide one or more templates for a specified category of AR content items 134. For example, the AR content creation system 128 can provide a template for AR content items 134 that include faces, where the template indicates one or more facial features that can be tracked that are included in the AR content items 134. In one or more additional examples, the AR content creation system 128 can provide a template for AR content items 134 that include products that can be purchased via the client application 104. In these scenarios, the AR content creation system 128 can provide a template that indicates one or more features of the product, such as a feature that enables zooming in on a view of the product, a feature that enables rotating a view of the product, or a feature that enables applying the product to one or more objects.
[0044] The AR content usage system 130 can determine an amount of usage of the AR content items 134. The amount of usage of the AR content items 134 can be determined based on an amount of interactions with one or more interactive elements 136 of each AR content item 134. Each interaction of a user of the client application 104 with an interactive element 136 can be counted by the AR content usage system 130 and stored in the database 118. In various examples, the database 118 can include one or more data structures for each AR content item 134, and the one or more data structures for each AR content item 134 can indicate a number of interactions of users of the client application 104 with one or more interactive elements 136. In one or more examples, an AR content item 134 can have multiple interactive elements 136. In these scenarios, a data structure corresponding to the AR content item 134 can indicate at least one of: interactions related to each of the interactive elements 136 of the AR content item 134 or interactions related to a combination of the interactive elements 136 of the AR content item 134.
[0045] In one or more examples, the AR content usage system 130 can also track one or more metrics related to usage of one or more interaction elements 136 of one or more AR content items 134. For example, the AR content usage system 130 can determine a number of times that an AR content item 134 is shared to other users of the client application 104 and a number of times that the AR content item 134 is included in a message sent to other users of the client application 104. Further, the AR content usage system 130 can determine a number of times that the AR content item 134 is applied to user content and a number of times that an interaction element 136 of the AR content item 134 is selected by a user of the client application 104. In additional examples, the AR content usage system 130 can track usage of multiple interaction elements 136 of one or more AR content items 134 in unison. To illustrate, the AR content usage system 130 can determine a total number of interactions related to an AR content item 134. In these cases, the AR content usage system 130 can determine a sum that includes a number of times that the AR content item 134 is shared, a number of times that the AR content item 134 is related to a message, a number of times that the AR content item 134 is applied to user content, and a number of times that an interaction element 136 of the AR content item 134 has interacted with a user of the client application 104.
[0046] The AR content usage system 130 can generate AR content usage data 138 that indicates an amount of interaction of a user of the client application 104 with AR content items 134. In various examples, the AR content usage data 138 can be associated with user profile data 140. For example, the AR content usage system 130 can identify a user of the client application 104 that interacted with an AR content item 134. In one or more examples, an identifier of the user of the client application 104 can be determined by the AR content usage system 130. Based on the identification of the user of the client application 104 that interacted with one or more AR content items 134, the AR content usage system 130 can determine a characteristic of the user. In one or more examples, the AR content usage system 130 can determine demographic information related to the user that interacted with the AR content item 134, such as age, gender, occupation, education, one or more combinations thereof, and the like. In additional examples, the AR content usage system 130 can determine location information of the user of the client application 104 that interacted with the AR content item 134. In various examples, the location information can be determined based on at least one of user input or geographic positioning system (GPS) data.
[0047] In further examples, the AR content usage system 130 can determine additional information about the user of the client application 104 that corresponds to interactions of the user of the client application 104 with content consumed via the client application 104. For instance, the AR content usage system 130 can determine usage metrics of one or more features of the client application 104 with respect to the user of the client application 104 that interacted with the AR content item 134. To illustrate, the AR content usage system 130 can determine an amount of usage of one or more social networking features of the client application 104 by the user of the client application 104 that interacted with the one or more AR content items 134. The AR content usage system 130 can also determine an amount of usage of one or more messaging features of the client application 104 by the user of the client application 104 that interacted with the one or more AR content items 134. Additionally, the AR content usage system 130 can determine an amount of usage of one or more search features of the client application 104 by the user of the client application 104 that interacted with the one or more AR content items 134. Moreover, the AR content usage system 130 can determine content sources of content accessed by the user of the client application 104 that interacted with the one or more AR content items 134. The content sources can include one or more additional users of the client application 104, one or more media organizations, one or more news organizations, one or more retailers, one or more manufacturers, one or more government organizations, one or more authors, one or more blogs, one or more websites, one or more periodicals, one or more combinations thereof, and the like. In various examples, the AR content usage system 130 can also determine a type of the AR content item 134 with which the user of the client application 104 interacted. In one or more illustrative examples, the AR content usage system 130 can determine an interaction with an AR content item 134 that includes an overlay of at least one of image content or video content performed by the user of the client application 104. Moreover, the AR content usage system 130 can determine an interaction with an AR content item 134 that includes an animation created by the user of the client application 104.
[0048] In one or more implementations, the AR content usage system 130 can determine a characterization of users of the client application 104 that interact with one or more AR content items 134. In one or more examples, the AR content usage system 130 can determine one or more characteristics of users of the client application 104 that interact with the AR content items 134. In various examples, the AR content usage system 130 can determine a characterization of users of the client application 104 that interact with the AR content items 134 by determining one or more characteristics associated with at least a threshold number of users of the client application 104 that interact with the AR content items 134. For example, the AR content usage system 130 can determine one or more demographic characteristics that are common to at least a threshold number of users of the client application 104 that interact with the AR content items 134. The AR content usage system 130 can also determine one or more location characteristics that are common to at least a threshold number of users of the client application 104 that interact with the AR content items 134. In additional examples, the AR content usage system 130 can determine one or more AR content usage characteristics that are common to at least a threshold number of users of the client application 104 that interact with the AR content items 134.
[0049] Based on the characteristics of users of the client application 104 that interact with the AR content items 134, the AR content usage system 130 can determine a target audience for the AR content items 134. The target audience for the AR content items 134 can correspond to users of the client application 104 that have at least a threshold likelihood of interacting with the AR content items 134. In this way, the characterization of users of the client application 104 that can interact with the AR content items 134 can provide insight to one or more creators of the AR content items 134. Accordingly, the one or more creators of the AR content items 134 can identify users of the client application 104 that have not previously interacted with the AR content items 134 but have at least a threshold likelihood of interacting with the AR content items 134. In these scenarios, the one or more creators of the AR content items 134 can cause the server system 108 to make the target audience aware of the AR content items 134. The server system 108 can make the target audience aware of the AR content items 134 via at least one of an advertisement or a recommendation related to the AR content items 134. Further, the server system 108 can make the target audience aware of the AR content items 134 by increasing a weight of the AR content items 134 in search results for AR content submitted by users of the client application 104 that are included in the target audience.
[0050] The AR content usage system 130 can generate user interface data corresponding to a user interface that includes information about usage metrics involving one or more AR content items 134. The AR content usage system 130 can also generate user interface data that includes information indicating characteristics of users of the client application 104 that interact with one or more AR content items 134. In various examples, a creator of an AR content item 134 can send a request to the server system 108 for information about users of the client application 104 that interact with one or more AR content items 134 generated by the creator. These requests can be directed to metrics related to specified characteristics of users of the client application 104 that interact with one or more AR content items 134 generated by the augmented reality content creator. For example, an augmented reality content creator can send a request to the server system 108 for at least one of an age, a location, a gender, a profession, or an education of users of the client application 104 that interact with one or more AR content items 134 of the augmented reality content creator. In additional examples, the server system 108 can receive a request from an augmented reality content creator for at least one of a frequency with which users of the client application 104 that interact with one or more AR content items 134 of the augmented reality content creator also interact with AR content items 134 or a frequency with which users of the client application 104 that interact with one or more AR content items 134 of the augmented reality content creator interact with a certain type of AR content item 134. In various examples, the AR content usage system 130 can provide one or more templates that an augmented reality content creator can use to request information about at least one of interactions with AR content items 134 of the creator or characteristics of users of the client application 104 that interact with AR content items 134 of the creator.
[0051] In response to a request from an augmented reality content creator for information related to one or more augmented reality content items generated by the creator, the AR content usage system 130 can operate to determine at least one of an augmented reality content usage metric or characteristic of a user of the client application 104 related to the creator's AR content items 134. The AR content usage system 130 can then generate user interface data indicative of information satisfying the request. In various examples, the AR content usage system 130 can generate user interface data corresponding to a dashboard accessible to the augmented reality content creator, where the dashboard includes information corresponding to the information request received by the server system 108 from the augmented reality content creator. In one or more examples, the dashboard can include one or more standardized features including information about usage of the AR content items 134 provided to each augmented reality content creator requesting augmented reality content information from the server system 108. In additional examples, the dashboard can include one or more customized features including information about usage of the AR content items 134 based on specific requests of the augmented reality content creator received by the server system 108.
[0052] The AR content metric analysis system 132 can analyze information related to a plurality of usage metrics of the AR content items 134. In various examples, the AR content metric analysis system 132 can analyze usage metrics of the AR content items 134 with respect to an outcome specified by the AR content creator. For example, the AR content creator can specify an outcome related to the AR content items 134 corresponding to an amount of time various users of the client application 104 interact with the AR content items 134. In one or more additional examples, the AR content items 134 can be related to a product offered for purchase, and the AR content creator can indicate an outcome related to the AR content items 134 corresponding to a number of purchases of the product after one or more interactions related to the AR content items 134. In various examples, the AR content metric analysis system 132 can analyze one or more usage metrics related to the AR content items 134 by determining a level of correlation between the various usage metrics and the outcome specified by the AR content creator. As the level of correlation between the usage metrics and the outcome specified by the AR content creator increases, a probability that a change to the usage metric has an effect on the specified outcome can increase.
[0053] In one or more implementations, the AR content metric analysis system 132 can generate AR content item metric suitability data 142 that indicates a suitability measure of one or more usage metrics with respect to a result specified by an AR content creator. The suitability measure of one or more usage metrics with respect to one or more results can be determined based on a level of correlation between the usage metrics and the results. In one or more examples, as the level of correlation between a usage metric and a result increases, the suitability measure of the usage metric with respect to the result also increases. In various examples, the AR content item metric suitability data 142 can indicate suitability measures of multiple usage metrics with respect to respective results specified by an AR content creator. The suitability measure of a result specified by a first AR content creator with respect to a usage metric can be different than the suitability measure of a result specified by a second AR content creator with respect to the usage metric.
[0054] Figure 2 is a block diagram illustrating additional details regarding the server system 108 in accordance with some examples. In particular, the server system 108 is shown to include the client application 104 and the application server 114. The server system 108 contains a number of subsystems that are supported on the client side by the client application 104 and on the server side by the application server 114. These subsystems include, for example, a ephemeral timer system 202, a collection management system 204, an augmentation system 206, a map system 208, a game system 210, an AR content creation system 128, an AR content usage system 130, and an AR content metric analysis system 132.
[0055] The ephemeral timer system 202 is responsible for enforcing temporary or time-limited access to content by the client application 104 and the messaging application system 122. The ephemeral timer system 202 contains a number of timers that selectively enable access (e.g., for presentation and display) to messages and associated content via the client application 104 based on a duration and display parameters associated with a message or collection of messages (e.g., a story). Additional details regarding the operation of the ephemeral timer system 202 are provided below.
[0056] The collection management system 204 is responsible for managing groups or collections of media (e.g., collections of text, image, video, and audio data). 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 for a specified period of time (e.g., the duration of an event to which the content relates). For example, content related to a concert can be made available as a “story” for the duration of the concert. The collection management system 204 can also be responsible for publishing icons that provide notifications of the presence of particular collections to the user interface of the client application 104.
[0057] The collection management system 204 also includes a curation interface 212 that allows the collection manager to manage and curate a particular collection of content. For example, the curation interface 212 enables an event organizer to curate a collection of content related to a particular event (e.g., delete inappropriate content or redundant messages). Additionally, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate a collection of content. In certain examples, users can be paid compensation for including user-generated content into a collection. In such cases, the collection management system 204 operates to automatically pay such users for use of their content.
[0058] The augmentation system 206 provides various functionality that enables users to augment (e.g., annotate or otherwise modify or edit) media content associated with content, such as messages, generated via the client application 104. For example, the augmentation system 206 provides functionality related to generating and publishing media overlays for content for processing by the server system 108. The augmentation system 206 is operable to supply media overlays or augmentations (e.g., image filters) to the messaging client application 104 based on a geographic location of the client device 102. In another example, the augmentation system 206 is operable to supply media overlays to the messaging client application 104 based on other information, such as social network information of a user of the client device 102. The media overlays can include audio and visual content as well as visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. The audio and visual content or visual effects can be applied to a media content item (e.g., a photo) at the client device 102. For example, the media overlays can include text or images that can be overlaid on a photo taken by the client device 102. In another example, the media overlays include a location identification (e.g., Venice Beach) overlay, a name of a live event or a merchant name (e.g., Beachside Café) overlay. In another example, the augmentation system 206 uses a geographic location of the client device 102 to identify a media overlay that includes a name of a merchant at the geographic location of the client device 102. The media overlay can include other indicia associated with the merchant. The media overlays can be stored in the database 118 and accessed through the database server 116.
[0059] In some examples, the augmentation system 206 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 an environment in which a particular media overlay should be provided to other users. The augmentation system 206 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geographic location.
[0060] In other examples, the augmentation system 206 provides a publisher platform based on merchants that enables merchants to select particular media coverage associated with a geographic location via a bidding process. For example, the augmentation system 206 associates the media coverage of the highest bidding merchant with the corresponding geographic location for a predefined amount of time.
[0061] The map system 208 provides various geolocation functionality and supports the client application 104 to present map-based media content and messages. For example, the map system 208 enables display of user icons or avatars (e.g., stored in the profile data 308 of the user) on a map to indicate the current or past locations of a user's "friends," as well as media content (e.g., a collection of messages including photos and videos) generated by these friends within the context of the map. For example, on a map interface of the client application 104, a message posted by a user from a particular geographic location to the server system 108 can be displayed to a particular user's "friends" within the context of that particular location on the map. The user can also share his or her location and status information with other users of the server system 108 via the client application 104 (e.g., using an appropriate status avatar), where the location and status information is similarly displayed to selected users within the context of the map interface of the client application 104. Figure 3
[0062] The game system 210 provides various gaming functionality within the context of the client application 104. The client application 104 provides a game interface that provides a list of available games that can be launched by a user within the context of the client application 104 and played with other users of the server system 108. The server system 108 also enables a particular user to invite such other users to participate in playing a particular game by issuing invitations from the client application 104 to the other users. The client application 104 also supports both voice messaging and text messaging (e.g., chat) within the context of the game, provides a leaderboard for the game, and also supports providing in-game rewards (e.g., game coins and items).
[0063] AR content creation system 128 can generate one or more user interfaces that accept input that can be used to generate augmented reality content. The input obtained via the one or more user interfaces can be used to determine one or more features associated with the augmented reality content. In various examples, the one or more user interfaces generated using data from AR content creation system 128 can include authoring tools that enable a user to associate one or more visual effects with the augmented reality content. In one or more examples, the one or more user interfaces generated using data obtained from AR content creation system 128 can associate one or more audio effects with the augmented reality content. Augmentation system 206 can operate in conjunction with AR content creation system 128 to generate augmented reality content in accordance with input obtained via user interfaces generated by AR content creation system 128. For example, augmentation system 206 can operate in conjunction with AR content creation system 128 to generate computer-readable instructions corresponding to the augmented reality content that are executable to produce at least one of a visual effect or an audio effect related to the user content. AR content creation system 128 can also generate user interface data that enables tracking of interactions of a user of client application 104 with the augmented reality content. In one or more examples, AR content creation system 128 can generate user interface data that enables interaction with and enables recording of interaction with one or more features of the augmented reality content.
[0064] AR content usage system 130 can determine an amount of usage of augmented reality content. In one or more implementations, AR content usage system 130 can determine a number of times that augmented reality content is interacted with via client application 104. In various examples, AR content usage system 130 can determine a number of times that one or more specified features of augmented reality content are interacted with via client application 104. Additionally, AR content usage system 130 can determine characteristics of users of client application 104 that interact with augmented reality content. For example, AR content usage system 130 can determine a characterization of users of client application 104 that interact with augmented reality content that indicates at least one of a demographic characteristic, location information, a usage metric related to one or more features of client application 104, a usage metric related to one or more augmented reality content items, or content consumption information related to users of client application 104 that interact with one or more augmented reality content items.
[0065] Additionally, the AR content metric analysis system 132 can analyze usage metrics regarding AR content items, such as usage of interactive elements of the AR content items, to determine an appropriateness measure regarding the usage metrics indicating the results specified by the AR content creators. The appropriateness measure can be based on a level of correlation between a given usage metric and the results provided by the AR content creators. In this way, the AR content metric analysis system 132 can provide customized information to the AR content creators based on the results specified by the individual AR content creators, where different AR content creators can specify different results.
[0066] Figure 3 FIG. 3 is a diagram illustrating a data structure 300 that can be stored in the database 118 of the server system 108, in accordance with one or more example implementations. While the contents of the database 118 are shown to include multiple tables, it should be appreciated that data can be stored in other types of data structures (e.g., as an object-oriented database).
[0067] The database 118 includes message data stored in a message table 302. For any particular one message, the message data includes at least message sender data, message recipient (or receiver) data, and a payload.
[0068] An entity table 304 stores entity data and is linked (e.g., by reference) to an entity graph 306 and profile data 308. Entities whose records are maintained within the entity table 302 can include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the entity type, any entity for which the server system 108 stores data can be an identified entity. Each entity is provided with a unique identifier as well as an entity type identifier (not shown).
[0069] The entity graph 306 stores information regarding relationships and associations between entities. Such relationships can be, by way of example only, social relationships based on interest or based on activity, professional relationships (e.g., working at a common company or organization).
[0070] Profile data 308 stores various types of profile data about a particular entity. The profile data 308 can be selectively used and presented to other users of the architecture 100 based on privacy settings specified by the particular entity. In the case of an entity being a person, the profile data 308 includes, for example, a user name, a phone number, an address, settings (e.g., notification and privacy settings), and a user-selected avatar representation (or a collection of such avatar representations). The particular user can then selectively include one or more of these avatar representations within the content of messages or other data transmitted via the architecture 100, as well as on the map interface displayed by the client application 104 to other users. The collection of avatar representations can include a "status avatar" that presents a graphical representation of a status or activity that the user can select to transmit at a particular time.
[0071] In the case of an entity being a group, the profile data 308 for the group can similarly include one or more avatar representations associated with the group, in addition to the group name, members, and various settings (e.g., notifications) of the associated group.
[0072] The database 118 also stores augmentation data, such as overlays or filters, in an augmentation table 310. The augmentation data is associated with and applied to videos (for which data is stored in a video table 314) and images (for which data is stored in an image table 316).
[0073] In one example, a filter is an overlay that is displayed as an overlay on an image or video during presentation to a recipient user. The filter can be of various types, including a filter that is user-selected from a set of filters presented by the client application 104 to the sending user when the sending user is composing a message. Other types of filters include a geo-location filter (also referred to as a geofilter) that can be presented to the sending user based on a geo-location. For example, a geolocation filter specific to a nearby or special location can be presented by the client application 104 within a user interface based on geo-location information determined by a global positioning system (GPS) unit of the client device 102.
[0074] Another type of filter is a data filter that can be selectively presented to the sending user by the client application 104 based on other inputs or information collected by the client device 102 during message creation. Examples of data filters include a current temperature at a particular location, a current speed at which the sending user is traveling, a battery life of the client device 102, or a current time.
[0075] Other augmentation data that can be stored within the image table 316 includes augmented reality content items (e.g., corresponding to an application lens or augmented reality experience). The augmented reality content items can be real-time special effects and sounds that can be added to an image or video.
[0076] As described above, augmentation data includes augmented reality content items, overlays, image transforms, AR images, and similar items that involve modifications that can be applied to image data (e.g., video or images). This includes real-time modifications, which modify images as they are captured using device sensors (e.g., one or more cameras) of the client device 102 and then display the images with the modifications on a screen of the client device 102. This also includes modifications to stored content, such as video clips in a gallery that can be modified. For example, in a client device 102 that accesses multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items would modify the stored clip. For example, multiple augmented reality content items that apply different pseudo-random motion models can be applied to the same content by selecting different augmented reality content items for the content. Similarly, real-time video capture can be used with the modifications shown to illustrate how video images currently being captured by sensors of the client device 102 would modify the captured data. Such data can simply be displayed on a screen and not stored in memory, or the content captured by the device sensors can be recorded and stored in memory with or without the modifications (or both). In some systems, a preview feature can show how different augmented reality content items look at the same time in different windows in a display. This can, for example, enable multiple windows with different pseudo-random animations to be viewed on a display at the same time.
[0077] Accordingly, data, and various systems that use the data to modify content using augmented reality content items or other such transform systems, can involve: detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.); tracking of such objects as they leave, enter, and move around the field of view in video frames; and modification or transformation of such objects as they are tracked. In various implementations, different methods for implementing such transformations can be used. Some examples can involve generating a three-dimensional mesh model of one or more objects, and using transformations of the model and animated textures within the video to implement the transformations. In other examples, tracking of points on an object can be used to place an image or texture (which can be two-dimensional or three-dimensional) at the tracked locations. In yet other examples, neural network analysis of video frames can be used to place images, models, or textures in content (e.g., frames of an image or video). Accordingly, augmented reality content items involve both images, models, and textures that are used to create the transformations in content, and additional modeling and analysis information that is needed to implement such transformations with object detection, tracking, and placement.
[0078] Real-time video processing can be performed using any type of video data (e.g., video streams, video files, etc.) that is saved in memory of any type of computerized system. For example, a user can load video files and save them in memory of a device, or can use sensors of the device to generate video streams. Additionally, any object can be processed using computer animation models, such as a face and parts of a human body of a person, an animal, or a non-living thing (e.g., a chair, a car, or other object).
[0079] In some examples, when a particular modification is selected along with content to be transformed, the computing device identifies elements to be transformed and then detects and tracks them if they exist in the video frames. The elements of the object are modified according to the request for the modification, thereby transforming the frames of the video stream. The transformation of the frames of the video stream can be performed by different methods for different types of transformations. For example, for transformations of frames that primarily involve changing the form of the elements of the object, feature points are computed for each element of the object (e.g., using an Active Shape Model (ASM) or other known method). Then, a mesh based on the feature points is generated for each of the at least one element of the object. The mesh is used in a subsequent stage of tracking the elements of the object in the video stream. During the tracking process, the mentioned mesh for each element is aligned with the position of each element. Then, additional points are generated on the mesh. A first set of first points is generated for each element based on the request for the modification, and a set of second points is generated for each element based on the set of first points and the request for the modification. Then, the frames of the video stream can be transformed by modifying the elements of the object based on the sets of first and second points and the mesh. In such a method, the background of the modified object can also be changed or warped by tracking and modifying the background.
[0080] In some examples, transformations that change some regions of an object using elements of the object can be performed by computing feature points for each element of the object and generating a mesh based on the computed feature points. Points are generated on the mesh, and then various regions based on the points are generated. The elements of the object are then tracked by aligning the regions for each element with the position of each of the at least one element, and the characteristics of the regions can be modified based on the request for the modification, thereby transforming the frames of the video stream. The characteristics of the mentioned regions can be transformed in different ways according to the particular request for the modification. Such modifications can involve changing the color of the regions; removing at least some parts of the regions from the frames of the video stream; including one or more new objects into the regions based on the request for the modification; and modifying or warping the regions or elements of the object. In various implementations, any combination of such modifications or other similar modifications can be used. For certain models to be animated, some of the feature points can be selected as control points to be used to determine the entire state space of options for the animation of the model.
[0081] In some examples of computer animation models that use face detection to transform image data, a particular face detection algorithm (e.g., Viola-Jones) is used to detect faces on an image. Then, an Active Shape Model (ASM) algorithm is applied to the face region of the image to detect facial feature reference points.
[0082] Other methods and algorithms suitable for face detection can be used. For example, in some implementations, landmarks representing distinguishable points that are present in most images under consideration are used to locate features. For example, for face landmarks, the position of the left eye pupil can be used. In cases where the initial landmark is not identifiable (e.g., if a person has an eye patch), a secondary landmark can be used. Such landmark identification processes can be used for any such object. In some examples, a set of landmarks forms a shape. A shape can be represented as a vector using the coordinates of the points in the shape. One shape is aligned with another shape with a similarity transform that minimizes the average Euclidean distance between the shape points, allowing for translation, scaling, and rotation. The average shape is the average of the aligned training shapes.
[0083] In various examples, the search for landmarks begins from an average shape that is aligned with the position and size of the face determined by the global face detector. Then, such a search repeats the following steps: a tentative shape is suggested by adjusting the position of the shape points by template matching the image texture around each point, and then conforming the tentative shape to the global shape model until convergence occurs. In one or more systems, the individual template matching is unreliable, and the shape model pools the results of weak template matchers to form a stronger overall classifier. The entire search is repeated at each level in an image pyramid, from coarse resolution to fine resolution.
[0084] The transformation system can capture images or video streams on a client device (e.g., client device 102) and perform complex image manipulations locally on the client device 102 while maintaining a proper user experience, computation time, and power consumption. Complex image manipulations can include size and shape changes, emotional transformations (e.g., changing a face from a frown to a smile), state transformations (e.g., aging a subject, reducing apparent age, changing gender), style transformations, graphic element applications, and any other suitable image or video manipulations implemented by convolutional neural networks that have been configured to efficiently execute on the client device 102.
[0085] A computer animation model for transforming image data can be used by a system in which a user can capture an image or video stream of the user (e.g., a selfie) using a client device 102 having a neural network operating as part of a client application 104 operating on the client device 102. A transform system operating within the client application 104 determines the presence of a face within the image or video stream and provides modification icons associated with computer animation models for transforming image data, or the computer animation models can exist in association with the interfaces described herein. The modification icons include changes that can be the basis for modifying the user’s face within the image or video stream as part of a modification operation. Once a modification icon is selected, the transform system initiates a process of transforming the user’s image to reflect the selected modification icon (e.g., generating a smiling face with respect to the user). Once the image or video stream is captured and a specified modification is selected, the modified image or video stream can be presented in a graphical user interface displayed on the client device 102. The transform system can implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. That is, a user can capture an image or video stream and the modified result can be presented in real-time or near real-time once a modification icon is selected. Further, the modification can be persistent while a video stream is captured and the selected modification icon remains toggled. Machine-taught neural networks can be used to implement such modifications.
[0086] A graphical user interface presenting modifications performed by the transform system can supply additional interaction options to the user. Such options can be based on the interface used to initiate a particular computer animation model (e.g., initiated from a content creator user interface) and the content capture. In various implementations, the modification can be persistent after an initial selection of a modification icon. The user can toggle the modification on or off by tapping or otherwise selecting the face being modified by the transform system and store it for later viewing or browsing other areas of the imaging application. In cases where the transform system is modifying multiple faces, the user can globally toggle the modification on or off by tapping or selecting a single face modified and displayed within the graphical user interface. In some implementations, individual faces in a group of multiple faces can be modified separately, or such modifications can be toggled separately by tapping or selecting individual faces or a series of individual faces displayed within the graphical user interface.
[0087] Story table 312 stores data regarding collections of messages and associated image, video, or audio data that are compiled into collections (e.g., stories or galleries). The creation of a particular collection can be initiated by a particular user (e.g., each user whose record is maintained in entity table 304). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcast by that user. To this end, the user interface of client application 104 can include an icon that is user-selectable to enable a sending user to add particular content to his or her personal story.
[0088] A collection can also constitute a "live story," which is a collection of content from multiple users that is created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" can constitute a curated stream of user-submitted content from different locations and events. Users whose client devices have location services enabled and are at a common location event at a particular time can be presented with an option to contribute content to a particular live story, e.g., via the user interface of client application 104. A user can be identified with a live story by client application 104 based on his or her location. The end result is a "live story" told from the perspective of the community.
[0089] Another type of collection of content is referred to as a "location story," which enables users whose client devices 102 are located within a particular geographic location (e.g., on a college or university campus) to contribute to a particular collection. In some examples, contribution to a location story can require a second degree of authentication to verify that the end user belongs to a particular organization or other entity (e.g., is a student in a university campus).
[0090] As noted above, video table 314 stores video data that, in one example, is associated with messages whose records are maintained within message table 302. Similarly, image table 316 stores image data that is related to messages whose message data is stored in entity table 304. Entity table 304 can associate various augmentations from augmentation table 310 with various images and videos stored in image table 316 and video table 314.
[0091] The database 118 can also store an AR content usage table 318 that stores data indicative of usage metrics with respect to augmented reality content. In various examples, the AR content usage table 318 can include one or more data structures that store usage metrics with respect to individual augmented reality content items. The metrics can be indicative of a number of times a user of the client application 104 interacted with an augmented reality content item. Additionally, the database 118 can store an AR content metric usage suitability table 320 that stores suitability estimates of usage metrics with respect to outcomes indicated by one or more AR content creators. For example, for a given AR content creator, the AR content metric usage suitability table 320 can indicate suitability estimates of one or more usage metrics with respect to one or more outcomes specified by the AR content creator.
[0092] Figure 4 is a schematic diagram of an example framework of content 400 according to some implementations. The content 400 can be generated by the client application 104. In various examples, the content 400 can be generated by a first instance of the client application 104 and communicated to a second instance of the client application 104 or at least one of the server system 108. In cases where the content 400 includes a message, the content 400 can be used to populate a message table 302 stored within the database 118 and accessible by the application server 114. In one or more implementations, the content 400 can be stored in memory as “en route” or “in-flight” data of at least one of the client device 102 or the application server 114. The content 400 is shown to include at least a portion of the following components:
[0093] • Content identifier 402: a unique identifier that identifies the content 400.
[0094] • Content text payload 404: text to be generated by a user via a user interface of the client device 102 and included in the content 400.
[0095] • Content image payload 406: image data captured by a camera component of the client device 102 or retrieved from a memory component of the client device 102 and included in the content 400. Image data of the content 400 that is transmitted or received can be stored in the image table 316.
[0096] • Content video payload 408: video data captured by a camera component or retrieved from a memory component of the client device 102 and included in the content 400. Video data of the content 400 that is transmitted or received can be stored in the video table 314.
[0097] • Content audio payload 410: audio data captured by a microphone or retrieved from a memory component of the client device 102 and included in the content 400.
[0098] • Content augmentation data 412: augmentation data (e.g., filters, stickers, or other annotations or augmentations) that represent augmentations to be applied to the content image payload 406, the content video payload 408, or the content audio payload 410 of the content 400. Augmentation data for transmitted or received content 400 can be stored in the augmentation table 310.
[0099] • Content duration parameter 414: a parameter value indicating an amount of time, in seconds, that one or more portions of the content 400 (e.g., the content image payload 406, the content video payload 408, the content audio payload 410) will be presented or made accessible to a user via the client application 104.
[0100] • Content geolocation parameter 416: geolocation data (e.g., latitude and longitude coordinates) associated with a content payload of a message. Multiple content geolocation parameter 416 values can be included in a payload, each of which is associated with a content item included in the content (e.g., a particular image within the content image payload 406 or a particular video in the content video payload 408).
[0101] • Content story identifier 418: an identifier value that identifies one or more content collections (e.g.,“stories” identified in the story table 312) that are associated with a particular item in the content image payload 406 of the content 400. For example, multiple images within the content image payload 406 can each be associated with multiple content collections using identifier values.
[0102] • Content tags 420: each content 400 can be tagged with multiple tags, each of which indicates a subject matter of content included in a content payload. For example, where a particular image included in the content image payload 406 depicts an animal (e.g., a lion), a tag value indicating the relevant animal can be included within the content tags 420. Tag values can be generated manually based on user input or can be generated automatically using, for example, image recognition.
[0103] • Content sender identifier 422: an identifier (e.g., a messaging system identifier, an email address, or a device identifier) that indicates a user of the client device 102 on which the content 400 was generated and from which the content 400 was transmitted.
[0104] • Content receiver identifier 424: an identifier (e.g., messaging system identifier, email address, or device identifier) that indicates a user of the client device 102 to which the content 400 is addressed.
[0105] • AR tracked feature identifier 426: an identifier of a feature of the augmented reality content corresponding to the content 400 that can have a monitored or tracked amount of usage. In one or more examples, the AR tracked feature identifier 426 can correspond to a feature of an augmented reality content item that is associated with a user- selectable user interface element of the client application 104.
[0106] The data (e.g., values) of the various components of the content 400 can correspond to pointers to locations in tables within which the data is stored. For example, the image value in the content image payload 406 can be a pointer to a location (or address) within the image table 316. Similarly, the values within the content video payload 408 can point to data stored within the video table 310, the values stored within the content augmentation table 412 can point to data stored in the augmentation table 310, the values stored within the content story identifier 418 can point to data stored in the story table 312, and the values stored within the content sender identifier 422 and the content receiver identifier 424 can point to user records stored within the entity table 304. Further, the values of the AR tracked feature identifier 426 can point to data stored within data structures including the AR content usage table 318. In these scenarios, the data stored in the AR content usage table 318 for a respective AR tracked feature identifier 426 can correspond to an amount of interaction by a user of the client application 104 with a feature of an augmented reality content item of the content 400.
[0107] Figure 5 FIG. 5 is a graphical representation illustrating an architecture 500 for analyzing augmented reality content usage data, in accordance with one or more example implementations. The architecture 500 can include an AR content creator 502. The AR content creator 502 can include one or more entities that create augmented reality content to be executed by the client application 104. In one or more examples, the AR content creator 502 can include one or more users of the client application 104. In further examples, the AR content creator 502 can include one or more third parties that provide augmented reality content for the client application 104. In further examples, the AR content creator 502 can include a service provider that maintains and implements the server system 108. In these scenarios, the AR content creator 502 can be a service provider that maintains and implements the client application 104.
[0108] In one or more illustrative examples, the AR content creator 502 can create an AR content item 134. The AR content item 134 can be executed by the client application 104 to generate at least one of one or more visual effects or one or more audio effects with respect to user content accessible using the client application 104. The AR content item 134 can include computer-readable instructions that can be executed by the client application 104 to modify at least one of an appearance or a sound characteristic of the AR content item 134. For example, a user 504 of the client application can generate user content. The user content can include one or more content items that include at least one of image content, video content, or audio content. In various examples, the user 504 can capture the user content via one or more input devices of the client device 102. To illustrate, the user 504 can utilize one or more cameras of the client device 102 to capture image content. In these cases, the AR content item 134 can modify the image content by modifying an appearance of one or more objects included in the user content. In further examples, the user 504 can utilize one or more microphones of the client device 102 to capture audio content. In these scenarios, the AR content item 134 can modify at least a portion of the audio content included in the user content.
[0109] The AR content creator 502 can provide AR content creation data 506 for generating the AR content item 134. The AR content creator 502 can provide the AR content creation data 506 to the server system 108. In one or more implementations, the AR content creation system 128 can use the AR content creation data 506 to generate the AR content item 134. In one or more examples, the AR content creation data 506 can be provided using one or more user interfaces. In various examples, the one or more user interfaces can be generated by the AR content creation system 128. The one or more user interfaces can include one or more user interface elements to capture data that can be used to generate augmented reality content.
[0110] In various examples, the AR content creation data 506 can indicate one or more interactions of a user of the client application 104 with the AR content item 134 that are to be monitored or tracked by the server system 108. For example, the AR content creation data 506 can indicate that the AR content usage system 130 is to track the number of times that the AR content item 134 is shared. In further examples, the AR content creation data 506 can indicate that the AR content usage system 130 is to track the number of times that the AR content item 134 is included in a message. In other examples, the AR content creation data 506 can indicate that the AR content usage system 130 is to track the number of times that the AR content item 134 is applied to user content. The AR content creation data 506 can also indicate that usage of one or more features of the AR content item 134 is to be tracked. To illustrate, the AR content item 134 can include one or more features that a user of the client application can interact with. In one or more examples, the AR content item 134 can include one or more features that can be at least one of selected, moved, or modified by a user of the client application 104. Interactions with the features of the AR content item 134 can be based on user input obtained via one or more input devices of the client device 102. For example, an interaction with a feature of the AR content item 134 can include at least one of: touching a user interface element of the AR content item 134 using a finger or other implement for at least a threshold period of time; hovering over a user interface element of the AR content item 134 using a finger or other implement; selecting and moving a user interface element of the AR content item 134; swiping a user interface element of the AR content item 134; performing a pinch operation (e.g., bringing two fingers closer together) with respect to a user interface element of the AR content item 134, or performing an expand operation (e.g., moving two fingers away from each other) with respect to a user interface element of the AR content item 134.
[0111] In one or more illustrative examples, the AR content item 134 can include an animation that includes a character that the user 504 can interact with. For example, the user 504 can cause the character to move one or more body parts. In these cases, the AR content creation data 506 can indicate that at least one of the body parts is a feature of the AR content item 134 for which interactions are to be tracked by the server system 108. The user 504 can also cause the character to change position within the user interface. In various examples, the AR content creation data 506 can indicate that modifying the position of the character can be an interaction with the AR content item 134 that is to be tracked by the server system 108. Further, the user 504 can cause the character to emit one or more audible noises. In these scenarios, the AR content creation data 506 can indicate that causing the character to produce at least one of the audible noises is a feature of the AR content item 134 that is to be tracked by the server system 108.
[0112] AR content creation data 506 can be obtained via one or more templates that indicate at least one of a feature or an interaction with respect to an AR content item for which user interaction can be tracked by server system 108. In these scenarios, AR content creator 502 can use a template to indicate at least one of a feature or an interaction with respect to an AR content item 134 that is to be tracked by server system 108. Thus, in cases where one or more templates are used to indicate at least one of a feature or an interaction of an augmented reality content item that is to be tracked, AR content creation system 128 implements a standardized approach to identify at least one of a feature or an interaction of an augmented reality content item that is to be monitored or tracked by server system 108. In further examples, AR content creation system 128 can provide a user interface that enables a user to select at least one of a feature or an interaction of an augmented reality content item that is to be tracked. To illustrate, AR content creator 502 can use an input device to indicate any number of features of an AR content item 134, interactions with an AR content item 134, or both, that are to be tracked by server system 108. In these cases, AR content creation system 128 can implement a customized approach to identify at least one of a feature or an interaction of an augmented reality content item that is to be monitored or tracked by server system 108. In one or more implementations, AR content creation system 128 can implement a combination of customized and standardized approaches for selecting at least one of a feature or an interaction of an AR content item that is to be monitored by server system 108.
[0113] In Figure 5In the illustrative example, the AR content item 134 can include a first interactive element 508, a second interactive element 510, and up to an Nth interactive element 512. The AR content usage system 130 can track at least one of the first interactive element, the second interactive element 510, or the Nth interactive element 512. For example, the AR content creator 502 can indicate in the AR content creation data 506 that the server system 108 is to monitor at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512. In one or more examples, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can be related to a feature of the AR content item 134 with which the user 504 can interact. For example, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can correspond to an object or a portion of an object with which the user 504 can interact. In further examples, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can correspond to an additional action that can be performed with respect to the AR content item 134. To illustrate, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can correspond to the user 504 sharing user content related to the AR content item 134 to one or more users of the client application 104. In various examples, the user content related to the AR content item 134 can be shared by the user 504 via a social networking functionality of the client application 104. In further examples, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can correspond to the user 504 generating a message that includes user content related to the AR content item 134, where the message is accessible to a recipient via the client application 104. In one or more implementations, at least one of the first interactive element 508, the second interactive element 510, or the Nth interactive element 512 can correspond to a user interface element displayed via the client application 104.
[0114] The first interaction element 508 can correspond to a first usage metric 514. The first usage metric 514 can indicate a frequency with which a user of the client application 104 performs the first interaction element 508. In one or more examples, the first usage metric 514 can indicate a number of times one or more users of the client application 104 activated the first interaction element 508. In various examples, the first usage metric 514 can indicate a number of times a user of the client application 104 activated the first interaction element 508 over a period of time, such as an hour, a day, a week, a month, etc. In additional examples, the first usage metric 514 can correspond to an average number of times various users of the client application 104 activated the first interaction element 508. The first usage metric 514 can be determined by the AR content usage system 130 based on data obtained from instances of the client application 104 executed by client devices 102 of users of the client application 104.
[0115] The first interaction element 508 can also be associated with first user profile data 516. The first user profile data 516 can include information about users of the client application 104 that activated the first interaction element 508. The first user profile data 516 can indicate at least one of demographic information or location information of users of the client application 104 that activated the first interaction element 508. The first user profile data 516 can also indicate content usage characteristics of users of the client application 104 that activated the first interaction element 508. The content usage characteristics can indicate a content source of content consumed by users of the client application 104 that performed the first interaction element 508. The content usage characteristics can also indicate a type of augmented reality content with which users of the client application 104 interacted. Further, the content usage characteristics can indicate various AR content items with which users of the client application 104 interacted. In one or more examples, the content usage characteristics can indicate a frequency with which users of the client application 104 that performed the first interaction element 508 interacted with at least one of one or more content sources or one or more types of content.
[0116] In one or more examples, in response to obtaining information indicating that the first interactive element 508 has been executed or activated, the AR content usage system 130 can determine a user of the client application 104 that activated the first interactive element 508. In various examples, individual users of the client application 104 can be associated with an identifier. For example, the identifier can include a plurality of alphanumeric characters or symbols that uniquely identify individual users of the client application 104. The identifier can be provided by individual users of the client application 104, or the identifier can be determined by a service provider that implements and maintains at least one of the client application 104 or the server system 108. In various examples, one or more actions performed by individual users of the client application 104 can generate data that includes an identifier of the user of the client application 104 and that indicates the one or more actions performed. The data can be transmitted to the server system 108 and analyzed by the AR content usage system 130 to determine the respective user of the client application 104 that performed the one or more actions. Additionally, the AR content usage system 130 can access profile information of the respective user that performed the one or more actions. To illustrate, the AR content usage system 130 can use the identifier of the user of the client application 104 that performed the one or more actions to query one or more data stores, such as the database 118, to access profile information of the user stored by the one or more data stores. In this way, the AR content usage system 130 can correlate one or more characteristics of the user that performed the one or more actions. The AR content usage system 130 can aggregate profile information of multiple users of the client application 104 that activated the first interactive element 508 to determine a characterization of the users of the client application 104 that interacted with the first interactive element 508.
[0117] In a similar manner to the first interactive element 508, the second interactive element 510 can be associated with a second usage metric 518 and second user profile data 520, and the Nth interactive element 512 can be associated with an Nth usage metric 522 and Nth user profile data 524. Additionally, the AR content usage system 130 can determine a user of the client application 104 that interacted with at least one of the second interactive element 510 or the Nth interactive element 512, such as the user 504, based on the identifier of the user of the client application 104.
[0118] In one or more examples, the AR content usage system 130 can generate a dashboard accessible to the AR content creators 502. The dashboard can include one or more user interfaces that include information about the AR content items 134. The information included in the dashboard can include AR content item usage metrics 526. The AR content item usage metrics 526 can be determined by the AR content usage system 130 and indicate quantitative measures of interactions by users of the client application 104 with the AR content items 134. In various examples, the AR content item usage metrics 526 can indicate at least one of a frequency or a periodicity with which users of the client application 104 perform one or more of the first interaction element 508, the second interaction element 510, or the Nth interaction element 512. The AR content item usage metrics 526 can be displayed via at least one of one or more charts, one or more tables, or one or more graphs.
[0119] The dashboard can also include AR content user characterization information. The AR content user characterization information can indicate characteristics of users of the client application 104 that activated or otherwise interacted with at least one of the first interaction element 508, the second interaction element 510, or the Nth interaction element 512. The AR content user characterization information can be generated by the AR content usage system 130. In one or more examples, the AR content user characterization information can include information about characteristics of users of the client application 104 that interacted with the AR content item 134 relative to other users of the client application 104. For example, the AR content user characterization information can indicate a number of users of the client application 104 that activated the first interaction element 508 relative to a number of users of the client application 104 that interacted with other AR content items 134. To illustrate, the AR content user characterization information can indicate that users of the client application 104 that activated the first interaction element 508 are more likely to interact with augmented reality content via the client application 104 than users of the client application 104 that do not interact with augmented reality content via the client application 104. Additionally, the AR content user characterization information can indicate at least one of one or more demographic characteristics or one or more location characteristics that correspond to at least a threshold number of users that performed the first interaction element 508. In one or more illustrative examples, the AR content user characterization information can indicate that at least 50% of users of the client application 104 that activated the first interaction element 508 are between 25 and 40 years old and at least 75% of users of the client application 104 that activated the first interaction element 508 live in a city with a population of over 250,000.
[0120] The information included in the dashboard of the AR content creator 502 can be based on a dashboard request received by the server system 108 from one or more computing devices of the AR content creator 502. The dashboard request can indicate one or more criteria for at least one of content usage metrics or characteristics of users of the client application 104 that interact with AR content generated by the AR content creator 502. In one or more examples, the AR content usage system 130 can provide one or more user interfaces that the AR content creator 502 can use to specify information to include in the dashboard. The one or more user interfaces can include options indicating types of information to include in the dashboard. In Figure 5 In the illustrative example, the server system 108 can send dashboard UI information to the AR content creator 502, the dashboard UI information including information for displaying one or more user interfaces of the dashboard.
[0121] In one or more examples, the AR content usage system 130 can provide one or more user interfaces that include options that can be selected to include metrics indicating frequency of occurrence of at least one of the first interaction element 508, the second interaction element 510, or the Nth interaction element 512 of the AR content item 134. The one or more user interfaces can also include options that can be selected to cause information related to one or more characteristics of users of the client application 104 that interact with the AR content item 134 to be displayed via the dashboard. To illustrate, the AR content usage system 130 can provide one or more user interfaces that include options that can be selected to view one or more demographic characteristics of users of the client application 104 that interact with the AR content item 134, one or more location characteristics of users of the client application 104 that interact with the AR content item 134, one or more content consumption history characteristics of users of the client application 104 that interact with the AR content item 134, one or more combinations thereof, and the like.
[0122] Additionally, the AR content usage system 130 can provide one or more user interfaces that include options that can be selected to indicate one or more visual formats for presenting information included in the dashboard. For example, the AR content usage system 130 can provide one or more user interfaces that include one or more options that can be selected to display at least one of the AR content item usage metrics 526 or the AR content user characterization information in a numerical form. In an additional example, the AR content usage system 130 can provide one or more user interfaces that include one or more options that can be selected to display at least one of the AR content item usage metrics 526 or the AR content user characterization information in a tabular format. The AR content usage system 130 can also provide one or more user interfaces that include one or more options that can be selected to display at least one of the AR content item usage metrics 526 or the AR content user characterization information in a graphical form, such as a pie chart, a line graph, a bar chart, a combination thereof, or the like.
[0123] In one or more implementations, the AR content usage system 130 can provide information indicating a target audience for the AR content item 134. In various examples, information related to the target audience for the AR content item 134 can be included in the dashboard UI information. In additional examples, the target audience information can be provided separately from the dashboard UI information. In one or more examples, the target audience can be determined by the AR content usage system 130 based on user profile data and usage metrics for users of the client application 104 that interact with the augmented reality content, e.g., the AR content item 134, of the AR content creator 502. The target audience information can indicate at least one of demographic characteristics or location characteristics of users of the client application 104 that have at least a threshold likelihood of interacting with the AR content item 134. For example, the target audience information can indicate at least one of demographic characteristics or location characteristics of users of the client application 104 that have at least a threshold probability of interacting with the first interactive element 508. Additionally, the target audience information can indicate at least one of demographic characteristics or location characteristics of users of the client application 104 that have at least a threshold probability of interacting with the second interactive element 510. In various examples, the target audience information for the first interactive element 508 can be different from the target audience information for the second interactive element 510. Furthermore, the target audience information can indicate content consumption characteristics of users of the client application 104 that have at least a threshold probability of interacting with the AR content item 134, e.g., activating the first interactive element 508 or the second interactive element 510. The content consumption characteristics can include a type of content viewed or accessed by the users of the client application 104 (e.g., video content, audio content, image content, text content, augmented reality content, etc.), a source of content viewed or accessed by the users of the client application 104, a frequency of using one or more types of content via the client application 104, a frequency of using content from one or more sources via the client application 104, one or more channels used to access content via the client application 104, or one or more combinations of the same.
[0124] After determining the target audience for the AR content item 134, the server system 108 can obtain input from the AR content creator 502 indicating one or more channels that can be used to promote the AR content item 134 via the client application 104. In one or more examples, the AR content creator 502 can indicate that the AR content item 134 is to be promoted to users of the client application 104 included in the target audience by presenting the AR content item 134 in a relatively high position of search results generated in response to a search request for AR content that is directed to one or more keywords associated with the AR content item 134. In these scenarios, the AR content item 134 can be weighted in a manner that moves the AR content item 134 closer to the top of the search results provided to users of the client application 104 included in the target audience that submit search requests to the server system 108. In one or more additional examples, the AR content creator 502 can indicate that the AR content item 134 is to be promoted to users of the client application 104 included in the target audience by including the AR content item 134 in content recommendations provided via the client application 104.
[0125] In one or more implementations, the threshold probability of a user of the client application 104 activating the first interaction element 508 can be determined by analyzing the usage metric of the first interaction element 508 and the user profile data relative to an average usage metric of at least a subset of additional AR content items accessible via the client application 104. For example, the AR content usage system 130 can determine an average amount of usage of the AR content item 134 across multiple users of the client application 104, and then determine characteristics of users of the client application 104 that use the AR content item 134 more than the average amount of usage of the AR content item 134. The AR content usage system 130 can determine a threshold probability that a user of the client application 104 is included in the target audience for the AR content item 134 based on a number of users of the client application 104 that can be included in the target audience. The AR content usage system 130 can determine a likelihood or probability that a user of the client application 104 is in the target audience for the AR content item 134 based on a measure of similarity between the characteristics of the user and the characteristics of users of the client application 104 that have at least a threshold amount of usage of the AR content item 134. The likelihood or probability that a user of the client application 104 is in the target audience can be analyzed relative to the threshold probability to determine whether to include the user in the target audience for the AR content item 134.
[0126] In one or more illustrative examples, the AR content item 134 can be related to one or more products. The one or more products can be available for purchase via the client application 104. In various examples, the first interactive element 508 can correspond to selecting a first product within a user interface generated by the client application 104, the second interactive element 510 can correspond to selecting a second product within the user interface generated by the client application 104, and the Nth interactive element 512 can correspond to selecting an Nth product within the user interface generated by the client application 104. In these scenarios, the first product can be associated with a first selectable user interface element, the second product can be associated with a second selectable user interface element, and the Nth product can be associated with an Nth selectable user interface element. In response to a user of the client application 104 activating or selecting the first interactive element 508, the second interactive element 510, or the Nth interactive element 512, one or more visual effects can be applied to the user content. In one or more examples, the first interactive element 508 can correspond to a first product, and selection of the user interface element corresponding to the first product can cause one or more visual effects related to a characteristic of the first product to be applied to the user content. In the case that the user content includes one or more facial features of a user of the client application 104 and the first product is a cosmetic product, selection of the first user interface element corresponding to the first product can cause the user content to be modified in a manner that shows the first product being applied to the one or more facial features (e.g., eye shadow being applied to an area surrounding one or more eyes included in the user content). In one or more scenarios in which the second interactive element 510 corresponds to a second product, selection of the user interface element corresponding to the second product can cause the user content to be modified in a manner that shows the second product being applied to the one or more facial features. The first product and the second product can be the same type of product (e.g., eye shadow), but can have different characteristics, such as different colors, different shades, different intensities, different shimmers, etc. In additional examples, the first product and the second product can be different types of products. To illustrate, the first product can be eye shadow, and the second product can be lipstick. Further, the first product and the second product can be at least one of products produced by different manufacturers or offered for purchase by different retailers. In other cases, the first product and the second product can be at least one of products produced by the same manufacturer or offered for purchase by the same retailer.
[0127] In one or more illustrative examples, the dashboard can include a plurality of options that can be selected to view information about one or more products related to an augmented reality content item executed by the client application 104. The dashboard can arrange data related to usage of the augmented reality content item corresponding to the plurality of products related to the augmented reality content item. The information included in the dashboard can indicate a number or frequency of times that the augmented reality content item related to the plurality of products was used. In various examples, the information included in the dashboard can indicate a number or frequency of times that a visual effect of the augmented reality content item was applied to user content, where the visual effect relates to applying a product to one or more objects included in the user content.
[0128] The AR content metric analysis system 132 can analyze usage data for a plurality of AR content items 134 to determine AR content usage metrics 526. The AR content usage metrics 526 can indicate a level of interaction between users of the client application 104 and the AR content items 134. Additionally, the AR content metric analysis system 132 can determine usage suitability estimates 528 with respect to the AR content usage metrics 526. The usage suitability estimates 528 can indicate a correlation between a respective AR content usage metric 526 and an outcome provided by the AR content creator 502. The outcome can correspond to a result that the AR content creator 502 desires to achieve with respect to interactions between users of the client application 104 and the AR content items 134. In various examples, the outcome can correspond to one or more criteria specified by the AR content creator 502 for usage of AR content items created by the AR content creator 502. In various examples, the AR content metric analysis system 132 can determine a recommendation to the AR content creator 502 regarding the AR content usage metrics 526 based on a level of correlation of one or more AR content usage metrics with respect to a given outcome being greater than a level of correlation of one or more additional AR content usage metrics with respect to the outcome.
[0129] Based on the recommendations, the server system 108 can receive input from the AR content creator 502 to monitor one or more recommended AR content item usage metrics. In one or more examples, the one or more recommended AR content item usage metrics can correspond to a specified interaction with the augmented reality content item 134 or an action performed by a user of the client application 104 related to the augmented reality content item 134. Monitoring the one or more recommended AR content item usage metrics can include determining a number of instances of the action or a number of instances of interaction with the AR content item 134. At least one of the AR content usage system 130 or the AR content metric analysis system 132 can generate a user interface displaying the monitored AR content item usage metrics 526. In various examples, at least a portion of the AR content item usage metrics 526 displayed in the user interface can be identified based on a selection of the one or more AR content item usage metrics 526 by the AR content creator 502 from a plurality of possible AR content item usage metrics 526 that can be monitored and displayed.
[0130] In one or more illustrative examples, the AR content creator 502 can specify that a result for the AR content item 134 corresponds to a number of messages exchanged between users of the client application 104 related to the AR content item 134. The AR content metric analysis system 132 can determine an amount of interaction by users of the client application 104 with the interaction elements 508, 510, 512. The AR content metric analysis system 132 can also determine a number of times a message related to the AR content item 134 was shared relative to a number of times a user of the client application 104 interacting with the interaction elements 508, 510, 512. In various examples, the AR content metric analysis system 132 can determine that users interacting with the first interaction element 508 are more likely to share a message related to the AR content item 134 than users interacting with the second interaction element 510. In these scenarios, the usage suitability estimate 528 for the first interaction element 508 can be higher than the usage suitability estimate 528 for the second interaction element 510.
[0131] In one or more additional illustrative examples, the AR content creator 502 can specify that a result of the AR content item 134 corresponds to a number of sales of a product corresponding to the AR content item 134. The AR content metric analysis system 132 can determine that an interaction with the first interactive element 508 is a better indicator of a sale of the product related to the AR content item 134 than an interaction with the second interactive element 510 based on the usage fitness estimate 528 of the first interactive element 508 being greater than the usage fitness estimate 528 of the second interactive element 510. In further illustrative examples, the AR content metric analysis system 132 can generate an interactive element recommendation 530 indicating that including the first interactive element 508 in the AR content item 134 is more likely to result in a sale of the product than including the second interactive element 510 and recommend removing the second interactive element 510 from the AR content item 134.
[0132] In one or more further examples, the AR content creator 502 can specify that a result of the AR content item 134 is a number of purchases of a product displayed in conjunction with the AR content item 134. In these scenarios, the AR content metric analysis system 132 can determine a metric related to sales of the product. For example, a metric corresponding to sales of the product can include at least one of a number of shares of a message corresponding to the augmented reality content item 134 or a number of times a given user executes the augmented reality content item 134 to modify user content. The AR content metric analysis system 132 can determine a first level of correlation between sharing of a message corresponding to the augmented reality content item 134 and sales of the product related to the augmented reality content item 134. The AR content metric analysis system 132 can also determine a second level of correlation between a number of times the AR content item 134 is executed and sales of the product related to the augmented reality content item 134. Based on the AR content metric analysis system 132 determining that users sharing messages including user content modified by the AR content item 134 are more likely to purchase the product than users modifying user content using only the AR content item 134 without sharing the modified user content in a message, the first level of correlation can be greater than the second level of correlation. In these scenarios, the AR content metric analysis system 132 can determine that sharing of messages including user content modified by the augmented reality content item 134 is an indicator of sales of the product and generate a recommendation for the AR content creator 502 to monitor a number of users of the client application 104 sharing messages including user content modified by the AR content item 134 as a predictor of sales of the product related to the AR content item 134.
[0133] The AR content metric analysis system 132 can also determine interaction element recommendations 530 based on the AR content item usage metrics and the usage suitability estimates 528. In various examples, the AR content metric analysis system 132 can determine interaction elements to include in AR content items in order to increase interactions between users of the client application 104 and the AR content items 134. In one or more examples, the AR content metric analysis system 132 can determine interaction element recommendations 530 to add, remove, or modify interaction elements of the AR content items 134. In one or more illustrative examples, the interaction element recommendations 530 can indicate modifications to one or more of the first interaction element 508, the second interaction element 510, or up to the Nth interaction element 512 to increase interactions between users of the client application 104 and the AR content items 134. Continuing with the illustrative example in which the usage suitability estimate 528 of the first interaction element 508 is greater than the usage suitability estimate 528 of the second interaction element 510, the AR content metric analysis system 132 can generate an interaction element recommendation 530 to include the first interaction element 508 in one or more additional AR content items created by the AR content creator 502. Additionally, the AR content metric analysis system 132 can also generate an interaction element recommendation 530 based on the usage suitability estimate 528 of the first interaction element 508 being greater than the usage suitability estimate 528 of the second interaction element 510 to track interactions with the first interaction element 508 rather than the second interaction element 510 for the AR content item 134.
[0134] In one or more additional examples, the first interactive element 508 can correspond to a first product, and the second interactive element 510 can correspond to a second product. In these examples, based on the suitability estimate 528 of the first interactive element 508 being higher than the suitability estimate 528 of the second interactive element 510, the AR content metric analysis system 132 can generate an interactive element recommendation 530 indicating that, relative to a user 502 of the client application 104 interacting with the AR content item 134, the first product has at least a threshold probability of generating a greater sales volume than the second product. In still additional examples, the first interactive element 508 can correspond to a first characteristic of a product, and the second interactive element 510 can correspond to a second characteristic of the product. To illustrate, the first interactive element 508 can correspond to a first color of a product, and the second interactive element 510 can correspond to a second color of the product. Based on the suitability estimate 528 of the first interactive element 508 being greater than the suitability estimate 528 of the second interactive element 510, the AR content metric analysis system 132 can generate an interactive element recommendation 530 indicating that the user 502 of the client application 104 interacting with the AR content item 134 is more likely to prefer to purchase a version of the product having the first color than a version of the product having the second color.
[0135] In various examples, the interactive element recommendation 530 can indicate changing a type of the second interactive element 510 to correspond to a type of the first interactive element 508 based on the usage suitability estimate 528 of the first interactive element 508 being greater than the usage suitability estimate 528 of the second interactive element 510. For example, the first interactive element 508 can be executable to cause a display of an animation relative to a user, and the second interactive element 510 can include a photograph of an object. In these cases, the AR content metric analysis system 132 can generate an interactive element recommendation 530 to modify the second interactive element 510 from a photograph of the object to include an animation of the object. In one or more additional examples, the first interactive element 508 can correspond to a first type of product, and the second interactive element can correspond to a second type of product. In these scenarios, the AR content metric analysis system 132 can generate an interactive element recommendation 530 to modify the second interactive element 510 to correspond to the first type of product.
[0136] In at least some examples, at least one of the AR content usage system 130 or the AR content metric analysis system 132 can determine usage metrics for one or more groups of individuals. In one or more examples, the one or more groups can be a focus group that the AR content creator 502 has selected to demonstrate the augmented reality content item 134 or to demonstrate one or more features of the augmented reality content item 134. For example, at least one of the AR content usage system 130 or the AR content metric analysis system 132 can enable a first group of users of the client application 104 having a first number of characteristics to access the augmented reality content item 134. The AR content usage system 130 can determine a first usage metric 514 for the first interactive element 508 based on a number of times the first group of users selected a first user interface element corresponding to the first interactive element 508. The AR content usage system 130 can also determine a second usage metric 518 for the second interactive element 510 based on a number of times the first group of users selected a second user interface element corresponding to the second interactive element 510. After monitoring the usage of the first and second interactive elements 508, 510 by the first group of users, at least one of the AR content usage system 130 or the AR content metric analysis system 132 can identify a second group of users of the client application 104 to monitor for usage of the first and second interactive elements 508, 510. To illustrate, the AR content usage system 130 can determine a first number of times the second group of users selected the first user interface element corresponding to the first interactive element 508 and a second number of times the second group of users selected the second user interface element corresponding to the second interactive element 510. In this way, at least one of the AR content usage system 130 or the AR content metric analysis system 132 can analyze the interactions of the first and second groups of users with the first and second interactive elements 508, 510 to determine which group of users is more likely to interact with the first or second interactive elements 508, 510. The AR content metric analysis system 132 can then analyze the characteristics of the first or second group of users to determine characteristics of users of the client application 104 that are more likely to interact with the first or second interactive elements 508, 510. In this way, the AR content metric analysis system 132 can use a focus group that is smaller than the actual target audience to identify a potential target audience for at least one of the first or second interactive elements 508, 510.
[0137] Figure 6A flow diagram illustrating one or more implementations of a process for analyzing augmented reality content usage data is shown. The process can be embodied in computer-readable instructions for execution by one or more processors, such that the operations of the process can be performed, in part or in whole, by functional components of at least one of the client application 104 or the server system 108. Accordingly, in some instances, the process is described below with reference to the examples in an example manner. However, in other implementations, the process is described with respect to Figure 6 At least some operations of the described processes can be deployed on a variety of other hardware configurations. Accordingly, with respect to Figure 6 The described processes are not intended to be limited to the server system 108 or the client device 102, but can be implemented in whole or in part by one or more additional components. Although the described flow diagrams can illustrate operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations can be re-arranged. A process is terminated when its operations are completed. A process can correspond to a method, a procedure, an algorithm, etc. The operations of a method can be performed entirely or in part by one or more systems (e.g., the systems described herein) or any portion thereof (e.g., a processor included in any system).
[0138] Figure 6 is a flow diagram illustrating example operations of a process 600 for determining a suitability measure of a usage metric of an augmented reality content item relative to an outcome specified by an augmented reality content creator, in accordance with one or more example implementations. The process 600 can include determining usage data for a plurality of augmented reality content items at operation 602. The usage data can indicate an amount of interaction between a user of the client application and the plurality of augmented reality content items. The interaction with the augmented reality content item can include executing the augmented reality content item to modify user content. Additionally, the interaction with the augmented reality content item can include a selection of a user interface element displayed in response to execution of the augmented reality content item. Further, determining the amount of interaction with the augmented reality content item can include determining a number of messages sent via the client application that correspond to user content modified by the augmented reality content item. In one or more additional examples, determining the amount of interaction with the augmented reality content item can include determining a number of times the augmented reality content item has been shared by the user of the client application. In various examples, determining the amount of interaction with the augmented reality content item can include determining a number of times the augmented reality content item has been executed to modify one or more items of user content.
[0139] At operation 604, the process 600 can include determining, based on the usage data, a plurality of usage metrics for the augmented reality content item of the plurality of augmented reality content items. The plurality of usage metrics can correspond to various ways of representing interactions between a user of the client application and the augmented reality content item. In one or more examples, a usage metric can indicate a number of times the augmented reality content was added to an individual's account with the messaging system and / or the social networking system. A usage metric can also indicate a number of times the augmented reality content item was executed to modify user content. Additionally, a usage metric can indicate a number of selections of one or more user interface elements related to the augmented reality content item.
[0140] In various examples, an individual augmented reality content item can include a plurality of user interface elements. For instance, an augmented reality content item can include a first user interface element corresponding to one or more first visual effects for display in conjunction with user content, and a second user interface element corresponding to one or more second visual effects for display in conjunction with user content, the one or more second visual effects being different from the one or more first visual effects. Additionally, the augmented reality content item can include a third user interface element corresponding to one or more third visual effects for display in conjunction with user content, the one or more third visual effects being different from the one or more first visual effects and the one or more second visual effects. In one or more illustrative examples, the one or more first visual effects correspond to a first product having a first number of features, the one or more second visual effects correspond to a second product having a second number of features, and the one or more third visual effects correspond to a third product having a third number of features. In these scenarios, selection of the first user interface element can cause the one or more first visual effects related to the first product to be displayed in conjunction with user content, and selection of the second user interface element can cause the one or more second visual effects related to the second product to be displayed in conjunction with user content. Furthermore, selection of the third user interface element can cause the one or more third visual effects related to the third product to be displayed in conjunction with user content.
[0141] Additionally, at operation 606, the process 600 can include determining a level of correlation between a usage metric of the plurality of usage metrics and an outcome for the augmented reality content creator. In various examples, a first amount of change in the usage metric can be determined for the augmented reality content item over a time period. Additionally, a second amount of change in the outcome can be determined over the time period. In one or more examples, the level of correlation can be determined based on a relationship between the first amount of change and the second amount of change. In at least some scenarios, the level of correlation between the usage metric and the outcome can increase based on a similarity of a rate of change of the usage metric and a rate of change of the outcome.
[0142] In one or more implementations, the level of correlation between the usage metric and the outcome can be determined by identifying a number of times that one or more actions corresponding to the usage metric occurred relative to the outcome. For example, the usage metric can correspond to a number of times that an augmented reality content item was used to modify user content and the modified user content was included in a message provided to an additional user. Further, the outcome can correspond to a number of times that a user of the system purchased a product related to the augmented reality content item. In these scenarios, the level of correlation can be determined based on a number of times that a user of the system purchased the product after receiving a message that included user content that was modified by the augmented reality content item. In one or more illustrative examples, the product can be an article of clothing and the augmented reality content item can modify user content by displaying an individual wearing the article of clothing included in the user content. In these cases, the level of correlation can be determined based on a number of times that a user purchased the article of clothing after viewing a message that included the modified user content showing the individual wearing the article of clothing. The level of correlation can also increase as the number of times the article of clothing is purchased increases. In one or more additional examples, the outcome can correspond to a number of times that one or more users of the client application purchased the augmented reality content item. In one or more further examples, a preview of a portion of the augmented reality content item can be displayed and a user interface element that can be selected to cause a remainder of the augmented reality content item to be displayed or executed can also be displayed. In these scenarios, the outcome can correspond to a selection of the user interface element that causes the remainder of the augmented reality content item to be displayed or executed.
[0143] The process 600 can also include determining, at operation 608, a measure of suitability of the usage metric relative to the outcome based on the level of correlation. The measure of suitability can be one of a plurality of measures of suitability corresponding to a plurality of usage metrics with respect to the outcome. Each measure of suitability for a respective usage metric can be displayed in the user interface. In one or more examples, an additional level of correlation between an additional usage metric of the plurality of usage metrics and the outcome specified by the augmented reality content creator can be determined. The additional level of correlation can be used to determine an additional measure of suitability of the additional usage metric relative to the outcome. In various examples, measures of suitability for a plurality of outcomes can also be displayed in the user interface. To illustrate, an additional level of correlation corresponding to a usage metric of the plurality of usage metrics and an additional outcome specified by the augmented reality content creator can be determined. Based on the additional level of correlation between the usage metric and the additional outcome, an additional measure of suitability of the usage metric relative to the additional outcome can be determined.
[0144] Additionally, at operation 610, process 600 can include generating user interface data corresponding to a user interface that indicates the suitability estimate of the usage metric. In one or more examples, additional user input can be received to view at least one usage metric of the one or more usage metrics corresponding to the augmented reality content item. In various examples, the user interface data can be generated in response to the additional user input, and the one or more user interfaces include the at least one usage metric. Additionally, additional user interface data can be generated corresponding to one or more additional user interfaces displayed as part of a tool for constructing the augmented reality content item. The one or more additional user interfaces can include at least one user interface that enables selection of one or more features of the augmented reality content item, and selection of the one or more features of the augmented reality content item using the tool causes an indication to be stored in a data structure storing data related to the augmented reality content item. The indication can indicate that selection of a user interface element associated with a feature of the one or more features corresponds to an interaction with the augmented reality content item.
[0145] In one or more examples, analysis of the usage data can be performed with respect to a plurality of user interface elements included in a plurality of augmented reality content items. Additionally, based on the analysis, a user interface element of the plurality of user interface elements can be determined to have at least a threshold probability of increasing a usage metric with respect to a result. The user interface element can be selectable to cause performance of one or more actions that modify user content to be part of the augmented reality content item. In various examples, the threshold probability of increasing the usage metric with respect to the result can correspond to one or more frequencies of selection of the user interface element. The threshold probability of increasing the suitability estimate of the usage metric can also correspond to a number of times the user interface element has been selected. In one or more illustrative examples, usage metrics can be analyzed with respect to a plurality of user interface elements for one or more augmented reality content items, and one or more statistical techniques and / or one or more machine learning techniques can be applied to determine a ranking of the plurality of user interface elements. As the ranking increases, a probability that the user interface element causes an increase in usage of the augmented reality content item can also increase. In one or more implementations, the threshold probability of increasing the suitability estimate of the usage metric can be related to a respective minimum rank of the user interface element of the plurality of user interface elements. An augmented reality content creator can be enabled to access a recommendation that indicates to include the user interface element as part of the augmented reality content item. In various examples, the augmented reality content item can be modified to display the user interface element in response to the augmented reality content item being executed. The user interface element can cause an action to be performed that is different from an action performed by one or more additional user interface elements that are already part of the augmented reality content item.
[0146] In one or more additional examples, an analysis of features of an augmented reality content item that indicate an increase in usage of the augmented reality content item can be performed. The features of the augmented reality content item can include graphics, animations, modifications to shapes of one or more objects included in user content, modifications to colors of one or more objects included in user content, color schemes of one or more objects displayed in relation to the augmented reality content item, quality of image and / or video content displayed in conjunction with the augmented reality content item, or one or more combinations thereof. In various examples, usage metrics for a plurality of features of an augmented reality content item can be analyzed using statistical techniques and / or one or more machine learning techniques to determine at least one of a frequency of usage of a feature and / or a number of times a feature is used. In one or more examples, a feature of an augmented reality content item can be determined to increase usage of the augmented reality content item based on a frequency of usage of the feature being at least a threshold amount greater than a frequency of usage of at least a portion of other features of the augmented reality content item.
[0147] One or more additional analyses can be performed with respect to a usage suitability of a result of a usage metric. The usage metric can correspond to an addition of an augmented reality content item to a user's account, a sharing of the augmented reality content item with an additional user, a usage of the augmented reality content item to modify user content to modify the user content, a generation of a message including user content modified by the augmented reality content item, an amount of time spent on the augmented reality content item, or one or more combinations thereof. The one or more analyses can include a determination of at least one of a frequency or a number of times a usage metric corresponds to a result. As at least one of the number or the frequency increases with respect to the usage metric corresponding to the result, the usage metric indicates an increased usage suitability of the result.
[0148] In at least some implementations, a group of users of a client application can be enabled to access an augmented reality content item to test user interface elements to determine user interface elements that can be used more frequently than other user interface elements. Usage data related to the user interface elements can indicate one or more user interface elements that can cause an estimate of suitability of the user interface elements to increase to achieve a result specified by a creator of the augmented reality content item. An augmented reality content item having multiple user interface elements can have multiple user interface elements that can be individually selectable to cause one or more respective actions to be performed with respect to user content captured with the client application. In one or more examples, a first usage metric with respect to a first user interface element of the multiple user interface elements can be determined based on a first number of selections of the first user interface element by the group of users of the client application. Additionally, a second usage metric with respect to a second user interface element of the multiple user interface elements can be determined based on a second number of selections of the second user interface element by the group of users of the client application. A first estimate of suitability of the first usage metric can be determined based on a first correlation between the first usage metric and the result, and a second estimate of suitability of the second usage metric can be determined based on a second correlation between the second usage metric and the result. In one or more illustrative examples, based on the first usage metric being greater than the second usage metric, the first usage metric has a higher level of correlation to the result than the second usage metric. In one or more additional examples, an additional group of users of the client application can be enabled to access the augmented reality content item, and additional usage metrics of user interface elements of the augmented reality content can be determined to identify one or more characteristics of users of the client application that are more likely to select the user interface elements than users of the client application that do not have the one or more characteristics.
[0149] In one or more additional examples, a target audience can be determined based on usage data of the user interface elements. To illustrate, profile information corresponding to a plurality of users of the client application that interact with the augmented reality content item can be determined. Additionally, a user representation of the augmented reality content item can be determined by identifying characteristics of the plurality of users of the client application that interact with the augmented reality content item. The characteristics can be used to determine a target audience for the augmented reality content item. In various examples, determining whether an individual is included in the target audience can include analyzing a first characteristic of a user of the client application and a second characteristic of a target audience of the augmented reality content item, and determining that a similarity between the first characteristic and the second characteristic is at least a threshold similarity. In response to determining that the user is included in the target audience related to the augmented reality content, a recommendation indicating the augmented reality content item can be sent to a client device of the user of the client application.
[0150] Figure 7is an illustration of a user interface 700 indicating information related to suitability estimates for use of a plurality of augmented reality content items according to one or more example implementations. The user interface 700 can be generated by a computing device 702 and displayed via a display device of the computing device 702. The computing device 702 can be operated by a representative of an augmented reality content creator. The user interface 700 can include a first region 704 indicating a name of the augmented reality content creator.
[0151] The user interface 700 can also include a region 706 indicating identifiers of augmented reality content items created by the augmented reality content creator specified in the region 704. In one or more examples, the identifiers of the augmented reality content items can be selected from a list of augmented reality content items created by the augmented reality content creator. Further, the user interface 700 can include a region 708 indicating suitability estimates for use of a plurality of AR content item usage metrics. The suitability estimates for use can be related to results indicated by the augmented reality content creator with respect to the AR content item usage metrics.
[0152] Figure 8 is a block diagram illustrating components of a machine 800, according to some example implementations, able to read instructions from a machine-readable medium (for example, a machine-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically, the machine 800 can be a special-purpose or general-purpose computer that has a processor 802, a storage device 804, and a memory 806. Figure 8A diagrammatic representation of a machine in the example form of a computer system is shown, within which instructions 802 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 800 to perform any one or more of the methodologies discussed herein can be executed. Thus, the instructions 802 can implement modules or components described herein. The instructions 802 transform the general, non-programmed machine 800 into a particular machine 800 programmed to carry out the described and illustrated functions in the manner described. In alternative implementations, the machine 800 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 800 can operate in the capacity of a server machine or a client machine in server-client network environments, or as a peer machine in peer-to-peer (or distributed) network environments. The machine 800 can comprise, but not be 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 telephone, 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 appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 802, sequentially or otherwise, that specify actions to be taken by machine 800. Further, while only a single machine 800 is illustrated, the term “machine” shall also be taken to include a collection of machines 800 that individually or jointly execute the instructions 802 to perform any one or more of the methodologies discussed herein.
[0153] The machine 800 can include processors 804, memory / storage 806, and I / O components 818, which can be configured to communicate with one another via a bus 810. In an example implementation, the processors 804 (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) can include, for example, a processor 812 and a processor 814 that can execute the instructions 802. The term “processor” is intended to include multiple processors 804 that can be of Figure 8Multiple processors 804 are shown, but a machine 800 can include a single processor 812 with single core, a single processor 812 with multiple cores (e.g., a multi-core processor), multiple processors 812, 814 with single core, multiple processors 812, 814 with multiple cores, or any combination thereof.
[0154] The memory / storage 806 can include a main memory 816, for example, random access memory (RAM), or other memory, and a storage element 818, which can be used to store programming and / or data, etc. The processor 804 can access both the main memory 816 and the storage element 818, e.g., via a bus 810. The storage element 818 and the main memory 816 store the instructions 802 implementing any one or more of the methodologies or functions described herein. The instructions 802 can also reside completely, or a portion thereof, within the main memory 816, the storage element 818, at least one of the processors 804 (e.g., within a cache of the processor), or any suitable combination thereof, during execution thereof by the machine 800. Thus, the main memory 816, the storage element 818, and the memory of processors 804 are examples of machine-readable media.
[0155] The I / O components 808 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. Specific I / O components 808 included in the machine 800 will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I / O components 808 can include many other components that are not shown in FIG. 1. The I / O components 808 are grouped as shown primarily to simplify the following discussion and are not meant to limit the locations or functions of these components. In various example implementations, the I / O components 808 can include user output components 820 and user input components 822. The user output components 820 can include visual components (e.g., a Figure 8 The I / O components 808 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. Specific I / O components 808 included in the machine 800 will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I / O components 808 can include many other components that are not shown in FIG. 1. The I / O components 808 are grouped as shown primarily to simplify the following discussion and are not meant to limit the locations or functions of these components. In various example implementations, the I / O components 808 can include user output components 820 and user input components 822. The user output components 820 can include visual components (e.g., a
[0156] In other example implementations, the I / O components 808 can include biometric components 824, motion components 826, environmental components 828, or positioning components 830, among a variety of other components. Biometric components 824 can include, for example, components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion components 826 can include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), or the like. The environmental components 828 can include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to a physical environment.
[0157] Communication can be implemented using a wide variety of technologies. The I / O components 808 can include communication components 832 operable to couple the machine 800 to a network 834 or devices 836. For example, the communication components 832 can include a network interface component or other suitable components to interface the machine 800 to the network 834. In other examples, the communication components 832 can include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth®components (e.g., Bluetooth®low energy), Wi-Fi®components, and other communication components to provide communication via other modalities. The devices 836 can be another machine 800 or any of a wide array of peripheral devices (e.g., a peripheral device coupled via a USB). The communication components 832 can include one or more communication interfaces that can be used to receive data from and transmit data to other devices. For example, the communication components 832 can include a network interface component or other suitable components to interface the machine 800 to the network 834. In other examples, the communication components 832 can include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth®components (e.g., Bluetooth®low energy), Wi-Fi®components, and other communication components to provide communication via other modalities. The devices 836 can be another machine 800 or any of a wide array of peripheral devices (e.g., a peripheral device coupled via a USB). The communication components 832 can include one or more communication interfaces that can be used to receive data from and transmit data to other devices. For example, the communication components 832 can include a network interface component or other suitable components to interface the machine 800 to the network 834. In other examples, the communication components 832 can include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth®components (e.g., Bluetooth®low energy), Wi-Fi®components, and other communication components to provide communication via other modalities. The devices 836 can be another machine 800 or any of a wide array of peripheral devices (e.g., a peripheral device coupled via a USB).
[0158] Furthermore, the communication component 832 can detect identifiers or may include components operable to detect identifiers. For example, the communication component 832 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, data matrices, data symbols, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying audio signals from tags). Additionally, various information can be obtained via the communication component 832, such as location via Internet Protocol (IP) geolocation, etc. Location can be obtained through signal triangulation or by detecting NFC beacon signals that indicate a specific location.
[0159] Figure 9 This is a block diagram illustrating a system 900 including an example software architecture 902, which can be used in conjunction with various hardware architectures described herein. Figure 9 This is a non-limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functionality described herein. Software architecture 902 can be implemented in hardware such as… Figure 8 Execute on machine 800. Figure 8 The machine 800 includes a processor 804, a memory / storage device 806, and input / output (I / O) components 808, etc. A representative hardware layer 904 is shown and can represent, for example... Figure 8 The machine 800. A representative hardware layer 904 includes a processing unit 906 having associated executable instructions 908. The executable instructions 908 represent executable instructions of the software architecture 902, including implementations of the methods, components, etc., described herein. Hardware layer 904 also includes at least one of a memory and / or storage module, i.e., a memory / storage device 910, also having executable instructions 908. Hardware layer 904 may also include other hardware 912.
[0160] exist Figure 9In the example architecture of FIG. 9A, the software architecture 902 can be conceptualized as a stack of layers, where each layer provides particular functionality. For example, the software architecture 902 can include layers such as an operating system 914, libraries 916, frameworks / middleware 918, applications 920 and a presentation layer 922. Operationally, the applications 920 and / or other components within the layers can invoke API calls 924 and receive messages 926 in response to the API calls 924, through the software stack. The illustrated layers are representative, and not all software architectures have all layers. For example, some mobile or special purpose operating systems can not provide a frameworks / middleware 918, while others can provide such a layer. Other software architectures can include additional or different layers.
[0161] The operating system 914 can manage hardware resources and provide common services. The operating system 914 can include, for example, a kernel 928, services 930 and drivers 932. The kernel 928 can act as an abstraction layer between the hardware and the other software layers. For example, the kernel 928 can be responsible for memory management, processor management (for example, scheduling), component management, networking, security settings, and so on. The services 930 can provide other common services for the other software layers. The drivers 932 are responsible for controlling or interfacing with the underlying hardware, depending upon the implementation. For instance, the drivers 932 can include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (for example, Universal Serial Bus (USB) drivers), audio drivers, power management drivers, and so on. The drivers 932 provide a way for the software layers to interact with the hardware of the device. The drivers 932 can include, for example, the following classes of drivers: (1) Core Operating System: Includes services for power management, memory management, and process management. The interface in the API library 936 for these services is exposed to higher software layers via a kernel abstraction, (2) Hardware Abstraction: Manages the interface to hardware, such as the display, camera, and so on. The interface in the API library 936 for these services is exposed to higher software layers via a hardware abstraction, (3) Resource Management: Manages resources on the device, such as power and memory. The interface in the API library 936 for these services is exposed to higher software layers via a resource abstraction, and (4) Connectivity: Manages connectivity to other devices and to the network. The interface in the API library 936 for these services is exposed to higher software layers via a connectivity abstraction. The drivers 932 provide a way for the software layers to interact with the hardware of the device. The drivers 932 can include, for example, the following classes of drivers: (1) Core Operating System: Includes services for power management, memory management, and process management. The interface in the API library 936 for these services is exposed to higher software layers via a kernel abstraction, (2) Hardware Abstraction: Manages the interface to hardware, such as the display, camera, and so on. The interface in the API library 936 for these services is exposed to higher software layers via a hardware abstraction, (3) Resource Management: Manages resources on the device, such as power and memory. The interface in the API library 936 for these services is exposed to higher software layers via a resource abstraction, and (4) Connectivity: Manages connectivity to other devices and to the network. The interface in the API library 936 for these services is exposed to higher software layers via a connectivity abstraction.
[0162] The libraries 916 provide a common infrastructure that can be used by the applications 920 and other software modules or components. The libraries 916 provide functionality that allows the applications 920 and other software components to interact with the underlying operating system 914 through APIs. The libraries 916 can include system libraries 934 (for example, C standard library) that can provide functions to perform basic tasks such as memory allocation, string manipulation, mathematical functions, and the like. The libraries 916 further include API libraries 936 such as media libraries (for example, libraries to support presentation and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (for example, an OpenGL framework that can be used to render 2D and 3D graphics content on a display), database libraries (for example, SQLite that can provide various relational database functions), web libraries (for example, WebKit that can provide web browsing functionality), and the like. The libraries 916 also include a wide variety of other libraries 938 to provide many other APIs to the applications 920 and other software modules or components.
[0163] The framework / middleware 918 (also sometimes referred to as mid dleware) provides more high-level common infrastructure that can be used by the applications 920 and / or other software parts / modules of the system. For example, the framework / middleware 918 can provide various graphics user interface functions, high-level resource management, high-level location services, and so forth. The framework / middleware 918 can provide a broad spectrum of other APIs that can be utilized by the applications 920 and / or other software parts / modules, some of which can be specific to a particular operating system 914 or platform.
[0164] The applications 920 include built-in applications 940 and / or third-party applications 942. Examples of representative built-in applications 940 can include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, and / or a game application. Third-party applications 942 can include the application developed by entities other than the vendor of the particular platform. The third-party applications 942 can invoke the API calls 924 provided by the mobile operating system (such as operating system 914) to facilitate functionality described herein. TM or IOS TM software development kit (SDK) developed using the ANDROID TM , IOS TM , Phone mobile operating systems or other mobile operating systems. The third-party applications 942 can invoke the API calls 924 provided by the mobile operating system (such as operating system 914) to facilitate the functionality described herein.
[0165] The applications 920 can use built-in operating system functions (such as kernel 928, services 930 and / or drivers 932), libraries 916, and framework / middleware 918 to create the UI and otherwise interact with a user. Alternatively, or additionally, in some systems, the interaction with the user can occur through a presentation layer, such as presentation layer 922. In these systems, the application / component "logic" can be separated from the aspects of the application / component that interact with the user.
[0166] Glossary:
[0167] "Carrier signal" refers to any intangible medium that is capable of storing, encoding, or carrying the transitory or non-transitory instructions 802 for execution by the machine 800, and includes digital or analog communications signals or other intangible media to facilitate communication of such instructions 802. Transitory or non-transitory instructions 802 can be transmitted or received by the machine 800 via the network interface device utilizing any one of a number of well- known transfer protocols (e.g., HTTP).
[0168] A "client device" in this context refers to any machine 800 that interfaces to a communications network 110, 834 to access resources from one or more server systems or other client devices 102. A client device 102 can be, but is not limited to, a mobile phone, desktop computer, laptop computer, portable digital assistants (PDAs), smart phones, tablets, ultra- books, netbooks, laptops, multi-processor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access a network 110, 834.
[0169] A "communications network" in this context refers to one or more portions of a network 110, 834 that can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of a public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, other type of network, or a combination of two or more such networks. For example, a network 110, 834 or portion of a network 110, 834 can include a wireless or cellular network and the coupling can be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (lxRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks, Universal Mobile
[0170] A "ephemeral message" in this context refers to a message that can be accessed for a limited duration of time. An ephemeral message can be text, images, videos, etc. The access time for an ephemeral message can be set by the message sender. 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.
[0171] "machine-readable medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., code) that when executed by one or more processors of a machine, such as the machine 800, cause the machine to perform any one or more of the methodologies described herein. The term "machine-readable medium" shall also be taken to include any medium or combination of media that is capable of storing instructions (e.g., code) for execution by a machine's processors, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methodologies described herein. Thus, a "machine-readable medium" refers to a single storage apparatus or device, as well as "cloud-based" storage systems or storage networks that include multiple storage apparatus or devices. The term "machine-readable medium" excludes signals per se.
[0172] A "component" in this context means a device, physical entity or logic having boundaries defined by a functional or subroutine call, a branch point, an application program interface (API), or a other technological feature providing for partitioning or modularization of a particular process or control function. Components can be combined via their interfaces with other components to carry out a machine process. A component can be a packaged functional hardware unit designed for use with other components or a part of a program, or a piece of code, implementing a particular function or group of functions. Components can constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. A "hardware component" is a tangible unit capable of performing certain operations and can be configured or arranged in a certain physical manner. In various example implementations, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or application portion) as a hardware component that operates to perform certain operations as described herein.
[0173] Hardware components can also be implemented mechanically, electronically, or in any suitable combination of the above. For example, hardware components can include specially- engineered circuitry or logic that is permanently configured to perform certain operations. Hardware components can be special-purpose processors, such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). A hardware component can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component can include software executed by a general-purpose processor 804 or other programmable processor. Once configured by such software, hardware components become specific machines (or specific components of a machine 800) uniquely tailored to perform the configured functions and are no longer general-purpose processors 804. It will be appreciated that for purposes of discussion, the
[0174] Hardware components can provide information to, and receive information from, other hardware components. Accordingly, the described hardware components can be considered to be communicatively coupled. Where multiple hardware components exist contemporaneously, communications can be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware components. In implementations in which multiple hardware components are configured or instantiated at different times, communications between such hardware components can be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware components have access. For example, one hardware component can perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware component can then access the memory device to retrieve and process the stored output at a later time.
[0175] The hardware components also can initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). Various operations described in example methods described herein can be performed, at least in part, by one or more processors 804 that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors 804 can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, “processor- implemented component” refers to a hardware component implemented with one or more processors 804. Similarly, the methods described herein can be at least partially processor-implemented, with a particular processor 812, 814, or processors 804 being an example of hardware. For example, at least some of the operations of a method can be performed by one or more processors 804 or processor-implemented components. Moreover, the one or more processors 804 can also operate to support performance of the relevant operations of the method in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations can be performed by a group of computers (as examples of machines 800 including processors 804), with these operations being accessible via a network 110 (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)). The performance of certain of the operations may
[0176] “Processor” in this context refers to any circuit or virtual circuit (a physical circuit emulated by logic executing on an actual processor 804) that manipulates data values according to control signals (e.g., “commands,” “op codes,” “machine code,” etc.) and that produces results of operations as corresponding output signals. For example, a processor 804 can be 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), or any combination thereof. A processor 804 can also be a multi-core processor having two or more independent processors 804 (sometimes referred to as “cores”) that can execute instructions 802 contemporaneously.
[0177] A "timestamp" in this context refers to a character or sequence of coded information that identifies when a certain event occurred, e.g., giving the date and time of day, sometimes accurate to the fraction of a second.
[0178] Changes and modifications can be made to the disclosed implementations without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure, as expressed in the appended claims.
[0179] A numbered, non-limiting list of aspects of the present subject matter is presented as follows:
[0180] Aspect 1. A method comprising: determining, by one or more computing devices each including a processor and memory, usage data for a plurality of augmented reality content items, the usage data indicating an amount of interaction by a user of a client application with respective ones of the plurality of augmented reality content items; determining, by at least one of the one or more computing devices, based on the usage data, a plurality of usage metrics for an augmented reality content item of the plurality of augmented reality content items, the augmented reality content item being produced by an augmented reality content creator; determining, by at least one of the one or more computing devices, a level of correlation between a usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; determining, by at least one of the one or more computing devices and based on the level of correlation, a measure of fitness of the usage metric with respect to the outcome; and generating, by at least one of the one or more computing devices, user interface data corresponding to a user interface indicating the measure of fitness of the usage metric.
[0181] Aspect 2. The method of aspect 1, further comprising: performing, by at least one of the one or more computing devices, an analysis of the usage data with respect to a plurality of user interface elements included in the plurality of augmented reality content items; determining, by at least one of the one or more computing devices and based on the analysis, a user interface element of the plurality of user interface elements having at least a threshold probability of increasing the usage metric with respect to the outcome; and enabling, by at least one of the one or more computing devices, a recommendation indicating the user interface element to be accessible to the augmented reality content creator.
[0182] Aspect 3. The method of aspect 2, further comprising: modifying, by at least one of the one or more computing devices, the augmented reality content item to be executable to display the user interface element.
[0183] Aspect 4. The method of any one of aspects 1-3, further comprising: determining, by at least one of the one or more computing devices, an additional level of correlation between an additional usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; and determining, by at least one of the one or more computing devices and based on the additional level of correlation, an additional measure of fitness of the additional usage metric with respect to the outcome; wherein the user interface indicates the additional measure of fitness of the additional usage metric.
[0184] Aspect 5. The method of any one of aspects 1-4, further comprising: determining, by at least one of the one or more computing devices, an additional level of correlation between a usage metric of the plurality of usage metrics and an additional outcome specified by the augmented reality content creator; and determining, by at least one of the one or more computing devices and based on the additional level of correlation, an additional measure of fitness of the usage metric with respect to the additional outcome.
[0185] Aspect 6. The method of any one of aspects 1-5, further comprising: determining, by at least one of the one or more computing devices, profile information corresponding to a plurality of users of the client application that interact with the augmented reality content item; determining, by at least one of the one or more computing devices, a user characterization for the augmented reality content item based on characteristics of the plurality of users of the client application that interact with the augmented reality content item; and generating, by at least one of the one or more computing devices, additional user interface data corresponding to one or more additional user interfaces that indicate a target audience for augmented reality content items having at least a portion of the user characterization.
[0186] Aspect 7. The method of any one of aspects 1-6, wherein: the first usage metric comprises a number of messages sent via the client application that correspond to user content modified by the augmented reality content item; the second usage metric comprises a number of times a user of the client application has shared the augmented reality content item; and the third usage metric comprises an additional number of times the augmented reality content item has been executed to modify one or more items of user content.
[0187] Aspect 8. The method of aspect 7, wherein the outcome corresponds to a sale of a product via the client application; and the method comprises: determining, by at least one of the one or more computing devices, a first measure of fit of the first usage metric based on a first number of users of the client application that purchased the product after receiving a message sent via the client application that includes user content modified by the augmented reality content item; determining, by at least one of the one or more computing devices, a second measure of fit of the second usage metric based on a second number of users of the client application that purchased the product after a respective additional user of the client application shared the augmented reality content item with a plurality of users; and determining, by at least one of the one or more computing devices, a third measure of fit of the third usage metric based on a third number of users of the client application that purchased the product after using the augmented reality content item to modify user content.
[0188] Aspect 9. The method of any one of aspects 1-8, further comprising: receiving, by at least one of the one or more computing devices, additional user input to view at least one usage metric of the one or more usage metrics corresponding to the augmented reality content item, wherein the user interface data is generated in response to the additional user input and the one or more user interfaces include the at least one usage metric.
[0189] Aspect 10. A system comprising: one or more hardware processors; and one or more non-transitory computer-readable storage media comprising computer- readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising: determining usage data for a plurality of augmented reality content items, the usage data indicating an amount of interaction by users of a client application with respective augmented reality content items of the plurality of augmented reality content items; determining, based on the usage data, a plurality of usage metrics for an augmented reality content item of the plurality of augmented reality content items, the augmented reality content item being produced by an augmented reality content creator; determining a level of correlation between a usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; determining, based on the level of correlation, a measure of fit of the usage metric relative to the outcome; and generating user interface data corresponding to a user interface that indicates the measure of fit of the usage metric.
[0190] Aspect 11. The system of aspect 10, wherein: the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: determining, for the augmented reality content item, a first amount of change in the usage metric over a time period; and determining a second amount of change in the outcome over the time period; and determining the level of correlation based on a relationship of the first amount of change to the second amount of change.
[0191] Aspect 12. The system of aspect 10 or 11, wherein: the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: enabling a group of users of the client application to access the augmented reality content item, the augmented reality content item having a plurality of user interface elements that are individually selectable to cause one or more respective actions to be performed with respect to user content captured using the client application; determining a first usage metric with respect to a first user interface element of the plurality of user interface elements based on a first number of selections of the first user interface element by the group of users of the client application; and determining a second usage metric with respect to a second user interface element of the plurality of user interface elements based on a second number of selections of the second user interface element by the group of users of the client application.
[0192] Aspect 13. The system of aspect 12, wherein: the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: enabling an additional group of users of the client application to access the augmented reality content item, the additional group of users having one or more characteristics that are different from the group of users; determining a first additional usage metric with respect to the first user interface element based on a first additional number of selections of the first user interface element by the additional group of users of the client application; and determining a second additional usage metric with respect to the second user interface element of the plurality of user interface elements based on a second additional number of selections of the second user interface element by the additional group of users of the client application.
[0193] Aspect 14. The system of any one of aspects 10 through 13, wherein the one or more non-transitory computer-readable storage media include additional computer- readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: determining a first fitness estimate of the first usage metric based on a first correlation between the first usage metric and the outcome; determining a second fitness estimate of the second usage metric based on a second correlation between the second usage metric and the outcome; and determining that a level of correlation of the first usage metric with the outcome is higher than a level of correlation of the second usage metric with the outcome based on the first usage metric being greater than the second usage metric.
[0194] Aspect 15. The system of aspect 14, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: generating a recommendation for the augmented reality content creator with respect to the first usage metric; and receiving input from the augmented reality content creator to monitor the first usage metric.
[0195] Aspect 16. The system of aspect 15, wherein: the first usage metric corresponds to at least one of: an interaction with the augmented reality content item or an action performed by a user of the client application related to the augmented reality content item; the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: monitoring the first usage metric over a time period by determining instances of at least one of the interaction or the action; and generating additional user interface data corresponding to an additional user interface that indicates the first usage metric.
[0196] Aspect 17. The system of any one of aspects 10 through 16, wherein the one or more non-transitory computer-readable storage media include additional computer- readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations comprising: generating additional user interface data corresponding to an additional user interface comprising a plurality of selectable options, individual ones of the plurality of selectable options corresponding to individual usage metrics; receiving input from the augmented reality content creator indicating a selection of one or more of the plurality of selectable options; and generating additional user interface data corresponding to a further user interface, the additional user interface data indicating one or more individual usage metrics corresponding to the one or more selectable options.
[0197] Aspect 18. One or more non-transitory computer-readable media comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising: determining usage data for a plurality of augmented reality content items, the usage data indicating an amount of interaction by a user of a client application with individual ones of the plurality of augmented reality content items; determining, based on the usage data, a plurality of usage metrics for an augmented reality content item of the plurality of augmented reality content items, the augmented reality content item being produced by an augmented reality content creator; determining a level of correlation between a usage metric of the plurality of usage metrics and an outcome specified by the augmented reality content creator; determining, based on the level of correlation, a measure of fitness of the usage metric with respect to the outcome; and generating user interface data corresponding to a user interface indicating the measure of fitness of the usage metric.
[0198] Aspect 19. The one or more non-transitory computer-readable media of aspect 18, further comprising additional computer-readable instructions that, when executed by a computing device, cause the computing device to perform additional operations comprising: generating additional user interface data corresponding to one or more additional user interfaces, wherein the one or more additional user interfaces are displayed as part of a tool for constructing an augmented reality content item, the one or more additional user interfaces including at least one user interface that enables selection of one or more features of an augmented reality content item, and using the tool to select the one or more features of the augmented reality content item causes an indication to be stored in a data structure storing data related to the augmented reality content item, wherein the indication is to indicate that selection of a user interface element associated with a feature of the one or more features corresponds to an interaction with the augmented reality content item.
[0199] Aspect 20. The one or more non-transitory computer-readable media of Aspect 18 or 19, further comprising additional computer-readable instructions that, when executed by a computing device, cause the computing device to perform additional operations comprising: analyzing first characteristics of a user of the client application and second characteristics of a target audience of the augmented reality content item; determining that the user of the client application is included in the target audience based on a determination that a similarity between the first characteristics and the second characteristics is at least a threshold similarity; and sending a recommendation to a client device of the user of the client application indicating the augmented reality content item.
Claims
1. A method for augmented reality, comprising: Usage data for a plurality of augmented reality content items is determined by one or more computing devices, each including a processor and a memory, the usage data indicating the amount of interaction by a user of a client application with respect to each of the plurality of augmented reality content items; At least one of the one or more computing devices determines multiple usage metrics for augmented reality content items among the plurality of augmented reality content items, which are generated by augmented reality content creators, based on the usage data; The correlation level between the usage metric and the result specified by the augmented reality content creator is determined by at least one of the one or more computing devices; The suitability estimate of the usage metric relative to the result is determined by at least one of the one or more computing devices and based on the relevance level; as well as User interface data corresponding to the user interface indicating the suitability estimate of the usage metric is generated by at least one of the one or more computing devices.
2. The method according to claim 1, further comprising: The usage data is analyzed by at least one of the one or more computing devices relative to a plurality of user interface elements included in the plurality of augmented reality content items; The user interface elements among the plurality of user interface elements are determined by at least one of the one or more computing devices and based on the analysis, having at least a threshold probability to increase the usage metric relative to the result; as well as At least one of the one or more computing devices enables the recommendations indicating the user interface elements to be accessed by the augmented reality content creator.
3. The method according to claim 2, further comprising: The augmented reality content item is modified by at least one of the one or more computing devices to be executable to display the user interface element.
4. The method according to claim 1, further comprising: At least one of the one or more computing devices determines the additional level of correlation between an additional usage metric among the plurality of usage metrics and the result specified by the augmented reality content creator; as well as An additional fitness estimate of the additional usage metric relative to the result is determined by at least one of the one or more computing devices and based on the additional relevance level. The user interface indicates an additional suitability estimate of the additional usage metric.
5. The method according to claim 1, further comprising: The additional correlation level between the usage metrics among the plurality of usage metrics and the additional results specified by the augmented reality content creator is determined by at least one of the one or more computing devices. as well as An additional fitness estimate of the usage metric relative to the additional results is determined by at least one of the one or more computing devices and based on the additional relevance level.
6. The method according to claim 1, further comprising: At least one of the one or more computing devices determines profile information corresponding to multiple users of the client application interacting with the augmented reality content item; At least one of the one or more computing devices determines a user representation for the augmented reality content item based on the characteristics of the plurality of users of the client application interacting with the augmented reality content item; as well as Additional user interface data is generated by at least one of the one or more computing devices, corresponding to one or more additional user interfaces that indicate the target audience of augmented reality content items having at least a portion of the user representation.
7. The method according to claim 1, wherein: The first usage metric includes the number of messages sent via the client application that correspond to user content modified by the augmented reality content item; The second usage metric includes the number of times that users of the client application have shared the augmented reality content item; and The third usage metric includes the additional number of times the augmented reality content item has been executed to modify one or more items of the user content.
8. The method according to claim 7, wherein, The result corresponds to the sale of a product via the client application; and the method includes: At least one of the one or more computing devices determines a first suitability estimate for the first usage metric based on a first number of users of the client application who purchase the product after receiving a message sent via the client application that includes user content modified by the augmented reality content item; A second suitability estimate regarding the second usage metric is determined by at least one of the one or more computing devices based on a second number of users of the client application who purchase the product after the corresponding additional users of the client application share the augmented reality content item with multiple users; and A third suitability estimate regarding the third usage metric is determined by at least one of the one or more computing devices based on a third number of users of the client application who purchased the product after modifying user content using the augmented reality content item.
9. The method according to claim 1, further comprising: Additional user input is received by at least one of the one or more computing devices for viewing at least one usage metric among one or more usage metrics corresponding to the augmented reality content item, wherein the user interface data is generated in response to the additional user input, and one or more user interfaces include the at least one usage metric.
10. A system for augmented reality, comprising: One or more hardware processors; as well as One or more non-transitory computer-readable storage media, the one or more non-transitory computer-readable storage media including computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations, the operations including: Determine usage data for multiple augmented reality content items, the usage data indicating the amount of interaction a user of a client application has with each of the multiple augmented reality content items; Based on the usage data, multiple usage metrics are determined for the augmented reality content items, which are generated by the augmented reality content creators. Determine the correlation level between the usage metrics among the plurality of usage metrics and the results specified by the augmented reality content creator; Based on the relevance level, determine the suitability estimate of the usage metric relative to the results; and Generate user interface data corresponding to the user interface that indicates the suitability estimate of the used metric.
11. The system according to claim 10, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: For the augmented reality content item, determine the first change in the usage metric over the time period; and Determine the second change in the result within the time period; and The correlation level is determined based on the relationship between the first change and the second change.
12. The system according to claim 10, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Enables user groups of the client application to access augmented reality content items, which have multiple user interface elements that can be individually selected to perform one or more corresponding actions related to user content captured using the client application; A first usage metric is determined regarding the first user interface element based on the user group's selection of a first number of the plurality of user interface elements in the client application; and A second usage metric is determined based on the selection of a second number of second user interface elements among the plurality of user interface elements by the user group of the client application.
13. The system according to claim 12, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Enables additional user groups of the client application to access the augmented reality content items, wherein the additional user groups have one or more characteristics different from the user group; A first additional usage metric for the first user interface element is determined based on the selection of a first additional number of the first user interface element by the additional user group of the client application; and A second additional usage metric for the second user interface element is determined based on the selection of a second additional number of the second user interface element among the plurality of user interface elements by the additional user group of the client application.
14. The system according to claim 10, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: A first fitness estimate of the first usage metric is determined based on a first correlation between the first usage metric and the result; A second suitability estimate of the second usage metric is determined based on a second correlation between the second usage metric and the result; and Based on the fact that the first usage metric is greater than the second usage metric, it is determined that the correlation level between the first usage metric and the result is higher than the correlation level between the second usage metric and the result.
15. The system according to claim 14, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Regarding the first usage metric, recommendations are generated for the augmented reality content creators; and Receive input from the augmented reality content creator for monitoring the first usage metric.
16. The system according to claim 15, wherein: The first usage metric corresponds to at least one of the following: interaction with the augmented reality content item or an action related to the augmented reality content item performed by a user of the client application; The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: The first usage metric is monitored over a time period by identifying instances of at least one of the interactions or actions; and Generate additional user interface data corresponding to the additional user interface that indicates the first usage metric.
17. The system according to claim 10, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Generate additional user interface data corresponding to an additional user interface that includes multiple selectable options, each of which corresponds to an individual usage metric; Receive input from the augmented reality content creator instructing the selection of one or more of the plurality of selectable options; and Generate additional user interface data corresponding to the additional user interface, the additional user interface data indicating one or more individual usage metrics corresponding to the one or more selectable options.
18. One or more non-transitory computer-readable media, comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations, the operations including: Determine usage data for multiple augmented reality content items, the usage data indicating the amount of interaction a user of a client application has with each of the multiple augmented reality content items; Based on the usage data, multiple usage metrics are determined for the augmented reality content items, which are generated by the augmented reality content creators. Determine the correlation level between the usage metrics among the plurality of usage metrics and the results specified by the augmented reality content creator; Based on the level of relevance, determine an estimate of the suitability of the usage metric relative to the outcome; as well as Generate user interface data corresponding to the user interface that indicates the suitability estimate of the used metric.
19. The one or more non-transitory computer-readable media of claim 18, further comprising additional computer-readable instructions, which, when executed by a computing device, cause the computing device to perform additional operations, the additional operations including: Generate additional user interface data corresponding to one or more additional user interfaces, wherein the one or more additional user interfaces are displayed as part of a tool for constructing augmented reality content items, the one or more additional user interfaces including at least one user interface that enables selection of one or more features of the augmented reality content item, and using the tool to select the one or more features of the augmented reality content item causes an indication to be stored in a data structure storing data associated with the augmented reality content item, wherein the indication is used to indicate that selection of a user interface element associated with a feature among the one or more features corresponds to an interaction with the augmented reality content item.
20. The one or more non-transitory computer-readable media of claim 18, further comprising additional computer-readable instructions, which, when executed by a computing device, cause the computing device to perform additional operations, the additional operations including: Analyze the primary characteristics of the users of the client application and the secondary characteristics of the target audience of the augmented reality content items; The user of the client application is determined to be included in the target audience based on the determination that the similarity between the first feature and the second feature is at least a threshold similarity. as well as The client application sends a recommendation of the augmented reality content item to the user's client device.
Citation Information
Patent Citations
Intelligent interactive and augmented reality based user interface platform
CN109564706A
Method and apparatus for browsing media content based on user affinity
US20070074252A1