This disclosure is generally directed to systems and methods for displaying data within an application or environment. More specifically, this disclosure relates to systems and methods for presenting social or other media in a media stream.
Many mobile electronic communication devices (including cellular phones, tablet computers, smart phones, and other handheld devices capable of communicating with a server) are capable of operating video game software, other game software, and application software. Most modern mobile electronic communication devices also allow users to download, purchase, or otherwise install new software (sometimes called “apps”). As mobile electronic communication device technology has advanced, the software available for these devices has become more robust. For example, most current mobile electronic communication devices include high-resolution color screens that can support games with detailed color graphics, and more content may generally fit onto these displays than on screens of older mobile devices. As a result, using application software on mobile electronic communication devices has become more user-friendly and efficient, and playing games on such devices has become a popular mode of entertainment.
In addition to the increased popularity of software on mobile electronic communication devices, social media networks and media publications, which may be designed for promotion through social media networks, have also experienced a surge of popularity in recent years. For example, social media networks, such as Facebook, Twitter, lnstagram, Tumblr, LinkedIn, Vine, and Pinterest, are presently popular on the Internet. Likewise, publications for news, stocks, entertainment, and sports exist on the Internet, and several publications have been adapted for circulation and disbursement through social media networks or through various news feed mechanisms (such as, for example, RSS).
Despite the popularity of mobile application software and social networking, there is not currently a system or method for providing a way for a user to view and/or access a social media and/or other media stream within a third-party mobile application environment. For example, a user may want to be able to read updates from various social media networks without closing or switching out of a mobile game application. Switching between applications, screens, and/or windows to access various interfaces and information sources can be tedious and time consuming, and it also requires a user to exit or switch out of, or potentially minimize, a mobile application in order to access and view social and other media streams or information.
The recent surge in technical capabilities of mobile electronic communication devices has also spawned attractive new promotional possibilities. Because an increasingly large number of people worldwide own mobile electronic communication devices, many third parties may wish to advertise within the screen of a mobile electronic communication device. For example, when a user plays a game on a mobile electronic communication device, the user's full attention is generally directed to the screen of the mobile electronic communication device. Therefore, providing in-game advertising space in the palm of the user's hand is an attractive proposition for both buyers and sellers of the space. One problem with providing advertising space in the palm of a user's hand, however, is that in-game advertising often requires full use of the screen of the mobile electronic communication device. Therefore, a user is forced to switch between the game and other applications in order to, for example, access and view social and other media streams or information. Valuable advertising time is lost during this time when the user's full attention is diverted from the screen displaying the advertisements.
Further, advertisements within an application, such as game software, on a mobile electronic communication device may be presented in various ways. For example, the background of a game might contain a permanent or static advertisement for a third party. In most cases, this advertisement would generate revenue for the maker of the game, while also serving as a valuable promotional opportunity for the third party. However, such advertisements may lack the adaptability and customizability to be able to target particular users, as well as to be changed to reflect, for example, a different third party and/or an updated advertisement. Additionally, many advertisements are presently displayed as banner ads within mobile application software. Such advertisements may be time-cycled in order to display multiple advertisements in the same space over an elapsed period of time. Banner ads are often general in nature and are not targeted toward a specific audience. For example, such advertisements do not take a user's social media activity, mobile game activity, or device usage information into account when selecting the most applicable and/or effective advertisements to display to a particular user.
It is the object of the present disclosure to provide an integrated social media and other media stream, which may include advertisements, into the display of a mobile application to allow a user to simultaneously use the third party application and view and interact with social media. It is an additional object of the present disclosure to provide systems and methods for adaptively selecting social and other media posts as well as advertisements for display to a particular user.
In the following description, certain aspects and embodiments of the present disclosure will become evident. It should be understood that the disclosure, in its broadest sense, could be practiced without having one or more features of these aspects and embodiments. It should also be understood that these aspects and embodiments are merely exemplary.
The present disclosure provides improved systems and methods for incorporating media streaming and presentation in a mobile device environment. More specifically, the present disclosure provides systems and methods for incorporating media feed streaming and presentation as an active “add-on” to an application environment that is generally intended for purposes other than media feed streaming and presentation. For example, consistent with the disclosed embodiments, systems and methods for displaying a social and/or other media stream within a game environment are disclosed. As used in the present disclosure, media streaming refers to relaying media information or data over a computer network. Also as used in the present disclosure, media presentation refers to the display of streamed media information or data. In one example, certain disclosed embodiments include systems and processes that may allow an aggregated social and other media stream or presentation to be displayed within an application environment, such as, for example, game software.
The disclosed embodiments may provide advantages to both users and mobile application providers. For example, aspects of the disclosed embodiments may provide a mobile device user with a more efficient way to both use mobile applications and to stay connected to social and other media. For the mobile application provider, there may be a financial benefit, such as, through increased advertising revenue, for providing a user with a more efficient way to access both the application and social and other media. Users will be able to remain in the application interface, and subjected to potential advertising displayed therein, for longer periods of time since they will not be forced to close or otherwise divert attention from the application (and the advertisements) when checking their social and other media. Users may also be willing to pay or pay more for a game or other application having such a social and other media interface, including being willing to pay or pay more for a game or other application having such a social and other media interface that does not include advertisements.
Other aspects are set forth below in this disclosure. For example, a method for displaying data is disclosed. The method may include displaying an application on a mobile electronic communication device. The method may further include contacting at least one media server configured to store media data and receiving, at the mobile electronic communication device, first available media data from the at least one media server. The method may further include displaying the received available media data in a media stream within the application. The method may also include contacting, after a predetermined amount of time, the at least one media server and receiving, in response to the contacting, at the mobile electronic communication device, second available media data from the at least one media server. The method may further include displaying the second available media data in the media stream.
The disclosed exemplary embodiments may also include a method for displaying data, including displaying a mobile electronic communication device environment on a mobile electronic communication device. The method may also include contacting at least one media server configured to store media data and receiving, at the mobile electronic communication device, first available media data from the at least one media server. The method may further include displaying the received first available media data in a media stream within the displayed environment. The method may also include contacting, after a predetermined amount of time, the at least one media server and receiving, in response to the contacting, at the mobile electronic communication device, second available media data from the at least one media server. The method may also include displaying the second available media data.
In accordance with other aspects of the disclosure a system for displaying data is disclosed. The system may be configured to display an application on a mobile electronic communication device. The system may further be configured to contact at least one media server configured to store media data and receiving, at the mobile electronic communication device, first available media data from the at least one media server. The system may further be configured to display the received available media data in a media stream within the application. The system may also be configured to contact, after a predetermined amount of time, the at least one media server and receiving, in response to the contacting, at the mobile electronic communication device, second available media data from the at least one media server. The system may further be configured to display the second available media data in the media stream.
In accordance with some embodiments of the present disclosure, a computer-readable medium is disclosed that stores instructions and that, when executed by one or more processor(s), causes the processor(s) to perform processes consistent with disclosed embodiments.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only. They are not restrictive of the disclosed embodiments, as claimed. Further, it is to be understood that the terms “new,” “old,” “older,” and similar relational terms, in relation to media data are used to facilitate the description only, and are not limiting of the disclosure. For example, according to some aspects, new may refer to data received at a mobile electronic communication device after the old data. It does not necessarily temporally limit the generation or transmission of the new or old media data. New media data and old media data (or older media data) may also be generally referred to as first media data and second media data, respectively. For example, first media data may be received prior to the second media data. However, these terms are not intended to temporally limit the generation or transmission of the media data.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments and, together with the description, serve to explain the disclosed principles. In the drawings:
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings and disclosed herein. Wherever convenient, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
It is to be understood that the terms “new,” “old,” “older,” and similar relational terms, in relation to media data are used to facilitate the description only, and are not limiting of the disclosure. For example, according to some aspects, new may refer to data received at a mobile electronic communication device after the old media data. According to some embodiments, new media data may refer to media data with a received timestamp that occurred at a later time than the data already received. It does not necessarily temporally limit the generation or transmission of the new or old media data. According to some embodiments, new media data and old media data or older media data) may also be generally referred to as first media data and second media data, respectively. For example, first media data may be received prior to the second media data. However, these terms are not intended to temporally limit the generation or transmission of the media data.
Exemplary games and game software for use with exemplary embodiments of the present disclosure may include solitaire, blackjack, mahjong, minesweeper, and dominoes, as well as video-style games (such as, for example, race car driving games, darts games, and single-player or multi-player roleplaying games), other puzzle games, other card-based games, other casino-style games, “Sandbox” games, and any combination of these. Although certain exemplary embodiments may be described in relation to games and game software, the present disclosure is not limited to games and game software. The systems, methods, and principles of this disclosure may be implemented to any type of mobile application or device environment, such as, for example, blog readers, e-readers, web browsers, email, stock-trading or monitoring applications, news-reading applications, message applications, weather applications, shopping applications, “home” screens, operating system windows, video/audio media viewers (such as, for example, for movies, webclips, music videos, television programs, etc.), and/or productivity applications (such as, for example, word processing, spreadsheet, presentation, and/or calendaring applications), as will be appreciated by those of ordinary skill in the art.
Although certain exemplary embodiments may be described in relation to mobile or handheld electronic devices, the present disclosure is not limited to mobile or handheld electronic devices, but may be applicable to many different types of electronic devices. The systems, methods, and principles of this disclosure may be implemented to any type of electronic device capable of displaying social media and/or other media stream or presentation within or alongside application software, such as, for example, gaming (gambling) machines (such as, for example, video slot and video poker machines), internet television interface boxes (such as, for example, those known by the names and/or manufactured by AppleTV, Amazon Fire TV, Boxee, Google TV, Google Chromecast, TiVo, and Roku), and cable television interface or television converter boxes (such as, for example, those manufactured by Motorola, Scientific Atlanta, Cisco, Jerrold, General Instruments, and Pace for use by or with cable and other television providers such as, for example, Comcast, Time Warner, AT&T, Charter, DirectTV, and Dish), as will be appreciated by those of ordinary skill in the art.
Additionally, certain embodiments may also be implemented within an operating system operating on a user device. For example, it may be desirable to provide a built-in media stream or presentation within an operating system. In such an embodiment, the operating system itself creates, handles, and displays the media stream and/or presentation, without the need for the user to install, execute, or run a separate program.
Additionally, certain embodiments may also be implemented within a windowed device. For example, some user devices may be operating software that allows different applications to be open in different windows or zones of the viewable area. Embodiments consistent with the present disclosure may be implemented within each window or zone, which may enable a user to access the media stream or presentation without needing to open, close, or minimize windows or zones on the device. For example, if certain embodiments are implemented within an operating system, it may be desirable to further implement the media stream and presentation, consistent with disclosed embodiments, within each window or zone running within the operating system. In such examples, the stream presentation may be provided in a separate window, or in a specifically designated and/or dedicated portion of the screen. In certain embodiments, when visible or when minimized, an icon representing the stream may be visible on the screen, for example, along the bottom and on top of other open applications (such as, for example, in a toolbar, taskbar, notification panel or zone, or system icon/information panel or zone). In such instances, a user may open, minimize, maximize, and/or make changes to the stream window by selecting an icon visible on the screen.
As used herein, a server includes any remote system capable of receiving communication from a handheld device over a network, such as, for example, the Internet, intranet, local area network, wide area network, telecommunications network, and/or Ethernet.
According to some embodiments, the systems or methods disclosed may allow a software application company and/or provider, such as for mobile game software, to provide updated or aggregated content, including social media posts, other media posts, and/or advertisements, to a mobile electronic communication device for use in game software that operates on the mobile electronic communication device. The game may be more attractive to potential users and may provide additional revenue for the game provider, through an increase in user downloads, targeted advertisements, paid subscriptions or purchases of the game application (and any various in-app purchases), and advertising revenue spurred by the increase in users.
The game may be more attractive to third-party advertisers and provide promotional revenue for the game provider because it allows the user to consume social media without requiring the user to divert their eyes from the application in order to access social media. Certain embodiments may provide an avenue for selling time blocks of in-game advertising. Third parties may now have the option to advertise only to selected users, or only periodically, rather than permanently, within a game for a mobile electronic communication device. This flexibility may allow the negotiation of promotional contracts that involve less guess-work with respect to the placing of advertisements or virtual products within a game on a mobile electronic communication device. Further, an embodiment herein also provides promotional opportunities for third parties that could not previously afford to place advertisements within a game for a mobile electronic communication device. For example, while purchasing a promotional spot that lasts the lifetime of the game or that is shown to every viewer may not be feasible, it may be much cheaper to purchase a smaller block of time or an advertisement slot, including a slot for a specific target audience.
A user 110 may operate user device 120 to operate mobile software applications. User device 120 may be any form of computing or mobile electronic communication device. For example, user device 120 may be a cellular phone (iPhone®, Android phone, Windows® phone), a tablet computer (iPad®, Android Tablet, Microsoft Surface™, etc.), or a laptop, desktop, or portable computer. User device 120 may be capable of accessing network 130. Further, user device 120 may incorporate one or more display screens. For example, certain user devices 120 may implement a single display, whereas other user devices 120 may include a plurality of displays that work or operate in conjunction. In certain embodiments, user device 120 may be capable of caching information in memory or in permanent storage including but not limited to a database, as discussed in detail with regard to
Network 130 may include, for example, the Internet, a private data network, a virtual private network using a public network, a WiFi network, a LAN or WAN network, a Bluetooth network, and/or other suitable connections that may enable information exchange. Alternatively or in addition, network 130 may include a cellular phone or data network, which may be provided by cellular phone service provider, such as, for example, Verizon, AT&T, Sprint, T-Mobile, or Metro PCS in the United States. In some embodiments, user device 110 may connect to an interface (not shown) that may, in turn, pass a request for data information to provider server 140 and/or third party server(s) 150. The interface may be part of provider server 140 or a separate device, depending on the embodiment. The interface may also include its own server and/or specialized firewall hardware. In addition, provider server 140 may actually be a plurality of servers.
Provider server 140 may be the server maintained and operated by the video game provider (not shown). The game provider may be the party who maintains, through server 140, for example, a web-based or application-based environment. The game provider may also be the party who provides a mobile application of a game to users. The game provider may provide the user with a mobile application through use of an online, download function. The provider may make the mobile application available for download by a user by uploading it to a web application store such as the Apple App Store, the GooglePlay™ store, the Apps for Windows store, the Amazon Appstore, or other online application provider website. User device 120 may, for example, download a mobile game application. It may alternatively, connect to a web-hosted game application though network 130.
In certain embodiments of the present disclosure, user device 120 may maintain a continuous link with provider server 140 while the game is operating. A continuous link may allow provider server 140 to continuously track the user's game play. In another embodiment, no continuous link exists, but provider server 140 may still track a user's game play. For example, user device 120 may periodically access provider server 140 to obtain updated information. Additionally, user device 120 may track or gather, and periodically or otherwise at a predetermined time or event, report game play statistics and/or device use statistics to provider server 140. Provider server 140 may gather the data provided by user device 140 and store the gathered data, for example, in memory 230 or in database 240. Reporting user statistics is discussed in further exemplary detail with respect to
System 100 may additionally include one or more third party servers 150. Third party servers 150 may be operated by entities other than user 110 and the video game provider. For example, third party servers 150 may be operated by social media entities (such as, for example, Facebook, Instagram, Twitter, Tumblr, LinkedIn, Vine, Orkut, Renren, Sina, Weibo, and Pinterest), other media entities (such as, for example, New York Times, Huffington Post, Buzzfeed, FiveThirtyEight, Vox, and ESPN), and/or advertisers. Third party servers 150 may store social and/or other media data relevant to user 110. In some embodiments, third party servers 150 may transmit social and/or other media data, via network 130, to user device 120. User 110 may then access social and/or other media data on user device 120. In alternative embodiments, third party servers 150 may connect to provider server 140 via network 130. Third party servers 150 may then transmit social and/or other media data relevant to a particular user 110 to provider server 140. Provider server 140 may then store the media data, and/or transmit it, via network 130, to user device 120.
In some embodiments, the third party server or servers may be managed by an entity that compiles, aggregates, or sorts at least a portion of, or in some cases all of, the media stream data or information. For example, the entity may use filters, key words, or algorithms to separate posts or media data into categories or topics, such as by content, interest, or key words, or may do so manually. Data or information from one or more of the categories or topics (including related advertisements) may then be provided to a user via the media stream. The data or information shown in the media stream may be separated into one of the sorted or compiled categories, for example, by selecting a category or topic in the media stream or in settings for the media stream. Sample categories or topics include, but are not limited to, news, science, technology, finance, books, stocks, sports, shopping, local events (which may linked either to a user's actual location such as by GPS or a “home” or other location defined by the user), travel, style and fashion, food and drink, cars, health and fitness, celebrity news, celebrity gossip, politics, TV and movies, movies and entertainment, and weather. For example, a user may select a “news” category, and the media stream will display information, media data, or posts related to news, such as media data from the New York Times or other newspapers, media data from news agencies such as CNN, and/or posts, such as Twitter or Facebook posts, that contain or link to news articles or videos. When more than one category is selected by a user, the media stream may be populated with posts or media data from each of the selected categories.
Processor 210 may include one or more known processing devices, such as, for example, a microprocessor from the Pentium™ or Xeon™ family manufactured by Intel™, the Turion™ family manufactured by AMD™, or any of various processors manufactured by Sun Microsystems or Qualcomm, such as Snapdragon processors. Processor 210 may constitute a single-core or multiple-core processor that executes parallel processes simultaneously. For example, processor 210 may be a single-core processor configured with virtual processing technologies. In certain embodiments, processor 210 may use logical processors to simultaneously execute and control multiple processes. Processor 210 may implement virtual machine technologies, or other known technologies to provide the ability to execute, control, run, manipulate, store, etc. multiple software processes, applications, programs, etc. In another embodiment, processor 210 may include a multiple-core processor arrangement (e.g., dual, quad core, etc.) configured to provide parallel processing functionalities to allow computing system 200 to execute multiple processes simultaneously. One of ordinary skill in the art would understand that other types of processor arrangements could be implemented that provide for the capabilities disclosed herein. The disclosed embodiments are not limited to any type of processor(s) configured in computing system 200.
Memory 230 may include one or more storage devices configured to store instructions used by processor 210 to perform functions related to the disclosed embodiments. For example, memory 230 may be configured with one or more software instructions, such as program(s) that may perform one or more operations when executed by processor 210. The disclosed embodiments are not limited to separate programs or computers configured to perform dedicated tasks. For example, memory 230 may include a single program that performs the functions of computing system 200, or could comprise multiple programs. Additionally, processor 210 may execute one or more programs located remotely from computing system 200. For example, user device 110, may, via computing system 200 (or variants thereof), access one or more remote programs that, when executed, perform functions related to certain disclosed embodiments. Processor 210 may further execute one or more programs located in database 240. In some embodiments, programs may be stored in an external storage device, such as a cloud server located outside of computing system 200, and processor 210 may execute programs remotely. It is understood that according to some embodiments processor 210 may include more than one processor that are each processor is configured to perform some of the steps described herein, such that together they perform the disclosed methods.
Programs executed by processor 210 may cause processor 210 to execute one or more processes related to providing a social and other media stream within a game interface as disclosed in the present embodiments.
Memory 230 may also store data that may reflect any type of information in any format that the system may use to perform operations consistent with the disclosed embodiments. For example, memory may store media data as received from third party servers 150. It may also store game-play statistics collected from user device 120. Additionally or alternatively, it may store device statistics about user device 120 itself (for example, phone number, GPS location, device type or model number, Apple IDFA, OpenUDID, MAC Address, whether on WiFi or cell tower, and wireless service provider or ISP). User statistics gathered from user device 120 may be stored in a user profile. Additionally, memory 230 may store user data such as, for example, geographic location, age, gender, type of games played, type of user device used, length of game play, in-app purchasing habits, win-loss ratio, time of day played, day of the week played, local weather, game personalization choices such as backgrounds and/or avatars, posts that have been expanded from the social and other media stream or presentation, or any other data relevant to the subject of the advertisement. Memory 230 may store instructions to enable processor 210 to execute one or more applications, such as game-play applications, data-processing applications, search-algorithm applications, and/or any other type of application or software. Alternatively, the instructions, application programs, etc., may be stored in an external storage (not shown) in communication with computing system 200 via network 130 or any other suitable network. Memory 230 may be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible (i.e., non-transitory) computer-readable medium.
The application programs may be executed by processor 210 to operate and display an application environment, consistent with the disclosed embodiments. In some embodiments, there may be a single application environment that contains both a base application plus media streaming and presentation systems. In other embodiments, the media streaming and presentation systems may be performed in a separate application that runs simultaneously with the base application. In other embodiments, the media streaming and presentation is split up between being a separate application and being part of the base application. For example, the media streaming system may be a separate application, while the media presentation system may be integrated into the base application. As a result, the user may be able to interact with both the application and the media stream at the same time, such as for example, playing a game while also having the option to interact with the media stream without disrupting the game, whether the media stream is in a separate application from the game or within the same application. In some embodiments, the game or other application may pause or suspend, and may display a message to the user when the user interacts with the media stream.
Memory 230 may include social media data 232. Social media data 232 may include information related to data received from various social media network providers. For example, social media data may include posts that user 110 would be able to access through their social networking accounts with various social network providers. Third party servers 150 may provide this information to provider server 140 via network 130. Provider server 140 may request data from third party servers 150, and transmit the data to user device 120 by provider server 140. Additionally or alternatively, social and other media data 132 may be transmitted to provider server 240 by user device 120. Alternatively social media data 232 may be stored in database 240 or in an external storage (not shown) in communication with computing system 200 via network 130 or any other suitable network.
Memory 230 may further include advertisement data 234. Advertisement data 234 may include information about particular advertisers who have purchased ad space with the game provider. For example, advertisement data 234 may include the actual advertisement (video, graphic, link, etc.) and/or a target profile. The target profile may include certain characteristics that the provider server may look for when choosing which users to display the advertisement. Target features may include, for example, location, phone type, game being played, social and other media networks used, whether the user has another specific game installed, whether the user has spent money in the game, how many times the user has viewed a particular advertisement, or any other data the provider server may have saved about a particular user 110. Advertisement data may additionally include advertiser account information, such as payment information, about the advertiser itself.
Memory 230 may further include other media data 236 which may additionally store data such as blog posts, news articles, stocks information, sports scores, weather information, television guides, celebrity news and gossip, posts from other players regarding the game currently being played, and/or videos that may be put in the social and other media stream or presentation. Other media data 236 may include data that user 110 has indicated, for example by clicking or selecting a button, that he or she wishes to view in his or her media stream or presentation. Additionally, other media data 236 may include data from default data sources that the game provider chooses to include in the media stream or presentation.
Processor 210 may analyze social media data 232 with reference to advertisement data 234. For example, processor 210 may analyze social media data 234 to determine if the related user possesses certain target features identified in advertisement data 234. Additionally, processor 210 may analyze certain social media data 232 to determine other social media posts that may be relevant to user 110. For example, processor 210 may analyze social media data 232 to determine trending topics contained therein. Processor 210 may then select additional social and other media posts that may also be relevant to and desired by the user.
Processor 210 may also analyze other media data 236 with reference to social media data 232. For example, processor 210 may analyze social media data 232 to determine if certain data stored in other media data 236 may be relevant to user 110. As discussed above, processor 210 may analyze social media data 232 to determine trending topics therein, and may then select other media data that may also be relevant and desired by the user for display to the user in the stream or presentation.
In some embodiments, processor 210 may analyze advertisement data 234, other media data 236, and/or social media data 232 into categories or topics. Data or information relevant or related to the categories or topics may be selected by the user and displayed in the media stream.
I/O devices 220 may be one or more device that is configured to allow data to be received and/or transmitted by computing system 200. I/O devices 220 may include one or more digital and/or analog communication devices that allow computing system 200 to communicate with other machines and devices, such as, for example, other components of exemplary system 100. For example, computing system 200 may include interface components, which may provide interfaces to one or more input devices, such as one or more keyboards, mouse devices, touchscreen interface, and the like, which may enable computing system 200 to receive input from an operator (not shown).
Computing system 200 may also contain one or more database(s) 240. Alternatively, computing system 200 may be communicatively connected to one or more database(s) 240. Computing system 200 may be communicatively connected to database(s) 240 through network 140. Database 240 may include one or more memory devices that store information and are accessed and/or managed through computing system 200. By way of example, database(s) 240 may include Oracle™ databases, Sybase™ databases, or other relational databases or non-relational databases, such as Hadoop sequence files, HBase, or Cassandra. Additionally or alternatively, computing system 200 may implement an SQL server database or SQL server database client. The databases or other files may include, for example, data and information related to the source and destination of a network request, the data contained in the request, etc. Systems and methods of disclosed embodiments, however, are not limited to separate databases. Database 240 may include computing components (e.g., database management system, database server, etc.) configured to receive and process requests for data stored in memory devices of database(s) 240 and to provide data from database 240.
Further, although sometimes discussed here in relation to provider server 140, it should be understood that variations of computing system 200 may be used by other components of system 100, including, for example, user device 120 and/or third party servers 150. Computing system 200 may be a single server or may be configured as a distributed computer system including multiple servers or computers that interoperate to perform one or more of the processes and functionalities associated with the disclosed embodiments.
In some embodiments, at least one computing device in user device 120 may include the same or similar configuration and/or components of computing system 200. Computing system 200 when implemented in user device 120 may include hardware and/or software installed therein for performing methods and processes disclosed herein. Computing system 200 may, when implemented on user device 120, allow user 110 to influence the content displayed in their media stream or presentation. For example, user 110 may be able to select which social media networks, other media information or posts, and advertisements they wish to see displayed. In effect, user 110 may be able to directly influence the advertisement data 234, other media data 236, and social media data 232 stored in memory 230.
In some embodiments, as user 110 interacts with a game and/or application, the media stream and/or presentation may be updated or modified to reflect the interaction. For example, if user 110 does something positive or noteworthy in a game (for example, in solitaire, moving an ace to the foundation or playing a special gold-backed card), provider server 140 or user device 120 may be configured to display to user 110, or to prompt user device 120 to display to user 110, a congratulatory message in the stream. The displayed message may be an application status. An application status may be, for example, a positive or noteworthy event within the game or application. For example, an application status may include, completing a level, unlocking a reward or bonus, defeating a monster, winning a game, paying a 100th game, etc. Additionally, provider server 140 or user device 120 may present user 110 with a reward, feature update, and/or additional/modified game or application functionality (for example, a coin bonus or extra game play levels). Provider server 140 or user device 120 may also offer user 110 such a reward if user 110 selects, taps, or otherwise interacts with that post or message in the stream. Additionally or alternatively, if user 110 does something positive or noteworthy in the game, such as win or complete a level, user device 120 or provider server 140 may be configured to prompt user 110 to post the details of the win to one or more of the user's social network(s) (such as Facebook or Twitter). According to some embodiments, the details may be posted to the user's social network(s) after user device 120 receives an indication that the user wishes to post to the social network(s), such as through the user tapping button on a screen in response to the prompt. The details of the post by the user may be an application status.
In some embodiments, the prompt may appear in a popup window or slide-out window, or may appear in the media stream itself. The prompt may also appear as an interactive message. For example, when the prompt appears in the media stream (or a slide-out or popup window), it may provide a message to the user and may also provide suggestions prompting the user to post information, such as an application status, to one or more social networks. When the user selects the post or one of the icons, the application status or information may be automatically posted to a social media network corresponding to the selected icon when the user is logged into the network. When a user is not logged into the selected network, selecting the icon may open a login window for the user to login to the network so that the status can be posted.
In some embodiments, user 110 may also be able to interact with others (e.g., their friends) that are also playing the game. For example, if a user's social network connection (such as a Facebook “friend” or “followed” Twitter feed) posts to Facebook or Twitter, it may include a hashtag or other social media topic/trend indicator referencing a game played by user 110 or referencing a game that user 110 may be interested in playing. User 110 may select the post containing the hashtag or indicator, the game application will receive that information, and the game application will allow the user to play the referenced game. In some embodiments, such a post may also contain metadata or other hidden information that allows the game to receive additional information not apparent to the user and reflect a particular configuration, for example, a particular deal of cards to play in blackjack. In some embodiments, user 110 may receive a reward, feature update, and/or additional/modified game or application functionality (e.g., bonus coins or points) for selecting or otherwise interacting with the post.
In some embodiments, the media stream and/or presentation may present user 110 with information that might be used by the same or a different application program. For example, if a user is playing a game, and one of the user's social network connections posts to Facebook or Twitter including a hashtag or other social media topic/trend indicator referencing an event that user may wish to attend, user 110 may select the post containing the hashtag or indicator, the user's calendar application will receive that information, and the calendar application will place the event on the user's calendar. In some embodiments, such a post may also contain metadata or other hidden information that allows the application to receive additional information not apparent to the user and reflect a particular configuration, for example, the time, location, directions, details, and/or other attendees for the event.
At step 320, user device 120 may contact provider server 140 to check for social media data. In other embodiments, user device 120 may communicate with third party servers 150 directly, without going through provider server 140. Additionally or alternatively, provider server 140 or user device 120 may check contact third party servers 150 to check for social media data at this step. If social media data is found, either user device 120 or provider server 140 may receive the social media data from the source (step 330). Once social media data is received, for example, by provider server 140 or user device 120, it may be stored in memory 230 and/or in social media data 232. If social media data is received by provider server 140, it may then be transmitted to user device 120.
Social and other media data 232 may be displayed to user 110, via user device 120, at step 340. User device 120 may then display the data in a social media stream or presentation. The social media stream or presentation may combine social media data from a plurality of various social media networks. Additionally, user device 120 may display advertisements, articles, publications, and selected posts, determined by processor 210 as relevant to user 110 in the social and other media stream or presentation. User device 110 may display the social media stream or presentation within the video game interface. User device 110 may display the social media stream directly within the game play, so a user may view both the game and the social media stream or presentation without opening additional applications or windows. Therefore, the user will not have to close or minimize the game to view and interact with information within the social and other media stream or presentation. For example, the user may interact with the media stream and the application simultaneously, such that the user can interact with the media stream without interrupting or suspending the use or processing of the application, allowing the user to interact with either the application or the media stream at a given time. In this way, simultaneous interaction may allow the user to use the application (e.g., to play a game, watch a movie, or read a book) while the media stream updates or otherwise provides content or information to the user. If the user chooses to use or interact with the media stream (e.g., to “like” a post or click on a link within a Twitter feed to open a web browser), the application may maintain its state for the duration of the interaction with the media stream. In some embodiments, when the user interacts with the media stream, the application may suspend/pause, if needed, for the duration of the interaction. Once the user concludes the interaction with or based upon the media stream (e.g., by submitting a comment or “tweet” or by closing a browser window), the application is then ready to resume use and may automatically un-suspend or un-pause. According to some embodiments, simultaneous access allows the user to switch back and forth between interacting with the application and with the media stream (or with a window opened by the user's interaction with the media stream).
Provider server 140 or user device 120 may, periodically, continuously, or manually based upon user control, update the social media stream or presentation to incorporate new posts. For example, at step 350, user device 120 may contact provider server 140 to check for new social media data. In certain embodiments, user device 120 may communicate with third party servers 150 directly. Additionally or alternatively, provider server 140 may contact third party servers 150 to check for new social media data at this step. If new social media data is found, either user device 120 or provider server 140 may receive the new social media data from the source (step 360). Once social media data is received, for example, by provider server 140, it may be stored in memory 230 and/or in social media data 232. Again, if new social media data is received by provider server 140, it may then be transmitted to user device 120. Once the new social media data is received, user device 120 may then update the social media stream or presentation to display the new social media data to user 110. For example, as discussed and supported elsewhere herein, the media stream may appear as a list of media data, and may be updated such that the new media data appears at the top of the stream. Previous media data may progress down the list as new media data is added. The media stream thereby creates a sequential list of media data that is updated as new media data is received. The media data in the stream may be sorted by, for example, time received, time of the media data event, priority, importance, popularity, financial value, or other preferences. User device 120 may poll for updates, receive “pushed” updates, or may check for updates at an interval of time set by provider server 140 or by user 110. For example, if the new stream data check is triggered based upon user control, user 110 may indicate that he or she wishes to check for or poll new updates by scrolling down on the social and other media stream. If user 110 scrolls to or near the end of the oldest data that has been acquired, a check for older data may be triggered. Older posts may be accessed, for example, with or without bound. Older posts may be accessed, for example, by scrolling/paging back in the media stream, or by other means. Caching of posts to the file system or a database on user device 120, provider server 140, or some combination of the two. In certain embodiments, caching posts may be incorporated in order to avoid unbounded memory use. Checks for new and old data could happen simultaneously if the stream is configured to poll for new media data periodically. Check for old data may also occur if the user scrolls towards the oldest data in the stream and triggers a check for old data. According to some embodiments, updates may also be received, for example, by “pushing” data from other devices, such as servers. Push updates may not require the user device to contact the provider servers.
In certain embodiments, updating the media stream may only occur manually. For example, a user may indicate, by interfacing with user device 120 that he wishes to have the media stream updated. In some embodiments, updating the media stream may only occur on a predetermined interval. In some embodiments, updating the media stream may occur based on a combination of automated updates on a predetermined interval and manual updates to the media stream. For example, a predetermined interval may be set, but the user may still have an option to update the media stream manually, such as by a refresh button displayed on user device 120.
Further, it should be noted that although the steps of the exemplary flowchart in
If third party servers 150 indicate that they have social media data related to the particular client 110, they may then transmit the relevant social media data to provider server 140. In some embodiments, third party server 150 may transmit the relevant social data directly to user device 120, without going through server 140. In this way, provider server 140 or user device 120 may receive a plurality of social media data associated with various social media networks (step 420). In some embodiments, user 110 may indicate to provider server 140 which social media networks he or she would like to see in his or her social media stream or presentation. Provider server 140 may then only gather data from the third party servers 150 associated with the social networks the user has indicated.
At step 430, provider server 140 or user device 120 then combines the social media data into a single list. Because provider server 140 or user device 120 may be receiving social media data from a plurality of third party servers 150, processor 210 may organize and combine all the received data from the plurality of third party servers into a single comprehensive list of all data relevant to particular user 110. In some embodiments this list may be organized chronologically. The combining and organizing of social media data is discussed in detail with respect to
In certain embodiments each individual media stream or presentation may be color coded differently. For example, the Twitter media stream may be a different color than the Facebook media stream. Additionally, when displayed as a single media stream or presentation, posts from different media providers may be color coded based on the provider. For example, posts from Twitter may be a different color than posts from Facebook.
Additionally, provider server 140 or user device 120 may determine if there are duplicate posts. For example, the data received from third party servers 150 may contain the same post from multiple different servers 150. Provider server or user device 120 may conduct a comparison of the received data from each third party server 150 as the data is being combined. If provider server 140 or user device 120 contain the same post, that post may be displayed only once in the social or other media stream or presentation. For example, provider server 140 or user device 120 may eliminate duplicates from the social or other media stream or presentation.
Additionally or alternatively, provider service 140 or user device 120 may also determine if there are duplicate posts based on, for example, a user's multiple subscriptions to the same media channel. For example, a user 110 may subscribe through a social network, such as Facebook, to receive posts from a certain media source (e.g., New York Times). User 110 may also indicate within the application environment that they wish to receive media posts from the same media source (e.g., New York Times). Deduplication methods, as described above, may prevent the same post from the same media source from showing up in a user's social and other media stream or presentation multiple times. For example, provider server 140 or user device 120 may conduct a comparison of the various media source subscriptions. If provider server 140 or user device 120 contain multiple subscriptions to the same media source, posts from that source may only be displayed once in the social or other media stream or presentation. For example, provider server 140 or user device 120 may eliminate duplicates from the social or other media stream or presentation, and may allow the user to select a preference of from which media source the duplicate should be shown (e.g., from Facebook or from New York Times).
Further, it should be noted that although the steps of the exemplary flowchart in
At step 520, provider server 140 or user device 120 may sort the received social media data by the time it was posted. For example, social media posts contained in the received social media may include a timestamp. A timestamp may indicate the time at which the post was made on the social media network. Processor 210 may sort the social media data by organizing it chronologically by analyzing the timestamps on each post and ordering the posts accordingly.
In certain embodiments, social and other media posts may be sorted based on factors other than time. For example, social and other media data may be sorted based on popularity (e.g., “trending” topics) or relevance to a particular user 110. Further, in some embodiments, media providers may be able to pay more to have their posts and/or advertisements displayed at the top of the media stream or presentation. In some embodiments, the media stream may display data or information within categories or topics selected by a user, or may display data or information (including, for example, advertisements or social media posts) based on user-selected key words.
Additionally, as described in detail with reference to
At step 530, provider server 140 or user device 120 may compile the data into a single time-ordered list. Because each third party server 150 from which provider server 140 or user device 120 receives social media data may have a different stream velocity, or delay or lag in the posting and transmission of new social media data, there may be a delay between the sorting and compiling steps to ensure that all social media data from a given time period had been gathered and sorted before being displayed in the stream to user 110. For example, in some embodiments, receiving the social media data from a plurality of social media networks (step 510) may be a continuous process, and as social media data is continuously received, processor 110 may continuously sort the data by time posted (step 520). Then, periodically, processor 110 may compile the sorted social media data into a finalized, time-ordered list that user device 120 will then display to user 110. The final time-ordered list may be transmitted to user device 120 by provider server 140 after compilation.
Provider server 140 or user device 120 may further deal with different stream velocities when polling for older data by, for example, keeping a time-ordered list of incoming posts from each different media stream. Provider server 140 or user device 120 may, for example, receive different media streams from third party servers 150. Provider server 140 or user device 120 may then combine the data in chronological order as discussed above. In certain embodiments, provider server 140 or user device 120 may stop or pause combining the data from multiple media sources (e.g., third party servers 150) into the single list when one of the media sources runs out of data. Provider server 140 or user device 110 may buffer unmerged data from other media sources until the next time provider server 140 or user device 120 poll for old data. In some embodiments, provider server 140 or user device 120 may omit media sources with a sufficient buffer from the next old data poll when old data is polled for. This gives the streams that have extra data, such as those with lower stream velocities, a chance to consume extra data during the time-ordered merging process conducted by provider server 140 or user device 120, as described above, instead of continuously polling for additional data from the media sources and getting farther ahead.
In some embodiments, stream velocity has no effect on provider server 140 or user device 120 polling for new media data from the media sources (e.g., third party servers 150), whether user-triggered or periodically polled for. For example, all streams or media sources may poll for new media data simultaneously. For example, provider server 140 or user device 120 may simultaneously poll for new media data from all media sources simultaneously by communicating with third party servers 150 requesting all data from the time of the last data received for that particular stream or media source until the present. In some embodiments, received data from all sources may be merged into the time-ordered list and no buffering of new media data may be necessary to compensate for differing stream velocities.
Further, it should be noted that although the steps of the exemplary flowchart in
In certain embodiments, provider server 140 or user device 120 may request user data at certain time intervals which may be set by the game provider. Additionally, provider server 140 or user device 120 may have particular data points that it requests. For example, requested data may include geographic location, age, gender, type of games played, type of user device used, length of game play, in-app purchasing habits, win-loss ratio, time of day played, day of the week played, local weather, game personalization choices such as backgrounds and/or avatars, posts that have been expanded from the social and other media stream, or any other data relevant to the subject of the advertisement. These user data points may be stored on user device 120. After receiving the request for user data from provider server 140, user device 120 may check for responsive data (step 620). In certain embodiments, user device 120 may not receive a request for user data from provider server 140, but rather may check for the predetermined data to provider server 140 on certain time intervals without receiving a request. Checking for responsive data may include determining if new media data has been accumulated in the time since the last batch of user data was transmitted to provider server 140.
At step 640, if responsive user data was found in step 630, user device 120 may transfer user data to provider server 140. User device 120 may transmit the data via network 130. In certain embodiments, user device 120 may wait to transmit user data until a certain amount of new media data has accumulated. For example, user device 120 may wait to transmit game-play data regarding the user's game-play habits until the user has played the game for a certain length of time or a certain number of games. At step 650, provider server 140 may store the received user data. User data may be stored in memory 230. In certain embodiments, user data stored in memory 230 may be used to determine media posts relevant to user 110, or may be used to identify target features for advertising, as discussed in further detail with respect to
Further, it should be noted that although the steps of the exemplary flowchart in
At step 710, provider server 140 or user device 120 may receive advertising data. Advertising data may be transmitted to provider server 140 or user device 120 from various third party servers 150 that wish to have their advertisements displayed to users 110 that play or subscribe to the video game provider's games. Advertising data may include, for example, at least the advertisement and a target profile indicating at least one target feature for the target audience of the advertisement. Target features are identified from the advertising data at step 720. The target feature will indicate the type of user the advertiser is trying to target with the advertisement. For example, a target feature could be geographic location, age, gender, type of games played, type of user device used, length of game play, in-app purchasing habits, win-loss ratio, time of day played, day of the week played, local weather, game personalization choices such as backgrounds and/or avatars, posts that have been expanded from the social and other media stream, or any other data relevant to the subject of the advertisement.
Additionally or alternatively, advertising data including the target profile may be provided by provider server 140 or user device 120 to an advertising entity. The advertising entity may then determine an appropriate ad relevant to the particular user 110 based on the received information contained in the target profile. The advertising entity may then provide an appropriate ad they select to a particular user to server provider 140 or user device 120. Additionally, the advertising entity (e.g., a third party server 150), may provide a relevant advertisement directly to user device 120. In some embodiments, advertising may be independent of the gathering and receipt of any user demographic data.
At step 730, provider server 140 or user device 120 may analyze stored user data. User data may have been received across network 130 from user device 110, as discussed previously in relation to
Further, it should be noted that although the steps of the exemplary flowchart in
The ability to simultaneously interact with both the media stream and the application allows the user to continue to, for example, play a game, watch a video, or read articles while the media stream displays posts that the user can read, view, select, or interact with. It is understood that simultaneous access means that the user has the option to interact with either or both of the media stream or the application at a given time. In other words, the user can seamlessly switch between interacting with the media stream and the application without interrupting the operation of either program. As one example, the user may be playing a game and is also able to select a post from the media stream at the same time. When the user selects the media stream post, the game continues to operate and the user can continue to interact with the game. This simultaneous interaction may allow the user to use or interact with an application while the media stream updates or otherwise provides its content to the user, and may also allow the user to interact with the media stream while the application continues operating, such as by continuing to show a movie, processing information, or updating its state functions. According to some embodiments, simultaneous access allows the user to switch back and forth between interacting with the application and with the media stream (or, in some embodiments, with a window opened by the user's interaction with the media stream). For example, if the user is playing a game, such as black jack, the user may be selecting cards or moves during the game while the media stream continues to update its display of information and content; however, each of the posts in the media stream is available for selection by the user, and the user may click on the stream (e.g., to “like” a post) and then return to the game without interrupting the game. At a functional system level, the user device, such as, for example, a touch screen device, may be scanning for user interactions and will accept interactions in both the media stream portion of the display and in the application portion of the display.
In some embodiments, certain data may be displayed in the social and other media stream or presentation whether or not user 110 is logged into any social networks or otherwise selects for the data to be presented. For example, news content (e.g., New York Times, CNN, or Glamour) may be displayed in the social and other media stream or presentation with or without user 110 logging in the news content provider or otherwise selecting for information to be displayed or presented from the news content provider. Certain embodiments may allow this list of possible news content, along with information necessary to poll the news content sources for data (URLs, for example), to be transmitted from provider server 140 to user device 120. In certain embodiments, this list of news sources may be provided in a JSON file, XML file, or any other appropriate data format. The data may be stored, for example, in memory 230. In some embodiments, user device 120 may be further configured to query the identified news sources for data. In certain embodiments, user 110 may be able to individually toggle on and off or otherwise select whether or not each news source is presented in the media stream. Further, provider server 140 may be configured to dynamically update the listing of media sources that are available for the user to select, log in to, or otherwise choose for presentation in the media stream. In some embodiments, the JSON control may be dynamic and the media stream or presentation may offer new suggestions for stream content based on the previous selections of the user.
Once user 110 logs into one or more social networks, the log-in window may be replaced by the social and other media stream or presentation. For example,
In some embodiments, the user may be prompted to enroll in social media networks that provide feeds of which the user is not currently a member. For example, when a user is not logged in, sample posts from social media networks may be included in the media stream in order to provide the user with an idea of how the particular network works. The user may, for example, interact with these sample posts, for example, by clicking on them. The user may be prompted by the application or by the social media network to enroll in their service. In certain embodiments, the user may be prompted by the application to enroll in social media networks without requiring user interaction. For example, upon opening the application, the user may be prompted to enroll in one or more social media networks. If the user enrolls in the social media network's service, the user may, for example, select that particular social media network for display in their media feed upon logging in, as discussed in detail above. In certain embodiments, the user may be prompted to enroll in additional social media networks after logging in. For example, after logging in to one or more social media networks, the application may detect that the user has not logged in to other social media networks. The application may, for example, prompt the user to join these additional social media networks.
In certain embodiments, a “compact” view may not show the social and other media stream or presentation. For example, a badge, subtitle, or indicator may be displayed in order to indicate to the user that the social and other media stream or presentation is available for display but currently hidden.
In certain embodiments, a “full” view may include a social and other media stream or presentation that covers the entire screen of user device 120. For example, the game may be hidden from view completely. In some embodiments, the game may still be operating behind the social and other media stream or presentation. A user 110 may be able to shrink or minimize the social and other media stream or presentation in order to resume viewing and playing the game.
In some embodiments, the media stream operates to display a sequential list of media data, as discussed and supported elsewhere herein. For example, as shown in
In some embodiments, the media stream may overlay part of the application. For example, the media stream may overlay an edge portion of the application, such as the right edge or the left edge of the window or portion of viewing screen in which the application appears. Although the media stream may overlay the application, the stream does not significantly obscure or prevent interaction with the application itself. In some embodiments, the application may be dynamically resized such that the media stream does not overlay part of the application.
According to some embodiments, various combinations of overlays and resizing are possible. For example, a “compact” media stream may exist at the edge of or may overlay the application, but when a user selects a post in the media stream, the media stream may expand, such as shown in
User 110 may also be free to click on any of the posts in the social and other media stream or presentation. Additionally, a user may be able to interact with the social media posts. For example, a user may be able to “like” or “comment on a post, and also may be able to “retweet” a post. The posts in the social and other media stream or presentation may contain links to the source of the post. When clicked on, the link will open, as shown in
According to some embodiments, when a user interacts with the media stream, the application may be “paused” and information related to the selected media stream post may be shown in the application window. The information related to the media stream post may overlay the application either in part or in its entirety, or the application may be resized to display the information. If needed, the user's selection of a post or link within the media stream may result in a pop up window to display the requested or related content (e.g., a web browser, image, or text) or may result in a window that fills part of, significantly all of, or all of the screen to display the requested or related content (again, e.g., a web browser), or may result in the application “switching” or opening an application or window capable of displaying the requested or related content called for by the information within the post or link (e.g., a web browser, a travel booking application, a location application, or a shopping application). It is understood that the “switching” or opening of the application may occur without interrupting or preventing the user of continuing to access the original application. The user may then close that related information and the application will again be substantially visible and will continue running. According to some embodiments, the application continues to run while the related media stream post information is displayed.
In some embodiments, the media stream displays social media data or other media data based on networks that a user is logged into. For example, if a user is logged into a Twitter account, the media stream will display in whole or part “tweets” from people or organizations that the user “follows” on Twitter. In some embodiments, if a user is not logged into a particular social media network, the media stream may display media stream posts from the social media network, such as, for example, a predefined set of social media posters. In other instances, the displayed social media posts may be related to categories selected by the user. For example, if a user is not logged into Twitter, but has selected the “news” category to be displayed in the media stream, the media stream may display Twitter feeds related to one or more news organizations, such as the New York Times or CNN. The media stream may also have an option for the user to either log into or to sign up with a social media network by selecting one of the social media posts when the user is not logged into the network. For example, if a user selects a Twitter post in the media stream when the user is not logged into Twitter, the user may be prompted to either log into Twitter or to sign up with Twitter. According to some embodiments, the predefined social media posts may be social media posts selected by the application developer or by the party managing the media stream.
In some examples, some or all of the logic for the above-described techniques may be implemented as a computer program or application or as a plug in module or sub component of another application. The described techniques may be varied and are not limited to the examples or descriptions provided. In some examples applications may be developed for download to mobile communications and computing devices, e.g., laptops, mobile computers, tablet computers, smart phones, etc., being made available for download by the user either directly from the device or through a website.
Moreover, while illustrative embodiments have been described herein, the scope thereof includes any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those in the art based on the present disclosure. For example, the number and orientation of components shown in the exemplary systems may be modified. Further, with respect to the exemplary methods illustrated in the attached drawings, the order and sequence of steps may be modified, and steps may be added or deleted.
Thus, the foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limiting to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed embodiments.
Software implementing the disclosed methods or processes may be implemented in any suitable programming language, such as, for example, C, C#, C++, Objective-C, Java, Xcode, or other languages known to persons of ordinary skill in the art.
The claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification, which examples are to be construed as non-exclusive. Further, the steps of the disclosed methods may be modified in any manner, including by reordering steps and/or inserting or deleting steps.
Furthermore, although aspects of the disclosed embodiments are described as being associated with data stored in memory and other tangible computer-readable storage mediums, one skilled in the art will appreciate that these aspects can also be stored on and executed from many types of tangible computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or CD-ROM, or other forms of RAM or ROM. Accordingly, the disclosed embodiments are not limited to the above described examples, but instead is defined by the appended claims in light of their full scope of equivalents.
This application incorporates by reference in their entireties, and claims any available right of priority to all of: U.S. Provisional Patent Application No. 61/972,189, filed on Mar. 28, 2014; U.S. Provisional Patent Application No. 61/991,389, filed on May 9, 2014; U.S. patent application Ser. No. 14/326,177, filed Jul. 8, 2014; and U.S. Provisional Patent Application No. 62/089,624, filed on Dec. 9, 2014.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/023016 | 3/27/2015 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62089624 | Dec 2014 | US | |
61991389 | May 2014 | US | |
61972189 | Mar 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14326177 | Jul 2014 | US |
Child | 15129705 | US |