1. Field
The present invention relates generally to advertising within social networks, and in one particular example, to targeting advertisements based on a user's social connections and social networks within a social networking environment.
2. Related Art
Social networking websites, or social applications that track and enable connections between members (including people, businesses, and other entities), have become prevalent in recent years. Broadly speaking, a social networking website offers users the ability to communicate and interact with other members of the social networking community. For example, users may join the social networking website and may add connections to a number of other users (sometimes referred to as “friends”). The term “connection” or “friend” generally refers to another user for which an association or linking relationship has been formed via the social networking website. Connections may be made manually by users, e.g., via an accepted connection or friend request, or automatically in response to membership in a common social networking group. Users who become connections may be able to view each other's profile or home pages, exchange messages, and so on. For example, a member may post contact information, background information, job information, hobbies, and/or other member-specific data to a location associated with the member on a social networking website. Other members of the social networking website can then review some or all of the posted information.
The various connections of many different users within a social networking website creates a web of connections within the environment. These connections among the users can be exploited by the social networking website or advertisers to offer more relevant information to each user in view of the users' own stated interests in their connections. For example, social networking websites typically incorporate a system for delivering or presenting content to users that is more likely to be relevant to each user than random delivery of content. For example, users may be grouped according to one or more common attributes in their profiles, such as geographic location, demographic information, employer, job type, music preferences, interests, or other attributes. Users of the social networking website or external entities can use these groups to customize or target information delivery so that information that might be of particular interest to a group can be communicated to that group.
Broadly speaking, and in one particular example, processes and systems for targeting advertisements to users within a social network based on their social connections are provided. In one example, a process includes receiving an advertisement request from a first user of a social networking system, the advertisement request including an advertisement and at least one social targeting criterion associated with the advertisement. The social targeting criterion may include an indication to target second users of the social networking system having a social connection to the first user (e.g., part of the first user's “social graph”). In one example, the social connection may include a direct or first degree of connection to the first user, e.g., the first user's direct connections or “friends.” The process may further determine one or more attributes of the first user, e.g., identifying one or more second users that are connections or friends of the first user. In other examples, the targeting criterion may include targeting second users having a second degree of connection relative to the first user (e.g., friends of friends of the first user across one or more different social networks), targeting second users having an n-th degree of connection relative to the first user across one or more different social networks, targeting second users that are members or associated with one or more social groups of the first user, or combinations of the first degree connections, second degree connections, and social groups.
The process may further select or cause display of the advertisement to one or more second users according to an advertisement generation process, the advertisement generation process based on the social targeting criterion. The advertisement generation process may include a bid-based, variable pricing algorithm. In one example, the advertisement generation process filters out potential advertisements that do not meet the social targeting criterion. In other examples, the advertisement generation process weighs potential advertisements based on their degree of match to the social targeting criterion and second users.
In another example, a process for selecting advertisements for display to users of a social networking application includes receiving a request for placing an advertisement with a web page, the request including an identity of a first user, and selecting an advertisement in response to the request according to an advertisement generation process. The advertisement generation process may be based on at least one social targeting criterion, where the advertisement generation process may filter out potential advertisements that do not meet the social targeting criterion, or weigh/score potential advertisements that match the social targeting criterion more heavily than potential advertisements that do not match the social targeting criterion.
The social targeting criterion may include or use at least one social attribute associated with a user that created one or more of the potential advertisement. The social attribute associated with the user that created the potential advertisements may include first degree connections, second degree connections, or a social group associated with the user that created the potential advertisement.
According to other embodiments, systems, apparatuses (e.g., computers, server computers, and the like), interfaces, and computer-readable storage media comprising computer-readable instructions for selecting and placing advertisements in a social networking environment are provided.
The present application can be best understood by reference to the following description taken in conjunction with the accompanying drawing figures and screen shots included herein, in which like elements may be referred to by like numerals.
The following description sets forth numerous specific configurations, parameters, and the like. It should be recognized, however, that such description is not intended as a limitation on the scope of the present invention, but is instead provided as a description of exemplary embodiments.
Broadly speaking, and in one example, processes and systems for targeting advertisements in a social network are provided. In one example, a process includes receiving an advertisement request from a first user of a social networking system and an attribute of the first user, where the advertisement request includes an advertisement and at least one social targeting criterion associated with the advertisement. The social targeting criterion may include an indication to target second users of the social networking system having a direct or first degree of connection to the first user, e.g., to target the first user's connections or friends within the social network. In other examples, the targeting criterion may include targeting second users having a second degree (or n-th degree) of connection relative to the first user, e.g., friends of friends of the first user, within a common social networking system or across multiple social networking systems (e.g., across Facebook™, Dogster™, LinkedIn™, etc.).
The process may further cause display of the advertisement to one or more second users according to an advertisement generation process, the advertisement generation process based on the social targeting criterion. The exemplary advertisement generation process may receive a request to place an advertisement for a particular second user, search potential advertisements, and perform a bid-based, variable pricing auction for placement of an advertisement. The bid process can be influenced by the social targeting criterion in a number of ways. In one example, the advertisement generation process filters out potential advertisements that do not meet the social targeting criterion. In other examples, the social targeting criterion is used to weigh or score potential advertisement bids based on their match to the social targeting criterion.
In another example, a process may include receiving interaction data associated with interactions between users and advertisements and training an adaptive algorithm based on the interaction data, user data, and advertisement data. Interaction data may include past interactions with an advertisement by a user, and along with associated user data (e.g., demographic data, social data, etc.), and advertisement data (e.g., advertisement details and targeting criteria), can be used by an adaptive algorithm to identify patterns between user data and advertising data to increase the chances of a desired interaction when placing advertisements to users. The adaptive algorithm may include one or more of an adaptive pattern matching algorithm, regression analysis algorithm, neural network algorithm, or genetic algorithm.
Initially, and with reference to
Clients 22 and server 20 may communicate, e.g., using suitable communication interfaces via a network 24, such as a Local Area Network (LAN) or the Internet. Clients 22 and server 20 may communicate, in part or in whole, via wireless or hardwired communications, such as Ethernet, IEEE 802.11b wireless, or the like. Additionally, communication between clients 22 and server 20 may include or communicate with various servers such as a mail server, mobile server, media server, and the like.
Server 20 generally includes logic (e.g., http web server logic) or is programmed to format data, accessed from local or remote databases or other sources of data and content, for presentation to users of clients 22, preferably in the format described herein. For example, server 20 may format data and/or access a local or remote database to communicate and cause the display of an interface to clients 22, data related to objects for display within an interface (which may include a search interface and display window for displaying objects, for example), links to additional information and/or content related to the objects, the additional content and/or information itself, and the like.
To this end, server 20 may utilize various web data interface techniques such as Common Gateway Interface (CGI) protocol and associated applications (or “scripts”), Java® “servlets”, i.e., Java® applications running on a web server, or the like to present information and receive input from clients 22. Server 20, although described herein in the singular, may actually comprise plural computers, devices, databases, associated backend devices, and the like, communicating (wired and/or wireless) and cooperating to perform some or all of the functions described herein. Server 20 may further include or communicate with advertising servers/networks 40, account servers (e.g., email servers), mobile servers, photo servers, video servers, and the like.
Further, web pages communicated to clients 22 may include various text and media objects such as articles, documents, photos, audio files, video files, and the like. Additionally, the content may include selections or links to further content accessible by the interface and associated user device, e.g., via Application Programming Interfaces (APIs), web pages, and the like stored or accessed locally or remotely. Content accessible by clients 22 via a presented web page may conform to any suitable data format including various media formats such as still image (e.g., JPEG, TIFF), video (e.g., MPEG, AVI, Flash), or audio (e.g., MP3, OGG).
In one example, server 20 may further include or communicate with processing logic 30 for causing the display of an interface for a social networking site as well as placing advertisements for display therewith according to one or more algorithms or processes described. For example, server 20 may include one or more application servers configured to implement and execute software applications as well as provide related data, code, forms, web pages, and other information to and from clients 22 and to store to, and retrieve from, a database system 28 related data, objects and web page content. Further, server 20 may be in communication with advertising server or network 40, which may include one or more advertisers for providing advertisements for display with the social networking applications pages served to clients 22. An exemplary advertiser server/network is described in greater detail with respect to
It should be noted that although the exemplary methods and systems described herein describe use of a separate server and database systems for performing various functions, other embodiments could be implemented by storing the software or programming that operates to cause the described functions on a single device or any combination of multiple devices as a matter of design choice so long as the functionality described is performed. Although not depicted in the figures, server 20, database system 28, and advertiser server network 40 generally include such art recognized components as are ordinarily found in server systems, including, but not limited to, processors, RAM, ROM, clocks, hardware drivers, associated storage, and the like (see, e.g.,
In one example, advertisement networks 110 and 112 may include back-end service providers for placing advertisements on websites or social networking sites. Publishers 120 and 122 may include social networking sites or other applications generally directed to users of social applications. Advertisers 130, 132, 134, 136, 140, and 142 may include various entities such as companies, individuals, social networking users, social networking user groups, and so on. In some instances, a single entity may include a combination of an advertising network, publisher, and/or advertiser.
With continued reference to
It should be understood that the exemplary relationships shown between the advertiser network, publishers, and advertisers shown in
Advertisement request 300 may further include targeting details 312, which may include attributes or criteria such as geographical or demographic information of targeted users. For example, selected targeting details 312 might include a selection for users who live in California, are female, and between 18 and 25 years old. Targeting details 312 may be used as filter criteria and/or for weighing or ranking advertisements for selection in a bidding process.
Advertisement request 300 may further include social targeting details 314, which may include or indicate social attributes associated with the requester's social networking information. For example, the social attributes may comprise a user's (or entity's) contacts or social groups (sometimes referred to as a “social graph”). In one example, the advertising request 300 may be used to target users having one degree of separation from the user submitting the advertisement request. In the case of a user, the advertisement can then target direct connections or friends of the user submitting the advertisement request. In the case of an entity, such as a corporation within a social networking application, e.g., a fan page or community page, or where an entity is registered similarly to a user, the advertisement can target users that are members or fans associated with the entity.
In another example, the advertisement may additionally or alternatively be targeted to a second degree of separation (e.g., connections of direct connections or friends of friends) as illustrated in
The social attributes of the first user (e.g., connections or social groups) can be identified in advertisement request 300 or later by the advertisement network and/or social network when processing the request or placing the advertisement. For example, the social targeting details may indicate one or more of “first degree targeting,” “second degree targeting,” or “social group targeting.” Advertisement request 300 itself may identify second users that should be targeted or merely identify that the category of second users that should be targeted when the advertisement is placed. In either case, the identity of the second users may be identified or retrieved from the requester's profile information, from the social networking application, and so on.
The advertisement request is processed according to a social advertising generation processes or algorithm at 406 to determine advertisements for display to users. For example, when a user requests or accesses a webpage of a social networking application having an advertising spot, the generation algorithm processes available advertisements with context of the user and the social targeting criteria to cause display of an advertisement at 408. For example, when placing an advertisement to a particular user, filtering criteria may be used to determine if the user is within the social targeting criteria (e.g., within a specified degree of contact, social group, etc. of the user who generated the advertisement) and processes the available advertisements according to a bid algorithm to place one or more advertisements. In other examples, the social targeting criteria may be used to weigh or score advertisements bidding for the advertisement spot within, for example, a variable price bidding algorithm.
In some examples, the generation algorithm may include an adaptive pattern matching algorithm, which adapts over time to outcomes of placing advertisements to users having particular attributes. For instance, examining advertisement data and user attributes, an adaptive algorithm may identify that certain user attributes, such as demographic information or social information, results in a higher or lower probability of a desired outcome (e.g., click, conversion, etc.) for particular advertisements. As the algorithm identifies or learns particular associations over time, the algorithm may adapt to direct or match particular advertisements to particular users for improved performance.
In one example, an advertisement server receives a request for a social advertisement at 420; for example, for a second user different than the first user who submitted an advertisement request. The advertisement server may retrieve the available advertisements or identify a number of potential advertisements at 422. For example, the advertising server may retrieve or identify bid details, targeting details, and social targeting details of advertisements that may be placed. Targeting details and social targeting criteria may be applied to advertisements when retrieving at 424. In one example, the targeting details and social targeting criteria are used to filter out advertisements that do not satisfy the targeting details or social targeting criteria. In other examples, the targeting details, e.g., including geographical and demographic data, are used to filter out advertisements, and the social targeting criteria are used to weigh or score the retrieved advertisements. In yet other examples, both the targeting details and the social targeting criteria are used to weigh or score the retrieved advertisements in an advertisement generation process.
The advertisement server may then rank or score the advertisements at 426 based on bidding details and social targeting criteria at 426. For example, the advertisement server may determine or compute which advertisement(s) have the greatest expected value based on bid prices and social targeting criteria. The ranking or scoring process may further be used to weigh each of the identified advertisements based on bid details and social targeting criteria for placement; for example, assuming common social targeting criteria, a higher bid price advertisement will be placed more frequently and/or prominently than a lower bid price advertisement.
In one example, an advertisement selection probability model is used to select the advertisement after the selection criteria and social targeting criteria have been applied. Such a process may first determine a weight for each potential advertisement. One exemplary manner to determine a weight is as follows (however, it should be recognized that various other equations and processes for calculating advertisement weights may be used):
Advertisement weight (w)=EXP(P*(Effective Bid Price)/(Max. Bid for Category))
In this example, P is a parameterized value (e.g., “5”) that can be varied or removed to alter the impact of the effective bid price, where the effective bid price can equal the actual bid price or the actual bid price subject to a variable price adjustment process (up or down). For example, a variable price adjustment can be used to adjust an actual advertisement bid price based on a multitude of factors, including, but not limited to, campaign spending of the advertiser, cost per acquisition/transaction, clicks or impressions per advertisement billing, affiliate campaigns, conversion ratios, and so on. Additionally, the actual bid price may be varied based on targeting details such as user attributes or demographic data (additionally, a multi-phase regression analysis may performed to identify influential variables for targeting advertisements), social targeting criteria (such as the first to n-th degree social connections, social groups, etc.), social behavior/interaction data (e.g., interaction or feedback patterns collected from social data and advertisement interactions as described below), or the like.
As an illustrative example of selecting a weighted advertisement, suppose there are three advertisements having the following calculated weights, and thus probabilities of being placed:
When the process selects an advertisement for placement, an advertisement may be selected based on these placement probabilities, e.g., placing Ad2 45% of the time, Ad1 36% of the time, and Ad3 18% of the time. The process may utilize a random number generator or the like to select one of the advertisements according to the probabilities.
Further, in one example, filters based on parameters collected from the advertiser can be built into a profiling feature vector, the profiling feature vector including targeting details of the advertisement such as demographic data, or any statistically significant publisher specific variables that may be used for targeting users. In one example, a pattern matching algorithm may be used to identify influential variables for targeting. The pattern matching algorithm may include a multi-phase regression analysis, genetic algorithm, neural network algorithm such as a resilient back-propagation (RPROP) neural network, or other learning algorithm or heuristic model for providing an adaptive mechanism based on past outcomes to improve the output of the algorithm over time. For example, an advertising generation process may attempt to match the advertiser's targeting details to the user's profile information to the extent possible; for example, matching an advertisement directed to males between 18-25 years old. In some instances, however, targeted users may nevertheless have a very low selection rate (i.e., poor outcome) for the particular advertisement. Accordingly, the process may change or expand the targeting details, for example to males between 25-35 years old, in an attempt to “learn” user attributes that will increase or optimize selections of the advertisements based upon historical interactions (in other examples, a small percentage of placements may be intentionally outside of the targeting criteria to gather outcome data on user's outside of the targeting criteria). The algorithm may determine coefficients of the targeting details for each advertisement and match more relevant users to the particular advertisement. Additionally, the discovery of modified or improved targeting details may feedback to the advertisers for advertisement optimization.
In another example, the process may include a filter based on the social targeting criteria. For instance, a first, second, and/or n-th degree social graph may be determined and used in the advertisement placement process. Generally it is the case that not all first degree social connections are as strong or relevant in determining common interests, likes, etc. Accordingly, in one example, the particular set of connections may be optimized by determining common social aspects shared between certain users. For example, the number of common connections or social groups between two users (e.g., many common connections generally indicating two users are closer connections than if no common connections), connection status across multiple social networks (e.g., where two users are connected within two different social networking applications such as Facebook™ and LinkedIn™), social activities, exchanged emails/chats, and so on, can be used to prioritize or weigh connections of particular users. Strongly linked users may be more likely to have similar response to advertisements (e.g., like and dislike similar items, services, content, etc.).
The advertisement server may compose the advertisement for placement within the webpage at 428 based upon the ranking or scoring of identified potential advertisements. If more than one advertisement is requested for a particular webpage, the advertisement server may select the appropriate number of advertisements as ranked or scored in 426; in other examples, the process may be performed for each placement.
It should be understood that the processes illustrated in
Any action taken by a user, e.g., selection of advertisement 602, links 604, or close selection 606, or the like, may be stored by the social networking application and the advertising network for subsequent placement of advertisements. For example, the information may be used across the advertising network as well as for targeting advertisements to the particular user providing the input. In particular, the outcome data may be used as feedback to train an adaptive pattern matching algorithm as described, thereby potentially improving the advertisement generation and placement process.
In some examples, the feedback for a particular user can be used to influence advertisements targeted to the user's social contacts, e.g., first and second degree connections, social groups, and so on. The advertisement generation algorithm may make certain inferences regarding users based on feedback to advertisements by the user and/or the user's connections. For instance, if user A likes fantasy football (e.g., based on profile information or responding positively to advertisements associated therewith), the system may make an inference that user A's first degree connections are likely to also like fantasy football, and target advertisements accordingly. If a first degree or direct connection, e.g., user B, subsequently indicates that they do not like fantasy football that connection between users A and B can be broken or diminished. As users interact with the advertisements over time, thereby providing greater feedback, the advertising algorithm can provide more targeted advertisement placement. As such, the strengths of connections between various users can be determined and used to weigh potential advertisements for users.
In one example, the process may build profile correlation dependence mapping and ontology structures based upon interaction patterns collected from the social graphs (e.g., first, second, n-th degree connections). In particular, the interactions between the advertisement and the user may be used for training an adaptive or pattern matching algorithm, such as an artificial intelligence algorithm, neural network algorithm, or the like, which in turn identifies the most relevant users in the social graph. Additionally, keyword based targeting of advertisements allows a system to generate an ever-growing ontology structure for feature vector exploration. For example, by running a pattern matching algorithm, such as a genetic algorithm, on a feature vector associated with targeting details of an advertisement, the system may discover the users within the optimized social graph that may exhibit similar but untapped behavioral pattern(s) (e.g., identify users or user groups that may interact with an advertisement favorably or unfavorably).
The interaction data, including user data and advertisement data, may be passed through an adaptive algorithm at 704. In particular, the adaptive algorithm can be trained on the interaction data; for example, where the interaction data is outcome data and the user data and advertisement data is the matching input data. The adaptive algorithm may include a pattern matching algorithm such as an AI algorithm, regression analysis algorithm, neural network algorithm, etc., which can be tuned or modified based on the interaction data. Additionally, an ontology structure may be built based on the interaction data, which in turn can be used to build a profile correlation dependence mapping and ontology structures.
An advertisement may then be processed according to the adaptive algorithm at 706. In one example, a feature vector (i.e., the targeting details of the advertisement) may be processed by the adaptive algorithm to identify user demographic or social attributes that are likely to interact with the advertisement in a desired manner. That is, by training or tuning the adaptive algorithm on previous interaction data in 704, the algorithm can discover or identify users at 708 that may exhibit similar behavioral and interaction patterns and place advertisements accordingly (or at least use the information in a bidding process as described, e.g., to weigh or adjust a bid price up or down).
At least some values based on the results of the above-described processes can be saved for subsequent use. Additionally, a computer-readable medium can be used to store (e.g., tangibly embody) one or more computer programs for performing any one of the above-described processes by means of a computer. The computer program may be written, for example, in a general-purpose programming language (e.g., Pascal, C, C++) or some specialized application-specific language.
Although only certain exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. For example, aspects of embodiments disclosed above can be combined in other combinations to form additional embodiments. Accordingly, all such modifications are intended to be included within the scope of this invention.
The present application is related to co-pending U.S. patent application Ser. No. ______ (attorney docket no. 68214-20002.00), filed on an even date herewith and titled SOCIAL BEHAVIORAL TARGETING OF ADVERTISEMENTS IN A SOCIAL NETWORKING ENVIRONMENT, the entire content of which is incorporated herein by reference.