Method and system for presentation of media collection with automatic advertisement
Patent Information
- Application Number
- CN202611124929.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2016-06-28
- Filing Date
- 2017-06-28
- Publication Date
- 2026-10-09
Smart Images

Figure CN122887554A_ABST
Abstract
Description
[0001] This application is a divisional application of Chinese Patent Application No. 201780040232.1, which was filed on June 28, 2017, with a priority date of June 28, 2016, and is entitled "Method and System for Presenting a Media Set with Automatic Advertising".
[0002] Priority requirements
[0003] This application claims priority to U.S. Patent Application Serial No. 15 / 195,619, filed June 28, 2016, the entire contents of which are incorporated herein by reference. Background Technology
[0004] In the modern internet age, many news sources have become fragmented, but core aspects of news gathering and presentation often remain linked to professional journalists who collect and share information in a personally identifiable manner. While these practices have been able to support some news structures through valuable analysis, the story generation process—selecting professionals to sift through information and generate narratives—is time-consuming and introduces a significant delay between the occurrence of an event and its presentation to news consumers. Furthermore, the presentation of advertisements alongside news has consistently been a source of support for news creators. Attached Figure Description
[0005] The various figures in the accompanying drawings illustrate only exemplary embodiments of this disclosure and should not be construed as limiting its scope.
[0006] Figure 1 This is a block diagram illustrating a networking system according to some example embodiments.
[0007] Figure 2A This is an example user interface for viewing a table of media sets, based on some example embodiments.
[0008] Figure 2B This is an example user interface for viewing a calendar graph of a media set, based on some example embodiments.
[0009] Figure 2C-2D This is an example user interface for creating a media set, based on some example embodiments.
[0010] Figure 2E This is an example user interface for viewing a table of media sets, based on some example embodiments.
[0011] Figure 2F-2H This is an example user interface for viewing an operator's handling of a media set, based on some example embodiments.
[0012] Figure 3 This is a flowchart illustrating aspects of a method according to some example embodiments.
[0013] Figures 4A-4E This is a sample user interface for reviewing and curating the content of a media collection.
[0014] Figure 5 This is a flowchart illustrating aspects of a method according to some example embodiments.
[0015] Figure 6 This is an example user interface for filtering content, based on some example embodiments.
[0016] Figure 7A This is a sample interface for account settings based on some example embodiments.
[0017] Figure 7B This is a sample interface for managing accounts, based on some example embodiments.
[0018] Figures 7C-7H This is a sample interface for creating a new media set, based on some example embodiments.
[0019] Figure 8 This is a flowchart illustrating aspects of a method according to some example embodiments.
[0020] Figure 9A This illustrates the presentation order of content elements in a media set according to some example embodiments.
[0021] Figure 9B This illustrates the presentation order of content elements in a media set according to some example embodiments.
[0022] Figure 10A The presentation order of content elements according to some example embodiments is shown, wherein advertising elements are automatically inserted into the presentation order of the adjustment.
[0023] Figure 10B The presentation order of content elements according to some example embodiments is shown, wherein advertising elements are automatically inserted into the presentation order of the adjustment.
[0024] Figure 11 The presentation order of content elements and automatically inserted advertising elements is shown according to some example embodiments.
[0025] Figure 12 Methods for delivering content elements and automated advertising, according to some embodiments, are shown.
[0026] Figure 13 This illustrates the presentation order of media sets according to some example embodiments.
[0027] Figure 14 This illustrates the presentation order of media sets according to some example embodiments.
[0028] Figure 15 Methods for delivering content elements and automated advertising, according to some embodiments, are shown.
[0029] Figure 16 Methods for delivering content elements and automated advertising, according to some embodiments, are shown.
[0030] Figure 17 This is a block diagram illustrating an example of a software architecture that can be installed on a machine according to some example embodiments.
[0031] Figure 18 A graphical representation of a machine in the form of a computer system according to an example embodiment is shown, within which a set of instructions can be executed to cause the machine to perform any or more methods discussed herein. Detailed Implementation
[0032] The systems and methods described herein relate to automated advertising systems that involve computer-aided story generation, curation, and presentation from received content. In some embodiments, advertisements are automatically inserted into content or media sets. Curators or operators may aggregate content (such as photos, videos, audio, text, metadata) and other media content from content messages to group one or more media sets or stories together. These media sets may be based on a geographic location, event, theme, shared user interests, product, etc. Content curators may modify the automated advertising integration with content sets based on the identification of coherent content groups to prevent content grouping from being interrupted by advertisements that may be irrelevant to the content. Content messages may be sent by users (e.g., users in a specific geographic location, users attending a specific event, users sharing specific interests, etc.) using client devices. The server system may receive tens of thousands (if not more) content messages for each media set, which need to be reviewed by the system or curator to select content to be included in one or more media sets. These media sets may be referred to as “stories.” Furthermore, many media sets may be time-sensitive or “live” stories (e.g., available only within a certain time window, such as a 24-hour period, during a specific event, etc.). Therefore, methods and systems are described to provide systems and curators that enable them to quickly curate such large volumes of content messages into media sets for immediate, continuous, or periodic release, as well as tools for integrating advertising with such media sets.
[0033] In one example embodiment, a system and method are provided for receiving content messages at a server computer from various content sources (e.g., smartphone users), each content message including media content or content elements (e.g., images, video clips, etc.). For each received content message, the media content is associated with a predetermined media set, and the content message is stored in a database. In some embodiments, multiple content messages are displayed on an operator device having other content messages associated with that media set. In some embodiments, a predetermined trigger associated with the media set may be activated, and in response, the identifier of the media set is updated from a first indicator to a second indicator. This update notifies the user of a change (e.g., by displaying an alert or update) and indicates that action needs to be taken on the media set. The content in the database may be automatically or by the operator of the curation tool ordered into a presentation order. Advertisement elements are automatically inserted into the presentation order, and when a client device requests a media set, content elements and advertisement elements are sent to the client device for display in the presentation order. In various embodiments, the curation selection of content elements may be automatically integrated with advertisement elements in various ways described in detail below.
[0034] In one embodiment, the media set may target a recent basketball game and may include content elements from content messages related to the ongoing basketball game (e.g., a 10-second video clip or a 10-second image presentation). The media set may have advertisements automatically inserted between content elements at predetermined periodic intervals. For example, advertisement elements (e.g., videos, images, audio, web links, etc.) may be inserted every five minutes, between every 15 pieces of content, or in some other automatic format between content elements. When a specific event of interest occurs during a basketball game, the server may receive content messages that include new information not currently in the media set. This may include content for a game of particular interest or a game ending with a final score. These content messages are stored in a database, and triggers (e.g., a surge in content messages or the time since the last review of relevant content messages) may create an alert based on the received content messages indicating that the media set should be reviewed for updates. This alert may be placed on the monitor of the curator associated with the media set. When the curator adjusts the content set, the curator may identify groups of content elements within the set that prevent the automatic presentation of advertisement elements before, after, or between certain content elements.
[0035] For example, while a basketball game is in progress, a media set can include clips of highlights from the game and can allow advertising elements between any content elements showcasing those highlights. When the game ends, different content elements showing the final moments, final score, and post-game commentary can be received as individual content elements that can be grouped into a media set. Content curators can identify these content elements as relevant in a way that should not be interrupted by advertising, and can use curation tools to add structure to the media set to create continuous groups of content elements, preventing automatic ad insertion between them.
[0036] Similarly, in another embodiment, a content set comprising multiple clips from multiple different basketball games can be curated to combine and identify content elements from each game to prevent advertising between content elements from a single game, but allow advertising elements between clips from different games.
[0037] In another embodiment, the media set is associated with the most recent content from a specific geographic region. Content elements are automatically placed into the content set as they are received from the user. The optimal individual content elements are ordered for presentation on the user's device requesting the media set. This ordering can be based on operator curation, or a combination of automatic selection and operator curation. As new content elements are received and older content elements are removed, the content displayed to the user and the order of content change over time. In some media sets, content elements (such as images or video clips) are irrelevant, not recent, and not collected within a geographic region. For such media sets, ads are inserted at a set point within the set when they are displayed on the user's device (e.g., after a certain number of content clips or a certain viewing time). However, some content elements may show different perspectives of the same event, exact locations, or may otherwise be relevant. The content curator can identify these content elements as relevant and delay or prevent the presentation of ad elements between these content elements. After these elements of the content set are displayed to the user viewing the content set, ad placement restarts as the user continues to view the content set.
[0038] In some embodiments, ad elements can be automatically integrated with content elements based on the actual display time of the content and the ad. The presentation order of content elements and ad elements can be adjusted based on a target ratio of ad to content compared to the actual display time of the ad on the content. In embodiments that allow skipping ads, shorter intervals between ad elements and longer sequences of ad elements can be used to increase the ratio of ads to content actually displayed on the client device. Similarly, when a user interacts with one or more ad elements over an extended period, the time until the next ad element is displayed can be extended, or fewer ad elements can be used in the next consecutive block of one or more ad elements.
[0039] Figure 1 This is a block diagram illustrating a networking system 100 according to some example embodiments. System 100 includes one or more client devices 110. System 100 further includes one or more operator devices 130, a server system 120, and a network 104 for transmitting communication between client devices 110, operator devices 130, and server system 120. For example, networking system 100 may be a messaging system in which clients can communicate and exchange data within networking system 100. In some embodiments, for example, client device 110 uses application 112 or 114 to capture transient content. Transient content cannot be directly stored on client device 110 for more than a threshold time period and is transmitted to server system 120 or removed from client device as part of a content message within the threshold time period. Each transient content element (e.g., a single video clip or image) may also be associated with a display time or deletion trigger, such that each content fragment is associated with a limited display time. In some embodiments, video clips have a maximum runtime, and images have a maximum display time. The display time or deletion trigger can be stored as metadata, where content elements are transmitted from client device 110 to server system 120 as content messages. In some embodiments, the content message is received at server system 120, and the content elements and any associated metadata are stored in database 126. Content elements having metadata that associates them with a specific media set (e.g., within a geographic region, associated with content tags describing similar content, collection time, etc.) are sorted in presentation order. Another client device 110 can request to view the media set, and the server system 120 sends the sorted content elements, along with any advertising elements inserted by server system 120, content processing server 124, or operator device 130, to the requesting client device 110.
[0040] Client device 110 may include, but is not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, ultrabooks, webcams, netbooks, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, in-vehicle computers, or any other communication device that a user can use to access networked system 100.
[0041] Client device 110 may include a camera device for capturing content, or a separate camera device that may be coupled to capture content (e.g., video, photos, audio, etc.) before being sent to server system 120 or other client devices 110. Some embodiments may include wearable devices, such as pendants with an integrated camera coupled to client device 110. Other embodiments may include other associated devices with a wearable integrated camera, such as watches, glasses, clothing (such as hats or jackets with integrated electronics), clip-on electronics, or any other such devices that may communicate with or be integrated with client device 110.
[0042] Client device 110 can access various data and applications provided by other entities in system 100 via web client 112 (e.g., a browser, such as Internet Explorer® developed by Microsoft® Inc. of Redmond, Washington State) or one or more client applications 114. Client device 110 may include one or more applications 114 (also referred to as "application software"), such as, but not limited to, web browsers, messaging applications, email applications, e-commerce site applications, mapping or location applications, news or media applications, etc. In some embodiments, one or more applications 114 may be included in a given client device within client device 110 and configured to provide a user interface and at least some functionality locally, wherein application 114 is configured to communicate as needed with other entities in system 100 (e.g., operator device 130, server system 120, etc.) for data and / or processing capabilities not available locally (e.g., accessing various information to authenticate user 106, verify payment methods, obtain / synchronize footprints, etc.). Conversely, one or more applications 114 may not be included in client device 110, and client device 110 may use its web browser to access one or more applications managed on other entities in system 100 (e.g., operator device 130, server system 120, etc.).
[0043] One or more users 106 may be people, machines, or other components that interact with client device 110. In an example embodiment, user 106 may not be part of system 100, but may interact with system 100 via client device 110 or other components. For example, user 106 may provide input to client device 110 (e.g., touchscreen input or alphanumeric input), and the input may be transmitted via network 104 to other entities in system 100 (e.g., operator device 130, server system 120, other client devices 110, etc.). In this case, other entities in system 100 may, in response to receiving input from user 106, transmit information via network 104 to client device 110 for presentation to user 106. In this way, user 106 can use client device 110 to interact with various entities in system 100.
[0044] The operator device 130 may include, but is not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, tablet ultrabooks, webcams, netbooks, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, in-vehicle computers, or any other communication device that the user or operator 108 may use to access the networked system 100.
[0045] Operator device 130 can access various data and applications provided by other entities in system 100 via web client 132 (e.g., a browser, such as Internet Explorer® developed by Microsoft® Inc. of Redmond, Washington State) or one or more operator applications 134. Operator device 130 may include one or more operator applications 134 (also referred to as "application software"), such as, but not limited to, web browsers, messaging applications, media curation tools, email applications, e-commerce site applications, mapping or location applications, news or media applications, etc. In some embodiments, one or more applications 134 may be included in a given operator device within operator device 130 and configured to provide a user interface and at least some functionality locally, wherein application 114 is configured to communicate as needed with other entities in system 100 (e.g., client device 110, server system 120, etc.) for data and / or processing capabilities not available locally (e.g., accessing various information to authenticate user 106 or operator 108, verify payment methods, obtain / synchronize footprints, etc.). Conversely, one or more applications 134 may not be included in operator device 130, and thus operator device 130 may use its web browser to access one or more applications managed on other entities in system 100 (e.g., server system 120, etc.).
[0046] One or more operators 108 may be people, machines, or other components that interact with operator device 130 (e.g., a user such as a curator or operator). In an example embodiment, operator 108 may not be part of system 100, but may interact with system 100 via operator device 130 or other components. For example, operator 108 may provide input to operator device 130 (e.g., touchscreen input or alphanumeric input), and the input may be transmitted via network 104 to other entities in system 100 (e.g., client device 110, server system 120, etc.). In this case, other entities in system 100 may transmit information via network 104 to operator device 130 for presentation to operator 108 in response to receiving input from operator 108. In this way, operator 108 can interact with various entities in system 100 using operator device 130.
[0047] Client device 110 and operator device 130 are connected to server system 120 via network 104. Network 104 may include any combination of wired and wireless connections. This may include a cellular access network, an access point interface to the Internet, or any other such network 104 or network element. For example, client device 110 may use a Long Term Evolution (LTE) cellular network to interface with network 104 to communicate with server system 120. Alternatively, client device 110 may use a Wi-Fi access point to interface with network 104 and communicate with server system 120.
[0048] Server system 120 may be one or more computing devices as part of a service or network computing system. In some embodiments, particularly those in which a large number of client devices 110 interface with server system 120 located in various locations around the world, server system 120 may be a distributed network of server computers, similarly widely distributed and communicating with each other via network 104. Server system 120 may include web server 122 and content processing server 124, which may be communicatively coupled to one or more databases 126. Database 126 may be a storage device for storing information, such as data related to content messages, media sets, etc.
[0049] Content processing server 124 can provide the ability to perform various computer-aided media set generation, curation, ad insertion, and presentation functions from received content (as an example). Content processing server 124 can access one or more databases 126 to retrieve stored data for use in computer-aided media set generation, curation, ad insertion, and presentation from the received content.
[0050] In some embodiments, any elements of the client device 110, the operator device 130, and the server system 120, and the network 104, may be implemented using the software architecture 902 or elements of the machine 1000 described in Figures 9 and 10.
[0051] Network system 100 can be used for communication of content messages from client device 110 to server system 120, and communication of media sets from server system 120 to client device 110. Client device 110 can transmit content messages to server system 120, and client device 110 can receive media sets from server system 120. In addition to the functionality of the embodiments described herein, client device 110 can additionally receive private content and communications from other users 106, and can transmit personal stories or media sets to server system 120, wherein personal stories or media sets include images and / or videos from content messages generated by client device 110, another device coupled to client device 110, or other users 106. Similarly, client device 110 sends content messages and receives stories or media sets, and can additionally perform other actions.
[0052] In one example embodiment, operator application 134 may include a media curation tool. The media curation tool may allow operator 108 to create new media sets, view tables of media sets, view multiple content items or content messages associated with a predetermined media set, curate content into media sets for immediate, continuous, or periodic publishing, etc. Multiple media contents may be received by server system 120 in multiple content messages from multiple users 106 (e.g., via client device 110).
[0053] Using the curatorial tool, operator 108 can view a table of all active, planned, or archived media sets. For example, using the curatorial tool, operator 108 can provide instructions for viewing the table of media sets (e.g., pressing a button, selecting an option, clicking an icon, etc.). Figure 2A Example user interface 200 is shown. Example user interface 200 can display a table of media sets (e.g., story table 202). User interface 200 allows operator 108 to search for specific media sets by providing an area 204 for inputting search criteria. For example, operator 108 can enter a media set identifier, media set name, keywords, etc. User interface 200 also provides a mechanism 206 for filtering the results / list of media sets by various criteria. For example, operator 108 can filter media sets by location, campus, event, time zone, live activity, etc.
[0054] The media set table may include a table of all active media sets 212 and a table of upcoming media sets 214. Each table may include instructions on which operator or curator 216 is assigned to each media set. One or more operators 108 may be assigned to each media set. The user interface 200 also allows operators 108 to add or remove operators 108 for each media set. Each media set may have a title 201, multiple content items or content messages 203 in the queue of that media set, multiple content items 205 that have been cleared (viewed, reviewed, etc.), and the last update 207 of the media set. Upcoming media sets 214 may also include information about when they were scheduled to be "on-site".
[0055] Media sets can also indicate their status using indicators such as color or other methods. For example, media sets that do not require immediate attention may have a first indicator (e.g., green), media sets that require attention may have a second indicator (e.g., red), and incomplete media sets (e.g., lacking geofencing, requiring approval, lacking thumbnails, etc.) may have a third indicator (e.g., yellow). As described below, server system 120 can set or update status indicators based on predetermined triggers. Operator 108 can select any media set to navigate to a detailed view of that specific media set.
[0056] The user interface 200 can also provide the operator 108 with a mechanism 210 for viewing metrics associated with one or more media sets, one or more operators 108, etc. Furthermore, the user interface 200 can also provide a mechanism 211 for accessing a calendar graph of the media sets. The calendar graph of the media sets is as follows: Figure 2B As shown in the calendar diagram 220, the operator 108 can see the real-time media set arranged in the moon view.
[0057] Operator 108 can also view tables of media sets assigned only to operator 108, such as Figure 2E As shown in the example interface 250. Interface 250 may display the name 251 of operator 108, a logout button 152, an image 253 of operator 108, a table of media sets 254 currently being processed by operator 108, a table 255 of other operators 108 currently online (e.g., processing media sets), which operators 108 are processing various media sets 256, and other media sets 257.
[0058] Each media set table item (e.g., media set table item 258) may include information about the media set. For example, a media set table item may include the name of the media set (e.g., Stanford, Purdue, etc.), multiple content items or content messages in the queue of that media set (e.g., 1253, 253, 104, etc.), the time since the last update was pushed in real-time or the content item or content message was added to the queue (e.g., 00:05:53), the number of content items or content messages that have been cleared or reviewed / curated (e.g., the amount for operator 108 (e.g., 255, 245, 2135, etc.), and the total amount (e.g., 12.5k, 172.5k, etc.)), and the timestamp of the last update and the timestamp of who updated it (e.g., 01 / 12 / 16 (D. Boone)). As shown in example interface 250, operator 108 may also be able to add operator 108 to the media set, for example, using dropdown 259.
[0059] like Figure 2F As shown in interface 265, operator 108 can further configure a mechanism for viewing all operators 108 currently processing media sets. Interface 265 can provide photos of operators 108, their locations (e.g., West Coast, East Coast, etc.), the number of media sets operator 108 is processing, the number of content items or content messages cleared or reviewed / curated that day, and the number of media sets processed that day. Figure 2G As shown in interface 275, operator 108 can view further details for each operator 108. For example, interface 275 may include various metrics for operator 108, such as the average time spent clearing 100 content items or content messages, the average number of tagged (e.g., selected) content items or content messages per 100 content items or content messages, the ratio of tagged content items or content messages to approved content items or content messages, the average time a tagged content item or content message has been in the queue before tagged, the average time an approved content item or content message has been in the queue before activation, the average time from tagging to approval of a content item or content message, the average time between tagging two individual content items or content messages, the average length of each updated number of content items or content messages per update, the number of seconds for each updated media set, etc. Figure 2H As shown in interface 285, operator 108 can also view media set-specific metrics (using metrics similar to those described above).
[0060] Operator 108 may further provide a mechanism for creating new media sets (e.g., via an optional "Create Story" icon 208, such as...). Figure 2A and Figure 2B As shown in the diagram). A user interface 230 (such as...) can be provided to operator 108. Figure 2C The user interface 230 (shown in the diagram) allows operator 108 to input various information related to the new story or media set. For example, operator 108 may input a media set identifier (ID) 231, username 233, location or place 235 (e.g., city, state / country, various locations, etc.), friend link display text 237 (e.g., "Fashion Week in New York"), media set display text 239 (e.g., "Our Fashion Week Story"), start and end times 232 (e.g., when the set fence will open and close). Operator 108 may also be able to input the type of media set (not shown). Some examples of media set types could be worldwide (e.g., displayed to each user 106), public local (e.g., displayed to local user 106 and other outputs), private local (e.g., displayed only to local user 106), or employee whitelist (e.g., displayed only to employees such as operator 108 or the curator for a specific media set).
[0061] Operator 108 may also be able to upload thumbnails 234, which can be associated with the media set and displayed in various media output displays (e.g., applications, websites, etc.). Operator 108 may be able to select from a predefined selection of thumbnails or create new thumbnails. Operator 108 may also select or add filters 236 and / or intro animations associated with the media set. Operator 108 may also include whitelisted users 238 and search keywords 241 associated with the media set. Additional information 242 that can be selected by operator 108 may exist. For example, if operator 108 has selected public local or private local for the media set type, a checkbox may appear that indicates the set fence is different from the broadcast fence. If operator 108 selects this option (e.g., checks the box), operator 108 may be prompted to draw more than one geofence. Other additional information 242 may include options to display the media set on a website, in a search or media forum (e.g., Google Now, Google Search, etc.), and in a browser. If operator 108 selects to display the media set in one of these options, operator 108 may be prompted to enter additional information, such as a description of the media set (e.g., a text box for entering a description of the media set), the color of the media set, etc.
[0062] Operator 108 can also draw geofences (e.g., virtual fences over geographic regions) on a map to associate specific locations with media sets. For example, as Figure 2DAs shown, operator 108 can select geofence drawing button 244 and then create polygon 245 to indicate the location associated with the media set. After drawing polygon 245, operator 108 can be able to name and prioritize the geofence and then complete it. Instructions for geofence 246 can be shown to operator 108. Additional geofences can be created by operator 108 if needed. A media set can have more than one geofence associated with it. A geofence can be deleted by selecting it and indicating that it should be deleted (e.g., by pressing a specific button). Operator 108 can also move a geofence on the map to another location or copy and paste a geofence to another location. For example, a geofence can be used to determine whether user 106 is eligible to submit content items or content messages for a specific media set. For example, if it is determined that user 106 is within the geofence of a media set, user 106 is eligible to submit content items or content messages for that media set.
[0063] After operator 108 completes the input information to create a new media set, operator 108 can submit the information. For example, operator 108 can select submission option 243, and operator device 130 can send a request to server system 120 to create a new media set with that information. Server system 120 can receive and evaluate the request and information, create a new media set, and store the associated information in one or more databases 126. Server system 120 can generate a message indicating that a new media set has been created and send it to one or more operator devices 130.
[0064] Figure 3 This is a flowchart illustrating aspects of method 300 according to some example embodiments. For illustrative purposes, it is intended for... Figure 1 The method 300 is described in the context of the networked system 100. It should be understood that in other embodiments, method 300 may be implemented in conjunction with other system configurations.
[0065] At operation 302, server system 120 (e.g., at content processing server 124) can receive multiple content messages from multiple content sources. Content messages may include media content (e.g., photos, videos, audio, text, etc.) and may be associated with one or more media sets.
[0066] For example, multiple users 106 can send multiple content messages related to specific events (e.g., concerts, sporting events, street markets, World Expos, etc.), geographic locations (e.g., concert venues, sports stadiums, cities, communities, states, etc.), themes or topics (e.g., popular songs, products, weather, etc.), and shared user interests (e.g., shared interests in sports, music, clothing, celebrities, products, events, etc.). Content messages can be created and sent by multiple client devices 110. For example, user 106 can take a photo, record a video, combine images, videos, etc., with text or media overlays (e.g., filters), and send the content message to another user 106 or server system 120 to associate it with one or more predefined media sets (or create a new media set). Content messages may include additional information such as a timestamp indicating when the content was created or sent, usernames, etc. The timestamp can be used to sort content chronologically or determine any expiration date / time of the content message. The username can be used to identify user 106, to identify users 106 who contribute good content so that they can be marked as good contributors, and to identify users 106 who may be spammers so that they can be muted, etc.
[0067] For each of a plurality of content messages received by server system 120 (e.g., content processing server 124), content processing server 124 may associate the content in the content message with one or more predetermined media sets, as shown in operation 304. For example, an indication of one or more media sets may be included in the content message, and content processing server 124 may use this indication to associate content with one or more media sets. In another example, content processing server 124 may determine the associated media set based on the content in the content message (e.g., via text recognition, object recognition, audio footprint, etc.). Content processing server 124 may store content messages associated with one or more media sets, as shown in operation 306. In some embodiments, advertising elements may be associated with a particular media set based on the content type of the media set, the location of the media set, or some other characteristic associated with the media set or metadata of content elements or content messages from the media set.
[0068] In operation 308, server system 120 can display content or content messages on operator device 130. For example, operator 108 can use a web browser or an interface in application 134, such as user interface 400 shown in Figure 4, to review and curate the content of one or more media sets. In example interface 400, as shown in toolbar 402, operator 108 is viewing / curating ten different media sets. The media sets in example interface 400 are associated with university campuses (e.g., Stanford, Purdue, Duke, Yale, Michigan, Vanderbilt, Berkeley, Oregon, Tufts). At any time, operator 108 can view or curate one or more media sets. Media sets can be ongoing stories (e.g., ongoing stories associated with university campuses, celebrities, music bands, products, events, etc.) or real-time stories associated with real-time events (e.g., ongoing concerts, ongoing games, Black Friday, social events, etc.).
[0069] Each media set may have an identifier associated with it. The identifier (e.g., identifier 404) may include the name of the media set, multiple content items or content messages in the queue (e.g., pending review / curation), the local time of a specific story, a time indicating the time since operator 108 last updated the media set or the time of the most recently approved content item or content message, and a status indicator. Media sets may be removed or added to interface 400 by operator 108 or server system 120.
[0070] The status indicators in the media set identifier can include colors, flashing labels, etc. For example, the media set identifier (e.g., label 404) can be displayed in green when the media set does not require immediate attention (e.g., first indicator), in red when the media set requires immediate attention (e.g., second indicator), or in yellow when the media set is incomplete (e.g., third indicator).
[0071] Server system 120 can set or update the media set identifier based on triggers. For example, returning... Figure 3Server system 120 (e.g., content processing server 124) can determine that a predetermined trigger has been activated, as shown in operation 310. A predetermined trigger can be a predetermined amount of time elapsed since a content item or content message associated with the media set has been viewed on operator device 130 (e.g., 30 seconds, 1 minute, 15 minutes, 1 hour, 1 day, etc.), a predetermined number of content items or content messages not viewed on operator device 130, a predetermined amount of time elapsed since any content associated with the media set was pushed to user 106 in real time for viewing, etc. If content processing server 124 determines that a predetermined trigger has been activated, then, as shown in operation 312, it will update the identifier of the media set from a first indicator to a second indicator.
[0072] For example, content processing server 124 can determine that a predetermined amount of time (e.g., 5 minutes, 15 minutes, 1 hour, 1 day, etc.) has elapsed since a content item or message associated with the media set was viewed on operator device 130. Content processing server 124 can change an indicator from green (e.g., a first indicator) to red (e.g., a second indicator) to alert operator 108 that the media set requires immediate attention. This can be particularly important when operator 108 curates multiple media sets and uses them for real-time media sets where timeliness is crucial (e.g., an ongoing event). For example, a concert might only last two hours, and therefore operator 108 might not want to miss a few minutes before updating the content in the media set related to the concert.
[0073] Operator 108 can select an identifier to view content to be reviewed and curated for a specific media set. For example, the currently selected media set in example interface 400 is “Purdue” 404. Once a media set is selected, information specific to the selected media set can be displayed. For example, for the selected “Purdue” media set, the displayed information may include the name of the media set 408, the current length of the media set 410 (e.g., the number of content messages or content items in the live or published version of the media set), its location within the media set (e.g., a specific geofence within the media set, or all locations within the media set), etc. Other mechanisms may be present for performing additional functions, such as a button 401 to open or close the media set (e.g., opening the media set can push the selected media set or story in live mode). Other functions may include a button 403 for opening or closing geofences, a button 405 for previewing the media set in a video player, a button 407 for sending the current media set to user 106 or a user table, and advanced settings 409 with additional options.
[0074] Example advanced settings may include filters that allow you to filter out certain types of content items or messages by selecting various filters. For example, types that can be filtered out may include videos, photos, approved content items or messages, tagged content items or messages, whitelisted content items or messages, and unselected content items or messages (e.g., unapproved, tagged, or whitelisted). Filtering may only affect the current queue.
[0075] If there is more than one position in the media set, the operator 108 can also filter the media set by position, and set the default content item or content message length, how many content items or content messages will be displayed on the page, how often to update the number of content items or content messages in the queue, how many content items or content messages the operator 108 can return when the undo button is selected, all submissions, only the current media set, currently marked, not selected, not selected and whitelisted, etc.
[0076] Interface 400 may further include a mechanism for loading the next content item or content message into the queue. For example, there may be a button 411 that can be selected by operator 108 to obtain the next 100 content items or content messages. Figure 4B A folded diagram 412 shows the information provided for the selected media set.
[0077] Operator 108 can view the timeline, such as Figure 4E Example timeline 416 is shown. Timeline 416 can show the progress of operator 108 relative to the rest of the media set. For example, content items or content messages that have been viewed by operator 108 can be shown in a first color (e.g., blue) 417 or other indications, and content items or content messages that have not yet been viewed can be represented by a second color (e.g., gray) 418 or other indications. Published content items or content messages (or chapters) can also be represented (e.g., by bars 419A or 419B).
[0078] Operator 108 may also have the option to add advertisements to the media set. For example, such as Figure 4D As shown, operator 108 can select to add advertisements via button 415. A list of advertisements can be displayed to operator 108 (e.g., in a separate window), and operator 108 can select and drag and drop one or more advertisements to be included in the media set. Advertisements may also automatically appear after the publication of a chapter when appropriate (e.g., based on the amount of time elapsed in the media set or since the last advertisement was displayed in the media set).
[0079] When viewing content items or content messages in a media set, operator 108 can select individual content items or content messages to indicate that each content item or content message has been approved for real-time push (e.g., "Published" for user 106 to view as part of the media set), such as... Figure 4C As shown in the diagram. Visual indicators (e.g., highlighting, flashing on and off, graying out, etc.) can be displayed when individual content items or content messages are selected or approved. Once operator 108 selects a content item or content message to approve, operator 108 can indicate that the selected content item or content message should be applied, for example, by selecting the "Apply" button 414. A number may appear next to the Apply button 414, indicating how many approved content items or content messages will be applied. Selecting the Apply button 414 will cause the current section (e.g., the approved content item or content message) to be pushed in real time. For example, the selection of content items or content messages is sent to server system 120, and it can be received by server system 120 (e.g., content processing server 124) and included in the selection of content in the media set and made available to user 106 for viewing as part of the media set. Once the approved content item or content message is applied, the visual indicators can change to indicate that the approved content item or content message has taken effect (e.g., the color may change, etc.).
[0080] Operator 108 can view and edit individual content items or content messages. For example, tools can be provided to stabilize shaky videos, remove media overlays or filter content items or content messages (e.g., media overlays with inappropriate content, overlays key features or objects in content items or messages, etc.), block specific users 106, report content items or content messages, browse photo or video lengths, etc.
[0081] In some embodiments, operator 108 selects previously generated ad content to push along with a media set. In some embodiments, operator 108 selects a specific order or position within the display of content elements. In some embodiments, operator 108 identifies the position between other content messages as the ad position in the presentation order, wherein specific ad content is automatically selected for a specific requesting user who is viewing the media set. In various embodiments, the interface for selecting ads and pushing ads as part of the media set is similar to the interface for selecting content as part of the media set.
[0082] In other embodiments, including advertisements within the presentation of a media set is an automatic insertion between other selected content items. In some such embodiments, operation 108 selects or otherwise identifies combinations of content items or content elements to be presented sequentially without interruption by advertisement content. When automatically including advertisement elements is used to determine the presentation order for pushing content to a client device, the groups of consecutive presentations identified by operator 108 are used to adjust the automatic advertisement placement within a media set, such as on client device 110. In some embodiments, as new content messages are received and new content is added to some media sets, older content elements and groups of consecutive presentations are presented later in the presentation of the media set, with newer content elements presented at the beginning. In such embodiments, the automatic insertion of advertisement content is used to maintain the current advertisement according to system rules, while maintaining the grouped presentation of the consecutive presentation groups even if the position of the consecutive presentation groups in the media set changes.
[0083] As described above, server system 120 can receive tens of thousands (or more) content messages from multiple client devices 110 containing media content from multiple users 106. If not impossible, it could be very difficult for operator 108 to review and curate so many messages from one or more media sets. Furthermore, many media sets may involve live events, which may require the review, curation, and delivery of live content items or content messages from the media set in a very timely manner. Therefore, the curation tools described above provide numerous mechanisms and filters to allow operator 108 to quickly and easily view and curate content items or content messages related to one or more media sets.
[0084] The curatorial tool can further provide a mechanism for operator 108 to filter out a certain percentage of content items or content messages, thereby automating some of the commenting and curatorial processes, enabling operator 108 to review and curate content items or content messages in a timely and effective manner. Figure 5 This is a flowchart illustrating aspects of method 500 according to some example embodiments. For illustrative purposes, it is intended for... Figure 1 The network system 100 describes method 500. It is understood that in other embodiments, method 500 may be practiced with other system configurations.
[0085] At operation 502, server system 120 (e.g., at content processing server 124) can receive multiple content messages from multiple content sources. Content messages may include media content (e.g., photos, videos, audio, text, etc.) and may be associated with one or more media sets.
[0086] For example, multiple users 106 can send multiple content messages related to specific events (e.g., concerts, sporting events, street markets, World Expos, etc.), geographic locations (e.g., concert venues, sports stadiums, cities, communities, states, etc.), themes or topics (e.g., popular songs, products, weather, etc.), and shared user interests (e.g., shared interests in sports, music, clothing, celebrities, products, events, etc.). Content messages can be created and sent by multiple client devices 110. For example, user 106 can take a photo, record a video, combine images, videos, etc., with text or media overlays (e.g., filters), and send the content message to another user 106 or server system 120 to associate it with one or more predefined media sets (or create a new media set). Content messages may include additional information such as a timestamp indicating when the content was created or sent, usernames, etc. The timestamp can be used to sort content chronologically or determine any expiration date / time of the content message. The username can be used to identify user 106, to identify users 106 who contribute good content so that they can be marked as good contributors, and to identify users 106 who may be spammers so that they can be muted, etc.
[0087] For each of a plurality of content messages received by server system 120 (e.g., content processing server 124), content processing server 124 may analyze each of the plurality of content messages to determine a quality score for each of the plurality of content messages, as shown in operation 504. The quality score may be determined based on several different factors. For example, content processing server 124 may analyze the media content in the content messages to determine the quality of audio, photographs, videos, text, or other content. A lower score is given to a content message if the media content is of low quality (e.g., low resolution, jittery video, blurry text, unclear audio, etc.) compared to media content of higher quality.
[0088] Some example factors that can be used to determine a quality score include the likelihood of explicit content (e.g., the probability that an image or video contains explicit content such as nudity, drug use, profanity, etc.), underexposure (e.g., images or videos that are very dark or completely black), overexposure (e.g., images or videos that are too bright), noise level (e.g., images or videos that appear grainy due to being shot with a low-end camera in low light conditions), shaky camera (e.g., the camera is too shaky when shooting video), blurry media content (e.g., images and videos that appear too blurry), low-quality compression (e.g., removing content messages with over-compression artifacts), audio quality, area within an event (e.g., if too many content messages show a specific area in a sports arena or a specific game in a match, they may score low), content messages that are entirely black and white, etc.
[0089] Combinations of different factors can result in a single quality score. For example, a quality score can range from 0 to 1, where 0 is the lowest quality and 1 is the highest quality. Lower-quality content messages can be scored with 0 or 0.1. Higher-quality content messages can be scored with 0.9 or 1. Factors can be combined into a single quality score using heuristics and / or machine language based on operator 108 behavior. Content processing server 124 can optionally sort all content messages in the media set by quality score.
[0090] In some embodiments, the quality score is based on sampling of frames in a video clip or a detailed exposure analysis of the image. For example, a histogram of brightness can be calculated, and quality can be assigned to an image or video based on the correlation between the histogram and the quality score. This correlation can be based on a table or function that associates certain histogram patterns with the selected quality score, or it can be generated in any other such manner. For a video in which multiple sample frames are analyzed, the score can be selected using the average score of each frame, the worst score of a single frame from all the analyzed frames, or a selection of scores or any such combination or function of multiple scores.
[0091] In some embodiments, motion blur estimation of an image or selected video clip is used as part of the quality score. For example, such motion blur estimation may be based on the calculation of energy gradients on detected edges, or other such motion estimations. For a video clip, identifying video frames with motion blur exceeding a threshold amount can trigger analysis of additional sample frames to determine how much of the video is affected by motion blur, or to identify when camera sensor jitter affects the entire video. In some embodiments, the system may use a threshold for video motion or “jitter” to filter out video with camera motion or jitter exceeding the threshold. In other embodiments, the jitter or motion score may simply modify the overall quality score. In other embodiments, both a hard threshold and an input to the overall quality score may be used.
[0092] In some embodiments, images or sample video frames can be analyzed for compression artifacts or other image processing artifacts that indicate lower image quality or errors introduced into the image due to various compression or communication problems. These artifacts may include image ringing, image outlines, step noise along curved edges, color separation artifacts, or block boundary artifacts. Video can be analyzed for additional video-based compression artifacts, such as block boundary artifacts associated with motion compensation or mosquito noise, which can be identified by analyzing selected frames of the video. The presence of such compression artifacts and the intensity of any identified compression artifacts can be used to modify or select the quality score of an image or video clip. In addition to such information loss associated with compression or lossy transmission, image and video frames can also be analyzed for other types of noise. For example, for noise artifacts, such as noise associated with a low-quality or faulty camera sensor, a low-quality or dirty optical camera, or any other such noise source that may degrade, damage, or modify data in the image, variations in smooth or uniform regions of the image can be analyzed.
[0093] In some embodiments, audio data is also used for quality scoring of video clips. In this embodiment, various audio metrics, such as dynamic range, noise level, speech intelligibility, or speech recognition data, or any other such audio-based information, can be used to select an audio quality score or influence the overall quality score. In some embodiments, different audio data metrics are used based on a defined audio context. For example, a video clip with speech may be evaluated differently from a clip with music, or a video clip with different types of music may be evaluated differently. Additionally, in some embodiments, audio recognition for identifying offensive audio content (e.g., taboo language or explicit musical lyrics) can be used for quality scores or quality threshold flags.
[0094] In addition to quality scores based on image quality, some scores can be based on image content. For example, as mentioned above, image processing can be used to identify offensive content within images or video clips, such as nudity or taboo language. In some embodiments, a preferred orientation (e.g., horizontal or vertical) can be used for quality scoring. Some systems may additionally use image recognition to identify desired content. For example, in some systems, images of animals or objects associated with a party setting are identified as desired. The presence of such images within video frames or pictures can be used to increase the overall quality score or generate a content score. In some embodiments, image or video content can be additionally used to associate certain advertising elements with a media set or with certain content elements. Advertising elements located near specific content elements with identified image content types in the presentation order can be used to select specific advertising elements to be placed in slots in the presentation order.
[0095] In some embodiments, feedback or machine learning is used to select or set quality scores. Such systems can use neural networks to extract features identified as preferred or of interest to the system user. For example, in some embodiments, images selected by the system user for inclusion in one or more stories can be selected for a learning group. Some or all of the images and video frames from the learning group may have features extracted and analyzed using feedforward artificial neural networks (such as convolutional neural networks) to identify desired elements of the images and automatically assign interest scores to future images received based on neural networks generated using the learning group. The feature maps used within such neural networks may be based on any analytical metrics described herein, including image quality features and image content features. In some embodiments, learnable filters may be selected and automatically updated based on an image database from an image processing service used for content analysis of images or video frames. In other embodiments, any other such source may be used for learnable filters. Such analysis can be applied to both the image elements of the content and the audio elements of the video.
[0096] Other feedback mechanisms may be used in various embodiments. For example, in some embodiments, the content source, user, or account associated with the generated image or video clip may have associated historical data. In some embodiments, the association between the content source and the history of content selected by the system user or associated with a high-quality rating may be used as input to a quality score or as a quality indicator. Various content source metrics may be used, such as quality history, the number of images sent, the number of system followers or interconnections, or other such metrics.
[0097] In some embodiments, multiple distinct quality scores may be associated with each individual media content segment, such that an image may have an exposure quality score, a noise quality score, a motion quality score, a compression quality score, a resolution quality score, an audio quality score, a content score, or any other such individual quality score. In this embodiment, an overall quality score based on any combination of such individual quality scores may also be provided. Furthermore, as described above, some or all of these quality scores may be used individually to automatically reject certain media content segments, presenting only images or videos exceeding all thresholds to the system user. The system may have any number of thresholds based on individual quality scores or multiple different combinations of different quality scores. In some embodiments, the threshold may be variable to present a target number of images and / or videos to the system user. Similarly, different types of image or video clips may be evaluated differently, such that weights may be applied differently to different images based on content, location, time, proximity to a holiday or news event, overall environment, or other such information. In some embodiments, any of the above metrics and weights are applied differently to an indoor selfie rather than to a concert shot outdoors at night.
[0098] In operation 506, content processing server 124 may store multiple content messages, along with the quality score of each content message, in one or more databases 126. The quality score may be stored as metadata associated with the content message. Content processing server 124 may optionally sort all content messages by quality score.
[0099] In operation 508, the content processing server 124 can receive a threshold percentage of the media set from the operator device 130. For example, the operator 108 may be provided with an interface, such as... Figure 6 The interface 600 shown provides a threshold percentage 605 by which content in the media set is filtered. For example, operator 108 may only want to receive high-quality content messages (e.g., due to the large volume of content messages in the queue / media set). Operator 108 can enter a percentage (e.g., 50%) and submit the threshold percentage to the content processing server 124 (e.g., via the "Apply" button 607).
[0100] In operation 510, content processing server 124 can determine a subset of multiple content messages associated with the media set that are available to operator 108 (e.g., via operator device 130) based on a threshold percentage received by operator device 130 and the quality score of each of the multiple messages. For example, content processing server 124 can determine the top 50% of content messages in the media set based on the quality score of each of the multiple messages (e.g., the top 50% of the highest-scoring content messages).
[0101] In operation 512, the content processing server 124 may display only a subset of the multiple content messages associated with the media set on the operator device 130 for use with the media set. For example, if the content processing system 124 has received 10,000 content messages and the threshold is set to 30%, the content processing system 124 may display only 3,000 content messages on the operator device 130.
[0102] Because the content processing server 124 can continuously receive multiple content messages, it can periodically recalculate subsets of the multiple content messages for the media set. For example, after displaying an initial subset of content messages on the operator device 130, the content processing server 124 can determine a newly received subset of content processing messages (e.g., since the last subset was determined) after a predetermined number of content messages (e.g., 100, 1000, etc.) or a predetermined amount of time (e.g., 30 seconds, 10 minutes, 30 minutes, 1 hour, etc.). Furthermore, the operator 108 can change a threshold from a first value (e.g., 50%) to a second value (e.g., 30%). The content processing server 124 can receive the new threshold and use it to determine the subset of multiple content messages to be received forward. Alternatively, the content processing server 124 can also adjust the value of the subset already made available to the operator device 130 (e.g., if the operator 108 increases the threshold percentage value, more content messages can be displayed on the operator device 130).
[0103] Input from operator 108 can be used to improve the quality score algorithm. For example, operator 108 may be able to flag or otherwise indicate when a content message is of low quality. Server system 120 may also track each time operator 108 flags or accepts a content message, or indicate that the content message is relevant to a specific breaking news story. For example, content processing server 124 may analyze content messages accepted by operator 108 and content messages not accepted by operator 108, and use this data to create a model to determine the probability that operator 108 will accept a particular content message. This factor (e.g., the probability of operator acceptance) can be used as a factor in calculating the quality score of the content message.
[0104] In another example embodiment, a client application 114 may be provided, which includes media set creation and curation tools for end user 106. This tool allows user 106 to create new media sets, view a list of media sets, view multiple content items or content messages associated with a predetermined media set, select and / or curate content into the media set for immediate, continuous, or periodic release, etc. Multiple media contents may have been received by server system 120 (e.g., via client device 110) from multiple content messages from multiple users 106. For example, user 106 may wish to create a new media set associated with a personal event, such as a wedding reception, a child's birthday party, a family vacation, etc. User 106 can use client device 110 to create an account, create new media sets (e.g., a media set for his wedding reception, a media set for his niece's birthday party, a media set for an upcoming family vacation, etc.), view existing media sets to view content messages associated with the media set (e.g., from friends and family), and select and / or curate content messages to include in one or more media sets.
[0105] User 106 can first provide identification information to create an account to create new media sets, view existing media sets to view content messages associated with the media sets, and select and / or curate content messages to be included in one or more media sets. For example, client device 110 can display an interface on client device 110, such as Figure 7A The interface 700 shown is included. Some examples of identification information 702 may include the user 106's name, username, mobile phone number, and email address. Other identification information 702 may include home address, work address, alternative email address, alternative phone number, etc. In some example embodiments, interface 700 may also allow the user 106 to set notification sounds to be turned on or off 704, manage additional services 706, specify who can send content messages to the user 106 708, view one or more of their own media sets 710, and get help or support 712.
[0106] User 106 can then submit identification information 702 (and any other information) to create his account. Client device 110 can receive identification information 702 from user 106 and send it to server system 120 to create the account. Server system 120 can receive identification information 702 and verify it (e.g., confirm that no existing account with the same information does not exist, ensure the information is legitimate, etc.). Once server system 120 has confirmed that the account can be created, it can create the new account and store the identification information 702 associated with the account in one or more databases 126. Server system 120 can send a notification to client device 110 that the account has been created. Client device 110 can display the message that the account has been created to user 106.
[0107] Application 114 on client device 110 can provide user 106 with mechanisms to manage various aspects of their account. For example, client device 110 can display, for instance, […]. Figure 7B The interface 715 shown is shown. User 106 may be able to manage filters 717 (e.g., media overlay), manage camera settings for capturing images (such as front flash 719), and other features (such as playback 721, special text 723, power saving mode 725, best friend's number 729, etc.).
[0108] Interface 715 can further allow user 106 to create a new personal media set 727. User 106 can select an option to create a new personal media set (e.g., by pressing or swiping a menu item 727). Client device 110 can detect that user 106 has selected to create a new personal media set and request or allow user 106 to input various parameters associated with the media set.
[0109] One parameter can be the name of a personal media set. For example, client device 110 can display something like... Figure 7C The interface 730 shown is used to request the name of media set 732.
[0110] User 106 can input additional parameters for the media set, such as... Figure 7D As shown in the diagram. For example, client device 110 may display an interface such as interface 740 to request additional parameters from user 106 and allow user 106 to input additional information associated with sample media set 742 titled "Anchor Splash 2K15". Additional parameters may include selecting thumbnail 744 to associate with the media set (e.g., a custom thumbnail created by user 106, or a default composition of images in the media set, etc.).
[0111] Another parameter can include setting boundaries or geofences to indicate the area where a user must be located to submit content messages for a media set or to view a media set. Application 114 can include a predetermined maximum geofence or boundary size. If user 106 wants to increase the maximum boundary size, user 106 may need to pay an additional fee for this, such as... Figure 7E The interface 750 is shown in the example embodiment. In one example embodiment, user 106 can access the interface via, for example... Figure 7F , 7G The interface shown in interface 760 in 7H sets up geofences and expands or reduces the size of the geofence radius. For example, user 106 can resize region 762 from a smaller (e.g., 7F) to a larger (e.g., 7G, 7H) region, and vice versa.
[0112] return Figure 7D Another parameter could be the lifetime of the media set (e.g., the duration of the event, 6 hours, 24 hours, 1 day, 1 week, etc.). There may be options presented to user 106 to increase the lifetime of the media set 748 from a predetermined amount of time (e.g., 6 hours, the duration of the event, etc.). In one example embodiment, if user 106 wishes to increase the length of the story beyond the predetermined amount of time, user 106 may need to pay an additional fee.
[0113] User 106 may also be able to specify one or more audience members for the media set. Audience members may be users 106 with permission to view the media set. User 106 may also be able to specify a maximum audience size 749 for the shared media set. In one example embodiment, there may be a predetermined maximum size, and user 106 may need to pay an additional fee to increase the audience size to a size greater than the predetermined maximum. Audience members may be users 106 located within a geofence associated with the media set, or users 106 in the public following the media set. For example, user 106 may specify whether the media set is public or private. If user 106 specifies the media set as public, anyone can view the media set. If user 106 specifies the media set as private, the audience is restricted to groups or users 106 within a specific geofence.
[0114] User 106 may also be able to specify one or more contributors. A contributor can be a user 106 with permission to publish or submit content items or content messages to be included in the media set. In one example embodiment, a contributor may need to be within a geofence associated with the media set to publish or submit content items or content messages to be included in the media set. For example, if user 106 is within the geofence of the media set, the option to send only content messages to be included in the media set may be provided to user 106.
[0115] Once user 106 enters parameters for the media set, he can submit information to activate the media set (e.g., via the "Activate Media Set" button 741) or save the information (e.g., via the "Save" button 743).
[0116] Figure 8 This is a flowchart illustrating aspects of a method 800 according to some example embodiments. For illustrative purposes, it is intended for... Figure 1 The networked system 100 describes method 800. It should be understood that in other embodiments, method 800 may be implemented in conjunction with other system configurations.
[0117] In operation 802, client device 110 (e.g., a first computing device) may receive a request from user 106 to activate a new media set. As described above, the request may include one or more parameters. For example, the request may include the name of the media set, the geofence associated with the media set, one or more contributors, one or more audience members, the maximum audience size, the thumbnail, the lifetime of the media set, etc.
[0118] In operation 804, client device 110 may send a request to a server computer (e.g., at server system 120) to activate a new media set. The server computer may receive and evaluate the request and information, create a new media set, and store the associated information in one or more databases 126. The server computer may generate a message (e.g., an acknowledgment) indicating that a new media set has been created and send it to client device 110. As shown in operation 806, client device 110 may receive confirmation from the server computer that the new media set has been activated.
[0119] The server computer can receive multiple content messages from multiple content sources (e.g., user 106 via client device 110). Content messages may include media content (e.g., images, videos, audio, etc.) and may be associated with one or more media sets, as explained above. For each of the multiple content messages received by server system 120 (e.g., content processing server 124), content processing server 124 may associate the content in the content message with one or more predetermined media sets, also as described above. Content processing server 124 may store content messages associated with one or more media sets and / or may forward content messages associated with the appropriate client device 110.
[0120] Client device 110 can receive multiple content messages associated with a new media set, as shown in operation 808. These multiple content messages can be received from multiple users 106, as explained above. Client device 110 can display the multiple content messages to user 106, and user 106 can be able to select one or more content messages to include in the media set. For example, user 106 can select a subset or all content messages. In operation 810, client device 110 can receive selections from user 106 of multiple content messages to be included in the new media set.
[0121] In operation 812, client device 110 may send an instruction to server computer regarding the selection of content messages to be included in a new media set. Server computer may store the selection of the media set and cause the selection of content messages to be included in the new media set, and display the media set for viewing in response to a request from at least a second client device 110 (e.g., a second computing device). For example, a viewer (e.g., user 106 or another user 106) may view the media set (e.g., the selection of multiple content messages) on their client device 110. For example, a viewer may follow / view the media set by entering a geofence within the media set, or by entering a unique identifier (e.g., username) or scanning a code (e.g., QR code, barcode, etc.). In another example, after the server determines that a second user associated with a second computing device is part of a predefined audience, the server computer may cause the new media set to be displayed in response to a request from at least a second computing device.
[0122] Figure 9A The presentation order 900 of the content elements 901-915 of the media set according to some example embodiments is shown. Figure 9B The illustration shows a method for using some example embodiments. Figure 9A The second presentation order 999 for content elements of the same media set presented in the presentation order 900. In some embodiments, a first device requesting the media set will receive the content in presentation order 900, and a second client device requesting the same media set may receive the media set in presentation order 999, which includes content elements included in the media set after the media set content is sent to the first device. In some embodiments, the first device may receive the same content, wherein new content elements are streamed upon reception.
[0123] Figure 10AThe illustration shows a presentation order 1000 for adjusting content elements 901-915 according to some example embodiments, wherein advertising elements 1010 and 1020 are automatically inserted into the adjusted presentation order 1000. As described above, client device 110 can transmit content messages to server system 120, and content processing server 124 can sort these received messages to associate the messages and their content with a media set. In addition to simply identifying the association between content messages and media sets, as described above, various aspects of the content can be analyzed to determine the presentation order 900.
[0124] When a media set is selected from server system 120, the presentation order determines the order in which content elements are displayed on client device 110. In example presentation order 900, content elements 901-915 are set to be displayed in ascending order via the presentation order. In some embodiments, a user can navigate through the presentation order by selecting interface options to skip some or all of the display time for some presentation elements, but in the absence of user input, each content element of the media set including content elements 901-915 is displayed for a continuously associated display time before the next content element is automatically presented. In some embodiments, content order 900 is based solely on time, wherein all content elements selected to be included in the media set are displayed in a time-based presentation order 900. In other embodiments, content scores or operator 108 curation are used to determine presentation order 900.
[0125] As time goes on, when new content messages are received, the data can be used for... Figure 9A The presentation order of the media collection has been updated to 900. Figure 9B The presentation order 999 is used for the same media set with newly added content. Curated updates that are either automatically updated or triggered by an alarm can be used to adjust the presentation order 900 to include the new content elements 991-997 along with the previously included content elements 901, 902, 909-911, and 913 in the presentation order 999.
[0126] Both presentation sequences 900 and 999 include a continuous presentation group 920, which comprises content elements 909, 910, and 911. As described above, the continuous presentation group 920 can be generated by selecting content elements 909, 910, and 911 using operator device 130 via operation 108 to prevent these content elements from being interrupted by ad elements. The impact on ad element placement remains unchanged as the position of the continuous presentation group 920 moves within the media set. In some embodiments, the composition of a particular continuous presentation group can be changed. For example, the continuous presentation group 920 may have another content element added between or near any content elements 909-911, or any content element may be removed. In the absence of system adjustments to change the association of the continuous presentation group 920 or the removal of member elements of the continuous presentation group 920 from the media set, the elements of the continuous presentation group 920 remain together and are not interrupted by the automatic insertion of ad elements.
[0127] Figure 10A Then show with Figure 9A The presentation order 900 of content elements 901-915 is associated with an adjusted presentation order 1000. In the adjusted presentation order 1000, advertising elements are periodically inserted into the presentation order 900. Figure 10A In the example, an ad element is inserted every 5 content elements, such that ad insertion points 930 and 940 are set to the positions where ad elements 1010 and 1020 are placed. Because ad insertion point 940 occurs within the continuous rendering group 920, the placement of ad element 1020 is adjusted to avoid interfering with the continuous display of content elements 909-911.
[0128] Figure 10B Showing with Figure 9B The presentation order 999 corresponds to a similar adjustment to the presentation order 1099. In Figure 10B In this context, the position of the continuous rendering group 920 has been moved to a position where no ad insertion points 930, 940, and 950 fall within the continuous rendering group 920. Therefore, ad elements 1010, 1020, and 1030 are placed at periodic positions determined by the system rules for ad placement.
[0129] In other embodiments, any number of consecutive presentation groups can be presented within a media set, and the media set can have any number of content elements and multiple rules for placing ad elements. In some embodiments, multiple ad elements are placed together at an ad insertion point. In some embodiments, the combination of multiple content elements and the minimum time between the display of the most recent ad element are used to determine the next ad insertion point.
[0130] The above will Figure 9A -B and Figure 10A -B is described as being associated with a single media set. In some embodiments, automatic forwarding between media sets results in the continuous display of content elements until the user device 110 inputs an input to terminate the display of content and the automatic forwarding between content sets. In some such embodiments, advertising elements are inserted between content sets, and periodically inserted between content elements within a content set.
[0131] Additionally, as described above, the operator 108 may choose to generate the continuous presentation group 920. However, in other embodiments, the continuous presentation group may be automatically generated by the content processing server 124. In such embodiments, the analysis tools described herein may be used to associate specific content elements with continuous presentation groups. For example, content elements showing the same object from multiple views or the same object or location over time may be automatically associated to generate continuous presentation groups. In some embodiments, content including text or drawings related to another content element may be associated within a continuous presentation group. In other embodiments, any other such operations for associating content elements with continuous presentation groups may be used.
[0132] In addition to spacing ad elements based on the number of content elements, other system rules can be used to space ad elements. Some embodiments particularly benefit by enabling a regular advertising experience for the user within a content set, where many different content elements with short durations can be presented as part of one or more media sets. By tracking both the presentation order of the content and the adjusted presentation order including ad elements, a standard user experience can be automatically generated by server system 120. For example, compared to a television environment or news story environment where scripted video or audio content with predetermined expected content display time is used with advertisements between the content, the user experience of a client device 110 that delivers a large amount of regularly updated content messages can vary based on automatically selected content. In some embodiments, ad placement may occur between dozens of content elements lasting only a few seconds. In some embodiments, hundreds of content elements are displayed between ad elements.
[0133] Figure 11 The rendering order 1100 of the content elements 1101-1115 is shown, with advertising elements 1180, 1182, and 1184 automatically inserted. (See diagram.) Figure 11 As shown, the display time of content elements 1101-1115 can vary. This variation may be due to user selection of the content element by which the client device generates the original content message, or it may be due to the client device displaying the media set receiving input at the user interface to jump to the next element. Figure 11In some embodiments, advertising elements such as advertising elements 1180, 1182 and 1184 are inserted based on the display time of the content as represented by the content display threshold 1130.
[0134] exist Figure 11 In this embodiment, the media content is displayed in presentation order 1100, starting with content element 1101 and continuing with content element 1105. During the display of content element 1105, a first content display threshold 1130A is reached, and therefore at least a first advertisement element 1180 immediately follows content element 1105. After advertisement element 1180 is displayed, a counter associated with content display threshold 1130B can be started. Content display threshold 1130B is reached during the display of content element 1110, but since content element 1110 is part of a continuous display group 1120, the next advertisement element 1182 is delayed until after content element 1111, which is the final content element of the continuous display group 1120. Then, presentation order 1100 displays content elements 1112-1115 consecutively until threshold 1130C is reached, and then immediately follows with the display of advertisement element 1184. The display of additional elements associated with the content or media set can then continue on the content device. In some embodiments, when a new content message delivers content elements of a media set faster than the content elements are displayed, a single content set can continue to render new content and advertising elements indefinitely. In other embodiments, the content set is closed and does not have content added over time. In such embodiments, the display of content elements for a particular media set can end. In such embodiments, the server system can automatically select the next content set and automatically begin sending the content elements of the next content set along with any inserted advertising elements to the device. This can continue indefinitely until the device receives an instruction to terminate the display of the media set, or the device loses network access to the server system. In such automatic forwarding systems, the timing for advertising elements can be reset at the end of each content set, regardless of whether one or more advertising elements are present at the end of the content set, before the content elements of a new content set begin to be displayed.
[0135] Additionally, as mentioned above, some display orders can be responsive to user input at the client device. In such embodiments, an initial display order can be transmitted from the server system to the client device, and the client device can adjust the presentation order in response to user input received at the device (e.g., input to jump to the next element). For example, in Figure 11In one embodiment, the client device may receive an expected presentation order different from the shown presentation order from the server system, and the client device may track the display timing relative to a display threshold 1130 to determine when to display the ad element. In such embodiments, the client device may make this determination in conjunction with received information about consecutive display groups, rather than making the decision at the server device.
[0136] Figure 12 Methods for delivering content elements and automated advertising are illustrated according to some embodiments. In various embodiments, method 1200 may be implemented in server system 120, content processing server 124, or using any means or combination of means described herein. In some embodiments, method 1200 is represented by a non-transitory computer-readable medium including instructions that, when executed by one or more processors, cause means to perform method 1200.
[0137] Method 1200 includes receiving, in operation 1202, a first plurality of content messages from a plurality of content sources at a server computer, each content message including media content and each content message associated with a first media set. Then, in operation 1204, the server generates a presentation order for the first plurality of messages for the first media set. In operation 1206, the server further generates at least a first consecutive presentation group by associating first content elements from the first content messages and second content elements from the second content messages, thus associating the first content elements and the second content elements as the first consecutive presentation group.
[0138] In operation 1208, the placement of advertising elements within the presentation order of the first media set is determined, and in operation 1210, the placement of the first advertising elements within the presentation order is adjusted based on the association between the first content element and the second content element as a consecutive presentation group to generate an adjusted presentation order.
[0139] In some embodiments, a server computer receives a request for a media set from a client device, and the server computer sends content elements and advertising elements to the client device using an adjusted presentation order. In embodiments where the "live" content set is updated over time, the adjusted presentation order can be updated automatically or in response to operator input from the curator to further adjust the presentation order as described above. Therefore, different client devices requesting the same media set can present different content elements, advertising elements, and presentation order to the media set depending on the timing of the request.
[0140] Furthermore, as described above, in some embodiments, determining ad element placement includes periodically inserting ad elements between content elements after a predetermined number of content elements. This can be performed automatically by a module of a server computer. In some embodiments, this automatic ad placement is combined with curated ad placement or regulated by various rules including identified consecutive presentation groups. For automatic placement, a threshold time period can be used to periodically insert ad elements between content elements. In other embodiments, a counter can be used to place ad elements after a threshold number of content elements (e.g., after a predetermined number of photos, video clips, or other discrete content elements from a content message). In other embodiments, a combination of content elements and timing can be used. In some embodiments, for example, a table can be used to match the number of elements and timing, such that the timing threshold changes slightly as the number of content elements in the presented row increases. In other embodiments, various other combinations of thresholds can be used to determine the placement of ad elements in the presentation order.
[0141] exist Figure 10A , 10B In Figures 1 and 11, an ad element is shown immediately following the completion of a content element after a threshold is reached. In some embodiments, the ad element may be placed before the threshold is reached. For example, in some embodiments where there are long consecutive presentation groups and the threshold falls near the beginning of the group, the system or display device places the ad element before the consecutive presentation group. In some embodiments, the device may determine whether the threshold is expected during the first half of the content element or group, depending on system settings and where the threshold falls into the content, and substantially “rounds” it to the beginning or end. In other embodiments, other methods are used to determine the precise placement of the ad element.
[0142] In the various embodiments described above, an initial or baseline presentation order may be generated, and advertising elements may be inserted based on a display threshold that assumes content elements and advertising elements are displayed for the full time associated with each element. This full time for each element is the full runtime of any video clip, and the display time associated with an image, which may be set automatically by the server system, by the curator or operator 108, or when images are captured using any other selection process. As described above, some embodiments allow users to view the media set to navigate by display order, including skipping to the next content element or the next advertising element. In embodiments where the media set consists of content elements with associated display times similar to or shorter than those of advertising elements, automatic balancing exhibits technical problems not present in other media environments where longer content segments with interspersed advertising (e.g., 10-15 minute content segments separated by 3-5 minute advertising segments) are highly curated and broadcast without individual customization, limiting the broadcaster's opportunity to know whether to skip certain content. In the embodiments described herein, content elements received from the client device are used to generate a media set of advertising elements with a display order customized for each user, providing benefits such as efficiency, user feedback, and an enhanced user experience customized through automatic feedback from user selection.
[0143] For example, in some embodiments, when an ad element begins to appear, an interface may be presented allowing the user to choose to end the ad element's display. In some embodiments, a minimum display time may be used. For example, an ad element with a full display time of 20 seconds may have a minimum display time of 2 seconds, after which the remainder of the ad element can be skipped. In such embodiments, using a simple threshold may not provide the desired balance between content elements and ad elements. Therefore, some embodiments may track the actual display time associated with content elements compared to the actual display time of ad elements, and dynamically adjust the presentation order of individual user accounts or devices based on the actual display time on the device rather than the expected display time determined at the server system. Some such embodiments use a target ratio of ad display time to content display time to determine the presentation order. Some embodiments may use a window with an acceptable ad to content ratio. Some embodiments may use a combination of continuous content display time or a minimum content element coupled to a target content to ad ratio. Various embodiments may use other such metrics to generate and adjust the presentation order to balance the display of content elements and ad elements.
[0144] Figure 13An example presentation sequence 1300 is shown, in which multiple content elements 1302 are followed by an advertisement element 1382, then a second set of multiple content elements 1304, and then a second advertisement element 1384. For illustrative purposes, a representative advertisement element 1382 is associated with a full display time 1340. In some embodiments, a device displaying a media set begins tracking display time when the media set associated with presentation sequence 1300 begins displaying the content of multiple content elements 1302. After advertisement element 1382 ends, the device will have a ratio of advertisement display time to content element display time, which is display time 1340 divided by display time 1330. This ratio can be compared to a target ratio, and the number of content elements scheduled for multiple content elements 1304 can be adjusted to affect the target ratio. Similarly, the display time associated with advertisement element 1384 can be adjusted based on a comparison of the actual ratio to a target ratio, or additional advertisement elements can be scheduled after advertisement element 1384.
[0145] Some embodiments may have additional guidelines or system settings for presentation order. For example, in some embodiments, in addition to a target ratio of ad display time to content display time, a minimum display time between groups of ad elements may be used, a minimum initial content display time may be used, a minimum number of consecutive content elements may be used, or any other such presentation order constraints or thresholds may be used.
[0146] For example, some embodiments are configured such that the target content display time is followed by the target advertisement display time, serving as a target display unit. After selecting a media set for display on the device, initial display units such as multiple content elements 1302 and advertisement elements 1382 can be constructed such that if no user input is received to skip content, a target ratio of content display to advertisement display is achieved. In the absence of such user input, the server-scheduled presentation order remains within the system settings and at the target advertisement-to-content ratio.
[0147] However, in Figure 14 In the context of multiple content elements 1402, after the initial display duration of content display time 1430, user input is received to skip portions of advertising elements 1482, 1484, and 1486. Figure 14 In this embodiment, a minimum ad display time of 1441 is indicated, and the presentation order is therefore adjusted from a previous presentation order to a presentation order of 1400, which was for the presentation of ad element 1482 for the full ad time 1440. Due to the received input of skipping the remaining content of ad element 1482, the presentation order is adjusted to include ad element 1484. Similarly, when ad element 1484 is skipped, ad element 1486 is added. Figure 14In this embodiment, due to the maximum consecutive number of ad elements, after the presentation of the skip ad element 1486, the display of multiple content elements 1404 begins, where the actual ratio of ad display to content display (e.g., time 1441 divided by time 1430) is lower than the target ratio associated with the display time 1440 following display time 1430. Based on the fact that the actual ratio of ad display to content display is lower after a portion of ad element 1450 is displayed, the number of content elements associated with multiple content elements 1404 can be reduced to shorten the content display time between the display of ad elements 1486 and 1488. Similarly, ad element 1489 can be added to the presentation order 1400 such that the display units of content and ads during display times 1450 and 1460 bring the overall ratio of ad display to content display back to the target ratio.
[0148] Therefore, various embodiments operate under the following constraints: minimum and / or maximum number of consecutive content elements, minimum and / or maximum consecutive content display time, minimum and / or maximum number of consecutive ad elements, minimum and / or maximum consecutive ad display time, minimum display time for a single content element or ad element, minimum and / or maximum ratio of content display time to ad display time since the start of display of a media set, minimum and / or maximum ratio of content display time to ad display time for each content and ad display unit, minimum and / or maximum ratio of content display time to ad display time during the display of multiple content sets (e.g., during automated operation), or any other such operational constraints. Different embodiments may operate with any or a combination of all these constraints, using a combination of operator curation adjustment or automated system adjustment of the presentation order of content elements and ad elements to achieve the objectives.
[0149] Figure 15 An example method 1500 for determining the presentation order, according to some embodiments, is then described. Method 1500 begins with operations 502 and 512, similar to the operations described above for method 500. In method 1500, after a content display message, the server computer receives display time data associated with the display of the media set and at the first client device. For example, in some embodiments, operation 1502 may involve receiving... Figure 13 In the embodiment, data for times 1330 and 1340 is used, and then multiple content elements 1302 and advertising elements 1382 are displayed. Similarly, this could involve receiving data at... Figure 14In the embodiments, communication is used for data at times 1430 and 1441, and separate communication is used for times 1450 and 1460. In operation 1504, this information is used to adjust the following presentation order. In some embodiments, this involves adjusting the order of content elements and advertising elements of the same media set that continue to be displayed on the client device providing the display time data. In some embodiments, this involves adjusting the presentation order of subsequent media sets to be displayed on the first client device providing the display time data. In operation 1506, when a media set is presented on a user device, the display time is then tracked over time to affect the ratio of advertising display time to content display time. In some embodiments, this tracking may be performed for a user account in a communication system using multiple devices, such that a target ratio can be set for all views across multiple devices associated with that account. As described above, in addition to the ratio of advertising to content display, the display time data can also be used to meet other content and advertising objectives of the system.
[0150] Figure 16 Another embodiment of a method for setting the presentation order is described. Method 1600 of Figure 1600 describes a method performed by a client device. In various other embodiments, a similar or corresponding operation is performed by a server computer to enable the described operation at the client device or to enable a similar operation at the server computer, depending on the functionality of various different embodiments. Additionally, various embodiments may perform similar operations in varying orders, including repeating some or all of the described operations, or including additional operations between the described operations.
[0151] Method 1600 begins with operation 1602, which involves a client device receiving multiple content elements and at least a first advertising element from a server computer. In operation 1604, the client device outputs the multiple content elements to the device's display until a display time threshold is reached. In some such embodiments, the multiple content elements are associated with a presentation order from the server computer, and the advertising element is received from the server computer but not scheduled within the presentation order. After the display time threshold is reached in operation 1604, operations 1606 and 1608 occur in any order or simultaneously. In operation 1606, the client device updates the content display time associated with the display of the multiple content elements, and in operation 1608, the client device displays the first advertising element after displaying the final content element among the multiple content elements. In other words, after reaching the threshold for displaying content, the device stops displaying the current content element until the display time associated with the content element ends, or until a user input terminates the display of the content element. After this, the advertising element is displayed.
[0152] As part of operation 1608, after the first ad element has finished displaying, in operation 1610, the client device updates the ad display time associated with the display of the first ad element. Based on the content display time and ad display time, in operation 1612, the client device determines whether a target ratio of ad to content display time has been reached. If this ratio has not been reached (e.g., if the actual ad to content ratio is lower than the target), the device follows the first ad element with a second ad element. In operation 1612, the device continues to display ad elements until the target is reached. As described above, in some embodiments, a maximum number of consecutive ad elements may be included as a limitation in some embodiments. For example, one embodiment may have a maximum of four consecutive ad elements. After four ad elements are sequentially launched, the embodiment will display a content element after the fourth ad element, even if the target ratio has not been reached. In other embodiments, other limitations may be used.
[0153] In embodiments of method 1600, after the target ratio is reached in operation 1612, a second plurality of content elements are displayed in operation 1614 after the final ad element is displayed. In various embodiments, the display of content elements or ad elements is not terminated because the ratio has been reached, and the apparatus may update the actual ratio during the display of ad elements or only between elements. For example, in some embodiments, a user may interact with ad elements to select long-format ads, links to other ad content, or other such interactions to extend the expected display time of ad elements. In some embodiments, this allows the actual ratio of ad display to far exceed the minimum target ratio. In some embodiments, a maximum ad-to-content ratio may also be used, such that the second plurality of content elements are extended until the ad-to-content ratio is below the maximum ratio. In other embodiments, such a ratio may be applied only to a specific number of recently displayed units, or to a single display unit (e.g., a combination of one or more consecutive ad elements following a set of consecutive content elements).
[0154] Various other embodiments may operate in various ways, or in combination with other embodiments described herein. For example, in some embodiments, each of the multiple content elements of a media set or content set is associated with a separate display time. This could be a maximum display time of five seconds, ten seconds, 15 seconds, one minute, or any such time limit. Similarly, a minimum display time such as one second or three seconds may be implemented before a user can skip content or advertising elements.
[0155] Some embodiments may operate according to method 1600, followed by additional operations. For example, in some embodiments, the additional operations include receiving a user selection at an input of the device to terminate the display of the first advertising element before the full display of the first advertising element is completed, and in response to the input, selecting a target ratio as a minimum target ratio. The client device then adjusts the display order associated with a second plurality of content elements to reduce the time from the end of the first advertising element to the beginning of the second advertising element.
[0156] Similarly, some other embodiments involve the operation of displaying a second ad element for a full display time, and the operation of displaying a second plurality of ad elements, including the second ad element, until a full target ratio of ad display time to content display time is reached, wherein the full target ratio is greater than a minimum target ratio.
[0157] Another embodiment involves receiving a user selection at an input of the device before the first advertising element is fully displayed. Then, in response to the input, the client device extends the display time associated with the first advertising element and adjusts the display order associated with a second plurality of content elements to increase the time from the end of the first advertising element to the beginning of the second advertising element.
[0158] Based on the various descriptions provided herein, the additional operations or combinations of such operations should be self-evident.
[0159] Figure 17 This is a block diagram 1700 illustrating the architecture of software 1702 that can be installed on any one or more of the aforementioned devices. For example, in various embodiments, client device 110, operator device 170, server system 120, and web server 122 and content processing server 124 can be implemented using some or all of the elements of software architecture 1702. Figure 17 This is merely a non-limiting example of a software architecture, and it will be understood that many other architectures can be implemented to facilitate the functionality described herein. In various embodiments, software architecture 1702 consists of, for example... Figure 18 The hardware implementation of machine 1800 includes processor 1810, memory 1830, and I / O components 1850. In this example architecture, software architecture 1702 can be conceptualized as a stack of layers, where each layer provides a specific function. For example, software architecture 1702 includes layers such as operating system 1704, libraries 1706, frameworks 1708, and application 1710. Operationally, consistent with some embodiments, application 1710 calls application programming interface (API) call 1712 through the software stack and receives message 1714 in response to API call 1712.
[0160] In various implementations, operating system 1704 manages hardware resources and provides public services. Operating system 1704 includes, for example, a kernel 1720, services 1722, and drivers 1724. Consistent with some embodiments, kernel 1720 serves as an abstraction layer between the hardware and other software layers. For example, kernel 1720 provides functions such as memory management, processor management (e.g., scheduling), component management, network connectivity, and security settings. Services 1722 can provide other public services to other software layers. According to some embodiments, drivers 1724 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1724 may include display drivers, camera drivers, Bluetooth® or Bluetooth Low Energy® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, etc.
[0161] In some embodiments, library 1706 provides low-level general-purpose infrastructure utilized by application 1710. Library 1706 may include system library 1730 (e.g., the C standard library), which provides functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. Furthermore, library 1706 may include API libraries 1732, such as media libraries (e.g., libraries supporting the rendering and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codecs, Joint Picture Experts Group (JPEG or JPG), or Portable Web Graphics (PNG)), graphics libraries (e.g., OpenGL frameworks for rendering two-dimensional (2D) and three-dimensional (3D) graphics content on a display), database libraries (e.g., SQLite, which provides various relational database functionalities), web libraries (e.g., WebKit, which provides web browsing functionality), etc. Library 1706 may also include a wide variety of other libraries 1734 to provide application 1710 with many other APIs.
[0162] According to some embodiments, framework 1708 provides a high-level common architecture that can be utilized by application 1710. For example, framework 1708 provides various graphical user interface (GUI) functions, high-level resource management, advanced location nodes, etc. Framework 1708 can provide a wide range of other APIs that can be utilized by application 1710, some of which may be specific to a particular operating system 1704 or platform.
[0163] In example embodiments, application 1710 includes home application 1750, contact application 1752, browser application 1754, book reader application 1756, location application 1758, media application 1760, messaging application 1762, game application 1764, and other broadly categorized applications such as third-party application 1766. According to some embodiments, application 1710 is a program that performs functions defined in a program. One or more applications 1710 can be created using various programming languages, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In specific examples, third-party application 1766 (e.g., application 1710 developed by an entity other than a platform-specific vendor using the Android™ or iOS™ Software Development Kit (SDK)) can be mobile software that runs on a mobile operating system such as iOS™, Android™, Windows© Phone, or other mobile operating systems. In this example, third-party application 1766 can call API call 1712 provided by operating system 1704 to perform the functions described herein.
[0164] Some embodiments may specifically include curatorial application 1767. In some embodiments, this may be a standalone application operating to manage communication with a server system such as server system 120. In other embodiments, this functionality may be integrated with another application, such as media application 1760, or another such application. Curatorial application 1767 may use the camera device of machine 1800 to manage content sets, communication with the server system via I / O component 1850, and the reception and storage of media sets received in memory 1830. The presentation of content and user input associated with the content may be managed by curatorial application 1767 using different framework 1708, library 1706 elements, or operating system 1704 elements operating on machine 1800.
[0165] Figure 18 This is a block diagram illustrating components of a machine 1800, according to some embodiments, capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any or more methods discussed herein. Specifically, Figure 18A schematic diagram of machine 1800 in the form of an example computer system is shown, within which instructions 1816 (e.g., software, programs, applications 1710, applets, application programs, or other executable code) can be executed to cause machine 1800 to perform any one or more methods discussed herein. In alternative embodiments, machine 1800 operates as a standalone device or can be coupled (e.g., network-connected) to other machines. In a networked deployment, machine 1800 can operate as server machines 122, 124 or client machines 110, 170 in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 1800 may include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, network devices, network routers, network switches, network bridges, or any machine capable of executing instructions 1816 that continuously or otherwise specifies the actions that machine 1800 will take. Furthermore, although only a single machine 1800 is shown, the term "machine" can also be considered to include a collection of machines 1800 that individually or jointly execute instructions 1816 to perform any one or more of the methods discussed herein.
[0166] In various embodiments, machine 1800 includes processor 1810, memory 1830, and I / O components 1850 configured to communicate with each other via bus 1802. In example embodiments, processor 1810 (e.g., a central processing unit (CPU), a simplified instruction set computing (RISC) processor, a composite 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) includes, for example, processors 1812 and 1814 capable of executing instructions 1816. The term "processor" is intended to include multi-core processor 1810, which may include two or more independent processors 1812, 1814 (also referred to as "cores") capable of simultaneously executing instructions 1816. Although Figure 18 Multiple processors 1810 are shown, but machine 1800 may include a single processor 1810 with a single core, a single processor 1810 with multiple cores (e.g., a multi-core processor 1810), multiple processors 1812, 1814 with single cores, multiple processors 1810, 1812 with multiple cores, or any combination thereof.
[0167] According to some embodiments, memory 1830 includes main memory 1832, static memory 1834, and storage cells 1836 accessible by processor 1810 via bus 1802. Storage cells 1836 may include machine-readable medium 1838 on which instructions 1816 embodying any one or more methods or functions described herein are stored. Instructions 1816 may also reside wholly or at least partially in main memory 1832, static memory 1834, at least one of processor 1810 (e.g., in the processor's cache memory), or any suitable combination thereof during execution by machine 1800. Therefore, in various embodiments, main memory 1832, static memory 1834, and processor 1810 are considered to be machine-readable medium 1838.
[0168] As used herein, the term "memory" refers to machine-readable medium 1838 capable of temporarily or permanently storing data and can be considered to include, but is not limited to, random access memory (RAM), read-only memory (ROM), cache, flash memory, and cache. While machine-readable medium 1838 is shown as a single medium in the example embodiment, the term "machine-readable medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions 1816. The term "machine-readable medium" can also be considered to include any medium or combination of media capable of storing instructions (e.g., instructions 1816) for execution by a machine (e.g., machine 1800), such that when executed by one or more processors of machine 1800 (e.g., processor 1810), instructions 1816 cause machine 1800 to perform any or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or apparatus, as well as a "cloud-based" storage system or storage network that includes multiple storage devices or apparatuses. Therefore, the term "machine-readable medium" can be considered as, but is not limited to, one or more data repositories in the form of solid-state memory (e.g., flash memory), optical media, magnetic media, other non-volatile memory (e.g., erasable programmable read-only memory (EPROM)), or any suitable combination thereof. The term "machine-readable medium" itself explicitly excludes non-statutory signals.
[0169] I / O component 1850 includes a variety of components for receiving input, providing output, generating output, sending information, exchanging information, acquiring measurements, etc. Generally, it is understood that I / O component 1850 may include... Figure 18Many other components are not shown. The I / O components 1850 are grouped according to function only for the purpose of simplifying the following discussion, and the grouping is by no means limiting. In various example embodiments, the I / O components 1850 include output components 1852 and input components 1854. Output components 1852 include visual components (e.g., displays, such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), auditory components (e.g., speakers), haptic components (e.g., vibration motors), other signal generators, etc. Input components 1854 include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other indicating instruments), haptic input components (e.g., physical buttons, touchscreens providing position and force for touch or touch gestures, or other haptic input components), audio input components (e.g., microphones), etc.
[0170] In some other example embodiments, I / O component 1850 includes a variety of other components such as biometric component 1856, motion component 1858, environmental component 1860, or position component 1862. For example, biometric component 1856 includes components that detect expressions (e.g., hand gestures, facial expressions, vocal expressions, body posture, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), and identify people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 1858 includes accelerometer components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), etc. Environmental component 1860 includes, for example, a lighting sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers for detecting ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones for detecting background noise), a proximity sensor component (e.g., an infrared sensor for detecting nearby objects), a gas sensor component (e.g., a machine olfactory detection sensor, a gas detection sensor for detecting the concentration of hazardous gases or measuring pollutants in the atmosphere for safety purposes), or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 1862 includes a positioning sensor component (e.g., a Global Positioning System (GPS) receiver component), an altitude sensor component (e.g., an altimeter or barometer that can detect from which altitude the air pressure is derived), an orientation sensor component (e.g., a magnetometer), and the like.
[0171] Communication can be implemented using a wide variety of technologies. I / O component 1850 may include communication component 1864, operable to couple machine 1000 to network 1880 or device 1870 via coupler 1882 and coupler 1872, respectively. For example, communication component 1864 includes a network interface component or another suitable device interfaced with network 1880. In further examples, communication component 1864 includes 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 that provide communication via other modes. Device 1870 may be another machine 1800 or any of a wide variety of peripheral devices (e.g., peripheral devices coupled via Universal Serial Bus (USB)).
[0172] Furthermore, in some embodiments, the communication component 1864 detects identifiers or includes components operable to detect identifiers. For example, the communication component 1864 includes 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, digital graphics, maximum codes, PDF417, supercodes, Uniform Business Code Reduced Space Symbol (UCC RSS)-2D barcodes, and other optical codes), an acoustic detection component (e.g., a microphone for identifying audio signals from the tag), or any suitable combination thereof. Additionally, various information can be derived via the communication component 1864, which can indicate a specific location, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via detecting Bluetooth® or NFC beacon signals, etc.
[0173] In various example embodiments, one or more portions of network 1880 may 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 the Public Switched Telephone Network (PSTN), a Common Old-Style Telephone Service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, network 1880 or a portion of network 1880 may include a wireless or cellular network, and coupling 1882 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or another type of cellular or wireless coupling. In this example, the coupling 1882 can implement any of a variety of data transmission technologies, such as single-carrier radio transmission technology (1xRTT), evolved data optimization (EVDO) technology, general packet radio service (GPRS) technology, GSM evolution enhanced data rate (EDGE) technology, the 3rd generation partnership program (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high-speed packet access (HSPA), global microwave access interoperability (WiMAX), long-term evolution (LTE) standard, other standards defined by various standards-setting organizations, other remote protocols or other data transmission technologies.
[0174] In an example embodiment, instructions 1816 are sent or received over network 1880 via a transmission medium using a network interface device (e.g., a network interface component included in communication component 1864), and utilizing any of a plurality of known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, in other example embodiments, instructions 1816 are sent or received to device 1870 via a transmission medium using a coupling 1872 (e.g., peer-to-peer coupling). The term “transmission medium” can be considered to include any intangible medium capable of storing, encoding, or carrying instructions 1816 executed by machine 1800, and includes digital or analog communication signals or other intangible media to facilitate the communication implementation of such software.
[0175] Furthermore, because machine-readable medium 1838 does not embody a propagating signal, it is non-transient (in other words, it does not possess any transient signals). However, labeling machine-readable medium 1838 as "non-transient" should not be interpreted as meaning that the medium cannot be moved. Medium 1838 should be considered as transferable from one physical location to another. Additionally, since machine-readable medium 1838 is tangible, it can be considered a machine-readable device.
[0176] Throughout this specification, multiple instances can implement components, operations, or structures described as single instances. While individual operations of one or more methods are shown and described as separate operations, one or more individual operations can be performed simultaneously, and they do not need to be performed in the order shown. Structures and functionalities presented as individual components in the example configuration can be implemented as combined structures or components. Similarly, structures and functionalities presented as single components can be implemented as multiple separate components. These and other variations, modifications, additions, and improvements fall within the scope of this document's subject matter.
[0177] While an overview of the subject matter of the invention has been described with reference to specific exemplary embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of this disclosure. Such embodiments of the subject matter of the invention may be referred to herein individually or collectively by the term "invention," which is merely for convenience and is not intended to limit the scope of this application to any single disclosure or inventive concept if more than one is disclosed in fact.
[0178] The embodiments shown herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Therefore, the specific implementation should not be considered limiting, and the scope of the various embodiments is defined only by the appended claims and the full scope of their equivalents.
[0179] As used herein, the term "or" may be interpreted in an inclusive or exclusive manner. Furthermore, multiple instances of the resources, operations, or structures described herein may be provided as a single instance. Moreover, the boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and specific operations are illustrated in the context of a particular illustrative configuration. Other allocations of functionality are contemplated, and these other allocations may fall within the scope of various embodiments of this disclosure. Typically, structures and functions presented as separate resources in example configurations may be implemented as combined structures or resources. Similarly, structures and functions presented as single resources may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of embodiments of this disclosure as represented by the appended claims. Therefore, the specification and drawings are to be considered illustrative rather than restrictive.
Claims
1. A method comprising: At the server computer, a plurality of content elements are received from multiple content sources via corresponding content messages, each content message including an associated content element of the plurality of content elements; Generate a first content set including the first plurality of content elements and at least a first advertisement element; Receive a first request for the first content set from the first client device; Send the first content set to the first client device; The first client device receives first display timing data associated with a first display time of the first plurality of content elements and a second display time of the first advertising element, wherein the first display time and the second display time correspond to the actual display time of the first plurality of content elements and the first advertising element, wherein the actual display time of the first plurality of content elements and the first advertising element is different from the expected display time of the first plurality of content elements and the first advertising element by skipping user input detection of at least a portion of the first plurality of content elements and the first advertising element; as well as The presentation order of a second set of content, comprising a plurality of second content elements and one or more second ad elements, is determined based on first display timing data, a ratio of first content display time to first ad display time determined based on the first display timing data compared to a threshold target, and a predefined maximum number of consecutive ad element combinations, wherein the presentation order is dynamically adjusted based on a comparison of the ratio of first content display time to first ad display time with the threshold target. The second plurality of content elements includes a sequential presentation group of identified associated content elements to prevent interruption by advertising elements, and The dynamically adjusted presentation order places at least one second advertising element before or after the consecutive presentation group without interrupting the display of content elements within the consecutive presentation group.
2. The method according to claim 1, further comprising: The second content set from the server computer is sent to the first client device.
3. The method according to claim 2, further comprising: Determine from the first display time data that the ratio of the first content display time to the first advertisement display time is higher than the threshold target; as well as Move the second ad element to an earlier position in the presentation order used for the second content set.
4. The method of claim 2, further comprising: Determine from the first display time data that the ratio of the first content display time to the first advertisement display time is higher than the threshold target; as well as The third ad element is scheduled to be displayed directly after the second ad element.
5. The method of claim 1, further comprising: Adjust the number of ad elements for each content element in the second content set.
6. The method of claim 5, further comprising: After adjusting the presentation order, the second content set is sent to the first client device; Receive second display timing data associated with the display of the second plurality of content elements and the second advertising element from the first client device; as well as The second presentation order for the third content set is adjusted based on the second display timing data.
7. The method of claim 6, further comprising: The third content set is selected from multiple content sets, at least in part, based on the second display timing data.
8. The method of claim 1, further comprising: The first content set is sent from the server computer to multiple client systems; Receive associated first display time data from each of the plurality of client systems; as well as Based on the associated first display time data from the plurality of clients, the baseline presentation order for the first content set is adjusted.
9. The method of claim 8, further comprising: The associated first display time data is sent from the server computer to the operator device; as well as Receive a set of display sequence data from the operator device; The baseline presentation order for the first content set is adjusted using at least part of the set of display order data from the operator's device.
10. A server computer, comprising: The memory is configured to store a first plurality of content elements received from a plurality of content sources from a plurality of client devices via corresponding content messages, each content message including an associated content element of the first plurality of content elements; One or more processors, coupled to the memory and configured to perform operations including: Generate a first content set including the first plurality of content elements and at least a first advertisement element; Process a first request from a first client device for the first content set; Send the first content set to the first client device; The first client device receives first display timing data associated with a first display time of the first plurality of content elements and a second display time of the first advertising element, wherein the first display time and the second display time correspond to the actual display time of the first plurality of content elements and the first advertising element, wherein the actual display time of the first plurality of content elements and the first advertising element is different from the expected display time of the first plurality of content elements and the first advertising element by skipping user input detection of at least a portion of the first plurality of content elements and the first advertising element; as well as The presentation order of a second set of content, comprising a plurality of second content elements and one or more second ad elements, is determined based on first display timing data, a ratio of first content display time to first ad display time determined based on the first display timing data compared to a threshold target, and a predefined maximum number of consecutive ad element combinations, wherein the presentation order is dynamically adjusted based on a comparison of the ratio of first content display time to first ad display time with the threshold target. The second plurality of content elements includes a sequential presentation group of identified associated content elements to prevent interruption by advertising elements, and The dynamically adjusted presentation order places at least one second advertising element before or after the consecutive presentation group without interrupting the display of content elements within the consecutive presentation group.
11. The apparatus of claim 10, wherein the one or more processors are further configured to perform operations including: The second content set from the server computer is sent to the first client device.
12. The apparatus of claim 11, wherein the one or more processors are further configured to perform operations including: Determine from the first display time data that the ratio of the first content display time to the first advertisement display time is higher than the threshold target; and Move the second ad element to an earlier position in the presentation order used for the second content set.
13. The apparatus of claim 11, wherein the one or more processors are further configured to perform operations including: Determine from the first display time data that the ratio of the first content display time to the first advertisement display time is higher than the threshold target; and Based on the determination that the ratio of the first content display time to the first advertisement display time is greater than the threshold target, the third advertisement element is directly scheduled for display after the second advertisement element.
14. The apparatus of claim 10, wherein the one or more processors are further configured to perform operations including: Adjust the number of ad elements for each content element in the second content set.
15. The apparatus of claim 13, wherein the one or more processors are further configured to perform operations including: After adjusting the presentation order, the second content set is sent to the first client device; Receive second display timing data associated with the display of the second plurality of content elements and the second advertisement element from the first client device; and The second presentation order for the third content set is adjusted based on the second display timing data.
16. The apparatus of claim 15, wherein the one or more processors are further configured to perform operations including: The third content set is selected from multiple content sets, at least in part, based on the second display timing data.
17. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a server computer, cause the server computer to perform a method comprising: At the server computer, a plurality of content elements are received from multiple content sources via corresponding content messages, each content message including an associated content element of the plurality of content elements; Generate a first content set including the first plurality of content elements and at least a first advertisement element; Receive a first request for the first content set from the first client device; Send the first content set to the first client device; The first client device receives first display timing data associated with a first display time of the first plurality of content elements and a second display time of the first advertising element, wherein the first display time and the second display time correspond to the actual display time of the first plurality of content elements and the first advertising element, wherein the actual display time of the first plurality of content elements and the first advertising element is different from the expected display time of the first plurality of content elements and the first advertising element by skipping user input detection of at least a portion of the first plurality of content elements and the first advertising element; as well as The presentation order of a second set of content, comprising a plurality of second content elements and one or more second ad elements, is determined based on first display timing data, a ratio of first content display time to first ad display time determined based on the first display timing data compared to a threshold target, and a predefined maximum number of consecutive ad element combinations, wherein the presentation order is dynamically adjusted based on a comparison of the ratio of first content display time to first ad display time with the threshold target. The second plurality of content elements includes a sequential presentation group of identified associated content elements to prevent interruption by advertising elements, and The dynamically adjusted presentation order places at least one second advertising element before or after the consecutive presentation group without interrupting the display of content elements within the consecutive presentation group.
18. The non-transitory computer-readable medium of claim 17, further comprising: The first content set is sent from the server computer to multiple client systems; Receive associated first display time data from each of the plurality of client systems; as well as Based on the associated first display time data from the plurality of clients, the baseline presentation order for the second content set is adjusted.