Like reference symbols in the various drawings indicate like elements.
An external server 108 indexes content from user profiles 110 and stores the indexed content in a repository 112. In addition, the external server 108 stores personal ads in a repository 114, such as the user B personal ad 102a from a user B client 116. Using the indexed profiles in the repository 112, an ad server 118 determines which of the ads in the repository 114 relate to the user A profile 104 currently presented. The related personal ads 102a-c are displayed with the user A profile 104. In certain implementations, the related ads 102a-c are transmitted to the social network 106. Alternatively, the related ads 102a-c may be transmitted to a client device presenting the user A profile 104. In certain implementations, the components and/or actions attributed here to the external server 108 may be included in and/or performed by the social network 106.
In addition, the web crawler 202 can generate statistical associations between keywords and the user profile content 110. For example, the user profile content 110 can contain information used by the web crawler to identify what keyword may be related to the content of the profile. This information can include text within the profile, keywords (e.g., metadata) that describe the profile, frequencies of words occurring in the profile, font size of text in the profile (e.g., if one word has a larger font size, more emphasis can be given when associating the profile with keywords), or a hyperlink structure within the profile. The web crawler 202 can store the statistical associations in a repository 206.
The structure of the profile used in certain social networks also can be integrated into the analysis of appropriate keywords to link to the profile. For example, the profile may be structured so that certain types of content are identified using their location on the page, metadata, and text proceeding the content (e.g., “interests:,” “age:,” etc.). If the web crawler 202 determines that the text “law” is within the “interest:” content of a first profile, it can record this association so that other advertisements for profiles that include similar interests may appear on the first profile.
The external server 108 receives the user B personal ad 102a via an interface 208 and stores the personal ad 102a in the repository 114. The personal ad 102a includes sub-components, including a uniform resource identifier 210, an image 212, a video 214, text 216, and/or keywords 218. The image 212, video 214, and text 216 can form the information presented to the user viewing the personal ad 102a. In addition, the personal ad 102a may include audio or other appropriate media.
In certain implementations, the URI 210 is a uniform resource link (URL) that permits a user viewing the personal ad 102a to navigate from the user A profile 104 to a personal web page of the user B. In other implementations, the URI 210 can include contact information for the user B (e.g., instant messenger address, telephone number, mailing address, email address, etc.).
In certain implementations, the image 212, video 214, and text 216 are retrieved from the user B personal web page to which the URI 210 directs. For example, a personal advertiser can enter in the URL of the advertiser's profile. The web crawler can retrieve content from the profile based on the profile structure. Because the profile structure is uniform, the web crawler can retrieve consistent content, such as an introductory paragraph that describes the personal advertiser and a photograph of the personal advertiser. In other implementations, the personal advertiser selects the content and uploads it as part of the User B Personal Ad 102a.
The keywords 218 describe the personal ad 102a and/or the user B personal web page that the personal ad 102a advertises. The keywords 218 may describe, for example, a category to which the ad 102a or the web page belongs, or a language used by the ad 102a or the web page. The personal advertiser can enter the keywords, the external server 108 can generate them using the statistical information in the repository 206, or the keywords can originate from both.
The external server 108 includes an ad to profile matcher 220 within the ad server 118. The ad to profile matcher 220 matches personal ads from the repository 114 to a profile to be presented. The matcher 220 uses the indexed user profile content in the repository 112 together with additional personal ad keywords 222 from the repository 206 to relate, for example, the user A profile 104 to the personal ads 102a-c. For example, the user A profile 104 may contain text, keywords, or links to web pages including the phrases “Star Trek,” “cycling,” and “local music.” The personal ads 102a-c may contain keywords of “Star Trek” 218, “cycling,” and “local music,” respectively. The matcher 220 determines that the profile 104 is related to the ad 102a by the words “Star Trek,” to the ad 102b by the word “cycling,” and to the ad 102c by the words “local music.”
Additionally, a phrase associated with the user A profile 104 may originate from the additional personal ad keywords 222. For example, the user A profile 104 may include the phrase “bicycling.” The repository 206 may contain a statistical association between the word “bicycling” and the word “cycling”; therefore the word “cycling” is included in the additional personal ad keywords and then related to the ad 102b.
In addition, the user A profile 104 may include the word “physicist.” The repository 206, and the additional personal ad keywords 222, may include a phrase of “Star Trek” associated with the word “physicist.” The crawler 202 may have determined that there is a relationship between profiles including the word “physicist” and profiles including the phrase “Star Trek.” The matcher 220 then relates the additional keywords “Star Trek” to the user B personal ad keywords 218.
In the examples described here, an exact match is identified between the phrases from the user A profile 104 and the ads 102a-c. In general, the profile content portions are statistically related to the personal ad keywords, but the relationship may be less than exact, such as a relationship meeting a predetermined statistical threshold. The ad server 118 outputs the related ads 102a-c via the interface 204. Ads can also be targeted to attributes expressed in manners other than keywords, such as user age or age range, gender, geographic proximity, and non-profile attributes such as how often a user logs into a social network.
The ad server 118 determines which ads from the repository 114 to present with the search results 302. The ad server 118 uses the indexed content in the repository 404 together with the search query 306 and/or the search results 302 to determine the personal ads 102a-c related to the search results 302. The ad server 118 passes the related ads 102a-c to the response formatter 408. The response formatter 408 outputs the search results 302 and the related ads 102a-c via the interface 204.
Process 500 begins with receiving (502) personal web page content. For example, the external server 108 and the search server 310 receive the user profile content 110. The servers 108 and 310 index the user profile content 110 and store the indexed content in repositories 112 and 404, respectively.
Process 500 generates (504) one or more personal ads. For example, advertiser users may submit information used to create the personal ads 102a-c at the servers 108 and 310 or the ads 102a-c may be created by the servers 108 and 310 using content from the personal web pages referred to by the ads 102a-c.
Process 500 associates 506a-b one or more personal ads with personal web page content related to the ads or keywords/categories related to search results, respectively. For example, the ad server 118 may relate the user A profile to the personal ads 102a-c or the ad server 118 may relate the search results 302 to the personal ads 102a-c.
Process 500 receives (508a-b) a request to display an ad with a personal web page or to generate search results, respectively. For example, the social network 106 may make a request to the external server 108 that ads be displayed in conjunction with the user A profile 104 or the client 304 may transmit the search query 306 to the search server 310.
Process 500 transmits (510a-b) the one or more ads for display with the personal ad or the search results, respectively. For example, the external server 108 may transmit the personal ads 102a-c to the social network 106 or the search server 310 may transmit the personal ads 102a-c to the client 304.
The personal ads 102a-c may be placed in various manners. For example, the personal ads 102a-c may be placed on a user's profile page to which the ads 102a-c have been determined to bear a relation or some commonality. Various visitors to the person's profile page would then see the ads 102a-c. In one implementation, the ads 102a-c may be generated to match ads for other profiles with the present profile such as by comparing the two profiles. Specifically, an ad may be in the form of, “If you like Sally's profile, then you'll love ______'s profile.”
The personal ads 102a-c may also be placed to be targeted to a particular member as they navigate a site such as a social network site. For example, if the user is anywhere in the site, they may see ads directed to attributes of their profile. The selected ads may be taken from a sub-group of ads relevant to the place the member is visiting, and the particular ads to display may be selected using parameters associated with the user. Also, the ad selection may occur using a combination of attributes for a visiting user, and attributes associated with a page (such as a personal profile page) that the person is visiting. In such a situation, the visitor's profile may show explicitly attributes associated with the user, whereas the place the user visits may reflect implicit attributes, such as the user's (perhaps well hidden) desires. Thus, in this manner ads 102a-c may be targeted to an end member in general.
The interface 600b allows an advertiser to select a file to be uploaded from a file list 630. The file may be media such as an image, audio, or video. The file list 630 may contain controls that allow the advertiser to navigate to a location where a particular file associated with the personal web page to be advertised resides. Selecting a file in the file list 630 may initiate the interface 600c or another control may initiate the interface 600c.
The interface 600c is an editor for the text description of the personal ad. The interface 600c includes a text entry area 660 and a text formatting controls 662. An advertiser may make inputs to the text entry area 660 containing the description of the personal ad. The advertiser may format the description, such as with underlining, boldface, color, font, or font size, using the text formatting controls 662.
Optionally, process 700 receives (706) a user login to an account. For example, the personal ad creation/modification process may be password protected to prevent unauthorized changes from being made to personal ads.
Optionally, process 700 receives (708) a user generated ad. For example, a user may create a personal ad using the interfaces 600a-c. Alternatively, personal ads may be automatically generated by process 700 using, for example, content from a user's personal web page.
Process 700 receives (710) a user-specified cost-per-click, budget, and targets. For example, the user may specify how much the user intends to pay for each action resulting from the personal ad, such as an action of navigating to the user's personal web page via the personal ad or performing an action at the personal web page. Payments may be triggered by various events, such as cost/pay-per-impression, cost/pay-per-click, and cost/pay-per action or acquisition (where action/acquisition may include, for example, adding the user as a friend). Payments made by the advertiser based on the cost-per-click (or other method) may be credited to an entity providing the ad server 118 functionality, an entity responsible for the personal web page where the personal ad is presented, an entity hosting the personal web page where the personal ad is presented (e.g., the social network 106), or some combination of these entities.
A payment system 712 tracks the number of times the advertiser's personal web page is accessed via the personal ad. The budget indicates a limit to the number of times the personal ad may be presented and selected. The targets indicate the types of personal web pages where the personal ad is to be presented, or the types of viewers to whom it is to be presented. For example, the keywords 218 (or other attributes) may include the specified target information. The keywords 218 are then used when determining with which personal web pages to display the personal ad in conjunction.
Process 700 receives (714) user payment details. For example, the advertiser user may input credit card information or PayPal information to make the payments based on the selected cost-per-click amount.
The system 900 includes a processor 910, a memory 920, a storage device 930, and an input/output device 940. Each of the components 910, 920, 930, and 940 are interconnected using a system bus 950. The processor 910 is capable of processing instructions for execution within the system 900. In one implementation, the processor 910 is a single-threaded processor. In another implementation, the processor 910 is a multi-threaded processor. The processor 910 is capable of processing instructions stored in the memory 920 or on the storage device 930 to display graphical information for a user interface on the input/output device 940.
The memory 920 stores information within the system 900. In one implementation, the memory 920 is a computer-readable medium. In one implementation, the memory 920 is a volatile memory unit. In another implementation, the memory 920 is a non-volatile memory unit.
The storage device 930 is capable of providing mass storage for the system 900. In one implementation, the storage device 930 is a computer-readable medium. In various different implementations, the storage device 930 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device 940 provides input/output operations for the system 900. In one implementation, the input/output device 940 includes a keyboard and/or pointing device. In another implementation, the input/output device 940 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Although a few implementations have been described in detail above, other modifications are possible. For example, the payment system 712 described in association with
In other implementations, the source of the advertisements of profiles from a first online social network may be displayed with profiles hosted by a second online social network. An external web server can receive profile information from the first online social network and transmit advertisements for profiles from the second online social network for display with profiles hosted by the first online social network.
In yet other implementations, a personal profile includes web pages not associated with a social network. These web pages may not include a standard structure of categories that describe a user. A user may design a web page that includes a variety of content include information about the user. For example, geocities.com hosts a variety of web sites that describe personal aspects of users of the web hosting service. These websites may be noncommercial websites, where the primary purpose of the content of the user designed website may be expressing personal information and interests instead of promoting a product for sale. Although advertisements for products may be generated and associated by the web hosting service for display with the user designed website, the content of the websites may still be noncommercial.
In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.