U.S. Pat. No. 8,282,491
GAME-BASED INCENTIVES FOR LOCATION-BASED ACTIONS
AssigneeZynga, Inc.
Issue DateSeptember 26, 2011
U.S. Patent No. 8,282,491: Game-based incentives for location-based actions
U.S. Patent No. 8,282,491: Game-based incentives for location-based actions
Issued October 9, 2012, to Zynga, Inc.
Priority Date August 13, 2010
Summary:
Smart Phones have allowed people to play games anywhere. U.S. Patent No. 8,282,491 (the ‘491 Patent) describes a method and system for giving in-game rewards to players for performing an action at a physical location. The game may give a player in-game currency for scanning the receipt for coffee from Starbucks. The ‘491 Patent relates more to how the game determines the reward for the player, than how the game determines a player’s location. Rewards are determined based on the player’s demographic information, how often the player visits the location, how often the player buys something from the location.
Abstract:
Systems and methods for providing game-based incentives to users of online games as a reward for performing actions at physical locations are provided.
Illustrative Claim:
1. A method comprising: accessing a game state of one or more computer-implemented games associated with a user; determining, using at least one processor of a machine, an incentive reward for the user based at least in part on the game state of the one or more computer-implemented games, the incentive reward being an in-game asset in the one or more computer-implemented games; determining a location-based action for the user based at least in part on the game state of the one or more computer-implemented games, the location-based action being an action performable by the user at a physical location that is external to the one or more games; and transmitting, to a device associated with the user, a message comprising a description of the location-based action, a description of the incentive reward, and an offer of the incentive reward for performing the location-based action at the physical location.
Illustrative Figure
Abstract
Systems and methods for providing game-based incentives to users of online games as a reward for performing actions at physical locations are provided.
Description
DESCRIPTION OF EXAMPLE EMBODIMENTS FIG. 1illustrates an example of a system for implementing various disclosed embodiments. In various embodiments, system100comprises User101, location115, verification system118, location networking system120a, gaming system120b, client system130, and network160. The components of system100can be connected to each other in any suitable configuration, using any suitable type of connection. The components may be connected directly or over a network160, which may be any suitable network (e.g., the Internet). User101is a player of one or more online computer games. Game system120bis a network addressable computing system that hosts the one or more online games. Game system120bcan generate, store, and transmit game account data and game state data associated with one or more users. An online game can be accessed by client system130directly, via network160, or via a third-party system (e.g., a social networking site). Client system130can be any suitable computing device, such as a personal computer, laptop, cellular phone, smart phone, computing tablet, etc. Location115is a physical place that has one or more location attributes associated with it. User101can visit location115and perform one or more location-based actions there. Location115can contain one or more verification systems118, which can verify if and when User101has performed a location-based action at location115. Verification system118can generate, store, and transmit action verification data, which is data comprising information on one or more users and one or more location-based actions associated with the users. Location system120ais a network addressable computing system that can receive, store, and transmit location attribute data, action verification data, and other data associated with location115and verification system118. Location system120acan be accessed by the other components in system100either directly or via network160. In some embodiments, User101can physically bring his client system130to location115(e.g., if client system130is a smart phone). Client system130may then be able to interact directly with location115or verification system118. Game Systems ...
DESCRIPTION OF EXAMPLE EMBODIMENTS
FIG. 1illustrates an example of a system for implementing various disclosed embodiments. In various embodiments, system100comprises User101, location115, verification system118, location networking system120a, gaming system120b, client system130, and network160. The components of system100can be connected to each other in any suitable configuration, using any suitable type of connection. The components may be connected directly or over a network160, which may be any suitable network (e.g., the Internet).
User101is a player of one or more online computer games. Game system120bis a network addressable computing system that hosts the one or more online games. Game system120bcan generate, store, and transmit game account data and game state data associated with one or more users. An online game can be accessed by client system130directly, via network160, or via a third-party system (e.g., a social networking site). Client system130can be any suitable computing device, such as a personal computer, laptop, cellular phone, smart phone, computing tablet, etc. Location115is a physical place that has one or more location attributes associated with it. User101can visit location115and perform one or more location-based actions there. Location115can contain one or more verification systems118, which can verify if and when User101has performed a location-based action at location115. Verification system118can generate, store, and transmit action verification data, which is data comprising information on one or more users and one or more location-based actions associated with the users. Location system120ais a network addressable computing system that can receive, store, and transmit location attribute data, action verification data, and other data associated with location115and verification system118. Location system120acan be accessed by the other components in system100either directly or via network160. In some embodiments, User101can physically bring his client system130to location115(e.g., if client system130is a smart phone). Client system130may then be able to interact directly with location115or verification system118.
Game Systems
In an online game, a game engine manages the game state of the game. Game state comprises all in-game parameters, including player character state, non-player character (NPC) state, in-game assets and other virtual items, in-game obstacles, game parameters (e.g., internal game clocks, game environment), and other in-game elements or features. Each player controls one or more player characters (PCs). The game engine controls all other aspects of the game, including non-player characters (NPCs), in-game obstacles, and other game elements. The game engine also manages game state, including player character state for currently active (online) and inactive (offline) players.
A player character can have a set of attributes associated with the player character. As used herein, player character state can refer to one or more in-game attributes of a player character, such as in-game location, assets, levels, condition, health, status, inventory, skill set, name, orientation, affiliation, specialty, and so on. The game engine may use player character state to determine the outcome of game events, sometimes also considering set or random variables. Generally, a player character's probability of having a more favorable outcome is greater when the player character has a better state. For example, a healthier player character is less likely to die in a particular encounter relative to a weaker player character or non-player character.
In various embodiments, an online game can provide a mechanism for player characters to acquire in-game assets, which are a type of virtual item or thing that provide some type of in-game benefit to a player character. In some embodiments, an in-game asset can provide an in-game benefit for the player character by improving the player character's state. The improved player character state could increase the player character's likelihood or ability to advance in the game, or otherwise improve game play. For example, in-game assets could be character levels, ability points, skill points, hit points, mana points, combat bonuses, etc. In-game assets can also be virtual representations of real life things such as cash, chattel, precious valuables, personal property, real property, weapons, vehicles, titles, jobs, etc. In-game assets can also include mythical and fantasy things, such as manna magical items, potions, relics, artifacts, etc.
An online game can be hosted by game networking system120b, which can be accessed using any suitable connection with an appropriate client system130. A player may have a game account on game system120b, wherein the game account can contain a variety of information associated with the player (e.g., the player's personal information, financial information, purchase history, player character state, game state). In some embodiments, a player may play multiple games on game networking system120b, which may maintain a single game account for the player with respect to all the games, or multiple individual game accounts for each game with respect to the player. In some embodiments, game system120bcan assign a unique identifier to each player of an online game hosted on game system120b. Game system120bcan determine that a user is accessing the online game by reading the user's cookies, which may be appended to HTTP requests transmitted by client system130, and/or by the user logging onto the online game.
Locations
As used herein, a location is a specific physical place in the real world. For example, location115could be a store, restaurant, mall, business office, building, park, street venue, library, etc. Location115can have various systems associated with it, including verification system118and location system120a. As used herein, the operator of location115is the person or entity that owns, possesses, operates, or otherwise controls location115. Furthermore, as used herein, a user of location115is a person who can enter, visit, use, purchase, or perform some other action at location115. This can include past, present, and future users of location115. In various embodiments, a player of an online game may also be a user of location115.
In various embodiments, location115can have one or more devices for communicating with game system120b. Verification system118or location system120acan communicate with game system120b, either directly or via network160. In some embodiments, verification system118and location system120aare part of the same computing system.
Location Attributes
In various embodiments, location115can have one or more attributes associated with it. These location attributes include a variety of details about location115. Location attributes can include, for example: details regarding goods and services available at the location, such as the type, price, quantity, quality, brand, size, description, and other details of the goods and services available at the location; the purchase history of good and services at the location; corporate and intellectual property information of the location, such as any brands, trademarks, logos, and other such information associated with the location; the location-based action history of players of one or more online games at the location, such as the type of location-based actions, proposed location-based actions, performed location-based actions, and other information regarding location-based actions associated with the location; personal and demographic information of users of the location, such as name, sex, race, ethnicity, age, income, education, employment status, address, credit information, purchase history, and other personal or demographic information of the users of the location; geographic information of the location, such as the position, elevation, size, orientation, GPS coordinates, relation to other locations, local terrain, weather, and other geographic information of the location; and other descriptive information associated with the location.
In various embodiments, the location attributes of location115can be stored in a location account. The examples described herein assume that the location account is stored on location system120a, however this is not intended to be limiting. The location account can be stored on any suitable data store, including location system120a, game system120b, a third-party system, a distributed data store, or any combination of two or more of the above.
In some embodiments, the location attributes of location115can be determined by accessing a website or other network addressable system that contains details about location115. For example, a computing system can access a website associated with location115, such as a corporate website or an online shopping catalog, and analyze the website for text, keywords, prices, concepts, meta tags, and other details associated with location115.
User Identification
In various embodiments, location system120acan identify users of location115by a variety of methods. The methods described below are not intended to be limiting, and one of ordinary skill in the art would recognize that other methods can be used to identify a user.
In some embodiments, location system120acan identify a user when the user purchases an item at location115. When a user purchases an item at location115, location system120amay collect purchase information from the user, including the user's name, credit card number, billing address, shipping address, email address, etc. For example, if User101visits a store and purchases an item with a credit card, location system120acould use the information contained on the credit card to identify User101.
In some embodiments, location system120acan identify a user based on some form of identification presented by the user at location115. A user could present a membership card, discount card, coupon, ticket, code, driver's license, passport, or other item that contains identifying information about the user at location115. For example, User101may have a ticket with a scannable QR code that contains identifying information. The ticket can be scanned at location115, thereby allowing location system120ato identify User101.
In some embodiments, location system120acan identify a user based on the user's proximity to location115. A user's proximity can be determined using various devices or applications, such as a GPS device, a social networking site (e.g., Facebook, Twitter), a location tracking site (e.g., Foursquare, Google Latitude), a location reservation site (e.g., OpenTable, Expedia), etc. Location system120acould then access this proximity information to identify the user. For example, if User101enters a store, he could access Foursquare via any suitable computing device to indicate that he is at the store, and Foursquare could transmit this information to location system120a, thereby informing it that User101is at the store. In another example, location115could have a QR code printed inside the location, which User101could photograph with a mobile client system130(e.g., a smart phone) and transmit to location system120a. In yet another example, if. User101makes a reservation to dine at a restaurant on OpenTable, location system120acould identify User101when he checks in with the maître d′ at the restaurant.
In some embodiments, location system120acan identify a user when the user provides an indication of the user's presence at location115. A user could check-in with a host, log-in to a computing device, activate a button or switch, or perform some other type of action to indicate the user's presence at location115, which could then be transmitted to location system120a. For example, if User101visits a hotel, location system120acould identify User101when he checks in with the hotel clerk. In another example, if User101accesses a computing system at location115, location system120acould identify User101when he logs into the computing system.
In some embodiments, location system120aor game system120bor can identify a user based on a search engine query made by the user. For example, if User101queries a search engine (e.g., Google or Yahoo) that has information that identifies User101, that information can be transmitted to location system120aor game system120balong with any other relevant information (e.g., the search query made by User101) so either system could to identify User101.
In some embodiments, while identifying a user, location system120amay also collect information related to one or more game accounts associated with the user, including any unique game account identifiers assigned to the user. For example, User101may gain entrance to location115by presenting a ticket with a scannable QR code, which contains information identifying User101and information about User101's unique identifier on an online game. After this ticket is scanned at location115, the identifying information can be transmitted to location system120a.
In some embodiments, location system120acan assign a unique identifier to each user of location115. Location system120acan assign a username, identification number, or other unique identifier. Location system120acan also utilize any unique identifier assigned to the user by game system120b.
Offering Incentive Rewards for Performing Location-Based Actions
A user of an online game hosted by game system120bcan also be a user of location115. Location operators may find it desirable to provide some type of incentive to encourage these users to perform one or more location-based actions. Some users may be incentivized to perform certain location-based actions when offered an in-game asset for an online game. As used herein, an incentive reward is an in-game asset in an online game that is offered to a user of the online game for completing one or more location-based actions. For example, the incentive reward could be a specific in-game asset (e.g., a Sword of Destruction +5) that provides a particular in-game benefit (e.g., increasing a player character's ability to defeat in-game opponents). As used herein, a location-based action is a type of action that can be performed at one or more locations by a user of an online game, wherein the action is proposed to the user as part of an offer for an incentive reward. For example, a location-based action could be entering, visiting, using, purchasing, or performing some other action at location115.
In some embodiments, a distributor or manufacturer of an item can incentivize users of an online game to purchase the item from a location. For example, the distributor or manufacturer of a specific soft drink may offer an in-game incentive for purchasing a can of the soft drink from any location. While this disclosure generally discusses location-based actions with respect to a location, the embodiments disclosed herein are also applicable to location-based actions with respect to a distributor or manufacturer of an item, unless context suggests otherwise.
Incentive Rewards
An incentive reward is an in-game asset in an online game hosted by game system120bthat is offered to a user of the online game for completing one or more location-based actions. An incentive reward could be, for example, game points, virtual currency, experience points, character levels, character attributes, virtual items, or other in-game assets.
Incentive Offer Search Systems
In various embodiments, game system120bcan include an incentive offer search system, which is a network addressable computing system that is operative to generate and/or select an incentive reward in response to a request from another computing system, such as location system120a, game system120b, or client system130. The incentive offer search system may be a central system accessible to one or more systems over a wide area network, or a local system accessible to a single domain. The present disclosure assumes the incentive offer search system is a subsystem of game system120b, however it is possible that the incentive offer search system is part of location system120aor even an independent remote system.
In one embodiment, the incentive offer search system includes one or more physical servers and an incentive offer data store. The incentive offer data store can store content information containing incentive offer creative content and URLs or identifiers to content or other resources hosted by game system120bor location system120a. The content may be stored in association with a game engine or game account information on game system120b.
In various embodiments, the incentive offer search system determines an appropriate incentive reward to offer to a user for performing one or more location-based actions. The incentive reward can be determined by a variety of methods (e.g., statically, randomly, dynamically).
In some embodiments, the incentive reward can be determined statically, such that the incentive reward offered is the same for all users. For example, User101might be offered an incentive reward of $20,000 in virtual poker chips for purchasing a lawnmower at location115, and this same incentive reward would be offered to all other users.
In some embodiments, the incentive reward can be determined dynamically, such that the incentive reward offered may vary based on a variety of factors. For example, the incentive reward can be determined based on location attributes, game state, or other parameters.
Determining Incentive Rewards Based on Game State
In various embodiments, the incentive offer search system can determine an appropriate incentive reward based on game state data stored on game system120b. The incentive offer search system can access the user's game account to retrieve various game state data (e.g., the games played by the user, the user's player character state) and then identify an incentive reward appropriate for that user based on that data.
In some embodiments, the incentive offer search system can consider thematic, topical, or categorical relationships between a possible incentive reward and a game state variable to determine an appropriate incentive reward. For example, the incentive offer search system may query game system120bto determine that User101is a player in Zynga Dragon. Wars and that User101's player character is a 5th level elf. The incentive offer search system may then determine that an Elven Invisibility Cloak is an appropriate incentive reward for a 5th level elf based on the thematic relationship between and player character's race and the incentive reward.
In some embodiments, the incentive offer search system can consider player character state, such as in-game assets and other attributes of a player character, to determine an appropriate incentive reward. For example, if User101has $25,000 in virtual poker chips in Zynga Poker, the incentive offer search system may determine that an incentive reward of $10,000 in virtual poker chips is appropriate, but if User101has $100,000 in virtual poker chips, an incentive reward of $30,000 may be determined appropriate based on his current in-game assets, wherein the incentive reward is scaled to User101's current in-game assets. In another example, if User101has five purple gems and zero orange gems in Zynga Treasure Isle, the incentive offer search system may determine that two orange gems is an appropriate incentive reward for User101based on his current in-game assets, wherein the incentive reward is selected so that User101is not offered a redundant in-game asset.
In some embodiments, where a user plays more than one game hosted by game system120b, the incentive offer search system can generate incentive rewards corresponding to one or more of the games. Game system120bcan host a plurality of online games, and a particular user may play one or more of these games and control one or more player characters in each game. If the user plays more than one game on game system120b, the incentive offer search system may generate an incentive reward corresponding to one or more of these games. The incentive offer search system can determine which games to generate incentive rewards for by examining the user's game account information with respect to each game and analyzing a variety of factors (e.g., the user's frequency of play, duration of play, play preferences, social network information). In a particular embodiment, the incentive offer search system can generate an incentive reward for one game from the plurality of games. For example, if User101plays Zynga Poker on average ten hours a week, but only plays Zynga Mafia Wars on average five hours per week, the incentive offer search system may determine that User101prefers playing Zynga Poker and may only generate an incentive reward for that game. Alternatively, the incentive offer search system may generate an incentive reward for Zynga Mafia Wars instead as a means of encouraging User101to increase his game play time in that game. The offer search system may also consider a user's social network information for multiuser online games that interface with social networking systems. For example, if User101has twenty friends who play Zynga Poker but fifty friends who play Zynga Mafia Wars, the incentive offer search system may determine that User101prefers playing Zynga Mafia Wars and only generate an incentive reward for that game.
In some embodiments, the incentive offer search system can generate incentive rewards for two or more games. In one embodiment, the incentive offer search system can generate incentive rewards for a plurality of games. For example, if User101plays both Zynga Poker and Zynga Mafia Wars, the offer search system may offer an incentive reward of $10,000 in virtual poker chips (for Zynga Poker) and a virtual submachine gun (for Zynga Mafia Wars). In another embodiment, the incentive offer search system can generate incentive rewards for a plurality of games, but the offer requires the user to choose which game he wants to receive the incentive reward in. For example, using the previous example, the incentive offer search system might offer User101an incentive reward of $10,000 in virtual poker chips and a virtual machine gun, but require User101to choose which of the two rewards he wants. In yet another embodiment, the incentive offer search system can generate a single incentive reward that can be used in a plurality of games. For example, in a variation of the previous example, the incentive offer search system might offer User101an incentive reward of $10,000 in virtual cash, wherein this cash can be used in either Zynga Poker or Zynga Mafia Wars.
In some embodiments, the offer search system can generate an incentive reward for a game hosted by game system120bthat a user has never played or that has no game account associated with the user. An incentive reward for an unplayed game can be generated even if the user plays other games on game system120b. For example, if User101has only played Zynga Poker on game system120b, the incentive offer search system may generate an incentive reward for another game hosted by game system120b(e.g., Zynga Mafia Wars, Zynga YoVille) to encourage User101to try a new game.
FIG. 2Ashows a flowchart illustrating an example method for generating an incentive reward based on game state. In various embodiments, game networking system120baccesses a game account of a user to identify one or more computer-implemented games associated with the user at step210. Game networking system120bthen generates an incentive reward for the user based at least in part on the game state of the one or more identified games at step212. The game networking system120bthen transmits a message to the user comprising a description of the incentive reward, a description of a location-based action, and an offer of the incentive reward for the user's performance of the location-based action at step214. The example method illustrated inFIG. 2Aand described above is provided for illustration purposes only and is not meant to be limiting. One of ordinary skill in the art would appreciate that the steps described above can be performed in any reasonable order, and that various steps can be reordered, added, and removed.
Determining Incentive Rewards Based on Location Attributes
in various embodiments, the incentive offer search system can determine an appropriate incentive reward based on location attribute data. The location attributes of location115can be stored in a location account, which can be stored and accessed on any suitable computing system, including location system120a, game system120b, a third-party system, a distributed computing system, or any combination of two or more of the above. The incentive offer search system can access location115's location account to retrieve various location attribute data (e.g., the goods and services available at the location, personal and demographic information of users of the location) and then identify an incentive reward appropriate for a user based on that data.
In some embodiments, the incentive offer search system can consider thematic, topical, or categorical relationships between a possible incentive reward and a location attribute to determine an appropriate incentive reward. For example, the incentive offer search system may query the location account associated with location115to determine that location115is a grocery store with organic strawberries on sale. The incentive offer search system may then determine that 100 servings of virtual strawberry shortcake in Zynga Café World is an appropriate incentive reward for performing a location-based action at location115based on the thematic relationship between and goods available at location115and the incentive reward.
In some embodiments, the incentive offer search system can consider details of the goods or services available at the location to determine an appropriate incentive reward to offer. This can include the type, price, quantity, quality, brand, size, description, and other details of the goods and services available at location115. For example, the incentive reward for purchasing a toaster from a particular appliance store might be a virtual toaster in Zynga YoVille. In one embodiment, the incentive reward may improve based on the price of the item. For example, the incentive reward for a $50 boombox may be $5000 in virtual poker chips in Zynga Poker, but the incentive reward for a $1000 home stereo system may be $200,000 in virtual poker chips.
In some embodiments, the incentive offer search system can consider any brands, trademarks, logos, and other corporate or intellectual property information associated with the location to determine an appropriate incentive reward. For example, if location115is a Scars department store, the incentive offer search system may determine that a virtual item affixed with the Sears logo is an appropriate incentive reward for performing a location-based action at the location.
In some embodiments, the incentive offer search system can consider personal and demographic information of users of the location to determine an appropriate incentive reward. This can included the name, sex, race, ethnicity, age, income, education, employment status, address, credit information, purchase history, and other personal or demographic information of the users of the location. For example, if User101is female, the incentive offer search system may determine that a virtual Barbie doll in Zynga YoVille is an appropriate incentive reward for User101based on her sex.
In some embodiments, the incentive offer search system can consider the purchase history of goods and services at the location to determine an appropriate incentive reward. For example, if visitors to location115often buy fertilizer, the incentive offer search system may determine that five applications of fertilizer in Zynga FarmVille is an appropriate incentive reward for performing a location-based action at location115based on the purchase history there.
In some embodiments, the incentive offer search system can consider the location-based action history of players of one or more online games at the location to determine an appropriate incentive reward. This can include the type of location-based actions, proposed location-based actions, performed location-based actions, and other information regarding location-based actions associated with the location. For example, if some users often fail to perform a certain location-based action when offered an incentive reward of $10,000 in virtual poker chips in Zynga Poker, the incentive offer search system may determine an incentive reward of $30,000 in virtual poker chips is an appropriate incentive reward to incentivize performance of this location-based action.
In some embodiments, the incentive offer search system can consider the geographic information of the location to determine an appropriate incentive reward. This can include the position, elevation, size, orientation, GPS coordinates, relation to other locations, local terrain, weather, and other geographic information of the location. For example, if location115is near a beach, the incentive offer search system may determine that a virtual beach towel in Zynga Treasure Isle is an appropriate incentive reward for performing a location-based action at location115.
FIG. 2Bshows a flowchart illustrating an example method for generating an incentive reward based on location attributes. In various embodiments, game networking system120baccesses a location account of location115to identify one or more attributes associated with location115at step220. Game networking system120bthen generates an incentive reward for a user based at least in part on the attributes associated with location115at step222. The game networking system120bthen transmits a message to the user comprising a description of the incentive reward, a description of a location-based action, and an offer of the incentive reward for the user's performance of the location-based action at step224. The example method illustrated inFIG. 2Band described above is provided for illustration purposes only and is not meant to be limiting. One of ordinary skill in the art would appreciate that the steps described above can be performed in any reasonable order, and that various steps can be reordered, added, and removed.
Determining Incentive Rewards Based on Other Factors
In various embodiments, the incentive offer search system can determine an appropriate incentive reward based on factors other than game state or location attributes.
In some embodiments, the incentive reward can be determined based in part on the location-based action generated by the action proposal search system. For example, if the action proposal search system generates a location-based action for User101of buying a barbecue from a specific hardware store, the incentive offer search system may determine that a virtual super oven in Zynga Café World is an appropriate incentive reward based on the thematic relationship between the incentive reward and the location-based action. In another example, the incentive reward for purchasing a bottle of Coca-cola from any location might be a virtual item affixed with a Coca-cola logo.
In some embodiments, the incentive reward for performing a location-based action can vary over time. The incentive offer search system may generate multiple possible incentive rewards, wherein the actual reward received by the user is based on when the location-based action is completed. For example, an incentive reward for purchasing a lawnmower at location115within the next hour may be $20,000 in virtual poker chips, but the incentive reward may decrease to only $10,000 in virtual poker chips if the lawnmower is purchased afterwards. In one embodiment, the incentive reward may only be offered for a limited time. For example, an incentive reward of a virtual sports car might only be offered to the first one hundred users who purchase a toaster from location115. In a variation of this embodiment, the incentive reward may become less attractive for subsequent purchasers. For example, the first user to purchase a toaster from location115will get a virtual Porsche 911, while later users will be offered virtual Ford Pintos. The incentive offer search system may present offers such that it is not apparent to the user of the gaming system whether he will get the better item or not. For example, User101might be presented with an offer that states, “Limited time offer! The first person to buy a toaster today will receive a virtual Porsche 911 in Zynga YoVille (subsequent buyers will receive a virtual Ford Pinto).” in this case, the user viewing this offer may not know whether he will be the first purchaser and may only find out after the item is purchased (e.g., when handed the receipt for the purchase).
In some embodiments, the incentive offer search system can generate an incentive reward that is only a percentage chance of receiving an in-game asset. For example, an incentive reward could be a specific percentage chance (e.g., 20%, 40%, 75%) to receive a particular in-game asset (e.g., a virtual Porsche 911). After the user has earned the incentive reward, game system120bcould then determine if the user actually receives the in-game asset.
In some embodiments, the incentive offer search system may generate an incentive reward for an unknown or undisclosed in-game asset. For example, the incentive offer search system may generate an incentive reward for a “mystery prize” for User101and present an offer that states “Purchase this item at location115now and receive a mystery prize in Zynga Dragon Wars!” The user may not discover what the “mystery prize” is until the incentive reward is earned by performing an associated location-based action, or possibly even later (e.g., the next time the user logs into game system120b).
Location-Based Actions
A location-based action is a type of action that can be performed at location115by a user of an online game hosted by game system120b, wherein the action is proposed to the user as part of an offer for an incentive reward. A location-based action could be, for example, entering, visiting, using, purchasing, or performing some other action at location115.
Action Proposal Search Systems
In various embodiments, game system120bcan include an action proposal search system, which is a network addressable computing system that is operative to generate and/or select a location-based action in response to a request from another computing system, such as location system120a, game system120b, or client system130. The action proposal search system may be a central system accessible to one or more systems over a wide area network, or a local system accessible to a single domain. The present disclosure assumes the action proposal search system is a subsystem of game system120b, however it is possible that the action proposal search system is part of location system120aor even an independent remote system.
In one embodiment, the action proposal search system includes one or more physical servers and an action proposal data store. The action proposal data store can store content information containing action proposal creative content and URLs or identifiers to content or other resources hosted by game system120bor location system120a. The content may be stored in association with game account information or location account information on game system120b.
In various embodiments, the action proposal search system determines an appropriate location-based action to propose to a user in exchange for one or more incentive rewards. The location-based action can be determined by a variety of methods (e.g., statically, randomly, dynamically, etc.).
In some embodiments, the location-based action can be determined statically, such that the location-based action offered is the same for all users. For example, the action proposal search system may propose that User101purchase a cup of coffee at location115in exchange for an incentive reward of $100 in virtual cash, and this same location-based action would be proposed to all other users.
In some embodiments, the location-based action can be determined dynamically, such that the location-based action proposed may vary based on a variety of factors. For example, the location-based action can be determined based on location attributes, game state, or other parameters.
Determining Location-Based Actions Based on Game State
In various embodiments, the action proposal search system can determine an appropriate location-based action based on game state data on game system120b. The action proposal search system can access the user's game account to retrieve various game state data (e.g., the games played by the user, the user's player character state) and then identify a location-based action appropriate for that user based on that data.
In some embodiments, the action proposal search system can consider thematic, topical, or categorical relationships between a possible location-based action and a game state variable to determine an appropriate location-based action. For example, the action proposal search system may query game system120bto determine that User101is a player in Zynga FarmVille and that User101's player character has a virtual barn, the action proposal search system may then determine that visiting a particular barn at the Sonoma County Fair is an appropriate location-based action for the user based on the thematic relationship between User101's virtual barn and the proposed location.
In some embodiments, the action proposal search system can consider player character state, such as in-game assets and other attributes of a player character, to determine an appropriate location-based action. For example, if User101has $25,000 in virtual poker chips in Zynga Poker, the action proposal search system may determine that playing a hand of real poker in Las Vegas at a $10 limit table is appropriate, but if User101has $100,000 in virtual poker chips, playing five hands of real poker at a $50 limit table may be determined appropriate based on User101's current in-game assets. In another example, if User101has a virtual barn with no virtual chickens in it in Zynga FarmVille, the action proposal search system may determine that visiting the chicken coop at the Sonoma County Fair is an appropriate location-based action for User101based on his current in-game assets.
In some embodiments, where a user plays more than one game hosted by game system120b, the action proposal search system can generate location-based actions corresponding to one or more of the games. Game system120bcan host a plurality of online games, and a particular user may play one or more of these games and control one or more player characters in each game. If the user plays more than one game on game system120b, the action proposal search system may generate a location-based action corresponding to one or more of these games. The action proposal search system can determine which games to generate location-based actions for by examining the user's game account information with respect to each game and analyzing a variety of factors (e.g., the user's frequency of play, duration of play, play preferences, social network information). For example, the action proposal search system may determine that buying a cup of coffee from a specific café is an appropriate location-based action to receive an incentive reward in Zynga Café World. In another example, the action proposal search system may determine that donating $10 to an animal cruelty charity is an appropriate location-based action to receive an incentive reward in Zynga FarmVille.
FIG. 2Cshows a flowchart illustrating an example method for generating a location-based action based on a game state. In various embodiments, game networking system120baccesses a game account of a user to identify one or more computer-implemented games associated with the user at step230. Game networking system120bthen generates a location-based action for the user based at least in part on the game state of the one or more identified games at step232. Game networking system120bthen transmits a message to the user comprising a description of the location-based action, a description of an incentive reward, and an offer of the incentive reward for the user's performance of the location-based action at step234. The example method illustrated inFIG. 2Cand described above is provided for illustration purposes only and is not meant to be limiting. One of ordinary skill in the art would appreciate that the steps described above can be performed in any reasonable order, and that various steps can be reordered, added, and removed.
Determining Location-Based Actions Based on Location Attributes
In various embodiments, the action proposal search system can determine an appropriate location-based action based on location attribute data. The location attributes of location115can be stored in a location account, which can be stored and accessed on any suitable computing system, including location system120a, game system120b, a third-party system, a distributed computing system, or any combination of two or more of the above. The action proposal search system can access location115's location account to retrieve various location attribute data (e.g., the good and services available at the location, personal and demographic information of users of the location, etc.) and then identify a location-based action appropriate for a user based on that data.
In some embodiments, the action proposal search system can consider thematic, topical, or categorical relationships between a possible location-based action and a location attribute to determine an appropriate location-based action. For example, the action proposal search system may query the location account associated with location115to determine that location115is a grocery store with organic strawberries on sale. The incentive offer search system may then determine that buying a basket of organic strawberries is an appropriate location-based action to'perform at location115based on the categorical relationship between the goods available at location115and the location-based action.
In some embodiments, the action proposal search system can consider details of the goods or services available at the location to determine an appropriate location-based action. This can include the type, price, quantity, quality, brand, size, description, and other details of the goods and services available at the location. For example, if location115is an amusement park, the action proposal search system may determine that riding a specific roller coaster is an appropriate location-based action based on the type of services available there. In particular embodiments, the action proposal search system can generate a location-based action to incentivize the purchase of particular goods or services, such as buying items that are on sale or items the location operator wants to clear from inventory. The location operator can provide preferences for the items that it wants associated with location-based offers, or the action proposal search system can query the location account and analyze the location's current inventory to dynamically determine an appropriate item. For example, if location115is an ice cream shop with an oversupply of vanilla ice cream, the action proposal search system may determine that purchasing a scoop of vanilla ice cream at location115is an appropriate location-based action based on the inventory of goods available there.
In some embodiments, the action proposal search system can consider any brands, trademarks, logos, and other corporate or intellectual property information associated with the location to determine an appropriate location-based action. For example, if the operator of location115has a patent on a certain method, the action proposal search system may determine that performing that patented method is an appropriate location-based action.
In some embodiments, the action proposal search system can consider personal and demographic information of users of the location to determine an appropriate location-based action. This can include the name, sex, race, ethnicity, age, income, education, employment status, address, credit information, purchase history, and other personal or demographic information of the users of the location. For example, if a particular user of location115is a mechanical engineer, the action proposal search system may determine that purchasing a textbook on thermodynamics at location115is an appropriate location-based action based on the user's employment information. In another example, if User101has never purchased a sandwich from location115, the action proposal search system may determine that purchasing a sandwich from location115is an appropriate location-based action for User101based on his purchase history. In yet another example, if User101is 18-years old, the action proposal search system may propose to the user to purchase a can of soda, but if User101is 22-years old, the action proposal search system may propose to the user to purchase a bottle of scotch.
In some embodiments, the action proposal search system can consider the purchase history of goods and services at the location to determine an appropriate location-based action. For example, if visitors to location115rarely buy a particular item, the action proposal search system may determine that purchasing that item at location115is an appropriate location-based action based on the purchase history of that item, wherein the location-based action is selected to incentivize purchase of that item.
In some embodiments, the action proposal search system can consider the location-based action history of players of one or more online games at the location to determine an appropriate location-based action. This can include the type of location-based actions, proposed location-based actions, performed location-based actions, and other information regarding location-based actions associated with the location. For example, if a small fraction of users perform a certain location-based action, such as playing at a high-stakes poker table at a particular casino, the action proposal search system may determine that an easier version of that location-based action is an appropriate location-based action, such as playing at a lower-stakes poker table. In another example, if User101has never visited. Bozo's Amusement Park, the action proposal search system can propose that User101purchase a summer pass. If User101has already visited Bozo's Amusement Park, and it had already been proposed to User101to purchase a summer pass, the action proposal search system can propose that User101purchase cotton candy inside the park. In a particular embodiment, the action proposal search system can determine a location-based action based on any previous actions that have been proposed to the user based on locations besides the one that is currently specified. For example, if the action proposal search system had previously proposed that the user buy a grill at a general store, the action proposal search system could then propose that the user purchase steaks or hotdogs at a supermarket.
In some embodiments, the action proposal search system can consider the geographic information of the location to determine an appropriate location-based action. This can include the position, elevation, size, orientation, GPS coordinates, relation to other locations, local terrain, weather, and other geographic information of the location. For example, if location115is a store that sells bread and the store is near a duck pond, the action proposal search system may determine that purchasing bread and feeding the ducks is an appropriate location-based action based on the geographic information of location115. In one embodiment, the action proposal search system can determine a location-based action based on the local terrain. For example, if location115is near a beach, the action proposal search system may determine that purchasing a swimsuit from location115is an appropriate location-based action based on the proximity of the location to the beach. In another embodiment, the action proposal search system can consider the current weather at the location. For example, if the current temperature at an amusement park is 90° F., the action proposal search system may determine that riding a water slide at the park is an appropriate location-based action based on the current weather there. In yet another embodiment, the action proposal search system can consider the historical weather at the location. For example, if the daytime temperature outside location115is typically 50° F. in the winter, the action proposal search system may determine that purchasing a sweatshirt at location115in the winter is an appropriate location-based action based on the historical weather there.
FIG. 2Dshows a flowchart illustrating an example method for generating a location-based action based on location attributes. In various embodiments, game networking system120baccesses a location account of location115to identify one or more attributes associated with location115at step240. Game networking system120bthen generates a location-based action for a user based at least in part on the attributes associated with location115at step242. Game networking system120bthen transmits a message to the user comprising a description of the location-based action, a description of an incentive reward, and an offer of the incentive reward for the user's performance of the location-based action at step244. The example method illustrated inFIG. 2Dand described above is provided for illustration purposes only and is not meant to be limiting. One of ordinary skill in the art would appreciate that the steps described above can be performed in any reasonable order, and that various steps can be reordered, added, and removed.
Determining Location-Based Actions Based on Other Factors
In various embodiments, the action proposal search system can determine an appropriate location-based action based on factors other than game state or location attributes.
In some embodiments, the location-based action can be determined based in part on the incentive reward generated by the incentive offer search system. For example, if the incentive offer search system generates a virtual ice cream machine as an incentive reward for User101, the action proposal search system may determine that buying a quart of premium ice cream from a specific grocery store is an appropriate location-based action based on the thematic relationship between the incentive reward and the location-based action.
In some embodiments, the incentive reward for performing a location-based action can vary over time. The action proposal search system may generate multiple possible location-based actions, wherein the location-based action the user has to perform to receive an incentive reward is based on when the location-based action is completed. For example, the action proposal search system may determine that swimming10laps at a particular swimming pool is an appropriate location-based action in the summer, but may determine that visiting an ice rink is an appropriate location-based action in the winter. In another example, the difficulty of the location-based action may vary over time. User101may have to swim10laps in a swimming pool if the location-based action is performed within two hours of being generated by the action proposal search system, but after two hours User101may have to swim50laps.
Presenting Incentive Reward Offers to Users
A variety of methods can be used to determine and present incentive reward offers to a user. In one embodiment, User101can access, via the user's client system130, an online game hosted by game system120b. The user's browser client can load and render the content of the webpage. Game system120bmay also access the user's game account information and/or the location account of one or more locations. This account information may be accessed in a variety of ways. For example, game system120bcould access data stored in a cookie on client system130that is appended to messages transmitted from client system130to game system120b. This allows game system120bto identify User101and access the appropriate game account information. To access location account information, game system120bmay directly query location system120a. Alternatively, the online game webpage may include code (e.g., HTML, etc.) instructing the client system130to call location system120ato retrieve HTML code and/or script. For example, the online game webpage provided by game system120bmay be implemented in an iframe with a “src” tag identifying the URL of location system120a. When client system130consumes the HTML or other code of the page, client system130transmits a request to location system120ain one embodiment, the request includes a browser cookie or other state object appended there to that allows location system120ato resolve the identity of User101(and possibly all or a subset of game state information associated with that user). If a script is used (e.g., JavaScript), the script when downloaded and executed might be operative to scan various attributes of webpages hosted by location system120ato identify the one or more location attributes and transmit this location attribute data to game system120b. For example, the webpage hosted by location system120amay include semantic tags that identify elements of the page that correspond to the types and prices of items available for sale at location115. Game system120bmay use this information to consider what type of incentive reward to offer User101. As mentioned above, in response to the call from client system130, game system120bmay access data stored in the cookie corresponding to the game system120b, thereby allowing the game system to identify User101. If game system120bis able to successfully identify User101as a player in one or more online games hosted by game system120b, it can then trigger the incentive offer search system and the action proposal search system.
In some embodiments, even if User101is not a user of game system120b, the method may include offering an alternative type of incentive reward to User101, such as an in-game benefit or asset that is not normally provided to new players. This might be done, for example, to encourage User101to establish a user account on game system120b. For example, if User101is not a user of any game hosted by game system120b, User101might be presented with an incentive reward offer of $100,000 in virtual poker chips if he performs a certain location-based action at location115and joins Zynga Poker, where a typical new poker player only receives $20,000 in virtual poker chips in that game.
The incentive offer search system and action proposal search system can determine an appropriate incentive reward and location-based action to present to User101. An appropriate incentive reward and location-based action can be determined in a variety of ways. Once an appropriate incentive reward and location-based action have been determined, game system120bcan respond to the call from client system130with content that includes details of the incentive reward and the location-based action to be displayed on the browser client of client system130. The incentive reward offer may be rendered, for example, in a discrete section of the online game interface viewed by User101. The offer can include a variety of information about the incentive reward and location-based action, including a description of the in-game reward, an image, a description of the location and the action to be performed, and other details, as instructed by the script and other content transmitted in the response received from game system120b. In one embodiment, game system120bmay generate a unique offer identifier that is associated with the offer transmitted to client system130. The offer identifier can be included in the HTML code that becomes part of a Document Object Model (DOM) of the webpage as maintained by the browser client or other client application. If User101performed the location-based action, game system120band/or location system120amay record the unique offer identifier in association with the offer. After User101performs the location-based action, location system120amay transmit data to game system120bindicating that the location-based action has been performed. This can be done in a variety of ways. Once game system120bhas confirmed that User101has completed the location-based action, game system120bcan then provide the incentive reward to User101or his player character. For example, game system120bmay update User101's account to add the in-game reward to his in-game asset list, which will be presented or available to the user the next time he accesses the game. The entities associated with the game system120band location system120a, to the extent they are separate, can contract to achieve a variety of revenue exchange or sharing paradigms that arise out of the incentive offers described herein. For example, the entity associated with game system120bmay receive a payment for each performed location-based action. In another embodiment, the entity associated with game system120bmay receive a payment when User101redeems the award.
Other methods are possible for determining and presenting an incentive reward offer and location-based action to a user. For example, a variety of method steps and data flows are possible. The methods and data flows described above, as well as alternatives, are described in more detail below.
FIG. 2Eshows a flowchart illustrating an example method for proposing a location-based action to a user. In various embodiments, game networking system120breceives a message identifying a user at step250. Game networking system120bthen accesses a game account of the user to identify one or more computer-implemented games associated with the user at step252. Game networking system120bthen generates a location-based action for the user at step254. Game networking system120bthen transmits a message to the user comprising a description of the location-based action, a description of an incentive reward, and an offer of the incentive reward for the user's performance of the location-based action at step256.FIG. 2Fshows a flowchart illustrating an example method for transferring an incentive reward to a user for performing a location-based action. In various embodiments, a game networking system120breceives a message identifying a user and corresponding to a location-based action at step260. The game networking system120bthen accesses a game account of the user to identify one or more computer-implemented games associated with the user at step262. The game networking system120bthen generates an incentive reward for the user at step264. The game networking system120bthen credits the game account of the user with the incentive reward at step266. The example methods illustrated inFIGS. 2E and 2Fand described above are provided for illustration purposes only and are not meant to be limiting. One of ordinary skill in the art would appreciate that the steps described above can be performed in any reasonable order, and that various steps can be reordered, added, and removed.
Verification of Location-Based Actions
In various embodiments, location115can have one or more verification systems118that can verify when a user has performed one or more location-based actions. Verification system118can verify performance of a location-based action using a variety of methods. Verification system118can generate, store, and transmit action verification data, which is data comprising information on one or more users and one or more location-based actions associated with the users. Action verification data can be transmitted to location system120a, game system120b, or client system130, either directly or via network160. In some embodiments, the action verification data can be generated by another system, such as client system130, game system120b, or location system120a. This disclosure assumes that the action verification data is generated by verification system118and transmitted to location system120a, however this is not intended to be limiting. Action verification data can include a variety of information regarding a location-based action, including information indicating: the user; the location-based action; if the action was performed by the user; when the location-based action was performed; where the location-based action was performed; how the location-based action was performed; and other information related to the location-based action. The methods described below are not intended to be limiting, and one of ordinary skill in the art would recognize that other methods can be used to verify performance of a location-based action.
In some embodiments, if the location-based action is purchasing an item at location115, verification system118can verify the purchase using a variety of methods. When a user purchases an item at location115, location system120amay collect purchase information from the user, including the user's name, credit card number, billing address, shipping address, email address, etc. For example, if User101visits a store and purchases an item with a credit card, location system120acould use the information contained on the credit card to identify the User101.
In some embodiments, if the location-based action is verifying the presence of a user at location115, verification system118can verify the user's presence at the location using a variety of methods. For example, verification system118can verify a user's location based on some form of identification presented at location115; based on the user's proximity to location115; when the user provides an indication of the user's presence at location115; and by using other location verification methods.
Data Flow
FIG. 3depicts a schematic of system300and data flow between the components of system300. System300can include client system330, location networking system320a, and game networking system320b. Client system330, location networking system320a, and game networking system320bcan each have a corresponding data store such as local storage medium325, location data storage medium345, and game data storage medium365, respectively. Client system330can communicate with location networking system320ato receive messages, location information, etc. Additionally, client system330can transmit data to and receive data323(e.g., game inputs, incentive offer information, data transfers) from game networking system320b. In a similar fashion, game networking system320band location networking system320acan communicate HTTP packets343including data requests, transaction information, updates, etc. At some other time, or at the same time, game networking system320bcan communicate data347(e.g., game state information, game system account information, page info, messages) with location networking system320a.
Communication between client system330, location networking system320a, and game networking system320bcan occur over any appropriate electronic communication medium or network using any suitable communications protocols. For example, client system330, as well as various servers of the systems described herein, may include Transport Control Protocol/Internet Protocol (TCP/IP) networking stacks to provide for datagram and transport functions. Of course, any other suitable network and transport layer protocols can be utilized.
In addition, hosts or end-systems described herein may use a variety of higher-layer communications protocols, including client-server (or request-response) protocols, such as the HyperText Transfer Protocol (HTTP) and other communications protocols, such as HTTP-S, FTP, SNMP, TELNET. In addition, a server in one interaction context may be a client in another interaction context. Still further, in particular embodiments, the information transmitted between hosts may be formatted as HyperText Markup Language (HTML) documents. Other structured document languages or formats can be used, such as XML and the like. Executable code objects, such as JavaScript and ActionScript, can also be embedded in the structured documents.
In some client-server protocols, such as the use of HTML over HTTP, a server generally transmits a response to a request from a client. The response may comprise one or more data objects. For example, the response may comprise a first data object, followed by subsequently transmitted data objects. In one embodiment, for example, a client request may cause a server to respond with a first data object, such as an HTML page, which itself refers to other data objects. A client application, such as a browser, will request these additional data objects as it parses or otherwise processes the first data object.
The example data flows in this section are presented with respect to data flow between location networking system320aand game networking system320b. One skilled in the art would appreciate that these are presented merely as an example of a data flow between two types of online systems. However, the present disclosure is intended to encompass data flows between a game networking system and a variety of other online systems, such as online merchant systems, online media systems, online reviewing systems, online search engines, and online advertising systems. The example data flows described herein function analogously with these online systems as with location networking systems.
In various embodiments, location system320aor game system320bcan receive messages identifying a user. For example, game system320bcan receive a digital message through a network, wherein the message contains information about the identity of the user. This message can be sent using any suitable communications protocol.
In one embodiment, messages with identifying information received by location system320aor game system320bwill have been sent from the user. For example, the user could actively use a digital communication device (e.g., a computer or a smart phone) to send a message to game system320b. In another example, the user could passively use a digital communication device (e.g., a computer or smart phone) to send a message to game system320bby instructing the digital communication device to send a message to game system320bif the device comes within a specified proximity of location115. The user's proximity can be determined by a variety of methods (e.g., through the use of a Global Positioning System (GPS)).
In another embodiment, messages with identifying information received by game system320bwill have been sent from location115or location system320a. For example, location115could use a computing system to send a message to game system320b.
In various embodiments, a user can receive messages identifying both a location-based action and an offer for an incentive reward. For example, a user could receive from game system320ba message describing a location-based action and an incentive reward through client system330. In another example, a user could receive a similar message from location system320a. In another example, a user could receive a message directly from location115(e.g., through the use of a physical receipt or through the use of a computer at the location).
In various embodiments, location system320aor game system320bcan receive a message verifying that a user performed a proposed location-based action. For example, game system320bcan receive the message in a digital form transmitted over a network. In some embodiments, the message verifying that a user performed a location-based action could have been transmitted by location115or location system320ato game system320bthrough the use of verification system118.
In various embodiments, location system320aor game system320bcan verify the presence of a user relative to location115. For example, the user could directly inform game system320bthat he is present at location115(e.g., by contacting the game networking system directly through the use of a digital communications device owned by the user). In another example, the user could indirectly inform game system320bthat he is present at location115(e.g., by permitting the game networking system to track his location through the use of Global Positioning Service (GPS) positioning based on a communications device owned by the user).
In one embodiment, game system320bcan verify the presence of a user at location115through the use of a Global Positioning Service (GPS) device. For example, the user could own a mobile client system330(e.g., a cell phone, pager, laptop, or tablet) that is in communication with a GPS system and game system320bthrough a network. Game system320bcould then track the physical presence of the user relative to one or more locations. In another example, the mobile client system330could be in communication with a GPS system and location system320athrough a network. Location system320acould then track the physical presence of the user relative to one or more locations. Location system320acould then inform game system320bof the physical presence of the user relative to the location.
In another embodiment, game system320bcan verify the presence of a user at location115through the use of a third party application, such as a social networking site (e.g., Facebook, Twitter), a location tracking site (e.g., Foursquare, Google Latitude), a location reservation site (e.g., OpenTable, Expedia), etc. For example, the application could notify game system320bof the physical position of the user relative to a location based on data received from the site. In another example, the application could notify location system320aof the physical position of the user relative to the location based on data received from the site. Location system320acould inform game system320bof the physical position of the user relative to the location.
In yet another embodiment, game system320bcan verify the presence of a user at location115through the use of codes (e.g., numerical codes, QR Codes, bar codes). For example, game system320bcould provide the user with a code that the user can take to location115that the user can input into a computing system (e.g., a cash register, computer), which can be transmitted to location system320aand/or game system320bto indicate the location of the user. In another example, the location operator can provide the user with a code that the user can input into his client system330, which will transfer an indication of the user's location to location system320aand/or game system320b.
Systems and Methods
In various example embodiments, one or more described webpages may be associated with a networking system or networking service. However, alternate embodiments may have application to the retrieval and rendering of structured documents hosted by any type of network addressable resource or web site. Additionally, as used herein, a user may be an individual, a group, or an entity (such as a business or third party application).
Particular embodiments may operate in a wide area network environment, such as the Internet, including multiple network addressable systems.FIG. 4illustrates an example network environment, in which various example embodiments may operate. Network cloud460generally represents one or more interconnected networks, over which the systems and hosts described herein can communicate. Network cloud460may include packet-based wide area networks (such as the Internet), private networks, wireless networks, satellite networks, cellular networks, paging networks, and the like. AsFIG. 4illustrates, particular embodiments may operate in a network environment comprising one or more networking systems, such as location networking system420aand game networking system420b, and one or more client devices430. The components of location networking system420aand game networking system420boperate analogously; as such, hereinafter they may be referred to simply at networking system420. Client devices430are operably connected to the network environment via a network service provider, a wireless carrier, or any other suitable means.
Networking system420is a network addressable system that, in various example embodiments, comprises one or more physical servers422and data stores424. The one or more physical servers422are operably connected to computer network460via, by way of example, a set of routers and/or networking switches426. In an example embodiment, the functionality hosted by the one or more physical servers122may include web or HTTP servers, FTP servers, as well as, without limitation, webpages and applications implemented using Common Gateway Interface (CGI) script, PHP Hyper-text Preprocessor (PHP), Active Server Pages (ASP), Hyper Text Markup Language (HTML), Extensible Markup Language (XML), Java, JavaScript, Asynchronous JavaScript and XML (AJAX), Flash, ActionScript, and the like.
Physical servers422may host functionality directed to the operations of networking system420. Hereinafter servers422may be referred to as server422, although server422may include numerous servers hosting, for example, networking system420, as well as other content distribution servers, data stores, and databases. Data store424may store content and data relating to, and enabling, operation of networking system420as digital data objects. A data object, in particular embodiments, is an item of digital information typically stored or embodied in a data file, database, or record. Content objects may take many forms, including: text (e.g., ASCII, SGML, HTML), images (e.g., jpeg, tif and gif), graphics (vector-based or bitmap), audio, video (e.g., mpeg), or other multimedia, and combinations thereof. Content object data may also include executable code objects (e.g., games executable within a browser window or frame), podcasts, etc. Logically, data store424corresponds to one or more of a variety of separate and integrated databases, such as relational databases and object-oriented databases, that maintain information as an integrated collection of logically related records or files stored on one or more physical systems. Structurally, data store424may generally include one or more of a large class of data storage and management systems. In particular embodiments, data store424may be implemented by any suitable physical system(s) including components, such as one or more database servers, mass storage media, media library systems, storage area networks, data storage clouds, and the like. In one example embodiment, data store424includes one or more servers, databases (e.g., MySQL), and/or data warehouses. Data store424may include data associated with different networking system420users and/or client devices430.
Client device430is generally a computer or computing device including functionality for communicating (e.g., remotely) over a computer network. Client device430may be a desktop computer, laptop computer, personal digital assistant (PDA), in- or out-of-car navigation system, smart phone or other cellular or mobile phone, or mobile gaming device, among other suitable computing devices. Client device430may execute one or more client applications, such as a web browser (e.g., Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, Google Chrome, and Opera), to access and view content over a computer network. In particular embodiments, the client applications allow a user of client device430to enter addresses of specific network resources to be retrieved, such as resources hosted by networking system420. These addresses can be Uniform Resource Locators (URLs) and the like. In addition, once a page or other resource has been retrieved, the client applications may provide access to other pages or records when the user “clicks” on hyperlinks to other resources. By way of example, such hyperlinks may be located within the webpages and provide an automated way for the user to enter the URL of another page and to retrieve that page.
A webpage or resource embedded within a webpage, which may itself include multiple embedded resources, may include data records, such as plain textual information, or more complex digitally encoded multimedia content, such as software programs or other code objects, graphics, images, audio signals, videos, and so forth. One prevalent markup language for creating webpages is the Hypertext Markup Language (HTML). Other common web browser-supported languages and technologies include the Extensible Markup Language (XML), the Extensible Hypertext Markup Language (XHTML), JavaScript, Flash, ActionScript, Cascading Style Sheet (CSS), and, frequently, Java. By way of example, HTML enables a page developer to create a structured document by denoting structural semantics for text and links, as well as images, web applications, and other objects that can be embedded within the page. Generally, a webpage may be delivered to a client as a static document; however, through the use of web elements embedded in the page, an interactive experience may be achieved with the page or a sequence of pages. During a user session at the client, the web browser interprets and displays the pages and associated resources received or retrieved from the website hosting the page, as well as, potentially, resources from other websites.
When a user at a client device430desires to view a particular webpage (hereinafter also referred to as target structured document) hosted by networking system420, the user's web browser, or other document rendering engine or suitable client application, formulates and transmits a request to networking system420. The request generally includes a URL or other document identifier as well as metadata or other information. By way of example, the request may include information identifying the user, such as a user ID, as well as information identifying or characterizing the web browser or operating system running on the user's client computing device430. The request may also include location information identifying a geographic location of the user's client device or a logical network location of the user's client device. The request may also include a timestamp identifying when the request was transmitted.
The example network environment described above and inFIG. 4is presented with respect to location networking systems and game networking systems. One skilled in the art would appreciate that these are presented merely as an example of a network environment between two types of online systems. However, the present disclosure is intended to encompass network environments that include a game networking system and a variety of other online systems, such as online media systems, online reviewing systems, online search engines, and online advertising systems. The example network environment described above performs analogously with these other online systems as with location networking systems.
FIG. 5illustrates an example computing system architecture, which may be used to implement a server422or a client device430. In one embodiment, hardware system500comprises a processor502, a cache memory504, and one or more executable modules and drivers, stored on a tangible computer readable medium, directed to the functions described herein. Additionally, hardware system500may include a high performance input/output (I/O) bus506and a standard I/O bus508. A host bridge510may couple processor502to high performance I/O bus506, whereas I/O bus bridge512couples the two buses506and508to each other. A system memory514and one or more network/communication interfaces516may couple to bus506. Hardware system500may further include video memory (not shown) and a display device coupled to the video memory. Mass storage518and I/O ports520may couple to bus508. Hardware system500may optionally include a keyboard, a pointing device, and a display device (not shown) coupled to bus508. Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to general purpose computer systems based on the x86-compatible processors manufactured by Intel Corporation of Santa Clara, Calif., and the x86-compatible processors manufactured by Advanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as any other suitable processor.
The elements of hardware system500are described in greater detail below. In particular, network interface516provides communication between hardware system500and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc. Mass storage518provides permanent storage for the data and programming instructions to perform the above-described functions implemented in servers422, whereas system memory514(e.g., DRAM) provides temporary storage for the data and programming instructions when executed by processor502. I/O ports520are one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to hardware system500.
Hardware system500may include a variety of system architectures and various components of hardware system500may be rearranged. For example, cache504may be on-chip with processor502. Alternatively, cache504and processor502may be packed together as a “processor module,” with processor502being referred to as the “processor core.” Furthermore, certain embodiments of the present disclosure may not require nor include all of the above components. For example, the peripheral devices shown coupled to standard I/O bus508may couple to high performance I/O bus506. In addition, in some embodiments, only a single bus may exist, with the components of hardware system500being coupled to the single bus. Furthermore, hardware system500may include additional components, such as additional processors, storage devices, or memories.
An operating system manages and controls the operation of hardware system500, including the input and output of data to and from software applications (not shown). The operating system provides an interface between the software-applications being executed on the system and the hardware components of the system. Any suitable operating system may be used, such as the LINUX Operating System, the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, Calif., UNIX operating systems, Microsoft® Windows® operating systems, BSD operating systems, and the like. Of course, other embodiments are possible. For example, the functions described herein may be implemented in firmware or on an application-specific integrated circuit.
Furthermore, the above-described elements and operations can be comprised of instructions that are stored on non-transitory storage media. The instructions can be retrieved and executed by a processing system. Some examples of instructions are software, program code, and firmware. Some examples of non-transitory storage media are memory devices, tape, disks, integrated circuits, and servers. The instructions are operational when executed by the processing system to direct the processing system to operate in accord with the disclosure. The term “processing system” refers to a single processing device or a group of inter-operational processing devices. Some examples of processing devices are integrated circuits and logic circuitry. Those skilled in the art are familiar with instructions, computers, and storage media.
Miscellaneous
One or more features from any embodiment may be combined with one or more features of any other embodiment without departing from the scope of the disclosure.
A recitation of “a”, “an,” or “the” is intended to mean “one or more” unless specifically indicated to the contrary.
The present disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend.
For example, the methods described herein may be implemented using hardware components, software components, and/or any combination thereof. By way of example, while embodiments of the present disclosure have been described as operating in connection with a networking website, various embodiments of the present disclosure can be used in connection with any communications facility that supports web applications. Furthermore, in some embodiments the term “web service” and “website” may be used interchangeably and additionally may refer to a custom or generalized API on a device, such as a mobile device (e.g., a cellular phone, smart phone, personal GPS, personal digital assistant, personal gaming device), that makes API calls directly to a server. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the disclosure as set forth in the claims and that the disclosure is intended to cover all modifications and equivalents within the scope of the following claims.
Claims
- A method comprising: accessing a game state of one or more computer-implemented games associated with a user;determining, using at least one processor of a machine, an incentive reward for the user based at least in part on the game state of the one or more computer-implemented games, the incentive reward being an in-game asset in the one or more computer-implemented games;determining a location-based action for the user based at least in part on the game state of the one or more computer-implemented games, the location-based action being an action performable by the user at a physical location that is external to the one or more games;and transmitting, to a device associated with the user, a message comprising a description of the location-based action, a description of the incentive reward, and an offer of the incentive reward for performing the location-based action at the physical location.
- The method of claim 1 , wherein the game state comprises a character player state in the one or more computer-implemented games.
- The method of claim 1 , wherein the game state comprises current in-game assets of a player character in the one or more computer-implemented games.
- The method of claim 1 , further comprising selecting a game of the one or more computer-implemented games, wherein the determining of the incentive reward and the determining of the location-based action is based on the selected game.
- The method of claim 4 , wherein the selecting of the game comprises examining factors for each of the one or more computer-implemented games by comparing the factors.
- The method of claim 5 , wherein the factors are at least one selection from the group consisting of frequency of play, duration of play, and play preferences for each of the one or more computer-implemented games.
- The method of claim 4 , wherein the selecting of the game comprises considering social network information associated with the user for games that interface with a social network system, the social network information including a number of social network contacts of the user in the social network, system that play the games that interface with the social network system.
- The method of claim 1 , wherein the determining of the incentive reward is based on a thematic relationship between the incentive reward and the one or more computer-implemented games.
- The method of claim 1 , wherein the determining of the location-based action is based on a thematic relationship between the physical location and the one or more computer-implemented games.
- The method of claim 1 , wherein the determining of the incentive reward comprises: determining a plurality of incentive rewards;and providing a requirement that the user select one incentive reward from the plurality of incentive rewards.
- The method of claim 1 , wherein the incentive reward is applicable to a plurality of the computer-implemented games.
- The method of claim 1 , wherein the determining of the incentive reward comprises providing the incentive reward for a game with little or no account activity by the user.
- The method of claim 1 , wherein the determining of the incentive reward is based on goods or services available at the physical location.
- The method of claim 1 , wherein the determining of the location-based action is based on goods or services available at the physical location.
- The method of claim 1 , wherein the determining of the incentive reward is based on personal and demographic information associated with users of the physical location.
- The method of claim 1 , wherein the determining of the location-based action is based on personal and demographic information associated with users of the physical location.
- The method of claim 1 , wherein the determining of the incentive reward is based on a purchase history of users at the physical location.
- The method of claim 1 , wherein the determining of the location-based action is based on a purchase history of users at the physical location.
- The method of claim 1 , wherein the determining of the incentive reward is based on geographic attributes of the physical location.
- The method of claim 1 , wherein the determining of the location-based action is based on geographic attributes of the physical location.
- The method of claim 1 , further comprising monitoring for an indication of a physical presence of the user relative to the physical location.
- A non-transitory machine readable medium storing instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising: accessing a game state of one or more computer-implemented games associated with a user;determining an incentive reward tier the user based at least in part on the game state of the one or more computer-implemented games, the incentive reward being an in-game asset in the one or more computer-implemented games;determining a location-based action for the user based at least in part on the game state of the one or more computer-implemented games, the location-based action being an action performable by the user at a physical location external to the one or more games;and transmitting, to a device associated with the user, a message comprising a description of the location-based action, a description of the incentive reward, and an offer of the incentive reward tier performing the location-based action at the physical location.
- A system comprising: at least one processor of a machine;and a game networking system configured to: access, using the at least one processor, a game state of one or more computer-implemented games associated with a user;determine an incentive reward for the user based at least in part on the game state of the one or more computer-implemented games, the incentive reward being an in-game asset in the one or more computer-implemented games;determine a location-based action for the user based at least in part on the game state of the one or more computer-implemented games, the location-based action being an action performable by the user at a physical location external to the one or more games;and transmit, to a device associated with the user, a message comprising a description of the location-based action, a description of the incentive reward, and an offer of the incentive reward for performing the location-based action at the physical location.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.
