U.S. patent application number 13/289970 was filed with the patent office on 2012-09-20 for associating deals with events in a social networking system.
Invention is credited to Bo Hu, Evan Sharp, Kelly Winters.
Application Number | 20120239485 13/289970 |
Document ID | / |
Family ID | 46829210 |
Filed Date | 2012-09-20 |
United States Patent
Application |
20120239485 |
Kind Code |
A1 |
Hu; Bo ; et al. |
September 20, 2012 |
ASSOCIATING DEALS WITH EVENTS IN A SOCIAL NETWORKING SYSTEM
Abstract
Social networking systems create representations of events
associated with deals and populate attributes of the event based on
information associated with the deal. Examples of attributes
populated based on the deal include location for the event,
potential participants for the event, or time for the event. The
deal can be a social deal that is activated by participation of
multiple users of the social networking system. The social
networking system synchronizes potential or actual participants for
the event with potential or actual participants of the social deal.
The social networking system identifies events represented in the
social networking system that are associated with the deal and
suggests possible interactions with the entities to users
associated with the deal. For example, the social networking system
may request the user to become member of a social group associated
with the deal, or purchase another deal associated with the current
deal.
Inventors: |
Hu; Bo; (San Jose, CA)
; Sharp; Evan; (San Francisco, CA) ; Winters;
Kelly; (San Francisco, CA) |
Family ID: |
46829210 |
Appl. No.: |
13/289970 |
Filed: |
November 4, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61452577 |
Mar 14, 2011 |
|
|
|
Current U.S.
Class: |
705/14.36 |
Current CPC
Class: |
G06Q 30/0207 20130101;
G06Q 30/0269 20130101; G06Q 30/0241 20130101; G06Q 50/01
20130101 |
Class at
Publication: |
705/14.36 |
International
Class: |
G06Q 30/02 20120101
G06Q030/02 |
Claims
1. A computer-implemented method comprising: receiving a request
for participation in a deal from a user of the social networking
system; creating a representation of an event in the social
networking system, wherein the representation of the event
comprises attributes populated based on information associated with
the deal; presenting information describing the event to the user,
wherein the information comprises attributes of the event populated
based on estimated values; and receiving updates to one or more
attributes of the event from the user.
2. The computer-implemented method of claim 1, further comprising:
determining one or more connections of the user as potential
participants for the event.
3. The computer-implemented method of claim 3, wherein the
potential participants for the event are determined based on past
events associated with deals similar to the deal.
4. The computer-implemented method of claim 3, further comprising:
granting access to information describing the event to the
potential participants determined for the event.
5. The computer-implemented method of claim 1, wherein the
representation of the event comprises a time of the event, the
method further comprising: determining one or more suggestions for
the time of the event based on a time associated with the deal.
6. The computer-implemented method of claim 1, wherein the
representation of the event comprises a location for the event, the
method further comprising: determining one or more suggestions for
the location of the event based on locations associated with the
deal.
7. The computer-implemented method of claim 6, wherein the
determining the suggestions for the location of the event comprise:
determining one or more past events in which the user participated
that are similar to the event; and determining suggestions for the
location of the event based on locations of the past events.
8. The computer-implemented method of claim 1, further comprising:
receiving request for information describing the event; and
providing information describing the deal in response to the
request for information.
9. The computer-implemented method of claim 1, further comprising:
sending a request to a calendar service to create a calendar entry
for the event.
10. The computer-implemented method of claim 1, further comprising:
sending a request to an external system of a business provider
associated with the deal to schedule resources for the event.
11. A computer-implemented method comprising: receiving a request
for creation of a social deal from a user of the social networking
system, wherein activation of the social deal requires multiple
users to perform actions associated with the social deal; sending a
request to schedule an event, the event corresponding to an
activity benefiting from the deal; responsive to receiving
information identifying potential participants of the social deal,
sending a request to add each potential participant to the event;
and responsive to receiving a message confirming participation by a
potential participant in the event, sending a request to confirm
participation by the user in the social deal.
12. The computer-implemented method of claim 11, further
comprising: responsive to receiving a message confirming
participation by a potential participant in the social deal,
sending a request to confirm participation by the user in the
event.
13. The computer-implemented method of claim 11, further
comprising: responsive to receiving a request to participate in the
event from a new user, adding the new user as a potential
participant in the social deal.
14. The computer-implemented method of claim 11, wherein the
representation of the event comprises a location for the event, the
method further comprising: determining one or more suggestions for
the location of the event based on a proximity of locations
associated with the deal with locations associated with potential
participants.
15. The computer-implemented method of claim 11, further
comprising: granting access to information describing the event to
the potential participants of the social deal.
16. A computer-implemented method comprising: receiving information
describing an action associated with a deal, the action performed
by a user of a social networking system; identifying an entity
represented in the social networking system associated with the
deal; identifying an action associated with the entity that can be
performed by users of the social networking system; and sending a
request to the user for performing the action associated with the
entity.
17. The computer-implemented method of claim 16, wherein the entity
is a social group and the action is getting a membership in the
social group.
18. The computer-implemented method of claim 16, wherein the entity
is another deal and the action is participating in the deal.
19. The computer-implemented method of claim 16, wherein the entity
is an image associated with the location of the deal and the action
is one of retrieving the image, liking the image, or commenting on
the image.
20. The computer-implemented method of claim 16, wherein the entity
is an event and the action is sending an RSVP message for the
event.
Description
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] 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
[0002] This invention relates to deals in social networking systems
and in particular to associating deals with events represented in a
social networking system.
[0003] 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.
[0004] Providers offer deals for various reasons. Sometimes
providers offer deals on products that they are trying to dispose
off 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. Conversely,
consumers often closely monitor deals. Therefore, deals draw
attention of users to particular products and bring the product on
the radar of potential customers.
[0005] Providers are always coming up with creative ways to offer
deals to get user's attention. A user is more likely to be
interested in deals if the user can utilize the benefits of the
deals effectively. If a user's experience in utilizing deals is a
pleasant experience, the user is likely to utilize more deals from
the provider in future. Therefore, providers would like to make the
user's experience in purchasing and utilizing a deal as easy and
pleasant to the user as possible. Nevertheless, providers have not
leveraged the power of social networking to make deals more
effective to achieve their goals.
SUMMARY
[0006] Embodiments of the invention create representations of
events in the social networking system based on deals. A user
performs an action associated with a deal, for example, by sending
a request to participate in a deal. The social networking system
creates a representation of an event associated with the deal and
populates attributes of the event based on information associated
with the deal. For example, the social networking system determines
potential locations for the event, potential participants for the
event, or time for the event based on the deal. The social
networking system may send information describing the event to the
user and allow the user to update the attribute values if
needed.
[0007] In an embodiment, the deal is a social deal that requires
participation by multiple users of the social networking system in
order to be activated. The social networking system synchronizes
the potential or actual participants for the event with the
potential or actual participants of the social deal. For example,
if a potential participant of the social deals confirms
participation in the social deal, the event is updated to change
the potential participant to a confirmed participant. Similarly, if
there is an update to information associated with the participants
of the event, the social deal is updated with the new
information.
[0008] In an embodiment, the social networking system identifies
entities represented in the social networking system that are
associated with the deal. Examples of entities associated with the
deal include social groups, images, other deals, or events
represented in the social networking system. The social networking
system identifies actions associated with the identified events and
sends requests to the user associated with the deal to perform the
actions. For example, the social networking system may request the
user to become member of the social group associated with the deal,
comment on an image of a location associated with the deal,
purchase another deal associated with the current deal, or send an
RSVP message for an event associated with the deal.
[0009] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a diagram of a system environment for allowing
users of a social networking system to interact with social deals,
in accordance with an embodiment of the invention.
[0011] FIG. 2 is a diagram of the system architecture of a social
networking system for allowing users of a social networking system
to interact with social deals, in accordance with an embodiment of
the invention.
[0012] 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.
[0013] 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.
[0014] FIG. 5 shows a screenshot of a user interface displaying
connections of a user of the social networking system as potential
participants of a social deal, in accordance with one embodiment of
the invention.
[0015] FIG. 6 shows a flowchart of a process for associating deals
with actions in the social networking system that a user can take,
in accordance with one embodiment of the invention.
[0016] FIG. 7 a flowchart of a process for creating events
associated with deals in the social networking system, in
accordance with one embodiment of the invention.
[0017] 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
[0018] Embodiments use social networking systems to incorporate
social information of users to improve user interactions with
deals. Incorporation of social information provides better
experience for the users interacting with the deals which in turn
results in more users getting interested in deals. This furthers
the goals of the providers since the providers are attempting to
increase the number of potential customers by offering deals.
Besides, deals provide a social experience to the users and a
valuable interaction with the social networking system. Users that
find the social networking system valuable are more likely to be
loyal to the social networking system. Increased loyalty of the
users to the social networking system is likely to attract more
providers offering advertisements and deals via the social
networking system. Since social networking systems derive revenue
from advertisements, this provides increased revenues for the
social networking systems.
[0019] Deals can provide a social experience for people. Multiple
users may participate in a social deal or make a purchase
associated with the deal together. For example, friends may go
shopping together, go to a restaurant together, or even make an
online purchase together. Users may communicate with each other via
email, phone, or conventional mechanisms to complete the purchase
associated with the deal and exploit the benefits of the deal. The
social networking system utilizes the social information available
in the social networking system to facilitate the social experience
associated with a deal.
[0020] One way embodiments incorporate social information in deals
is by creating representations of events associated with deals.
Users of a social networking system often create representations of
events in the social networking system. An event may be a concert,
a game, or simply a dinner at a restaurant. Users often include
their connections in the events, for example, a user may invite a
set of friends for meeting over a dinner. Embodiments determine
whether a deal may be associated with a potential event for a user
and create a representation of the associated event if possible.
The user is allowed to interact with the event to provide
additional information. The social networking system uses the
information available in the deal to assist the user in finalizing
the event. The social networking system synchronizes the
information in the deal with the information in the event so as to
update one entity when there is a relevant change in the other
entity.
Information Describing a Deal
[0021] 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 compared to a deal that offers lower benefits. 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. However a transaction involving a
deal provides additional benefits to the user.
[0022] Benefits offered by a deal can include a reduction in the
price of the product and/or service. Alternatively, the benefits
provided by a deal may include 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.
[0023] 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.
[0024] The deal may also be associated with a location. For
example, one location of a store may offer a deal but other
locations may not. A deal may also 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.
[0025] 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 purchase to
redeem an activated deal.
[0026] 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.
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.
[0027] 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. There may be multiple
instances of the deal created for different user. Each instance of
the deal stores information specific to the deal, for example,
users participating in that instance.
Deals System Environment
[0028] FIG. 1 is a diagram of a system environment for allowing
users of a social networking system to interact with social deals,
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.
[0029] 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).
[0030] 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. In an
embodiment, the provider APIs 125 may be implemented as a web
service. 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.
[0031] 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.
[0032] 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.
[0033] 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. 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 term friend need not require that
users to actually be friends in real life, (which would generally
be the case when one of the members is a business or other entity);
it simply implies a connection in the social networking system
100.
[0034] 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.
[0035] 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.
[0036] 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.
A user purchases a deal by completing a transaction that takes
advantage of the deal. For example, if the deal offers a 20%
discount on purchase of a product, the user purchases the deal by
purchasing the product and redeeming the deal for the purchase.
[0037] 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.
[0038] 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. For
example, the social networking system 100 can use the external
systems interface 110 to interact with an external system that
offers calendar services allowing users to schedule calendar
entries. The social networking system 100 may create a new calendar
entry for a meeting in the external calendar service using the
external systems interface 110 and the external calendar service
can provide notifications, e.g., RSVP messages from participants to
the social networking system 100 using the external systems
interface 110. The social networking system 100 can propagate the
notification messages to appropriate users. 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.
Social Networking System Architecture
[0039] FIG. 2 is a diagram of the system architecture of a social
networking system for allowing users of a social networking system
to interact with social deals, 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, an event
manager 280, a user profile store 265, a connection store 230, a
deal store 225, an event store 260, and a provider store 275. In
other embodiments, the social networking system 100 may include
additional, fewer, or different modules for various applications.
Conventional components such as network interfaces, security
mechanisms, load balancers, failover servers, management and
network operations consoles, and the like are not shown so as to
not obscure the details of the system.
[0040] The social networking system 100 allows users to communicate
or otherwise interact with each other and access content, as
described herein. The social networking system 100 stores user
profile objects 175 in the user profile store 265. The information
stored in user profile store 265 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 265 may
also store information provided by the user, for example, images,
videos, comments, and status updates. Images of users may be tagged
with the identification information of the appropriate users
displayed in an image.
[0041] 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.
[0042] 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. Users may select from
predefined types of connections, or define their own connection
types as needed.
[0043] 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). Connections in social networking
system 100 are usually in both directions, but need not be, so the
terms "connection" and "friend" depend on the frame of reference.
For example, if Bob and Joe are both connected to each other in the
social networking system 100, Bob and Joe, both users, are also
each other's friends. 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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."
[0048] The event store 260 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 185. 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
260 stores the associations between events and deals.
[0049] 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.
[0050] 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. In some embodiments, a message sent
by a user to another can be viewed by other users of the social
networking system 100, for example, by the connections of the user
receiving the message. An example of a type of message that can be
viewed by other users of the social networking system 100 besides
the recipient of the message is a wall post.
[0051] 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.
[0052] In some embodiments, the system 100 is not a social
networking system but 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 100. 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.
[0053] 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 250 enables communications between the client device 220
and the social networking system 210. In one embodiment, the
network 210 uses standard communications technologies and/or
protocols. In another embodiment, the entities can use custom
and/or dedicated data communications technologies instead of, or in
addition to, the ones described above. Depending upon the
embodiment, the network 210 can also include links to other
networks such as the Internet.
Deals Dashboard
[0054] The dashboard 130 provides a user interface for allowing a
user of a social networking system 100 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 various types 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.
[0055] When a user requests deals information, the dashboard
manager 115 receives deals relevant to the user as suggested by the
suggestion module 265. The suggestion module 265 ranks various
deals based on their relevance to a user and selects deals for
suggestion to the user. A user can select a particular deal 310
presented to the user and request more information describing the
deal. FIG. 4 show 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.
Associating Deals with Actions
[0056] A deal may be associated with an event represented in the
social networking system 100. A deal can often be related to a
real-world event. For example, a deal may be associated with a
concert event or a restaurant deal may be associated with an event
corresponding to a party. Real world events can be represented in
the social networking system 100, for example, as an event object
190 and the representation stored in the event store 230. The
representation of an event in the social networking object may be
associated with a profile page that provides information describing
the event and allows users to take actions associated with the
event, for example, sending an RSVP message, commenting on the
event, liking the event, uploading pictures associated with the
event and the like.
[0057] The event manager 280 analyzes the deal to determine certain
attributes of the event. The event manager 280 can obtain the
location of the event based on a location associated with the deal.
For example, the location of an event corresponding to a restaurant
deal is very likely to be the location of the restaurant. In an
embodiment, the event manager 280 may provide a choice of multiple
values of the attribute to the user via the dashboard manager 115
to allow user to select one particular value. For example, if a
restaurant offering a deal has multiple locations, the event
manager 280 can populate the location attribute for the
corresponding event with various locations of the restaurant.
[0058] The event manager 280 can populate the time for the event
based on time information obtained from the deal. For example, a
user-initiated deal may be associated with a very narrow range of
time. The time for the occurrence of the event can be pre-populated
based on the range of time associated with the deal. The event
manager 280 can allow the user 135 to modify the time of the event
using the dashboard 130.
[0059] The event manager 280 can populate the attendees for an
event created for a social deal based on the participants of the
deal. The event manager 280 may suggest attendees for the event
based on social information associated with the user, for example,
connections that purchased similar deals in the past, connections
that have subscribed to the deal or to deals from that category or
deals from the same provider in the past, connections that
checked-in to the location associated with the provider of the
deal, connections that are tagged into a photo associated with the
provider or the provider's location, or in photos associated with
the category of deals, or connections that have interacted with the
user on topics related to the category of the deal. The user 135
can modify the attendee list by adding or removing the attendees
populated by the event manager 280 using the dashboard 130. The
event manager 280 can populate the host of the event associated
with a social deal as the person who requested initiation of the
deal.
[0060] The social networking system 100 may provide a user
interface that allows a user to provide the information for
creating a deal in a structured format or in an unstructured format
as natural language text. FIG. 5 shows a user interface allowing a
user to initiate a deal via a social networking system 100. As
shown in FIG. 5, a user can propose a deal via a user interface
500. The user can specify the type 510 of activity that the user is
interested in (e.g., eating at a restaurant), the time 520 for the
activity, the place for the activity 530 and social information 540
associated with the activity, for example, the number of
connections that are likely to participate or information
identifying the connections that intend to participate. The
information provided by the user via the user interface 500 can be
shared with connections of the user, for example, via newsfeed. For
example, if a user indicates that he would like to eat at a
restaurant along with 4 friends, the story can be provided to the
user's connections and the connections decide whether they want to
participate in the deal or not.
[0061] A deal may be associated with an existing event. For
example, a concert may be associated with an existing event object
190. If a user purchases a deal associated with the concert, the
event manager 280 can send a reply message to the event, for
example, an RSVP message on behalf of the user for the event. The
event manager 280 may request confirmation from the user 135 via
the dashboard 130 before sending the reply message for the
event.
[0062] FIG. 6 shows a flowchart of a process for associating deals
with actions in the social networking system that a user can take.
The dashboard manager receives 610 a request for performing an
action associated with a deal. The action associated with the deal
can include purchasing the deal, participating in a social deal, or
checking in to a location of the deal. The dashboard manager 115
sends a request to the suggestion module 265 to determine whether
there are any actions associated with the deal that can be
suggested to the user. The suggestion module 265 determines 620 one
or more entities represented in the social networking system 100
that are associated with the deal. Once the required information is
available, the social networking system 100 can send the
information to the provider to check if the deal is acceptable to
the provider.
[0063] Examples of entities represented in the social networking
system 100 that can be associated with a deal include a social
group, an event, an image, or another deal. A social group may be
associated with the deal if the information describing the social
group including the interests of members of the group matches the
category of the deal. The social group may match the deal if a user
or the provider explicitly indicates so. For example, the social
group may be created by the provider of the deal. Examples of
images associated with a deal include images determined to be
captured at a location of the deal and images showing a product
associated with the deal. A deal can be associated with another
deal if the two deals are offered by the same provider for a
related product, if the deal is offered by another provider that
offers similar products, or if the deal belongs to the same
category. A deal can be associated with another deal of a user
interested in the first deal is also likely to be interested in the
second deal. For example, a concert deal can be associated with a
deal of a restaurant located close to the location of the concert
since there is a likelihood that a person going to the concert may
utilize the services of the restaurant before or after the concert.
Similarly a deal for a restaurant can be associated with a deal
from an ice cream shop close to the restaurant, since a user might
visit the ice cream shop after a meal at the restaurant. A deal can
be associated with another deal if the two deals are for related
products or services. In an embodiment, the suggestion module 265
matches attributes of the deals to determine an association between
them. For example, if a deal requires physical presence of a user
at a location, the suggestion module 265 ensures that the locations
associated with the two deals are within a threshold distance.
Similarly, if the deal is associated with a particular time, for
example, the time of an event, the suggestion module 265 matches
the times of the deals. For example, if a deal does not become
active until the time of the event, the deal is not associated with
a deal for the event.
[0064] The suggestion module 265 identifies 630 an action
associated with the representation of the entity associated with
the deal that can be executed by a user. The type of action
requested may depend on the type of entity represented in the
social networking system 100 that is associated with the deal. For
example, if the entity associated with the deal is a social group,
the requested action can be to become member of the social group.
If the entity associated with the deal is an image, the requested
action can be to retrieve the image, to comment on the image, to
like the image, or to suggest the image to another user. If the
entity associated with the deal is another deal, the requested
action can be any action associated with a deal including
purchasing the deal, suggesting the deal to a friend, or following
the deal. If the entity associated with the deal is an event, the
requested action can be to send an RSVP message for the event. The
suggestion module 265 sends 640 a request to perform the action to
the user 135 via the dashboard manager 115.
[0065] In an embodiment, the social networking system 100 provides
social deals that require actions associated with connections of a
user in order to activate the deal. A social deal may be activated
by actions performed by the connections of the user. For example,
the social deal is activated by more than a threshold number of
connections of the user checking-in to a location associated with
the deal. Alternatively, the deal may be activated when more than a
threshold number of connections of a user purchase the deal. The
social deal manager 250 invokes the event manager 280 to create and
schedule an event associated with the social deal. The event
manager 280 receives information identifying the potential
participants of the social deal from the social deal manager 250.
The event manager 280 identifies potential participants of the
event based on the potential participants of the social deal.
[0066] A potential participant of the social deal may confirm with
the social deal manager 250 that the potential participant is
participating in the social deal. The event manager 280 changes the
status of the potential participant in the event as a confirmed
attendee for the event. On the other hand a potential participant
of the event may confirm with the event manager 280 that the
potential participant is participating in the event. The event
manager 280 informs the social deal manager 250 so that the social
deal manager 250 updates the status of the potential participant as
a confirmed participant of the social deal. In an embodiment, the
total number of confirmed participants in the social deal
determines the price of the social deal or the value of the benefit
offered by the social deal. Therefore, the event manager 280
synchronizes the participants for the event with the social deal
thereby updating one of these entities when the other entity
changes. In an embodiment, a new user that was not originally a
participant of the social deal or the event may view the event and
request to be added to the event. For example, if a newsfeed
describing the event is sent to connections of the user that
originated the social deal, one or more connections may be
interested in the event. If the new user is added to the event, the
event manager 280 updates the social deal by adding the new user as
a potential participant of the social deal, subject to an approval
by the user originating the social deal.
[0067] FIG. 7 is a flowchart of a process for creating events
associated with deals in the social networking system, in
accordance with one embodiment of the invention. The dashboard
manager receives 710 a request for performing an action associated
with a deal, for example, purchasing the deal, participating in a
social deal, or checking in to a location of the deal. The
dashboard manager 115 invokes the event manager 280 to create 720 a
representation of an event associated with the deal. The event
manager 280 populates 730 the attributes of the event based on the
information describing the deal. For example, the event manager 280
may populate 730 potential participants based on the deal. If the
deal is a social deal, the event manager 280 may determine
potential participants for the event based on users that are
potential participants of the social deal. The event manager 280
may select connections of the user as potential participants, for
example, connections of the user that have interacted with the
current deal or deals similar to the current deal. The event
manager 280 may analyze past events based on deals similar to the
current deal to determine the potential participants. In an
embodiment, the event manager 280 manager grants access to the
event to all the potential participants so that they can access
information describing the event and also interact with the event,
for example, to indicate whether they will be participating in the
event or not.
[0068] The event manager 280 may propose time of the event based on
information associated with the deal. For example, if the deal is
for a show (concert, movie, game or any other type of show), the
event manager may select potential time slots for the events based
on the timing of the show. If the deal is for a restaurant, the
event manager 280 suggests times for an event that occur before the
deal expires. The event manager 280 may suggest a location for the
event based on locations of businesses associated with the deal,
for example, the deal provider. For example, if the deal is for a
show, the event manager 280 suggests various locations where the
deal is valid for the show. The event manager 280 may use locations
associated with the potential/actual participants of the event or
the deal to select one or more locations for the event. For
example, if the deal is valid for a show that is being presented in
various cities, the event manager 280 may propose the city in which
most of the potential participants of the event are located. In an
embodiment, the event manager 280 analyzes previous locations of
similar events in which the user participated to suggest a
location.
[0069] The event manager 280 sends information describing the event
to the user and also to potential participants of the event. If any
user requests information describing the event, the event manager
280 sends information describing the deal as part of the
information provided to the user. The user can change the
attributes and update the events if necessary. For example, the
event manager 280 may propose a set of locations as possible
locations for the event and the user can select a suitable location
from the proposed set or use a different location from outside the
proposed set. Similarly, the event manager 280 may propose a
suggested time for the event and the user can select one of the
options proposed by the event manager 280 or specify a new time for
the event. Similarly, the user may change the potential
participants for the event by either adding or deleting the
participants. The process of finalizing the attributes of the event
may be interactive, for example, the event manager 280 may propose
certain values that may be edited by the user and the event manager
280 may revise the proposed value of attributes that have not been
finalized by the user. For example, the event manager 280 may
determine a location for the event based on the locations of the
potential participants. However, if the user updates the list of
potential participants, the event manager 280 may revise the
location based on the new list of potential participants.
[0070] In an embodiment, the event manager 280 sends a request to
an external calendar service to create a calendar entry for the
event. The event manager 280 receives details of the calendar entry
created and provides details to all the potential participants of
the event. The event manager 280 may also send requests to external
systems associated with the deal to obtain resources for the event.
For example, if the deal is offered by a restaurant that provides
external application programming interfaces (APIs), the event
manager 280 may send a request to the external system of the
restaurant to reserve a table at the scheduled time of the event.
If the deal is for a show, the event manager 280 may send a request
to the external system associated with the show to purchase tickets
and reserve seats for the show.
Alternative Applications
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
* * * * *