BACKGROUNDThe present disclosure relates to advertising, and in particular to selecting and serving advertisements targeted to users of an online system while those users are not part of an online session with the online system.
Advertisement revenue provides an important revenue stream for many online systems, such as social networking systems. Targeting advertisements to particular social networking system users typically generates greater advertisement revenue for advertisers compared to broad-based ads because users typically perceive targeted advertisements as more relevant. By serving more relevant ads, advertisers increase the conversion rate of advertisement (“ad”) viewers purchasing the advertised goods or services, benefitting both the advertiser. This increase in advertisement effectiveness increases the amount of compensation the online system may receive from advertisers.
To improve an advertisement's relevance, advertisers use consumer data, such as websites visited or content viewed. However, this often fails to provide insight into other dynamics that can affect a consumer's purchasing decision. Hence, if limited to accessing a user's individual online purchasing activity, advertisers are unable to improve the relevance of their advertisements by leveraging other dynamics affecting a user's purchasing decision process.
Additionally, an increasing number of users access online systems and other online content using mobile devices. However, native applications on mobile devices used for accessing online content often do not maintain cookies or provide similar functionality for tracking and analyzing a user's activity on the mobile device. Even if a web browser on a mobile device maintains cookie tracking a user's browsing history, conventional native applications on the mobile device are unable to access these cookies, limiting the information available to the native applications. This inhibits native applications on a mobile device from delivering advertisements customized for a user.
SUMMARYEmbodiments of the present disclosure enable a client application on a client device to request an advertisement from an online system, such as a social networking system, for presentation to a viewing user of the online system. The requested advertisement may be targeted to the viewing user even if the viewing user does not have a session with the online system when the advertisement is requested. The client application executing on the client device sends an advertisement request including user identification information associated with the viewing user and information indicating whether the viewing user has an established online session to the online system. A plurality of browsing histories, each associated with user identification information is maintained by the online system, allowing the online system to compare characteristics of the viewing user's browsing history with characteristics of browsing histories of other online system users. Based on the comparison, the online system selects a browsing history and identifies an advertisement for presentation to the viewing user based on the selected browsing history.
When a request for an advertisement is received, the online system retrieves a browsing history associated with the viewing user of the client device from the user identification information in the request. Based on the retrieved browsing history, the online system identifies one or more browsing histories of additional users and determines user identification information associated with the identified one or more browsing histories. The online system accesses user profiles associated with the user identification information associated with the identified one or more browsing to infer one or more characteristics of the viewing user from the accessed user profiles.
Based on the one or more characteristics inferred from the accessed use profiles, the online retrieves one or more candidate advertisements associated with one or more target characteristics satisfied by the inferred characteristics of the viewing user. Each candidate advertisement is also associated with a bid amount identifying the compensation received by the online system if the candidate advertisement is presented to the viewing user or if the candidate advertisement is accessed by the viewing user. From the bid amounts, the social networking system computes an expected value for each candidate advertisement and ranks the candidate advertisements using the expected values. Based on the ranking, an advertisement is selected and provided to the client device for presentation to the viewing user. As the viewing user interacts with the advertisement or with other content, the online system receives browsing data from the client device and updates the browsing history associated with the viewing user's user identification information accordingly.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 illustrates a block diagram of a system environment for targeting advertisements to users without an established session with an online system, in accordance with an embodiment.
FIG. 2 illustrates a block diagram of a system environment for serving an advertisement to users of an online system, in accordance with an embodiment.
FIG. 3 is an example block diagram of an architecture of a social networking system, in accordance with an embodiment.
FIG. 4 illustrates a flowchart of one embodiment of a process for selecting an advertisement for presentation to a user, in accordance with an embodiment.
The figures depict various embodiments of the present disclosure 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 embodiments described herein.
DETAILED DESCRIPTIONOverviewFIG. 1 illustrates a block diagram of one embodiment of asystem environment100 for targeting advertisements to online system users without an established session with the online system. In the example ofFIG. 1, the online system is asocial networking system105, but it other embodiments any suitable online system maintaining information about its users may be included in the system environment. A user has an established or ongoing session with thesocial networking system105 when the user is logged into the social networking system (e.g., has supplied correct login and password information). Hence, users may have an ongoing session with thesocial networking system105 or may not have an ongoing session with thesocial networking system105.
Thesystem environment100 shown byFIG. 1 includes aclient device110 including aclient application115, which may be any application presenting content to a user of theclient device110. Content presented by theclient application115 may include one ormore advertisements120. In some embodiments, the one ormore advertisements120 are presented to a user of theclient device110 via aweb page125. Theclient application115 monitors the user's interaction withadvertisements120 and other content, including otherpages containing advertisements120 to create browsing data describing a user's interactions with content. In some embodiments, theclient application115 transmits a notification when anadvertisement120 is selected by the user or when the user views content including anadvertisement115. A notification may include, for example, a user's browsing data, a user's identification (“ID”) information, or both. Browsing data includes information about web pages or other content accessed by the user, advertisements selected by the user, or some combination thereof. The user ID information is associated with a user profile associated with the user and maintained by thesocial networking system105. As further described below, the user ID information may be used to determine if the user has an existing session with thesocial networking system105.
Thesocial networking system105 maintains browsing histories for various users based on browsing data from a plurality ofclient devices110. Browsing histories for users associated with various client devices are compiled and stored along with corresponding user ID information received from thevarious client devices110. Stored browsing histories may include one or more browsing histories for users with ongoing sessions with thesocial networking system105 as well as one or more browsing histories for users that do not have ongoing sessions with thesocial networking system105. Aclient device110 associated with a user may send a request for an advertisement to thesocial networking system105. If the user associated with theclient device110 has an ongoing session with thesocial networking system105, user profile information associated with the user may be accessed by thesocial networking system105 as well as the user's stored browsing history. In this case, thesocial networking system105 may select advertisements for presentation to the user based on information in the user's user profile. In contrast, if the user associated with theclient device110 does not have an ongoing session with thesocial networking system105, user profile information associated with the user cannot be accessed by thesocial networking system105. To provide advertisements more relevant to a user that does not have an ongoing session, thesocial networking system105 compiles browsing data received from theclient device110 associated with the user to develop and/or update a browsing history (also known as an “anonymous” browsing history) associated with the user ID information of the user without access to the user's profile. Thesocial networking system105 uses the anonymous browsing history and browsing histories of other users of thesocial networking system105 to identify an advertisement targeted to the user associated with theclient device110.
Theclient application115 may request advertisements from thesocial networking system105 for presentation to the user. A request for an advertisement includes user ID information for the user associated with the client device110 (the “viewing user”) and information (e.g., a cookie) indicating whether the viewing user has an existing session with thesocial networking system105. In some embodiments, the request for an advertisement may additionally include one or more request parameters specifying conditions which thesocial networking system105 may use to limit advertisements provided to theclient application115. For example, a request parameter causes thesocial networking system105 to select advertisements that have not been previously displayed to the viewing user.
When receiving the request for the advertisement from the client device, thesocial networking system105 retrieves a browsing history (or a portion thereof) associated with the user ID information included in the received request. For example, thesocial networking system105 retrieves a stored browsing history associated with the user ID information. If the request includes information indicating the user has an ongoing session with thesocial networking system105, information from a user profile associated with the user ID information is retrieved and used to select an advertisement targeted to the viewing user. An example process for selecting and providing targeted advertisements for users with existing sessions with an online system is disclosed in U.S. patent application Ser. No. 13/689,160, filed on Nov. 29, 2012, which is hereby incorporated by reference in its entirety. However, if the request indicates the user does not have an ongoing session with thesocial networking system105, thesocial networking system105 retrieves an anonymous browsing history associated with the user ID information.
Thesocial networking system105 identifies one or more browsing histories of other social networking system users based on the anonymous browsing history associated with the user ID information in the request. In one embodiment, thesocial networking system105 compares the anonymous browsing history with one or more browsing histories of other users of thesocial networking system105 to determine shared features and/or attributes (e.g., commonalities) between the anonymous browsing history and the other stored browsing histories. In alternative embodiments, thesocial networking system105 identifies one or more browsing histories of other users of thesocial networking system105 having an established session to thesocial networking system105 and having commonalties with the anonymous browsing history associated with the user ID information in the request.
Thesocial networking system105 scores the browsing histories that were compared to the anonymous browsing history. For example, the browsing histories may be scored by the amount of commonalties, or other overlap, with the anonymous browsing history associated with the user ID information from the request. In one embodiment, thesocial networking system105 then identifies stored browsing histories with scores over a threshold value. In some embodiments, the threshold value is set by an administrator. In alternate embodiments, thesocial networking system105 automatically sets the threshold value.
For example, the anonymous browsing history may indicate that the user associated with the user ID information in the request browses websites for luxury watches (e.g., ROLEX®). Thesocial networking system105 compares the anonymous browsing history with stored browsing histories (e.g., A, B, and C) of other users of thesocial networking system105. Browsing history A may indicate an interest in OMEGA® watches, luxury travel, and finance. Browsing history B may indicate an interest in BREITLING® watches and expensive cars. And browsing history C may indicate an interest in CASIO® calculator watches and camping. In one embodiment, thesocial networking system105 comparing the three browsing histories to the anonymous browsing history would score browsing histories A and B higher than browsing history C as are more commonalities between the anonymous browsing history and browsing histories A and B than between the anonymous browsing history and browsing history C (e.g., ROLEX®, BREITLING®, and OMEGA® are all luxury watches). If the score of browsing history C is less than the threshold value, thesocial networking system105 selects browsing histories A and B for additional analysis.
Thesocial networking system105 determines user ID information associated with the identified one or more browsing histories. Each identified browsing history is associated with user ID information corresponding to a social networking system user. User profile information associated with user ID information associated with the identified browsing histories and with user ID information indicating an existing session with thesocial networking system105 is retrieved by thesocial networking system105. Hence, thesocial networking system105 retrieves user profile information for users having an existing session with thesocial networking system105 and associated with the user ID information of the identified browsing histories.
From the user profiles associated with the user ID information associated with the identified browsing histories and having an existing session with thesocial networking system105, one or more common characteristics of the user profiles are determined. A characteristic is a feature or quality associated with a particular user profile. Examples of characteristics are indications of wealth, occupation, occupation field (e.g., medicine, engineering, etc.), hobbies, user interests, geographic location, gender, age, some other demographic, etc. Thesocial networking system105 compares characteristics of the user profiles to determine one or more characteristics that are common to at least a threshold number, or common to all, of the retrieved user profiles. Continuing with the above example, browsing histories A and B are associated with user profile A and user profile B, respectively. Thesocial networking system105 compares user profile A and user profile B to identify one or more common characteristics between the user profiles. For example, the user profile A and user profile B include characteristics indicating that both users are surgeons, travel extensively, and enjoy high-end watches. Thus, thesocial networking system105 determines the common characteristics to be “doctor,” “medical field,” “wealthy,” “enjoy luxury travel,” and “like high-end watches.”
Additionally, the social networking system maintains various candidate advertisements. The candidate advertisements may be received from one ormore advertisers130 or may be generated by thesocial networking system105. Each candidate advertisement is associated with a bid price and may be associated with one or more targeting criteria specifying one or more characteristics of users eligible to be presented with the candidate advertisement.
From the candidate advertisements, thesocial networking system105 selects an advertisement associated with one or more targeting criteria satisfied by the determined one or more characteristics. For example, an advertisement associated with targeting criteria matching at least one of the determined characteristics is selected. As another example, thesocial networking system105 determines expected values for each of the candidate advertisements, or of the candidate advertisements associated with targeting criteria satisfied by one or more of the determined characteristics, based on their bid prices and a likelihood of the candidate advertisement being accessed. Based on the auction, thesocial networking system105 selects an advertisement, such as the candidate advertisement with the highest expected value, to send to theclient device110. Thesocial networking system105 provides the selected advertisement to theclient application115, which presents the selected advertisement to the viewing user. For example, theclient application115 displays the selected advertisement to the user, plays audio associated with the selected advertisement for the user, or otherwise presents the selected advertisement to the user.
In some embodiments, thesocial networking system105 may select the advertisement based in part on information about advertisements that have been presented to the viewing user when there is no established session with thesocial networking system105. This information may increase the likelihood that the selected advertisement is from an advertiser with which the viewing user previously interacted when there was not an established session with thesocial networking system105, allowing advertisements to be retargeted based on content viewed by the viewing user via theclient device110.
System ArchitectureFIG. 2 illustrates a block diagram of one embodiment of asystem environment200 for serving advertisements to online system users. Thesystem environment200 includes one ormore client devices110, thesocial networking system105, one ormore advertisers130, and anetwork205. In various embodiments, thesystem environment200 may be organized in an alternative topology or configuration, and include different and/or additional modules. WhileFIG. 2 shows asocial networking system105, in other embodiments any suitable online system maintaining information about its users may be included in thesystem environment200.
Theclient devices110 comprise one or more computing devices capable of processing data as well as transmitting and/or receiving data via thenetwork205. Examples of aclient device110 include a mobile device and a desktop computer. A mobile device may be, for example, a mobile telephone, a smart phone, a tablet computer, a laptop computer, or some other portable device presenting content, which may include advertisements. Aclient device110 may execute a social networking application that allows a social networking system user to exchange data with thesocial networking system105 via aclient device110 and thenetwork205. Alternatively, a social networking system user accesses thesocial networking system105 via a browser executing by theclient device110. User ID information for each user of the requestingdevice110 that previously accessed thesocial networking system105 may be stored by theclient device110.
Theadvertisers130 provide advertisements or data for generating advertisements to entities insystem environment200. For example, anadvertiser130 generates one or more advertisement (“ad”) requests each including a bid price, one or more targeting criteria, and advertisement content for presentation. An advertiser may communicate ad requests to thesocial networking system105, which selects advertising request presented via theclient device110, as further described below in conjunction withFIGS. 3 and 4.
Theclient devices110 are configured to communicate with thesocial networking system105 and/or other devices via thenetwork205. In one embodiment, thenetwork205 uses standard communications technologies and/or protocols. Thus, thenetwork205 may include wired and/or wireless communication channels using technologies such as Ethernet, 802.11 family of standards, worldwide interoperability for microwave access (WiMAX), 3G, 4G, CDMA, digital subscriber line (DSL), etc. Examples of networking protocols used by thenetwork205 include multiprotocol label switching (MPLS), the transmission control protocol/Internet protocol (TCP/IP), the User Datagram Protocol (UDP), the hypertext transport protocol (HTTP), the simple mail transfer protocol (SMTP), and the file transfer protocol (FTP). The data exchanged over thenetwork205 can be represented using technologies and/or formats including the hypertext markup language (HTML) and the extensible markup language (XML). In addition, all or some of the communication channels may be encrypted using conventional encryption technologies such as secure sockets layer (SSL), transport layer security (TLS), and Internet Protocol security (IPsec).
FIG. 3 is an example block diagram of an architecture of thesocial networking system105. In the embodiment shown byFIG. 3, thesocial networking system105 includes a user profile store305, anedge store310, acontent store315, anad request store320, anaction logger325, anaction log330, anauthorization server335, atracking module340, abrowsing history store345, abrowsing history analyzer350, a usercharacteristic selector355, aselection module360, and acommunications module365. In other embodiments, thesocial networking system105 may include additional, fewer, or different modules for various applications. Conventional components such as network interfaces, security functions, 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 architecture.
User account information and other related information for users are stored as user profiles in user profile store305. For example, each user of thesocial networking system105 is associated with a unique user identifier. The user identifier is stored in a user profile maintained by the user profile store305. Examples of a user identifier include logins and passwords or other data uniquely identifying users. When a user provides identifying information, such as a login and password, to thesocial networking system105, the user has an established, or ongoing, session with thesocial networking system105 and thesocial networking system105 retrieves a user profile associated with the retrieved identifying information. For example, the user profile store305 includes a lookup table for retrieving a user profile associated with user identifying (“ID”) information received from aclient device110.
Information stored in a user profile describes a social networking system user. Examples of information stored in a user profile include: biographic, demographic, and other types of descriptive information, such as work experience, educational history, gender, hobbies or preferences, location, and the like. User profile information may also store other information provided by the user, for example, images or videos. In certain embodiments, images of users may be tagged with information identifying users of thesocial networking system105 displayed in an image. The user profile store305 may also maintain references to actions stored in the action log330 and performed on objects in thecontent store315. A user profile may also include information indicating whether a user corresponding to the user profile has an established session with thesocial networking system105.
Theedge store310 stores information describing connections between users and other objects on thesocial networking system105 as edges. Some edges may be defined by users, allowing users to specify their relationships with other users. For example, users may generate edges with other users that parallel the users' real-life relationships, such as friends, co-workers, partners, and so forth. Other edges are generated when users interact with objects in thesocial networking system105, such as expressing interest in a page on thesocial networking system105, sharing a link with other users of thesocial networking system105, and commenting on posts made by other users of thesocial networking system105.
Theedge store310 also includes information about edges, such as affinity scores for objects, interests, and other users. Affinity scores may be computed by thesocial networking system105 over time to approximate a user's affinity for an object, interest, and other users in thesocial networking system105 based on the actions performed by the user. Computation of affinity is further described in U.S. patent application Ser. No. 12/978,265, filed on Dec. 23, 2010, U.S. patent application Ser. No. 13/690,254, filed on Nov. 30, 2012, U.S. patent application Ser. No. 13/689,969, filed on Nov. 30, 2012, and U.S. patent application Ser. No. 13/690,088, filed on Nov. 30, 2012, each of which is hereby incorporated by reference in its entirety. In one embodiment, multiple interactions between a user and a specific object may be stored in one edge in theedge store310, in one embodiment. For example, a user that plays multiple songs from Miles Davis' album, “Kind of Blue,” may have multiple edges between the user and different songs, but a single edge between the user and an object for Miles Davis. Alternatively, multiple interactions between a user and an object may be combined into a single edge.
Thecontent store315 stores content items associated with a user profile, such as images, videos, and audio files, as objects. Content items from thecontent store315 may be displayed when a user profile is viewed or when other content associated with the user profile is viewed. For example, displayed content items show images or video associated with a user profile or text describing a user's status. Additionally, other content items may facilitate user engagement by encouraging a user to expand his connections to other users, to invite new users to thesocial networking system105, or to increase interaction with thesocial networking system105 by displaying content related to users, objects, activities, or functionalities of the social networking system. Examples of content items facilitating user engagement include suggested connections or suggestions to perform other actions, media provided to, or maintained by, the social networking system105 (e.g., pictures or videos), status messages or links posted by users to thesocial networking system105, events, groups, pages (e.g., representing an organization or commercial entity), and any other content provided by or accessible via thesocial networking system105.
In one embodiment, ad requests are stored in thead request store320; however, in other embodiments, ad requests may be stored in thecontent store315. Advertisements may be received from anadvertiser130 and/or an ad exchange. Additionally, thesocial networking system105 may generate ad requests. An ad request includes a bid price and advertisement content (or an “advertisement”). Additionally, an ad request may also include one or more targeting criteria specifying characteristics of users eligible to be presented the advertisement. The bid price specifies an amount of compensation anadvertiser130 provides to thesocial networking system105 for presenting the advertisement to a user, for receiving a user interaction with the advertisement, or based on any other suitable criteria. For example, the bid price specifies a monetary amount that thesocial networking system105 receives from theadvertiser130 if the advertisement is displayed and the expected value is determined by multiplying the bid price by a probability of the advertisement being accessed. The bid price may be used to determine an expected value to thesocial networking system105 for presenting an advertisement to a user. For example, an expected value of an ad request is generated based on the ad request's bid price and a likelihood of a user interacting with the ad request's advertisement. To estimate the likelihood of a user accessing an advertisement, thesocial networking system130 may use the user's affinities for targeting criteria or for other objects associated with the advertisement.
Data aboutadvertisers130 associated with ad requests may also be used when computing the expected value of ad requests. For example, the number of users targeted by theadvertiser130 may affect the bid price, allowing ad requests from anadvertiser130 having a lower bid amount but a larger group of potentially accessible users to have a higher expected value than ad requests from anadvertiser130 having a higher bid amount but a smaller group of potentially accessible users. The expected value may be weighted by the amount of common data between an ad request's targeting criteria and a user's characteristics, so that ad requests more likely to be accessed by the user have a higher expected value. In some embodiments, the expected values of ad requests may be adjusted based on whether the user has previously viewed content fromadvertisers130 associated with the ad requests, or has interacted with advertisements or other objects associated with advertisers associated with the ad requests.
Theaction logger325 receives communications about user actions on and/or off thesocial networking system105 and populates the action log330 with information about user actions. Examples of actions include: adding a connection to another user, sending a message to another user, uploading an image, reading a message from another user, viewing content associated with another user, attending an event posted by another user, among others. In addition, a number of actions described in connection with other objects are directed toward particular users, so these actions are associated with those users as well. These actions are stored in theaction log330.
Users may interact with various objects on thesocial networking system105, including commenting on posts, sharing links, and checking-in to physical locations via aclient device110, or other interactions. Information describing these interactions, or “actions,” is captured by theaction logger325 and stored in theaction log330. Additional examples of interactions with objects on thesocial networking system105 included in the action log330 include commenting on a photo album, sending communications to another user, adding an event to a calendar, joining a group, becoming a fan of a brand page, creating an event, authorizing an application, using an application, and engaging in a transaction. Additionally, the action log330 records a user's interactions with advertisements on thesocial networking system105 as well as other applications operating on thesocial networking system105.
Theaction log330 may also store user actions taken on external websites. For example, an e-commerce website that primarily sells sporting equipment at bargain prices may recognize a user of asocial networking system105 through social plug-ins that enable the e-commerce website to identify the user of thesocial networking system105. Because social networking system users are uniquely identifiable, e-commerce websites, such as this sporting equipment retailer, may use the information about these users as they visit their websites. The action log330 records data about these users, including webpage viewing histories, advertisements that were engaged, purchases made, and other patterns from shopping and buying.
Theauthorization server335 enforces one or more privacy settings of social networking system users. A privacy setting associated with a user determines how particular information associated with a user may be shared. The privacy setting comprises a specification of particular information associated with a user and a specification of the entity or entities with which the information can be shared. Examples of entities with which information can be shared include other users, applications,advertisers130, or any entity that may potentially access the information. Examples of information associated with a user that may be shared include: a profile photo, one or more phone numbers associated with the user, other users connected to the user, actions performed by the user, changes to the user's profile, or other information associated with the user's user profile.
Theauthorization server335 includes logic to determine if certain information associated with a user may be used by thebrowsing history analyzer350 and the usercharacteristic selector355 to select advertisements for presentation to users without an existing session with thesocial networking system105. Based on a user's privacy settings, theauthorization server335 may prevent thesocial networking system105 from accessing the user's browsing history and/or user profile to determine characteristics for advertisement selection. Hence, privacy settings allow a social networking system user to control use of and access to its user profile information, browsing history, and other information.
Thetracking module340 receives information from one ormore client devices110 describing content accessed by a social networking system user via a client device. For example, thetracking module340 receives browsing data describing web pages or other content accessed from a plurality ofclient devices110 via thecommunications module365. Based on the received browsing data, thetracking module340 generates or modifies browsing histories associated with various users, which are stored in thebrowsing history store345. Additionally, from the information received from aclient device100, thetracking module340 determines whether a user associated with theclient device110 has an ongoing session with thesocial networking system105. If a user has an ongoing session, thetracking module340 may update the user's associated user profile with the information received from theclient device110 and updates the user's corresponding browsing history in thebrowsing history store345. In contrast, if a user does not have an ongoing session, thetracking module340 is unable to access its associated user profile, so thetracking module340 aggregates received information associated with a user to develop an anonymous browsing history without access to the user's profile. Thetracking module340 stores the anonymous browsing histories in thebrowsing history store345.
Thebrowsing history store345 includes browsing histories for various users of thesocial networking system105. A browsing history associated with a user identifies content previously accessed by the user via one ormore client devices110. Browsing histories may be stored for users having an ongoing session with thesocial networking system105 as well as for users that do not have an ongoing session with thesocial networking system105.
Thebrowsing history analyzer350 retrieves browsing histories based on requests for advertisements received fromclient devices110. In one embodiment, a request for an advertisement includes user ID information associated with the user of the requestingclient device110 and information indicating whether the user has an existing session with thesocial networking system105. If the user corresponding to the user ID information has an ongoing session, thesocial networking system105 may access the user profile corresponding to the user ID information to retrieve information about the user for selecting an advertisement. An example of a process for selecting and providing targeted advertisements to users having existing sessions with thesocial networking system105 is further disclosed in U.S. patent application Ser. No. 13/689,160, filed on Nov. 29, 2012, which is hereby incorporated by reference in its entirety. In contrast, if the information in the request for an advertisement indicates the user does not have an ongoing session, thesocial networking system105 retrieves an anonymous browsing history from thebrowsing history store345 associated with the user ID information included in the request.
When a user does not have an existing session with thesocial networking system105, thebrowsing history analyzer350 identifies one or more browsing histories of additional social networking system users based on the anonymous browsing history associated with the user ID information in the request. In one embodiment,browsing history analyzer350 compares the anonymous browsing history associated with the received user ID information with one or more browsing histories of other users of thesocial networking system105 to determine common features and/or attributes (e.g., commonalities) between the anonymous browsing history associated with the received user ID information and the other browsing histories. In alternative embodiments, thebrowsing history analyzer350 identifies one or more browsing histories of other users of thesocial networking system105 having an established session to thesocial networking system105 based on the anonymous browsing history. In some embodiments, thebrowsing history analyzer350 generates scores describing the similarities between the anonymous browsing history associated with the received user ID information and browsing histories of other social networking system users. For example, a score associated with a browsing history is based on the amount of common characteristics between the anonymous browsing history and the browsing history. Thebrowsing history analyzer350 may select browsing histories associated with scores having at least a threshold value and communicates the selected browsing histories to the usercharacteristic selector355.
The usercharacteristic selector355 determines user ID information associated with the one or more browsing histories selected by thebrowsing history analyzer350. In one embodiment, the usercharacteristic selector355 determines whether a user associated with a selected browsing history has an established session with thesocial networking system105. If the user associative with a selected browsing history has an established session with thesocial networking system105, the usercharacteristic selector355 retrieves user profile information associated with the user from the user profile store305. Alternatively, thebrowsing history analyzer350 determines whether users have an existing session with thesocial networking system105 and communicates user ID information of users having an existing session with thesocial networking system105 to the usercharacteristic selector355.
From the user profiles associated with the user ID information of users associated with selected browsing histories and having an established session with thesocial networking system105, the usercharacteristic selector355 determines one or more common characteristics. A characteristic is a feature or quality associated with a particular user profile. Examples of characteristics indicate wealth, occupation, occupation field (e.g., medicine, engineering, etc.), hobbies, user interests, geographic location, gender, age, some other demographic, etc. For example, the usercharacteristic selector355 identifies characteristics in a threshold number or in a threshold percentage of the user profiles as common characteristics. In other embodiments, the usercharacteristic selector355 may use any suitable method for identifying common characteristics based on the user profiles. The usercharacteristic selector355 may maintain associations between various characteristics to account for related characteristics when identifying common characteristics.
Theselection module360 selects an advertisement for presentation to the viewing user based on the one or more common characteristics determined by the usercharacteristic selector355. Theselection module360 compares the determined common characteristics with one or more targeting criteria associated with ad requests and selects one or more candidate ad requests having one or more targeting criteria satisfied by the common characteristics. In one embodiment, theselection module360 retrieves ad requests from thead request store320 and/or from thecontent store315.
In some embodiments, theselection module360 ranks ad requests having targeting criteria satisfied by one or more of the common characteristics (“candidate ad requests”) based on the bid prices or expected values associated with the candidate ad requests. For example, theselection module360 performs an auction using the expected values of the candidate ad requests to select an advertisement. As described above, an expected value of a candidate ad request is based on its associated bid price and the likelihood of the viewing user accessing an advertisement associated with the candidate ad request. In some embodiments, theselection module360 uses the bid price of a candidate advertisement as its expected value. Based on the expected values of the candidate ad requests, theselection module360 ranks the candidate ad objects and uses the ranking to select an ad request having the advertisement for presentation to the viewing user (e.g., select the advertisement with the highest ranking)
If an advertisement request includes one or more request parameters, theselection module360 filters the candidate ad requests using the request parameters before ranking the candidate ad requests. Examples of criteria specified by request parameters include: a specified size of the advertisement, a threshold number of times an advertisement in has been provided to the requestingclient device110 by thesocial networking system105, a threshold expected value associated with ad requests, content of the advertisement, whether an advertisement has been previously presented to the requestingclient device110, or some combination thereof
If the determined one or more common characteristics satisfy targeting criteria of more than a threshold number of ad requests, theselection module360 may select one or more common characteristics and rank ad requests having targeting criteria satisfied by the selected common characteristics. Theselection module360 may select the common characteristics based on targeting criteria of ad requests having various attributes. For example, targeting criteria of ad requests having the highest average expected value, of ad requests having the highest or lowest frequency of display, of ad requests having content for which the user has a threshold affinity, or any other suitable criteria may be selected. In other embodiments, theselection module360 may select an ad request without filtering or limiting the candidate ad requests from which the ad request is selected.
Thecommunications module365 is configured to transmit and receive data between thesocial networking system105 and theclient device110,advertisers130, or some combination thereof using thenetwork205. Thecommunications module365 receives information from one ormore client devices110 and communicates the received information to components of thesocial networking system105. For example, thecommunications module365 receives requests for advertisements, notifications, user ID information, browser data, information indicating whether a user has an existing session with thesocial networking system105, or other information and communicates the information to various components of thesocial networking system105. In some embodiments, thecommunications module365 receives, via thenetwork205, one or more ad requests fromadvertisers130. Thecommunications module365 also communicates information from thesocial networking system105, such as an advertisement from a selected ad request, to aclient device110 via thenetwork205.
Selection of Advertisement Content for Client Device UsersFIG. 4 illustrates a flowchart of one embodiment of aprocess400 for selecting an advertisement for presentation to a user of an online system. WhileFIG. 4 describes selection of an advertisement for a user of asocial networking system105, any other suitable online system maintaining information about its users may be used. The social networking system stores405 browsing histories associated with its users. A browsing history associated with a user describes content, such as web pages, accessed by the user.
Thesocial networking system105 receives410 a request to present an advertisement to a viewing user that does not have an existing session with thesocial networking system105. In one embodiment, the request includes user ID information associated with the viewing user and information indicating whether the viewing user has an existing session with thesocial networking system105. The request may further include one or more request parameters as described above.
Using the user ID information included in the request, thesocial networking system105 retrieves415 a browsing history associated with the viewing user. For example, thesocial networking system105 retrieves a browsing history associated with the user ID information of the viewing user included in the request from abrowsing history store345 that is part of thesocial networking system105. Using the browsing history associated with the viewing user, thesocial networking system105 identifies420 similar browsing histories of additional users. In one embodiment, thesocial networking system105 determines common attributes of the browsing history associated with the viewing user and browsing histories of the additional users and identifies420 browsing histories associated with additional users having at least a threshold number or percentage of attributes in common with the browsing history associated with the viewing user. For example, thesocial networking system105 scores the similarity between the browsing history associated with the viewing user and the browsing histories associated with additional users and identifies420 browsing histories associated with additional users having at least a threshold score.
Based on the identified browsing histories associated with the additional users, thesocial networking system105 determines425 one or more common characteristics of users associated with the identified browsing histories. Thesocial networking system105 determines user ID information associated with the identified browsing histories associated with additional users that have an existing session with thesocial networking system105 and retrieves user profile information associated with the user ID information of the additional users. Thesocial networking system105 analyzes the user profiles to identify characteristics common to at least a threshold number of user profiles or to at least a threshold percentage of user profiles. Characteristics included in a threshold number or percentage of user profiles are determined425 to be common characteristics. In other embodiments, any other suitable method for identifying common characteristics of the user profiles is used.
Thesocial networking system105 selects430 an advertisement for the viewing user based on common characteristics of the user profiles associated with the users having an existing session with thesocial networking system105 and associated with the identified browsing histories. Ad requests having one or more targeting criteria satisfied by the common characteristics are identified as candidate ad requests. In one embodiment, thesocial networking system105 generates an expected value for each of the candidate ad requests based in part on the bid prices of the candidate ad requests, as described above, and ranks the candidate ad requests based on the expected values. As discussed above, the request for an advertisement may include one or more request parameters, and the candidate advertisements may be filtered based on the request parameters. Based on the ranking, an ad request including an advertisement is selected430 and retrieved from thead request store320. Thesocial networking system105 then provides435 the selected advertisement to theclient device110.
Additionally, thesocial networking system105 receives440 browser data from theclient device110 and updates the browsing history associated with the viewing user with the received browsing data. For example, if the viewing user interacts with the selected advertisement, the viewing user's browsing history is updated accordingly. This allows thesocial networking system105 to maintain a current browsing history describing content with which the viewing user interacts.
SummaryThe foregoing description of the embodiments has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.
Some portions of this description describe the embodiments in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof
Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
Embodiments 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 non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be 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.
Embodiments may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
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 embodiments 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 is intended to be illustrative, but not limiting, of the scope of the disclosure, which is set forth in the following claims.