Unlocking coupon offers

In an embodiment, a method comprises receiving an indication that a user selected social network data that is displayed, on a client device, concurrently with offer data that indicates a coupon offer; wherein prior to receiving the indication, the user of the client device is incapable of accessing the coupon offer; in response to receiving the indication that the user selected the social network data, allowing the user to access the coupon offer, and causing a message to be sent to each user of a plurality of users that are identified, in a social network, as connected to the user, wherein the message includes data about the coupon offer or a coupon provider that initiated the coupon offer; wherein the method is performed by one or more computing devices.

This application is related to U.S. application Ser. No. 13/287,696, entitled, “Coupons Social Networking Platform,” and filed Nov. 2, 2011, the entire contents of which is hereby incorporated by reference as if fully set forth herein.

TECHNICAL FIELD

Embodiments relate generally to offering an electronic offer to a potential redeemer.

BACKGROUND

In general, a coupon is a certificate or other document that entitles its holder to accept an offer described or referenced by the coupon. The offer, also subsequently referred to as the “coupon offer,” may be any type of offer, but typically is an offer by the coupon provider to provide a customer with one or more goods or services at a particular price or discount. For example, a coupon may indicate $1 off or 25% off of a purchase price of an item or may indicate the particular price, such as $10. Alternatively, the coupon offer may be an offer to provide the customer with a gift in exchange for the performance of an act, such as purchasing a good or service.

A coupon often takes a “hard copy” form, such as a paper certificate, with printed images and/or text describing terms of the offer. “Redeeming” a coupon is the process of a customer accepting a coupon offer by presenting, referencing, or otherwise providing the coupon while purchasing, contracting, or otherwise transacting with another party. For example, a customer may redeem a hard copy of a coupon by handing the copy to a clerk during a purchase at a retail store. The clerk may then provide the customer with the offered discounted price or gift.

One technique for distributing coupons is to include printed coupons with newspapers, magazines, or other items that are distributed to customers. One example of an item with which coupons are distributed is a printed receipt. For example, some retailers print receipts at a point of sale on register paper on which coupons have been pre-printed. As another example, some retailers print coupon(s) on a receipt at the time of the transaction for which the receipt is printed, thereby allowing the retailers to dynamically select which coupon(s) appear on the receipt based on the product(s) that were purchased during the transaction.

Recent distribution techniques now provide customers with opportunities to print their own coupons. For example, a manufacturer of a product publishes a coupon for the product on the manufacturer's website. However, this type of distribution requires potential customers to first locate the manufacturer's website. In this example, the manufacturer is not reaching each potential customer.

SUMMARY OF THE INVENTION

The appended claims serve to summarize the invention.

DETAILED DESCRIPTION

Embodiments are described herein according to the following outline:1.0. General Overview2.0. Architectural Overview3.0. Unlocking An Digital Offer3.1 “Liking” An Item3.2 Determine Whether to Unlock Offer3.2.1 “Like” Check3.2.2 Inventory Check3.2.3 Access Check3.2.4 Changes to a Check3.3 Unlocking3.4 Social Notification Message3.4.1 Message Templates4.0. Implementation Mechanism—Hardware Overview5.0. Extensions and Alternatives
1.0. General Overview

Social networking services, such as Facebook and Google+, provide environments for sharing information with friends. Messages initiated by one registered user and sent to friends or contacts of the user may include a status update, a current location, a picture, a reminder, or general tips and opinions. Information in which many registered users of a social network provider are interested can travel through the corresponding social network very rapidly and reach a substantial audience.

In an embodiment, a computer system makes a commercial offer (for example, a coupon, special deal, or exclusive promotion) available as a node in a social graph that is maintained by a social network service provider (or simply, “social network provider”). Initially, the offer node is locked and unusable by a social network user who attempts to view contents of the offer. The registered user of the social network provider can exercise the offer only when the user initiates the linking of his/her own profile node with the offer node. Establishing a link between the node of a social user and a coupons/offer/deal node causes the offer to automatically unlock for the individual, making the offer available and usable.

In an embodiment, in response to an offer unlocking and becoming accessible to the social user that unlocked the offer), a message is propagated into the user's activity stream, such that the user's friends in the social network are notified of the offer or of the brand of the product/service that is subject of the coupon. In this way, unlocking an offer by one social user promotes the viral distribution of the offer.

For example, in the context of the Facebook environment a coupon can be represented as an Open-Graph node with basic metadata about the offer (price, description, brand, and store). If a user desires to print (or otherwise access) the coupon, then the user must first “like” the coupon, thereby unlocking the printing capability. By “liking” the coupon, a message (for example, “Mark just saved $1 on Chocolate Cookies”) is automatically broadcasted to his circle of friends.

Although the following describes how a coupon offer is unlocked for a user, embodiments of the invention are not so limited. Other digital content that may be locked and subsequently unlocked includes videos, images, e-books, invitations, tickets to events, etc.

2.0. Architectural Overview

FIG. 1illustrates an example computer system architecture100for unlocking coupon offers. In an embodiment, system architecture100includes coupon distributor110, network120, social network provider130, coupon provider140, and social user150. One or more computers may implement each of the elements ofFIG. 1. In an alternative embodiment, computer system architecture100does not include coupon distributor110. Thus, coupon provider140does not rely on another entity (like coupon distributor110) to distribute coupons that coupon provider140provides.

In an embodiment where coupon distributor110involved, coupon distributor110includes one or more computing devices and one or more storage devices that store data regarding coupons of one or more coupon providers and users of one or more social network providers. In the depicted example, coupon distributor110includes a coupon database112and a user database114, each of which is described in more detail below. Each of databases112and114may be part of the same storage device or may be part of separate storage devices.

In an embodiment, the logic, configuration or programs hosted in coupon distributor110allows coupons to be distributed to users of social network provider130, causes new coupon nodes to be introduced into a social graph of social network provider130, allows a user of social network provider130to link his/her node to a coupon node in the social graph, and gathers and stores information about users of social network provider130(and, optionally, of other social network providers, not shown).

The functionality of coupon distributor110and coupon provider140may be implemented using stored program logic in one or more special-purpose computers or loaded from one or more non-transitory media into the memory of one or more general-purpose computer and then executed.

Communication between various entities depicted inFIG. 1may be made over a network120. Network120may be implemented by any medium or mechanism that provides for the exchange of data between various entities communicatively coupled to network120. Examples of network120include, without limitation, a network such as a Local Area Network (LAN), Wide Area Network (WAN), Ethernet or the Internet, or one or more terrestrial, satellite, or wireless links. Network120may include a combination of networks such as those described. Network120may transmit data according to Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and/or Internet Protocol (IP).

Social network provider130provides a social networking service. Examples of social network providers include Facebook, Google+, Twitter, and Hi5. Social network provider130includes one or more computing devices and one or more storage devices that store data (for example, in user account database132) regarding one or more users that are registered with the service, and connections between users and between users and content. Users may be individuals or organizations, such as business entities. The connections between users and between users and content items may be viewed as a social graph, such as social graph134. Although only a single social network provider130is depicted inFIG. 1, system architecture100may include multiple social network providers with which coupon distributor110interacts in order to distribute coupons and, in one embodiment, target messages to users that are registered with the various social network providers.

Coupon provider140is a business entity that manufactures a product or represents a brand and issues coupons (or authorizes a third-party, such as coupon distributor110, to issue coupons on its behalf) to encourage the purchase of a product that is subject of a coupon campaign that coupon provider140initiates. In an embodiment, coupon provider140communicates coupon data to coupon distributor110over network120. The coupon data includes information about one or more coupons of one or more coupon campaigns managed by coupon distributor110. Coupon distributor110is responsible for acting on behalf of coupon provider140to distribute coupons reflected in the coupon data to potential customers.

Although only a single coupon provider140is depicted inFIG. 1, computer system architecture100may include numerous coupon providers, each of which is registered with social network provider130and contracts with coupon distributor110to run their respective coupon campaigns. Thus, coupon database112may include coupon data for multiple coupon campaigns from multiple coupon providers.

Social user150is any potential customer that is registered with social network provider130. Social user150may use one or multiple computing devices to access a social network service provided by social network provider130. Examples of computing devices that a social user may use to access the social network service and obtain a coupon include a desktop computer, a laptop computer, a tablet computer, and a smartphone.

Although only a single social user150is depicted inFIG. 1, system architecture100may include numerous social users, each of which is registered with social network provider130. Thus, user database114may include user data for multiple users of social network provider130and multiple users of other social network providers (not depicted).

3.0. Unlocking a Digital Offer

FIG. 2illustrates an example process200for unlocking a coupon offer. At block210, social user150discovers a coupon offer. Using a device, social user150may discover the coupon offer through one of numerous possible locations. For example, social user150may discover the coupon offer on a web page provided by coupon distributor110(such as Coupons.com), on a web page provided by coupon provider140(such as Gamma Mills), on a “fan” page (for coupon provider140) that is hosted by social network provider130, on a search results page provided by a search engine, or on a web page that is an hosted by an affiliate of coupon distributor110or of coupon provider140. Alternatively, the coupon offer may be displayed as an advertisement provided through a third-party mobile application (for example, a music application) executing on a device (for example, a “smart” phone) of social user150.

At block210, the coupon offer is in a “locked” state. In other words, the user is unable to access the coupon offer. The user is required to perform one or more actions in order to receive the coupon offer or, in other words, access the coupon associated with the coupon offer. Unless those one or more actions are performed, the user cannot access the coupon offer. “Accessing” a coupon offer may involve (a) receiving a coupon code associated with the coupon offer or (b) being able to print a coupon associated with the coupon offer. Once a user accesses a coupon offer, the user is able to redeem the coupon offer.

3.1 “Liking” an Item

At block220, social user150provides input in an attempt to “unlock” the coupon offer. In an embodiment, block220involves social user150selecting social network data that is displayed concurrently and adjacent to coupon offer. The social network data may be any selectable data item (such as a graphical button) that is associated with social network provider130. For example, if social network provider130is Google, then the button may be a “+1” button. As another example, if social network provider130is Facebook, then the button may be a “Like” or “Recommend” button. The button may be implemented using an iFrame or JavaScript in HTML of a web page that includes the coupon offer.

The input that is received as a result of a user's action at block220is referred to herein as “liking” an item. “Liking” an item may involve a user clicking or otherwise selecting a graphical data item that is associated with a particular social network provider. When a user selects the data item, the user effectively agrees to the terms (dictated by the social network provider) that are associated with performing that action. The terms associated with liking an item may involve having the social user's node, in the social network, linked with a node associated with the entity that initiates the coupon offer. For example, social user150is registered with social network provider130and selects a button that is associated with social network provider130and that is displayed concurrently with a coupon offer for Beta batteries. Selecting the button indicates the willingness on the part of social user150to have his/her profile linked with a profile for Beta batteries. Being willing to link one's node to another node typically entails also being willing to have one's friends in the social network notified about the linking. In other words, the terms associated with liking an item may also involve allowing friends of the user (that selected the icon) to see that the user “liked” the item. Thus, friends of the user that “liked” particular content may be notified, by the social network provider, with a message indicating that the user “liked” that particular content.

3.2 Determine Whether to Unlock Offer

In an embodiment, instead of unlocking a coupon offer immediately upon detecting that a user “liked” the coupon offer, coupon distributor110(or coupon provider140) determines, based on one or more criteria, whether to unlock the coupon offer. The one or more criteria may involve one or more determinations, or “checks.” The following describes three checks: a “like” check, an inventory check, and an access check. Although the following description andFIG. 2indicate that each of these three checks is performed, coupon distributor110(or coupon provider140) may instead perform less than all of the checks. Thus, for example, process200may proceed from220directly to block240, block250, or block260.

At block230, it is determined whether social user150already “liked” the coupon offer. If a user has already liked the coupon offer, then coupon distributor110(or coupon provider140) may want to prevent the user from obtaining an additional coupon offer for the same product. In other words, the terms of a coupon offer may indicate that any particular user is only allowed to “like” a coupon offer once. The determination of whether social user150already “liked” the coupon offer may be performed by coupon distributor110(or by coupon provider140). The determination is based on data sent from the user's device.

As a result of liking the coupon offer at block220, the device of social user150sends a “like” message to coupon distributor110. (In an embodiment where coupon distributor110is not involved, the device of social user150sends the like message to coupon provider140or an affiliate of coupon provider140.) For example, selecting a “Like” or “+1” button causes code in a web page that includes the button to execute. Execution of the code causes a like message to be generated and transmitted from social user150's device to coupon distributor110. The like message includes offer data and social user data. The offer data may identify the specific coupon offer (for example, an offer identifier), the product associated with the coupon offer (for example, “Beta AAA Rechargeable Batteries”), or the brand of the product (for example, “Beta Batteries”). The social user data is data that identifies social user150to social network provider130. For example, the social user data may include a user name and password that is used to authenticate social user150to social network provider130.

If social user150is not registered with (or logged into) social network provider130at the time that social user150“likes” the coupon offer, then social user150is prompted to so register (or log in). After registering or logging in, social user data is sent to coupon distributor110.

In response to receiving the like message from social user150's device, coupon distributor110(or coupon provider140) generates and sends, to social network provider130, a verification message that includes data that is based on the offer data and social user data received from social user150's device. For example, the verification message may include the same social user data and the same offer data. As another example, the verification message may include offer data that is different than the offer data indicated in the like message from social user150's device.

Social network provider130uses the verification message to determine whether social user150already “liked” the coupon offer. For example, social network provider130may use the social user data included in the verification message to determine whether social user150is registered with social network provider130and, if so, uses the offer data included in the verification message to determine whether social user150is already linked with a node that corresponds to the coupon offer.

Social network provider130sends, to coupon distributor110(or coupon provider140), result data that indicates whether social user150has already “liked” the coupon offer (or the product or brand associated with the coupon offer). If so, then process200proceeds to block280where the coupon offer remains locked. In other words, coupon distributor110(or coupon provider140) will not perform any actions to “unlock” the coupon offer with respect to social user150. If social user150has not yet “liked” the coupon offer, then process200proceeds to block240.

3.2.2 Inventory Check

At block240, it is determined whether there is sufficient inventory associated with the coupon offer. If not, then process200proceeds to block280. Otherwise, process200proceeds to block250. As noted previously, block240may be optional. Thus, process200may proceed from block230or block220directly to block250or block260.

“Inventory” may refer to the number of coupon offers that have been distributed to end-users, the number of coupon offers that have been redeemed, the number of items associated with the coupon offer (for example, a specific product, concert tickets, etc.) that remain in stock, or some other metric.

For example, prior to a coupon campaign to distribute a particular coupon offer, coupon provider140may determine that only 1000 coupon offers should be distributed. If social user150“likes” the particular coupon offer (or, for example, the associated brand) and 1000 coupon offers of the particular coupon offer have already been unlocked during the coupon campaign, then the particular coupon offer remains locked to social user150(and other users that attempt to unlock the particular coupon offer). In this example, the “inventory” refers to the number of remaining coupon offers of this particular coupon. As noted previously, the “inventory” may refer to another factor, such as the number of coupons (associated with the particular coupon offer) that have been redeemed so far.

If coupon distributor110is responsible for distributing the coupon offer on behalf of coupon provider140, then coupon distributor110may store data that indicates a current inventory associated with the coupon offer. Thus, checking whether there is sufficient inventory associated with the coupon offer may involve coupon distributor110checking a locally stored value. Alternatively, coupon provider140may maintain an “inventory value” that indicates a current inventory associated with the coupon offer. In this case, coupon distributor110may send, over network120to coupon provider140, a request for the current inventory level or simply for an indication of whether there is sufficient inventory available. Based on a response from coupon provider140, coupon distributor110determines whether there is sufficient inventory to allow the coupon offer to be unlocked to social user150.

3.2.3 Access Check

At block250, it is determined whether social user150has reached a certain limit in terms of the number of times social user150has accessed the coupon offer. For some coupon campaigns, any user is only allowed to access the coupon offer once, although the limit may be higher for other coupon campaigns. Block250may be performed by coupon distributor110or coupon provider140.

Block250may initially involve determining whether a particular plug-in is installed on social user150's device. The particular plug-in may be an ActiveX plug-in to a web browser. An example of the particular plug-in is described in U.S. patent application Ser. No. 12/274,348, filed Nov. 19, 2008 and is incorporated herein by reference as if fully set forth herein.

If the user's device has not yet installed the particular plug-in, then, in an embodiment, the plug-in must be installed before the coupon offer is unlocked. Thus, after a user “likes” a coupon offer and coupon distributor110(or coupon provider140) discovers that the user's device does not have the plug-in installed, coupon distributor110may prompt the user to install the plug-in. Once installed, the plug-in (1) identifies one or more attributes of the user's device, (2) generates, based on the one or more attributes, signature data that identifies the user's device, and (3) sends, over a network, the signature data to coupon distributor110(or coupon distributor140). Once the plug-in is installed and sends signature data to the appropriate entity, that entity determines, based on the signature data, whether social user150has accessed the coupon offer previously or, optionally, determines a number of times social user150accessed the coupon offer. In order to make this determination, coupon distributor110(or coupon provider140) may access a database of signatures, each of which is associated with history data that indicates one or more resources (for example, coupon offers) to which the plug-in previously requested access (for example, to print). From the history data associated with the signature data that identifies social user150's device, it is determined whether social user150has reached a limit with respect to the coupon offer.

In some situations, the plug-in may have been previously installed on social user150's device but, at the time of process200, the plug-in may not be installed on social user150's device. This may happen if social user150intentionally uninstalls the plug-in in order to attempt to access the coupon offer again in violation of the terms of the coupon campaign (that may indicate only one coupon per user). This also may happen if the plug-in was unintentionally uninstalled. Regardless of the reason(s) for uninstalling the plug-in, re-installing and running the plug-in would cause the plug-in to generate the same signature data that the previously-installed plug-in generated prior to the un-installation. Thus, coupon distributor110(or coupon provider140) can know if the user previously accessed (for example, printed) a coupon (whether for the same or different current coupon offer) from the same user device.

Block250may be performed in addition to block230because social user150may have “liked” the coupon offer previously using one social network provider and then attempts to “like” the coupon offer again using a different social network provider. Thus, execution of block250prevents a user, using the same device, from accessing the same coupon offer using different social network providers.

If it is determined that social user150has not exceeded his/her limit with respect to accessing the coupon offer, then process200proceeds to block260. Otherwise, process200proceeds to block280where the coupon offer remains locked.

In an embodiment, block250involves determining whether the end of a coupon campaign associated with a coupon offer has pasted. For example, coupon distributor110may determine, based on coupon data received from social user150's device, that the associated coupon offer is part of a coupon campaign that has terminated. In this case, coupon distributor110(or coupon provider140) does not unlock the coupon offer for social user150. Coupon distributor110may instead send, to the device of social user150, a termination message that indicates that the coupon campaign has ended or that the coupon offer is no longer being offered.

3.2.4 Changes to a Check

In an embodiment, one or more changes may occur that affect whether or when a check is performed during the campaign of the coupon offer. For example, one or more criteria may be used to determine whether, for a particular coupon campaign, the three “checks” described previously (i.e., the “like” check, the inventory check, and the access check) are implemented. As an example regarding the “like” check, at a first point in time, the “like” check is performed for any particular user that attempts to unlock a coupon offer. Later, at a second point in time, coupon provider140may decide to have that “like” check removed, thus allowing a user to “like” a coupon offer multiple times. Thus, a social user that is not able to like the coupon offer at the first point in time due to the “like” check is able to like the coupon offer at the second point in time.

As an example regarding the inventory check, at a first point in time, the inventory for a product (or other item) is at such a level that a coupon offer is not unlocked for any particular user that attempts to unlock the coupon offer. For example, coupon provider140may have originally only wanted to allow 800 coupon offers to be unlocked to different users. Later, at a second point in time, the inventory associated with the product increases. For example, coupon provider140may determine that it would like 1000 coupon offers to be available for unlocking. The change in inventory may occur (1) prior to the inventory decreasing to a point where one or more users would be denied access to the coupon offer due to the inventory check or (b) after one or more users are denied access to the coupon offer due to the inventory check.

As an example regarding the access check, at a first point in time, the policy of a coupon campaign for a coupon offer may be that a user may print (or otherwise access) a coupon offer only once. Later, at a second point in time, coupon provider140may determine to increase that limit to two. Thus, social user150may have been denied access to a coupon offer at the first point in time but, due to the change in the access limit, may then be able to access the coupon offer at the second point in time.

At block260, the coupon offer is “unlocked” in such a way that enables social user150to access the coupon offer. Depending on the type of offer that is locked, coupon distributor110(or coupon provider140) may “unlock” the offer in different ways. For example, if the offer is for a ticket to a concert, a ticket distributor (similar to coupon distributor110) may send a unique ticket identifier to social user150, who can use that identifier to obtain a ticket (whether online or in person) from a concert ticket distributor.

As another example, if the offer is for a coupon, then coupon distributor110(or coupon provider140) sends a coupon code to the device that social user150used to “like” the coupon offer. Alternatively, the coupon code may be sent to an email account associated with social user150. In either case, the coupon code may be written down by the user or copied from a webpage and pasted into an input field of another web page (for example, hosted by coupon provider140) or into a non-browser software application, such as a mobile application, that may accept the coupon code to allow social user150to redeem the coupon. Alternatively, social user150may present the coupon code during a point-of-sale (POS) transaction.

The coupon code may be in any form, such as a series of alphanumeric characters or an image. The coupon code may be unique relative to other coupon codes that are generated for the same coupon campaign for the same product. The system that accepts the coupon code may determine whether the coupon code has been used before and, if so, reject the coupon code.

As another example, “unlocking” a coupon offer may entail allowing social user150to print a digital coupon. Such printing may be enforced by a print plug-in executing on the user's device and a remote server communicating with each other (as described previously). Block260may involve the print plug-in communicating with a print driver executing on social user150's device. The print driver may cause a print user interface to be displayed on the user's device. The print user interface allows the user to select different print settings, such as which printer will print the coupon, the number of copies, paper size, orientation, scale, and print quality and speed. Once the user is satisfied with the settings (one or more of which may be default settings), the user may then select a “Print” button, which causes the coupon to be printed by the designated printer.

In the print scenario, two instances of user input may be required to unlock and print a coupon. For example, a user may be required to select a “Like” button to unlock a coupon offer and then select a “Print” button to print a coupon associated with the coupon offer. In an embodiment, a single instance of user input is required to unlock and print a coupon. For example, a user may only be required to select a “like” button, which causes, without any further input from the user, a coupon offer to be unlocked and the corresponding coupon to be printed. Such a feature is carried out by coupon distributor110(or coupon provider140) communicating with the print plug-in executing on the user's device and the print plug-in communicating with the appropriate print driver executing on the user's device.

3.4 Social Notification Message

At block270, as a result of the coupon offer becoming unlocked, a social notification message is sent to “friends” of social user150. Block270may involve coupon distributor110(or coupon provider140) sending, in response to determining to unlock the coupon offer, a link message to social network provider130.

In an embodiment, coupon distributor110uses APIs provided by social network provider130to send the link message to social network provider130. In addition to sending a link message, the APIs may allow coupon distributor110to perform one or more other operations, examples of which may include the following: cause a message to be posted to a “wall” or page (hosted by social network provider130) of social user150, access information (i.e., maintained by social network provider130) of social user150(for example, gender, age, residence, hobbies), update status messages associated with social user150, and upload digital media (for example, images) to social user150's account. For example, for Facebook, the APIs are known as Facebook Graph APIs.

In a related embodiment, instead of coupon distributor110, social user150's device sends the link message to social network provider130using an API of social network provider130.

The link message includes social user data that identifies social user150and one or more details about the coupon offer. For example, the one or more details may include coupon data that identifies information about the coupon (for example, percentage discount, expiration date of coupon), product data that identifies the product associated with the coupon offer, and/or brand data that identifies the brand of the product. The link message may also include one or more images of the product and/or brand. The link message may also include a link (such as a URL) to a web page where the coupon offer may be received, for example, through a similar process that social user150went through in order to unlock the coupon offer. Additionally or alternatively, the link may be to a web page that provides information about the product and/or associated brand.

In response to receiving the link message (whether from coupon distributor110or from coupon provider140), social network provider130uses the social user data that identifies social user150to identify, within user account database132, “friends” (or contacts) of social user150. Social network provider130sends a social notification message to each identified friend (subject to any restrictions associated with any of the identified friends. For example, some friends may not want to be notified of social user150's activities and posts). The social notification message indicates that social user150is now “linked” with the coupon offer, the product associated with the coupon offer, and/or the brand of the product. For example, the social notification message may indicate that social user150“likes” the coupon offer or likes the product associated with the coupon offer. If the social notification message includes a link to the coupon offer, then, if friends start linking to the coupon offer, the coupon offer may quickly “go viral.” In this way, many potential customers will be notified of the coupon offer, many may access the coupon offer, and many may redeem the associated coupon.

After coupon provider140selects a message template and provides content to be included in the selected message template, coupon distributor110stores the selected template and content in a database and associates the selected template and content with coupon provider140. Additionally, coupon distributor110may store data that associates a specific coupon offer with the selected template and content.

Later, in response to determining that social user150successfully past any checks (such as a “like” check and an inventory check) associated with a coupon offer initiated by coupon provider140, coupon distributor110identifies a message template and content.

The identification of the message template and content may be based on data received in a message from the device of social user150. The data may be data that identifies the coupon offer (for example, a unique coupon identifier assigned by coupon distributor110) or may be data that identifies the entity that provides the coupon offer.

Additional criteria that may be used to identify the message template and/or content include user behavior, time of day, attributes of the message received from the device of social user150, etc. For example, coupon distributor110may maintain one message template for a particular coupon for relatively “active” users (i.e., ones that access many coupons) and another message template for the particular coupon for “non-active” users (i.e., ones that access few or no coupons). As another example, coupon distributor110may maintain one set of content for a particular coupon that is unlocked in the morning hours and another set of content for the particular coupon that is unlocked in the evening hours.

Coupon distributor110then sends, to social network provider130, a link message that includes the content formatted according to the associated message template.

For example,FIG. 3is a block diagram that illustrates a computer system300. Computer system300includes a bus302or other communication mechanism for communicating information, and a hardware processor304coupled with bus302for processing information. Hardware processor304may be, for example, a general purpose microprocessor.

Computer system300further includes a read only memory (ROM)308or other static storage device coupled to bus302for storing static information and instructions for processor304. A storage device310, such as a magnetic disk or optical disk, is provided and coupled to bus302for storing information and instructions.

Computer system300may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system300to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system300in response to processor304executing one or more sequences of one or more instructions contained in main memory306. Such instructions may be read into main memory306from another storage medium, such as storage device310. Execution of the sequences of instructions contained in main memory306causes processor304to perform the process blocks described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

Computer system300can send messages and receive data, including program code, through the network(s), network link320and communication interface318. In the Internet example, a server330may transmit a requested code for an application program through Internet328, ISP326, local network322and communication interface318. The received code may be executed by processor304as it is received, and/or stored in storage device310, or other non-volatile storage for later execution.

3.6 Extensions and Alternatives