Title:
USER INITIATED DEALS IN A SOCIAL NETWORKING SYSTEM
Kind Code:
A1


Abstract:
Social networking systems allow users to initiate a deal associated with a provider. A user sends a deal proposal to the social networking system and provides information describing connections of the user that are potential participants of the deal. The social networking system may propose potential participants of the deal to the user. The social networking system determines whether the proposal is acceptable to the provider. The social networking system may send a request to the provider to determine whether the deal is acceptable to the provider. If the proposal is acceptable to the provider, information indicating acceptance of the proposal is sent to the user. If the proposal is not acceptable to the provider, a modified deal proposal may be sent to the user.



Inventors:
Hu, Bo (San Jose, CA, US)
Winters, Kelly (San Francisco, CA, US)
Ferguson, David (El Dorado Hills, CA, US)
White, Emily Clark (Palo Alto, CA, US)
Application Number:
13/167657
Publication Date:
09/20/2012
Filing Date:
06/23/2011
Assignee:
HU BO
WINTERS KELLY
FERGUSON DAVID
WHITE EMILY CLARK
Primary Class:
Other Classes:
705/14.72
International Classes:
G06Q30/00
View Patent Images:



Primary Examiner:
LI, SUN M
Attorney, Agent or Firm:
Facebook/Fenwick (Mountain View, CA, US)
Claims:
What is claimed is:

1. A computer implemented method for creating deals initiated by a user of a social networking system, the method comprising: receiving a request to initiate a deal from a user of the social networking system, the request comprising information describing a proposal for the deal; identifying a set of connections of the user as potential participants of the proposal for the deal; sending information describing the identified set of connections to the user; and receiving a selection from the user of one or more connections from the set of connections as participants of the deal.

2. The computer implemented method of claim 1, further comprising: associating the proposal of the deal with a provider; sending a request to the provider to determine whether the proposal for the deal is acceptable to the provider; and responsive to determining that the proposal for the deal is acceptable to the provider, sending a message to the user indicating acceptance of the proposal.

3. The computer implemented method of claim 1, further comprising: associating the proposal of the deal with a provider; responsive to determining that the proposal for the deal is unacceptable to the provider, sending a modified deal proposal to the user.

4. The computer implemented method of claim 1, wherein the information describing the proposal for the deal comprises one or more of a location, a time, and a price associated with the proposed deal.

5. The computer implemented method of claim 1, wherein identifying the set of connections of the user comprises: selecting one or more connections based at least in part on the user's affinity for the connections.

6. The computer implemented method of claim 1, wherein identifying the set of connections of the user comprises: determining a first distance value of a location of a first connection of the user with respect to a location associated with the deal; determining a second distance value of a location of a first connection of the user with respect to the location associated with the deal; and responsive to determining that the first distance value is less than the second distance value, selecting the first connection over the second connection.

7. The computer implemented method of claim 1, wherein identifying the set of connections of the user comprises: determining interests of the connections of the user; and matching the interests of the connections of the user with information about the proposed deal.

8. The computer implemented method of claim 7, further comprising: identifying an additional set of connections based on the user's selection of the one or more connections; and sending the additional set of connections to the user for making a further selection of connections as potential participants of the proposal for the deal.

9. The computer implemented method of claim 8, wherein selecting the additional set of connections based on the user's selection of the one or more connections comprises: identifying a connection for the additional set based on an affinity of the user for the identified connection.

10. The computer implemented method of claim 8, wherein selecting the additional set of connections based on the user's selection of the one or more connections comprises: identifying a connection for the additional set based on a location of the identified connection with respect to locations of the selected one or more connections.

11. The computer implemented method of claim 8, wherein selecting the additional set of connections based on the user's selection of the one or more connections comprises: identifying a connection for the additional set based on a gender of the identified connection with respect to genders of the selected one or more connections.

12. The computer implemented method of claim 8, wherein selecting the additional set of connections based on the user's selection of the one or more connections comprises: identifying a connection for the additional set based on matching of an age of the identified connection with ages of the selected one or more connections.

13. The computer implemented method of claim 8, wherein selecting the additional set of connections based on the user's selection of the one or more connections comprises: determining a cluster of connections associated with the selected one or more connections, wherein a connection from the cluster has higher affinity with other connections of the cluster compared to connections outside the cluster; and identifying connections for the additional set from the cluster.

14. The computer implemented method of claim 1, wherein determining whether the proposal of the deal is acceptable to the provider comprises: sending information describing the deal proposal to the provider; and receiving from the provider, information describing whether the deal is acceptable to the provider.

15. The computer implemented method of claim 1, wherein determining whether the proposal of the deal is acceptable to the provider comprises: receiving criteria from providers for determining whether the deal proposal is acceptable to the provider; and applying the criteria to determine whether the deal proposal is acceptable to the provider.

16. The computer implemented method of claim 1, wherein the information describing one or more connections of the user is received from the user.

17. The computer implemented method of claim 1, wherein the information describing one or more connections of the user is received from the connections of the user.

18. A computer program product having a computer-readable storage medium storing computer-executable code for creating deals initiated by a user of a social networking system, the code comprising: a dashboard manager configured to: receive a request for initiating a deal from a user of the social networking system, the request comprising information describing a proposal for the deal; a deal proposal module configured to: identify a set of connections of the user as potential participants of the deal; send information describing the set of connections to the user; and the dashboard manager further configured to: receive a selection of one or more connections from the set of connections as participants of the deal.

19. The computer program product of claim 18, wherein the deal proposal module is further configured to: associate the proposal of the deal with a provider; determine whether the proposal for the deal is acceptable to a provider; and responsive to determining that the proposal for the deal is acceptable to the provider, send a message to the user indicating acceptance of the proposal.

20. The computer program product of claim 18, wherein the deal proposal module is further configured to: associate the proposal of the deal with a provider; responsive to determining that the proposal for the social deal is unacceptable to the provider, send a modified deal proposal to the user.

Description:

CROSS REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 61/452,577 filed Mar. 14, 2011, which is incorporated by reference in its entirety.

BACKGROUND

This invention relates to deals in social networking systems and in particular to user initiated deals in a social networking system.

Providers of services and/or products offer deals to potential or current customers to entice them to make purchases. A deal is an offer to sell a product or service to a customer, oftentimes including a particular benefit available to customers who buy the product or service through the deal. For example, a deal may offer a product or service at a discounted price, such as a fixed percent of the original price or a fixed amount below the original price. A deal may offer a discount on a future purchase of a product/service upon a purchase of a similar or a different product/service. A deal may also offer access to inventory not open to the general population. For example, a deal may provide discount on a second product upon purchase of a first product. Deals are often offered by providers who are different from the actual seller of the product or service. The deal provider manages the deal purchase transaction and gives a voucher for the transaction to the customer, who can then redeem the voucher for the purchased product or service.

Providers offer deals for various reasons. Sometimes providers offer deals on products that they are trying to dispose of quickly to make room for a new line of products. Sometimes providers offer deals since they realize that users are interested in making a purchase only if there is a deal available. Users often closely monitor deals. Therefore deals draw attention of users to particular products and bring the product in their radar.

Providers are always coming up with creative ways to offer deals to get user's attention. However, if a user is not interested in a deal for a product or service, the efforts of the provider in directing these deals to the user get wasted. Therefore, providers prefer to direct their deals to users who are most likely to be interested in the deals offered in order to maximize sales of their products/services. Providers have not leveraged the power of social networking to make deals more effective to achieve their goals.

SUMMARY

Embodiments of the invention allow users of a social networking system to initiate a deal associated with a provider. A user sends a deal proposal to the social networking system and provides information describing connections of the user that are potential participants of the deal. The social networking system may propose potential participants of the deal to the user and receive selection of participants from the user.

In an embodiment, the social networking system receives a request including a deal proposal from a user of the social networking system. The social networking system identifies a set of connections of the user as potential participants of the proposal for the deal and sends information describing the set of connections to the user. The social networking system receives a selection from the set of connections as participants of the deal.

In an embodiment, the social networking system determines whether the deal is acceptable to a provider of the deal. The social networking system may send a request to the provider to determine whether the deal proposal is acceptable or may determine locally based on criteria previously received from the provider. If the social networking system determines that the deal is acceptable, the social networking system sends a message to the user indicating the acceptance. If the social networking system determines that the deal is unacceptable, the social networking system sends a modified deal proposal to the user.

The features and advantages described in this summary and the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a system environment for allowing users of a social networking system to interact with deals from providers, in accordance with an embodiment of the invention.

FIG. 2 is a diagram of the system architecture of a social networking system for allowing users of a social networking system to perform interactions with deals, in accordance with an embodiment of the invention.

FIG. 3 is a user interface for allowing a user of a social networking system to interact with deals of interest to the user, in accordance with an embodiment of the invention.

FIG. 4 is a user interface for presenting social information associated with deals of interest to the user of a social networking system, in accordance with one embodiment of the invention.

FIG. 5 shows a screenshot of a user interface displaying connections of a user of the social networking system that are likely to be interested in a deal, in accordance with one embodiment of the invention.

FIG. 6 shows a user interface allowing a user to initiate a deal via a social networking system, in accordance with one embodiment of the invention.

FIG. 7 is an interaction diagram of a process for allowing users of the social networking system to initiate a deal by making a deal proposal, in accordance with one embodiment of the invention.

The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.

DETAILED DESCRIPTION

Providers of products and services offer deals to their current and/or potential customers offering them benefits towards purchases made with the providers. Providers anticipate needs of the current and/or potential customers in order to determine the attributes of the deal they offer. For example, if a particular holiday is approaching, the providers anticipate need for products/services associated with the holiday and offer deals related to those products/services. However, providers may not be able to accurately predict needs of users and may lose business opportunities as a result. For example, a provider of tickets for an event may be willing to offer a discount to a group of friends interested in purchasing tickets. However, the provider may not be aware of the need of a group of friends interested in purchasing the tickets. As a result, users need a mechanism to make a deal proposal to the deal provider of their need by providing the required information.

Embodiments allow users of a social networking system to propose a deal to a provider of products and/or services. The deal may be made by a single user or by a plurality of users. If multiple users make a deal proposal, each user may provide the user's expectations from the deal. Accordingly, the deal can provide different levels of benefits to different participants of the deal. The provider may either accept the deal as proposed by the users or may propose a counter offer comprising a modified deal proposal for the users to review. The users may accept the modified deal proposal or may continue to negotiate with the provider.

As a result, the provider of the products/services is beneficially made aware of business opportunities that would be difficult for the provider to predict. The providers can customize the deals to specific needs of individual user/users. Furthermore, the current/potential customers of the provider are provided with mechanisms to propose deals and obtain benefits of deals that would not otherwise be offered by the provider.

Information Describing a Deal

A deal is associated with an offer made to a user that provides certain benefits to the user upon acceptance. The benefit offered by a deal corresponds to a value of the deal or a price of the deal. For example, a deal that offers higher benefits provides higher value. In an embodiment, a user can purchase a deal by paying a price for the deal. The user can subsequently redeem the deal by making a purchase or a transaction. Providers often present a deal to the users along with their advertisements. Typically, the benefits offered by a deal are associated with a transaction, for example, a purchase of a product or service offered by the provider. A transaction between a customer and a provider involves an exchange between a user and a provider, wherein the customer provides money to the provider and the provider provides one or more products and/or services to the customer.

Benefits offered by a deal can include a reduction in the price of the product and/or service. For example, the deal may offer reduction in price by a fixed percent (e.g., 10% reduction in price) or a reduction in price by a fixed amount (e.g., price reduced by ten dollars). Alternatively, the benefits provided by a deal may include other financial advantages including free shipping, a coupon for a subsequent purchase, a reduction in price of a different item bought in the same transaction, no sales tax, and the like. The benefits associated with a deal are referred to as the value of the deal or the price of the deal. A deal may have multiple participants and the benefit provided to each participant may depend on the social information associated with the participant. The social information used to determine the value of the deal for a participant may include actions performed by the participant associated with the deal as well as connections of the participant in the social networking system.

A deal may be associated with a time period. For example, a deal can only be used after a start date and before an end date. The deal may be associated with other limits on the purchases. For example, the deal may apply to all items purchased in a transaction, the deal may apply to all purchases made on a particular day, or the deal may apply to a single item. These limits on the purchases applicable to a deal are called the maximum redemption of the deal.

A deal may be associated with an event. A deal may be applicable to in-store purchases as opposed to online purchases, or the deal may be for online purchases only. The deal may also have a specific redemption method. For example, the deal may require a user to present a coupon or a coupon code, the deal may be automatically offered upon making a purchase, the deal may require use of a particular type of payment mechanism including a specific type or credit or debit card, or the deal may require presentation of proof of membership in a club.

A deal may be associated with other conditions, for example, the number of purchases made by the user must exceed a threshold value or the total value of the purchases must exceed an amount. When the required conditions associated with a deal are satisfied, the deal is considered activated. The activation of a deal may require an explicit status change by the provider of the deal. Alternatively, the activation may be automatic upon satisfaction of the required conditions and the user gets the benefits of the deal when the user completes an applicable transaction. The user may be required to complete a transaction associated with the provider to redeem an activated deal.

Activating a deal comprises marking the deal as ready for use by a user. For example, a deal that is activated can be presented to the user as a coupon that can be redeemed by the user. An activation of a deal may require certain actions to be performed by multiple users. For example, the activation of a deal may require multiple users to be present at a location associated with the provider. If more than a threshold number of user's friends' check-in to a location along with the user, the deal is activated. The value of the deal may be determined based on the number of connections of the user determined to be present at the location. Each user who participates in the activation of the deal is called a participant of the deal. The deal may offer benefits to one user or to all the participants of the deal. For example, a restaurant deal activated by a number of friends present at the location may offer a price reduction upon payment by a single user or it may offer price reduction to each participant making a separate payment. In an embodiment, activation of the deal comprises redemption of the deal. For example, if more than a threshold number of connections of a user purchase tickets for an event (for example, a concert) via the social networking system, a social deal provides the tickets at a discounted price. In this case, the activation of the deal happens when the deal is redeemed.

A reference to a deal in this disclosure may refer to an instance of deal associated with a particular user or a type of a deal offered by a provider. The context of the disclosure clarifies whether a deal refers to an instance of a deal or deals of a particular type. For example, a deal may refer to an offer by a particular provider that gives 20% discount on a product if purchased before a given date. A deal may also refer to an instance of a social deal that is specific to a user and requires participation by connections of the user.

Deals System Environment

FIG. 1 is a diagram of a system environment for allowing users of a social networking system 100 to interact with deals using the social networking system, in accordance with an embodiment of the invention. The users 135 interact with the social networking system 100 using client devices 105. The provider systems 120 (also referred to as “provider” herein) interact with the social networking system 100 to provide information describing the deals. Some embodiments of the systems 100, 120, and 130 have different and/or other modules than the ones described herein, and the functions can be distributed among the modules in a different manner than described here.

FIG. 1 and the other figures use like reference numerals to identify like elements. A letter after a reference numeral, such as “130A,” indicates that the text refers specifically to the element having that particular reference numeral. A reference numeral in the text without a following letter, such as “130,” refers to any or all of the elements in the figures bearing that reference numeral (e.g. “130” in the text refers to reference numerals “130A” and/or “130B” in the figures).

A provider system 120 comprises a provider application programming interface (API) module 125 that allows the social networking system 100 to interact with the provider system. The provider APIs 125 allow the social networking system 100 to send requests for information to the provider system 120 and receive information associated with the deals from the provider system 120. For example, the social networking system 100 may send a request to the provider system 120 to determine whether a user of the social networking system 100 is an existing customer of the provider system 120.

In one embodiment, the client device 105 used by a user 135 for interacting with the social networking system 100 can be a personal computer (PC), a desktop computer, a laptop computer, a notebook, a tablet PC executing an operating system, for example, a Microsoft Windows-compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the client device 105 can be any device having computer functionality, such as a personal digital assistant (PDA), mobile telephone, smartphone, etc.

The client device 105 executes a user interface called dashboard 130 to allow the user 135 to interact with the social networking system 100. The dashboard 130 allows the user 135 to perform various actions related to deals. These actions include retrieving information describing deals that are likely to be of interest to the user, recommending deals to connections of the user, participating in a social deal, checking in to a location associated with a deal provider, and making a purchase using the deal. In an embodiment, the dashboard 130 is presented to the user via a browser application that allows a user to retrieve and present information from the internet or from a private network.

The social networking system 100 offers its users the ability to communicate and interact with other users of the social networking system 100. Users join the social networking system 100 and then add connections to a number of other users of the social networking system 100 to whom they desire to be connected. The social networking system 100 maintains different types of objects representing entities, for example, user profile objects 175, connection objects 195, event objects 190, deal objects 180, and provider objects 185. An object may be stored for each instance of the associated entity. A user profile object 175 stores information describing a user of the social networking system 100. A connection object 195 stores information describing relations between two users of the social networking system or in general any two entities represented in the social networking system 100. The event objects 190 store representations of real-world events in the social networking system 100. The deal objects 180 represent deals and the provider objects represent providers in the social networking system 100. These objects are further described in detail herein.

The social networking system 100 comprises an external system interface 110, a dashboard manager 115 and various modules described in FIG. 2. The dashboard manager 115 allows users of the social networking system 100 to interact with the deals via the dashboard 130 user interface. The dashboard manager 115 presents information describing deals of interest to a user. For example, the dashboard manager may present different types of deals to two users that have different interests.

The dashboard manager 115 allows a user 135 to perform various actions associated with the deal. These actions include purchasing the deal, recommending the deal to a connection, commenting on the deal, following the deal, liking the deal, participating in a social deal, uploading an image associated with the deal, for example, uploading an image taken at a location associated with the deal for display as part of the user's profile. The dashboard manager 115 receives requests from the user 135 for performing actions related to deals. A user 135 sends requests to the dashboard manager 115 via the dashboard 130. For example, a user 135a may send a request to recommend a deal to a connection of the user 135a (say, user 135b). The dashboard manager 115 may invoke other modules of the social networking system 100 shown in FIG. 2 to perform a requested action.

The external systems interface 110 of the social networking system 100 allows various modules of the social networking system 100 to interact with external systems including the provider systems 120. For example, a module of the social networking system 100 may update the provider system 120 with information describing a transaction made by a user 135. The external system interface 110 invokes the provider APIs 125 for interacting with the provider systems 120. The external systems interface 110 also allows external systems to interact with the social networking system 100, for example, to access the social network information or to update information present in the social networking system 100. The external system interface 110 provides APIs that allow external systems to interact with the social networking system 100. For example, a provider system 120 may send information describing new deals from the provider by invoking appropriate APIs supported by the external systems interface 110.

The social networking system 100 comprises modules other than those shown in FIG. 1, for example, modules illustrated in FIG. 2 that are further described herein.

System Architecture for User-Initiated Deals

FIG. 2 is a diagram of system architecture of a social networking system 100 for allowing users to initiate deal proposals, in accordance with an embodiment of the invention. The social networking system 100 includes a web server 220, a newsfeed generator 235, a dashboard manager 115, an external system interface 110, an action logger 240, an action log 245, a social deal manager 250, a deal pricing module 255, a deal proposal module 270, an event manager 280, a user profile store 215, a connection store 230, a deal store 225, an event store 285, and a provider store 275. In other embodiments, the social networking system 100 may include additional, fewer, or different modules for various applications.

The social networking system 100 stores user profile objects 175 in the user profile store 215. The information stored in user profile store 215 describes the users of the social networking system 100, including biographic, demographic, and other types of descriptive information, such as work experience, educational history, gender, sexual preferences, hobbies or preferences, location, and the like. The user profile store 215 may also store information provided by the user, for example, images, videos, comments, and status updates.

Any action that a particular user takes using the social networking system 100 is associated with the user's profile 175, through information maintained in a database or other data repository. Such actions may include, for example, adding a connection to the other user, sending a message to the other user, reading a message from the other user, viewing content associated with the other user, seeing what deals another user likes or is following, attending an event posted by another user, among others. In addition, a number of actions described below in connection with other objects are directed at particular users, so these actions are associated with those users as well.

The connection store 230 stores data describing the connections between different users of the social networking system 100, for example, as represented in a connection object 195. The connections are defined by users, allowing users to specify their relationships with other users. For example, the connections allow users to generate relationships with other users that parallel the users' real-life relationships, such as friends, co-workers, partners, and so forth. In some embodiment, the connection specifies a connection type based on the type of relationship, for example, family, or friend, or colleague.

Connections may be added explicitly by a user, for example, the user selecting a particular other user to be a friend, or automatically created by the social networking site based on common characteristics of the users (e.g., users who are alumni of the same educational institution). As used herein, the term “friend” refers to any other user to whom a user has formed a connection, association, or relationship via the social networking system 100. The connection between users may be a direct connection; however, some embodiments of a social networking system 100 allow the connection to be indirect via one or more levels of connections. Connections may also be established between different types of entities for example, the social networking system 100 can have an object representing a school and users of the social networking system 100 that study in the school or who are alumni of the school can connect with the school in the social networking system 100.

The deal store 225 stores information describing deals, for example, deals represented as deal objects 180. The deal object 180 is associated with metadata describing the deal and comprises data specific to an instance of the deal. An instance of a deal may be created for each user that performs certain actions associated with the deal. For example, if the activation of a deal requires participation by connections of a user, the deal object 180 stores information describing the participants in the deal. As other connections of the user perform actions that contribute towards activation of the deal, the social networking system 100 updates the information stored in the deal object 180.

The information stored in a deal object 180 comprises a description of the deal, one or more deadlines associated with the deal, for example, a start date and end date during which the deal can be used, a location associated with the deal, a type of the deal, a redemption method for the deal, maximum redemption associated with the deal, a description of the benefit offered by the deal, for example, a percent reduction in price, any conditions or rules associated with the deal, a profile page associated with the deal on the social networking system 100, and other information. The deal object also stores information identifying the deal provider 120, a user associated with the deal, and connections of the user associated with the deal, for example, if the deal activation requires participation by connections of the user. The deal object 180 may store information describing a source of the deal, for example, whether the deal was imported from an external system, or the deal was added to the social networking system 100 by the deal provider 120, or if the deal was initiated by a user of the social networking system 100.

A deal object may be associated with different types of social information including users of the social networking system 100, events represented in the social networking system 100, actions performed by users that are associated with the deal, and the like. This information may be stored in various data stores in the social networking system 100. Associations between the deal objects 180 and the relevant social information associated with the deal may be either stored explicitly in the social networking system 100 or determined as needed. The deal object 180 may be associated with actions of users associated with the deal, for example, users that liked the deal or are following the deal, users who subscribed to the deal, users who purchased the deal, users who shared or gifted the deal, users who checked-in to locations associated with the deal, comments made by users on the deal etc.

A deal store 225 also stores a category associated with each deal that describes the type of product or services associated with the deal. Examples of categories of deals include “dining,” “shopping,” “professional services,” “beauty and spas,” “health and fitness,” “automotive,” “pet care,” “financial services,” “travel,” and “arts and entertainment.” In an embodiment, the social networking system 100 may have a list of business categories defined to classify various businesses. The social networking system 100 stores a mapping from the business categories to the deal categories to allow objects associated with business categories to be matched with deal categories. For example, business categories “restaurant” and “bar” map to the deal category “dining” Similarly, business categories “hotel,” “airport,” and “transit stop” map to deal category “travel.”

The event store 285 stores information describing events associated with the social networking system 100. An event object 190 may be defined for a real-world event, such as a birthday party. A user interested in attending the event may establish a connection with the event object. A user may create the event object 190 by defining information about the event such as the time and place and a list of invitees. Other users may send a reply to the invitation (an RSVP message) i.e., accept or reject the invitation, comment on the event, post their own content (e.g., pictures from the event), and perform any other actions enabled by the social networking system 100 for the event. Accordingly, the creator of the event object 190 as well as the invitees for the event may perform various actions that are associated with that event object 190. Events may be associated with deals, for example, an event object representing a concert may be associated with a deal providing a discounted price for the concert. The event store 285 stores the associations between events and deals.

The provider store 275 stores the provider objects 185 that store information describing the providers 120. The information describing a provider 120 includes categories associated with products/services offered by the provider, locations associated with the provider, and information needed for interacting with the provider APIs 125. In an embodiment, the provider object 185 locally caches information describing the provider that is frequently used by the social networking system 100. The locally cached information is synchronized with the information stored in the provider system 120, for example, based on a regular schedule, or every time the information stored in the provider system 120 changes. The social networking system 100 stores associations between the provider objects 185 and the deals provided by the provider 120.

The web server 220 links the social networking system 100 via the network 210 to one or more client devices 105; the web server 220 serves web pages, as well as other web-related content, such as Flash, XML, and so forth. The web server 220 provides the functionality of receiving and routing messages between the social networking system 100 and the client devices 105 as well as other external systems, for example, the provider systems 120. These messages can be instant messages, queued messages (e.g., email), text and SMS (short message service) messages, or any other suitable messaging technique.

The action logger 240 is capable of receiving communications from the web server 220 about user actions on and/or off the social networking system 100. The action logger 240 populates the action log 245 with information about user actions to track them. Any action that a particular user takes with respect to another user is associated with each user's profile, through information maintained in a database or other data repository, such as the action log 245. Such actions may include, for example, adding a connection to the other user, sending a message to the other user, reading a message from the other user, viewing content associated with the other user, attending an event posted by another user, among others. In addition, a number of actions described below in connection with other objects are directed at particular users, so these actions are associated with those users as well. When a user performs an action using the social networking system 100, the social networking system 100 adds an entry for that action to the log 245.

The social deal manager 250 maintains information describing social deals and actions associated with social deals. The social deal manager 250 maintains metadata associated with the deal, including the type of actions required to activate the social deal, whether the actions have to be performed by the user or by the connections of the user, and the number of actions of each type required to activate the deal. Examples of types of actions that can activate a social deal include checking in to a location, making a purchase, sending a recommendation of the deal to a connection, registering with the provider, and the like.

The deal pricing module 255 determines the price of a deal for a given user. The deal pricing module 255 analyzes the historical actions of the user and the user's connections. The historical actions of the user and the user's connections can be obtained from the action log 245. The deal pricing module 255 identifies the actions of the user and he user's connection that are associated with the deal to determine the deal price. The deal pricing module 255 accesses the connection store 230 to determine the connections of the user and the user profile store 215 to access information describing the user and the connections of the user.

The deal proposal module 270 manages deal proposals from the users of the social networking system according to an embodiment. The deal proposal module 270 maintains data structures for representing the deal proposals and updates the information stored in the data structures based on interactions with the users and the deal providers. The deal proposal module 270 manages interactions with users via the user interface dashboard 130. The deal proposal module 270 manages interactions with the deal provider 120 via the external system interface 110 by invoking the appropriate provider APIs 125.

In some embodiments, the system 100 is not a social networking system but a system that communicates with a social networking system to obtain the necessary social network information. The system 100 may communicate with the social networking system, for example, using APIs provided by the social networking system. In these embodiments, some modules shown in FIG. 2 may run in the system 100, whereas other modules may run in the remote social networking system. For example, the modules including the deal pricing module 255 may run in the system 100 but modules deal store 225, user profile store 215, connection store 230, and action log 245 may exist in a separate social networking system 100.

The interactions between the client devices 105 and the social networking system 100 as well as the interactions between the provider 120 and the social networking system 100 are typically performed via a network 210, for example, via the internet. The network 210 enables communications between the client device 105 and the social networking system 100.

Deals Dashboard

The dashboard 130 is a user interface for allowing a user of a social networking system to view and interact with deals. FIG. 3 shows screenshots of the dashboard, in accordance with an embodiment of the invention. The dashboard 130 can be a part of a user interface that allows different kinds of user interactions with a social networking system 100. A user viewing the user's information 300 on a social networking system 100 (for example, from the user's home page) can request different type of information from the social networking system 100 by pressing buttons or links 350. The different types of information requested by the user include newsfeed stories of interest to the user, messages received by the user via the social networking system 100, connections of the user, events associated with the user, and the like. The user can request information describing deals associated with the user by clicking on button 320. The dashboard 130 user interface is presented to a user requesting deals information by clicking on the button 320.

When a user requests deals information, the dashboard manager 115 receives deals relevant to the user as suggested by the suggestion module 265. A user can select a particular deal 310 presented to the user and request more information describing the deal. FIG. 4 shows screenshots of a user interface presenting social information associated with a particular deal selected by the user. FIG. 4 shows detailed information describing the deal, for example, the location 420 of the deal, the deal price 440, and images 450 describing the product/services associated with the deal. The user interface presented in FIG. 4 allows user actions 410 associated with the deal including purchasing the deal, recommending the deal to a connection, commenting on the deal, liking the deal, participating in a social deal, uploading an image associated with the deal and the like. The dashboard 130 may also present different types of social information associated with the deal, for example, connections 430 of the user that performed an action associated with the deal, events associated with the deal, social groups associated with the deal, images associated with the deal and the like.

The social networking system 100 may request the user to perform certain actions associated with the deal. For example, the social networking system 100 may request the user to suggest the deal to the user's connections. FIG. 5 show screenshots of a user interface displaying connections of a user of the social networking system 100 that are likely to be interested in a deal, in accordance with one embodiment of the invention. Typically, a user is presented with a request for suggesting the deal to the user's connections when the user purchases the deal. For example, the screens shown in FIG. 5 may be presented as part of the user interaction with the social networking system 100 for making the purchase. The user interface in FIG. 5 allows a user to add 540 connections to a list for suggesting the deal. The user can delete 530 connections previously added to the list. Once the required connections are added to the list, the user can send 550 the information describing the deal to the connections.

The user interface presented in FIG. 5 can be used to allow a user to add/delete participants in a social deal. For example, the social networking system 100 can present a list of potential participants in a social deal to the user. The user can select the participants and send the information to the social networking system 100. If the user selects more than a threshold number of participants, the social networking system 100 can activate the social deal. Alternatively, the social networking system 100 can send a message to the selected participants to confirm their participation in the deal. The social networking system 100 can activate the deal if more than a threshold number of participants confirm that they intend to participate in the deal.

User-Initiated Deal Proposals

Users of the social networking system 100 can initiate a deal by making a proposal for a deal to the provider. The information describing the deal can be provided by a single user of the social networking system 100 or by multiple users. For example, a user can initiate the deal proposal and one or more connections of the user can provide information describing the deal proposal. The connections of the user can provide information indicating whether or not they intend to participating in the deal proposal. The connections can also provide information indicating attributes of the deal proposal including the location, time, or other details.

The participants of a deal proposal may be required to provide certain information before the deal proposal is considered a valid deal proposal. The required attributes of a deal proposal may be specified by a provider. In an embodiment, the deal proposal module 270 may require certain attributes for deals belonging to certain category irrespective of the provider. For example, a deal proposal related to travel may be required to specify the location and time of travel. When the deal proposal module 270 determines that the deal proposal includes the required attributes, the deal proposal module 270 submits the deal proposal to the provider.

The deal provider 120 can either accept the deal proposal or reject it. If the deal provider 120 accepts the deal, the deal may be activated for use by the user and the user's connections. The deal provider 120 may not accept the deal proposal but instead make a counter offer by sending a modified deal proposal to the user. In an embodiment, the social networking system 100 obtains sufficient information from the provider that allows the deal proposal module 270 to validate a deal proposal and to decide whether a proposal is likely to be accepted or rejected by the provider. The information used by the deal proposal module 270 to validate a deal proposal on behalf of the provider 120 may comprise valid ranges of attribute values and rules associated with attributes that allow validation of individual attributes.

The user may provide only partial information describing the proposed deal. For example, a deal proposal may specify a location of the provider, a proposed date for purchase of the deal, and a number of friends of the user participating in the deal but may not specify a price for the proposed deal. The social networking system 100 may suggest values for the attributes not specified in the deal proposal. The user may accept the suggested attribute values to complete the deal proposal or may suggest a different attribute value. In an embodiment, the deal proposal module 270 performs multiple iterations of exchange of information with the user to finalize the deal proposal for submission to the provider.

The social networking system 100 provides a user interface that allows a user to provide the information for creating a deal proposal. The user interface can allow the user to provide the information in a structured format or in an unstructured format as natural language text. FIG. 6 shows a user interface 600 allowing a user to initiate a deal via a social networking system 100. The user interface 600 can be a part of the dashboard 130. The user can specify the type 610 of activity that the user is interested in (e.g., eating at a restaurant, going to a concert, shopping at a store), the time 620 for the activity, the place for the activity 630 and social information 640 associated with the activity, for example, the number of connections or a list of connections that intend to participate. The information provided by the user via the user interface 600 can be shared with connections of the user, for example, using the share button 650 or via newsfeed. For example, if a user indicates that the user would like to have dinner at a restaurant along with 4 friends, the story can be provided to the user's connections and the connections can decide whether they want to participate in the deal or not.

FIG. 7 is an interaction diagram of a process for allowing users of the social networking system 100 to make a deal proposal, in accordance with one embodiment of the invention. The user interacts with the social networking system 100 via the dashboard 130. Based on information provided by the user, the dashboard 130 sends 715 an initial proposal for a social deal. The initial proposal can specify information describing the deal proposal including information identifying the user, information identifying the provider, a proposed price for the deal, a proposed benefit offered by the deal, a proposed location associated with the deal, or a proposed time for the deal, a number of connections of the user participating in the deal, or information identifying connections of the user participating in the deal.

The deal proposal module 270 may interact with the user via the dashboard 130 to allow the user to specify certain attributes for the deal proposal. For example, the user may specify a number of connections that the user expects to participate in the deal. The deal proposal module 270 can determine 720 a set of connections that are likely to be potential participants in the deal and suggest 725 them to the user as potential participants. The user can review the suggested 725 set of connections and select a few connections as participants of the deal using the dashboard 130. The dashboard 130 sends 730 the selection made by the user to the deal proposal module 270.

The deal proposal module 270 suggests 725 connections of the user that are likely to participate in the proposed deal. The deal proposal module 270 can use various criteria to determine which connections of the user are likely to participate in the proposed deal. One criterion used by the deal proposal module 270 comprises comparison of information describing interests of the connections of the user against information describing the deal proposal. The information describing the deal proposal used for comparison includes the category of the proposed deal, keywords associated with topics describing the proposed deals, and the information describing the provider. The deal proposal module 270 can determine the interests of the connections from the user profile store 215 or by analyzing the previous interactions of the connections with the social networking system 100. For example, a connection of the user who frequently retrieves information associated with a topic may be determined as having an interest in the topic.

Factors considered for determining whether connections of the user are selected as potential participants for the social deal include an affinity of the connection with respect to the user. The affinity of a connection to the user may be determined based on various factors including the connections interactions with the user, the type of connection between the connection and the user, the frequency of interactions between the user and the connection, and the like. A type of a connection can specify the relation between the connection and the user, for example, family, friend, or colleague.

The deal proposal module 270 may match the connections of the user against the deal targeting criteria specified by the provider to ensure that a suggested connection meets the targeting criteria of the provider. For example, if the proposed deal belongs to a category and the provider targets deals of that category to individuals that are males in the age group of 25-35, the deal proposal module 270 selects connections of the user that satisfy these criteria for further analysis.

In an embodiment, the connections of a user in the social networking system 100 are analyzed to determine friend circles, each friend circle comprising a set of connections that have high affinity with each other. For example, a connection belonging to a friend circle is likely to have higher affinity with other connections of the circle as compared to connections outside the circle. In an embodiment, the set of connections suggested for participation in a deal are selected from the same friend circle if possible. Examples of friend circles of a user include a set of connections graduating from the same school, a set of connections that are members of a social group, a set of connections comprising people of similar interests, a set of connections comprising family members and the like. Typically, two connections belonging to the same friend circle have more interactions with each other than friends belonging to two different circles.

In an embodiment, the user does not specify the provider in the deal proposal. The deal proposal module 270 compares the information provided in the deal proposal against information available from the providers, for example, different types of deals stored in the deal store 225 to determine an appropriate provider. The deal proposal module 270 selects the provider that is most likely to accept the deal proposal as it is offered. The deal proposal module 270 may analyze information associated with the provider including the previous deal proposals accepted by the provider to determine a likelihood of acceptance of the deal proposal by the provider.

If the deal proposal module 270 determines that the required attributes of the proposal are specified by the user, the deal proposal module 270 sends 735 information describing the proposal to the provider 120. Alternatively, the user may indicate that the user does not have any more information left to provide related to the deal proposal to the social networking system 100 and the deal proposal is finalized. The deal proposal module 270 may analyze metadata associated with different deal providers stored in the provider store 275 to determine which attributes are required in a deal proposal for a provider. The deal proposal module 270 may reject a deal proposal that does not specify an attribute that is required by a provider. The information describing the proposal is sent 735 to the provider via the external system interface 110. The provider 120 evaluates 740 the deal proposal to determine whether the deal is acceptable or not.

In some embodiments, information describing acceptable deals for the providers 120 can be stored in the provider store 275 to allow the deal proposal module 270 to determine whether a deal proposal is acceptable to the provider without sending an explicit request to the provider 120. The provider store 275 can store valid ranges of values of attributes associated with different types of deals. For example, if the provider never allows a discount of more than 20% for deals on certain products, the provider store 275 stores a valid range of the discount as 0-20%. Similarly, if the provider requires more than a certain number of participants for a social deal or other constraints based on the participants, the provider store 275 stores the corresponding constraints on the participants.

The deal provider 120 can either reject the deal, accept the deal, or suggest 745 an alternative proposal for the deal. The deal proposal module 270 sends 750 the alternative deal proposal to the dashboard 130 for presentation to the user. The user may either accept the alternative deal proposal or modify the original deal proposal. The dashboard 130 receives 755 the modifications to the deal proposal from the user. The dashboard sends the modified deal proposal to the deal proposal module 270. The deal proposal module 270 sends 765 the modified deal proposal to the provider 120.

The provider 120 evaluates 770 the modified deal proposal received from the user. If the modified deal proposal is unacceptable to the deal provider 120, the deal provider may continue interacting with the user via the social networking system 100 to further refine the deal proposal or the deal provider may reject the deal proposal. If the modified deal proposal is acceptable to the provider 120, the provider 120 sends 775 an acceptance of the modified deal proposal to the deal proposal module 270. The deal proposal module 270 sends the acceptance of the modified deal proposal to the dashboard 130 for presentation to the user. In an embodiment, the acceptance of a deal proposal by the provider results in activation of a deal based on the proposal.

In an embodiment, information describing a deal proposal can be provided by multiple users of the social networking system 100. For example, a user can create a social deal and allow connections of the user to provide input whether they plan on participating in the social deal or not. The social deal gets activated when more than a threshold number of connections indicate to the social networking system 100 that they plan on participating in the social deal.

In an embodiment, individual participants of the deal proposal can specify whether their offer is firm or negotiable. If the offer made by the participant is firm, the participant agrees that the participant may be dropped from the deal if the counter offer is below the offer of this participant. This allows the social networking system 100 to determine the final number of participants based on the counter offer that a provider is willing to make.

Alternative Applications

The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.

The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.

Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a tangible computer readable storage medium or any type of media suitable for storing electronic instructions, and coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.

Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.