1. Technical Field
The present teaching relates generally to methods and systems for advertisements. Particularly, the present teaching is directed to methods and systems for selecting relevant advertisements to be presented to a user.
2. Discussion of Technical Background
In the world of display advertisements, users' interests are one of the most valuable signals that can be leveraged for selecting relevant ads. Because a user is most likely to act on advertisements that match his/her interests, an advertiser desires to reach out to people who are most interested in advertised products or services. To create a win-win-win situation, a publisher needs to display the most relevant ads to its users while serving content to the users.
Most existing techniques for targeted advertisement utilize information about user's past behaviors, such as page clicks and ad clicks, or rules that govern selection of ads based on locale information such as location, age, device, etc. However, other parameters may also provide useful information indicative of users' interests and can be utilized to select relevant advertisements.
The present teaching relates to methods, systems and programs for providing advertisement, specifically, for providing relevant advertisements based on users' browsing context.
In an embodiment, a method for providing an advertisement is disclosed. The method, to be implemented on a machine having at least one processor, storage, and a communication platform connected to a network may include receiving a request for an advertisement to be inserted into a content page to be presented to a user. The method further includes selecting an advertisement relevant to the content page and the user based on a content-advertisement index and a user-advertisement index, constructed based on user browsing context, and transmitting information indicative of the selected advertisement as a response to the request.
In an embodiment, a system for providing an advertisement is disclosed. The system includes at least one processor, storage, and a communication platform connected to a network. The system further includes a multi-dimensional index constructor configured for establishing a content-advertisement index and a user-advertisement index based on browsing context associated with users, and an online advertisement selector configured for selecting a relevant advertisement, based on the content-advertisement index and the user-advertisement index, in response to a request related to a content page into which the relevant advertisement is to be inserted and a user to whom the content page is to be presented.
In an embodiment, a non-transitory machine-readable medium having information recorded thereon for providing an advertisement is disclosed. The information, when read by the machine, causes the machine to receive a request for an advertisement to be inserted into a content page to be presented to a user. The information further causes the machine to select an advertisement relevant to the content page and the user based on a content-advertisement index and a user-advertisement index, constructed based on user browsing context, and transmit information indicative of the selected advertisement as a response to the request.
In an embodiment, a method for generating multi-dimensional index is disclosed. The method, to be implemented on a machine having at least one processor, storage, and a communication platform connected to a network may include generating a content-advertisement index based on at least one content profile and at least one advertisement profile, and generating a user-advertisement index based on at least one user profile and the at least one advertisement profile. The content-advertisement index and the user-advertisement index are used to select a relevant advertisement to be inserted in a content page that is presented to a user.
In an embodiment, a non-transitory machine-readable medium having information recorded thereon for generating multi-dimensional index. The information, when read by the machine, causes the machine to generate a content-advertisement index based on at least one content profile and at least one advertisement profile; and generate a user-advertisement index based on at least one user profile and the at least one advertisement profile. The content-advertisement index and the user-advertisement index are used to select a relevant advertisement to be inserted in a content page that is presented to a user.
In an embodiment, a multi-dimension index generator is disclosed. The multi-dimension index generator may include a content-ad index generator configured for generating a content-advertisement index based on at least one content profile and at least one advertisement profile, and a user-ad index generator configured for generating a user-advertisement index based on at least one user profile and the at least one advertisement profile. The content-advertisement index and the user-advertisement index are used to select a relevant advertisement to be inserted in a content page that is presented to a user.
The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present teaching relates to methods and systems for advertisement. Particularly, the present teaching is directed to methods and systems for selecting relevant advertisements to be presented to a user.
One of the goals of advertisements is to sell a product and/or a service to users. The user is more likely to pay attention to, or interact with, an advertisement if the advertised product and/or service are of interest to the user. For example, a user interested in chess will be more likely to look at an advertisement for a book about chess strategies than a user interested in, e.g., soccer. Thus, one of the elements in presenting relevant advertisements to users is to decipher user interests.
In general, multiple methodologies can be, used for deciphering user interests. One of the ways is to use interest information provided by the users themselves. In many instances, users may provide a user profile to content providers that may include user interests. This user profile can be shared with, e.g., an advertisement selection engine to select advertisements that match the interests of the user. Another way is to decipher interests of users based on the history of products and/or services purchased by the users. Yet another way may be compiling a user profile based on the content that users accessed from content sources and the actions that the user performed on the content that the user is presented.
It should be noted that the terms “content provider” and “publisher” maybe used interchangeably herein and refer to an entity that provides or publishes electronic content to be accessed by users of a network. Content may include, for example, graphics, data, news, articles, software-based products, and so forth. A content provider may or may not provide the software used to access the content. A content provider may, in some instances refer to an entity that merely provides electronic content. In other instances, a content provider may refer to an entity that, alternatively or additionally, creates and/or distributes electronic content. Thus, in some instances, the term “publisher” may particularly refer to a content provider that provides content created by a third party for access by users. Examples of content providers include, but are not limited to, online news providers (e.g., The New York Times, The Wall Street Journal, Reuters, CNN, etc.), blogs (Tumblr, The Huffington Post, The Daily Beast, The Daily Caller, Tech Crunch, etc.), online game providers (e.g., Gaikai, OnLive, Playcast Media Systems, Zynga, etc.), massive online open courses (or MOOCs, e.g., Coursera, SlideRule, Khan Academy, Udemy, etc.), entertainment websites (e.g., ESPN, Hulu, Netflix, etc.), online database providers (e.g., IMDb, Wikipedia, etc.), content aggregators (e. g, Drudge Report, Squidoo, Slashdot, eHow, etc.), web portals (e.g., Yahoo!, Aol, Rediff, MSN, etc.), media hosting services (e.g., Youtube, Vimeo, GoFish, Veoh, etc.) and so forth.
Disclosed herein are methods and systems for selecting and providing relevant advertisements to users based on the users' browsing context. Browsing context, as used herein, refers to the content pages visited by users and/or their actions while viewing the content. Thus, browsing context includes time spent by a user reading or interacting with a content page and/or frequency with which the user visits the page. Actions of users while viewing content on the web include, but are not limited to, viewing the content for a period of time; sharing the content on social media or via communication methods such as email, instant message or text message; commenting on the content page (and the tone and/or content of the comments, e.g., positive or negative comments), printing a copy of the content page, scrolling through the content, revisiting the content, clicking (or, in case of touch-screen enabled devices, touching) links given in the content page, and so forth. The actions may be measured and/or quantified based on various metrics. For example, one method for quantifying a user's interaction with a content page is recording the time spent (i.e., dwell time) on the page. Given that users often open multiple pages and spend their time shifting back and forth between multiple pages, scrolling through and rate of scrolling through a page can provide a better quantification of a user's actual interest in the content of the page. As technology improves, other metrics of measuring user interaction with the page can be conceived. For example, in some smartphones, a user-facing camera can detect movement of pupils of the user to detect if a user is reading the content displayed on the screen of the smartphone. Data from such a pupil movement detection system can be used to measure user interaction. Similarly, in some embodiments, various sensors available on devices (including, but not limited to, cameras, microphones, accelerometers, and so forth) may be used to discern the expressions on the users' faces, or understand the context of sounds generated by the users while the users interact with the content. Such feedback may also be used in quantifying the users' interest levels in the content page(s). Other interactions and interaction metrics using presently available and/or yet to be developed technologies are contemplated.
Users 110 may be of different types such as users connected to the network via desktop connections (110-d), users connecting to network 120 via wireless connections such as through a laptop (110-c), handheld device (110-a), or a built-in device in, for example, a motor vehicle (110-b), and so forth. Other types of users connecting to network 120 via other types of devices are contemplated. A user may send a query for a content via a search engine 130 via network 120 and receive a query result from search engine 130 via network 120 that may point the user to a content source, e.g., 160-a, provided by a publisher. In other instances, a user may choose to directly access content source, e.g., 160-b, provided by a publisher via network 120.
In order to monetize the provision of the content, publisher 160 may choose to include advertisements provided by, e.g., advertiser 150 and chosen from an advertisement database 155. Publisher 160 may, in some instances, get paid by advertisers 150 based on number of impressions (i.e., number of times an advertisement is shown or displayed by the content provider) and/or number of click-throughs associated with an advertisement. For example, a publisher may charge an advertiser $10 per thousand impressions and SI/click for an advertisement hosted by the publisher. While the publishers are interested in getting the maximum number of clicks for an advertisement displayed on their pages, advertisers are interested in converting their advertisements to a sale of product/service being advertised. Thus, displaying advertisements that will be more likely clicked (and interacted with) by the users is in the interest of the publisher as well as the advertiser. Browsing context based advertisement selector 140 can provide one of the ways for improving the click-through rate for advertisements displayed on a content page. As used herein, click-through rate for an advertisement refers to number of clicks divided by number impressions of an advertisement (e.g., clicks per 100 impressions).
In an example of the first embodiment as depicted in
In a different embodiment, the browsing context based advertisement selector 140 may also be used as a backend module of the content provider (now shown), such as Yahoo!. In this case, when a user request the content provider 160 to serve a content page which has ad spots, the content provide 160 sends a request to its backend browsing context based advertisement selector 140 for identifying one or more advertisement that are relevant to both the content on the content page and the user who requests the content page. The identified advertisements are then retrieved by the content provider 160, insert into the content page, and displayed the content page with ads inserted to the user.
The selection of relevant advertisements is based on the content-ad index 340 and the user-ad index 330. MDCIC 310 is for constructing the user-ad index 330 and content-ad index 340 based on information related to various content pages, information about various users, and information related to various advertisements. The user-ad index 330 is provided to connect each user to various advertisements that are considered to be of interests to the user. The set of advertisements to be considered to be relevant to a user is determined based on both information that reflects or characterizes the interests of the user and information related to each advertisement. Information related to the interests of the user includes browsing context surrounding content browsed by the user. The content-ad index 340 is provided to connect each content page to various advertisements that are considered to be relevant to the content page. The set of advertisements to be considered to be relevant to a content page is determined based on both information characterizing the content page and information characterizing each advertisement. Examples of information related to a content page include keywords, topics, its popularity, and browsing context associated with it.
An exemplary structure of the content-ad index 340 is shown in
Each connection in the content-ad index is a pair ofidentifiers, with one content identifier and the other advertisement identifier. The degree of relevance of each advertisement to each content page may vary so that a relevant score may be used to specify the degree of relevance of each connection. For example, the pair (C-ID1, A-ID1) has a content-ad relevance score CA11-R. The pair (C-ID1, A-IDj) has a relevant score CA1j-R. The content-ad index 340 can be used in selecting advertisements relevant to a content page. For example, given a content page with a content identifier, advertisements relevant to the content page can be identified by selecting advertisements linked to the content identifier through the content-ad index 340. The most relevant advertisements may be selected based on the relevance score associated with the connections.
A similar exemplary structure for the user-ad index 330 is shown in
Each connection in the user-ad index is a pair of identifiers, with one user identifier and the other advertisement identifier. The degree of relevance of each advertisement to each user may vary so that a relevant score may be used to specify the degree of relevance of each connection. For example, pair (U-ID1, A-ID2) has a user-ad relevance score UA12-R. The pair (U-ID1, A-IDj) has a relevant score UA1j-R. The user-ad index 330 can be used in selecting advertisements relevant to a user. For example, given a user identifier for a user, advertisements relevant to the interests of the user can be identified by selecting advertisements linked to the user identifier through the user-ad index 330. The most relevant advertisements may be selected based on the relevance score associated with the connections.
MDCIC 310 operates to construct the content-ad index 340 and user-ad index 330 and continuously update them based on information dynamically collected.
In some embodiments, the user-ad index generator 450 creates a user-ad index 330 based on user profiles from a user profile store 470 and advertisement profiles from an ad profile store 480. The content-ad index generator 460 creates the content-ad index 340 based on content profiles stored in a content profile store 490 and advertisement profiles stored in an advertisement profile store 480. User profile store 470 archives a user interest profile for each user, generated by user interest profile generator 420 based on information gathered by a browsing context information collector 405 and other user related information such as, for example, self-reported interest information.
For example, a user visiting and spending significant amounts of time reading about the movies such as, for example, “the Matrix”, “Speed”, “Constantine”, “Chain Reaction”, and so forth maybe considered to be interested in the actor Keanu Reeves based on the commonality between the content browsed by the user. The pages relating to each of these movies may include keywords relating to actors, directors, writers, producers of the movies; synopsis of the plot; trivia about the movies; and so forth. Such keywords are represented in 610. Likewise, if the user, while visiting content pages relating to these movies downloads photographs of actor Keanu Reeves, such actions are represented in 630. In many instances, a content publisher may include particular tags and categories with the content pages. For example, for the above mentioned movies, a publisher such as IMDB or Rotten Tomatoes may specifically include tags such as “Science Fiction”, “Keanu Reeves”, “Laurence Fishburne”, “Hugo Weaving”, “Sandra Bullock”, “Rachel Weiss”, and so forth. Such tags may be represented in 620. Additionally, some publishers may include advertisements with such pages. For example, a publisher may include links to trailers for movies such as “47 Ronin”, “Memento”, “Event Horizon”, “V for Vendetta”, (featuring one or more actors from the movie “the Matrix”) and so forth on a page for the movie “the Matrix”, or links to trailers for movies such as “Constantine”, “47 Ronin”, “Gravity”, “the Blind Side”, and so forth, (featuring one or more actors from the movie “Speed”) on a page for the movie “Speed”. A user may, in some instances, click and view such trailers. For example, a user interested in the actor Keanu Reeves may click on a link to a trailer for “47 Ronin” but ignore a link to a trailer for “Gravity”. Such information is represented in block 630.
Referring back to
Keywords may come from different sources. For example, the content provider may supply them. In many situations, keywords are extracted from content pages by any party or process that analyzes the content, such as the content information collector 415. Keywords may be identified either offline or on-the-fly (as users visit the content page). Extracted keywords can be used to characterize individual content pages. For example, an article discussing a final score of a tennis match may include, as keywords, name of tournament during which the match was played (e.g., French Open), venue at which the tournament is taking place (e.g., Paris, France), names of the players involved (e.g., Rafael Nadal, Roger Federer), time stamp (e.g., date/day on which the match was played), and so forth. Extracted keywords may also be used to derive appropriate topics of the content page or classification into certain category of content.
Tags and/or categories associated with content may be useful, which can be either added by the content provider or automatically derived based on information extracted from the content or meta data of the content. Using the above example of the tennis match, categories may include, for example, sport (e. g., Tennis), tournament type (e.g., Grand Slam), subject of the page (e.g., scores), and so forth. In some embodiments, users may choose to add their own tags such as, for example, descriptors of the match (e.g., epic finale), nicknames of players (e.g., Rafa, Fedex), history of the match (e.g., who each of the players defeated in getting to the particular match), and so forth. Other examples of tags include, for example, “hashtags” used while sharing the page. In some embodiments, editors and/or content providers may choose to include, as tags, for example, frequently used words from comments on the page. In other embodiments, content information collector 415 may analyze a content page and classify the content page into some content category or content taxonomy. The number and length of such tags and categories may not be restricted in various embodiments. Other tags and categories are also contemplated. Such keywords, tags and categories are represented in 810.
Content related statistics 820 (i. e., statistics relating to users' visits) may also be used in a useful way to construct a content profile. For example, statistics of content page relating to the frequency of visits by users and users' interaction with the page may be used to infer the popularity of the page. In some embodiments, the statistics may include statistics about usage of particular words in comments (which may be, for example, algorithmically extracted). Other useful statistics are also contemplated.
Information reflecting the browsing context related to a content page may also be utilized to construct a content profile. For example, the number of times or frequency the page is requested viewed, dwell-time associated with each visit, number and/or frequency of user comments, number of times the page has been shared and/or emailed, number of re-visits by a same user, and so forth.
Referring back to
As can be seen, information about the browsing context is gathered dynamically and continuously, such information is used to dynamically update the user profiles and content profiles. In consequence, the user-ad index and the content-ad index are also updated dynamically to reflect the refined estimate of association between users and advertisement as well as between content and advertisements. For example, each time when a user views a content page and interacts with an advertisement displayed along with the content page, user activities and the browsing context are observed and used information available in the user-ad to update user profiles and content profiles. The updated content and user profiles then cause the user-ad index and content-ad index to be updated accordingly. With such dynamically adjusted profiles and indices, an advertisement given a particularly content page to be presented to a specific user can be selected using the updated user-ad index and content-ad index to maximize the relevance between the selected advertisement, the content page in which the selected advertisement is to be inserted, and the user to whom the content page with the selected advertisement is to be presented.
The user-ad index is constructed at 550 based on user profiles and advertisement profiles and stored (not shown). Similarly, the content-ad index is constructed at 555 based on content profiles and advertisement profiles and stored (not shown).
The content information analyzer 1010 receives content related information (from the content information collector 415) to identify various content related features. Content related information may include the content page itself. In some embodiments, keywords are extracted by the content information analyzer 1010 from the content page. As discussed, in some embodiments, keywords from the content page may also be supplied by, e.g., a content creator, a publisher and/or editor of the content, or some third party service provider. In some embodiments, keywords may also be provided by users visiting the content page. In addition to keywords, other features may also be identified from a content page. For example, frequencies of occurrences of keywords can also be identified.
Based on the content features, such as keywords, the content classifier 1030 may classify the content page into one or more topics in accordance with, e.g., content taxonomy 1050. For example, a content page with keywords tennis, tournament, etc. may be classified as related to “sports.” As another example, in the tennis article example discussed above, the article may be classified to relate to topic “Sports commentator.” The identified keywords and the classified topics of the content page may then be sent to the augmented feature identifier 1040.
The augmented feature identifier 1040 may be deployed to expand the features related to a content page based on known keywords from a content page as well as estimated topics of the content page. For example, if keywords “tennis” and “tournament” are extracted and the content page is classified as related to “sports”, additional keywords may be extracted from the content page as augmented features that provide further information related to the event described in the content page. For instance, names of people involved in the tournament, the name of the geographic location where the tournament is held, and the date of the event may be identified so that the content page may be better represented based on the keywords and the augmented keywords.
The feature-based profile extractor 1060 then generate a content profile for a content page based on information related to the content, including keywords, topics, and augmented features. In some embodiments, a content profile for a content page may correspond to a high dimensional feature vector with attributes describing various features associated with the content page. Such a created content profile is then stored in content profile store 490.
Upon receiving analyzed browsing context information, the browsing context feature extractor 1220 estimate features that can be used to characterize the user's estimated interests. For example, the browsing context feature extractor 1220 may estimate the relative levels of interests of the user against a plurality of pre-defined categories of interests. As can be seen, the estimated levels of interests of the user are consistent with the observed user behavior as well as self-reported interests. Such estimated features of the user are then sent to the feature-based user interest profile generator 1240, which in turn generates a user profile and stored the created profile in the user profile store 470.
In generating profiles for content, advertisements, or a user, if a prior profile already exists in a corresponding profile store, the pre-existing profile is updated based on the newly collected information. In this way, the profiles for content, user, and advertisement can be made adaptive.
To build content-ad index 340, the content profile retriever 1370 retrieves, for each piece of content such as a content page stored in content database 1360, a content profile for the content page from content profile store 490. Based on the retrieved content profile, the content feature identifier 1390 identifies features from the content profile that are to be used to determine its relevance with various advertisements. To estimate the relevance between the content page and each specific advertisement, the advertisement profile retriever 1330 retrieves an advertisement profile for each advertisement archived in the advertisement database 155. An ad feature identifier 1310 then identifies particular features from each advertisement profile that are to be used in determining the relevance between the advertisement and a content page. The feature-based relevance identifier 1340 then computes a relevance score for each advertisement with respect to the content page based on their respective features identified from their corresponding profiles. Such computed relevance scores are then stored in a C-A (content-ad) relevance score archive 1385.
A C-A relevance score estimated based on two sets of features (one for the content page and one for the advertisement) can be computed using any models known in the art. Any model can be configured and stored in 1320 and used by the feature-based relevance identifier 1340. Exemplary models include a model using Euclidian distance between two feature sets or a model that computes the similarity between two feature vectors. Each pair of a content page and an advertisement is described by a value of a relevance score representing a degree of relevance between a content page and ad advertisement. This is shown in
In some embodiments, a relevance score can be estimated by computing the cosine between the advertisement feature vector and the content feature vector. In other embodiments, machine learning can be deployed to learn a model for computing the relevance score. For example, based on past data, a learning algorithm, such as logistic regression or neural networks, may be used for learning a model to be used to compute relevance scores. In such embodiments, the computed C-A relevance scores can be adaptively enhanced based on data continuously gathered. For example, after a relevance score is computed and stored, e.g., CA2i-R, when more information, e.g., related to the browsing context of the corresponding content page (2nd content page) with the corresponding advertisement displayed therein (the ith advertisement), is available, the additional information may be used to update the content profile which then causes the relevance score CA2i-R being updated based on the updated content profile.
The C-A relevance score archive 1385 provides relevance scores for every pair of content page and advertisement. In operation, to ensure efficiency, for each content page, there may be only a portion of the advertisements with high enough relevance scores are considered for selection. For that purpose, for each content page, its relevance scores with respect to the advertisements available can be ranked so that only a certain number of advertisements that have top ranking scores are considered to be relevant to the content page. The relevance-based CARI generator 1380 generates a content-ad index 340 for every content page available in content database 1360 by linking each content page with a specified (e.g., K) number of top ranking advertisements, determined based on their respective relevance scores (stored as top C-A configuration 1350). This is shown in
At 1440, it is checked to see whether there are remaining advertisements (e.g., in advertisement database 155) that have not been processed with respect to the current content page. If yes, the process goes back to 1420 to retrieve the next advertisement profile for the next advertisement and continues till the relevance scores for all advertisements stored in the advertisement database 155 are determined and stored. Once relevance scores between the current content page and the advertisements are determined (No, following 1440), top N most relevant advertisements are selected at 1445 based on the relevance scores with respect to the content page. At 1450, content-ad index 340 is created for the particular content page based on the N most relevant advertisements with respect to the current content page. Example structure of such an index for a specific content page is shown in
To construct the user-ad index 330, for each user in a user database 1550, the user profile retriever 1560 retrieves a user profile for that user from user profile store 470. The user feature identifier 1570 then identifies features from the user profile that are to be used to assess the relevance between the user and an advertisement. As discussed above, a user profile may include various information that characterize the user's, e.g., demographics or interests such as topics of interests. For each user, the advertisement profile retriever 1540 retrieves an advertisement profile for each of the advertisements stored in the advertisement database 155. The ad feature identifier 1510 then identifies features of the advertisement from the advertisement profile in order to assess the relevance between the user and the advertisement. Based on the features of the user and that of the advertisement, the feature-based relevance identifier 1530 estimates a U-A relevance score in accordance with a model selected from relevance models archive 1520. The relevance models can be any known in the art. The system may configure to use a specific model depending on the needs or requirements of the underlying application. The models archived may also include parameters to be used in each model so that when the model is deployed in an application, the parameters are also used in the deployment.
Computing a relevance score between a user and an advertisement is based, at least partially, on the browsing context of the user and the nature of the advertisement. For example, if a user has been actively browsing content about new born babies, e.g., visiting and spending significant amounts of time reading web pages relating to diapering, layettes, baby clothes, feeding, infant formula, and so forth, advertisements relating to diapers, cribs, baby toys, baby bottles, infant car seats and such products should be considered to be relevant to the user's interests reflected by the user's browsing behavior. Likewise, if a user is visiting and spending a significant amount of time browsing web pages relating to golf, advertisements relating to driving ranges, specialty golf clubs, golf coaching, and such should be considered relevant to the interests of the user.
A computed U-A relevance scores is stored in the U-A relevance score archive 1585. In operation, to ensure efficiency, for each user, there may be only a realistic number of advertisements are considered to be relevant and this can be determined based on the U-A relevance scores. For that purpose, for each user, its relevance scores with respect to the advertisements can be ranked so that only a certain number of advertisements that have top ranking scores are considered to be relevant to the user. The relevance-based UARI generator 1580 generates the user-ad index 330 for every user in user database by linking each user with a specified (e.g., N) number of top ranking advertisements, determined based on their respective relevance scores (stored as top U-A configuration 1590).
Once relevance scores for all advertisements are determined (“No,” following 1640), top K most relevant advertisements are selected at 1645 based on their relevance scores with respect to the user. At 1650, user-ad index 330 is created for the particular user. At 1655, it is determined whether there are additional users. If so, the process returns to 1605 to start to process the next user. If the determination is no, the process waits till a new user comes available. If (or when) a new user is present, the process moves back to 1605 and proceeds to establish the user-ad index for the new user. One of ordinary skill in the art will recognize that while the flow chart in
In operation, the request processor 1750 receives the request for an advertisement from, e.g., a search engine 130. The request may also be from a publisher or a content provider (not shown). The request provides information related to a user and a specific content page, which is to be presented to the user and is where the requested advertisement is to be incorporated into. Upon receiving the request, the request processor 1750 extracts information related to the user (e.g., user identifier) and information related to the content page (e.g., content page identifier) from the request. Using the content information, the content-ad based ad selector 1710 identifies a candidate ad set or content relevant advertisement set 1720 based on the content-ad index 340. For example, if the content page is associated with K top relevant advertisements, these advertisements form the content relevant ad set 1720. Similarly, the user-ad based ad selector 1730 identifies a user relevant ad set 1740 based on the user-ad index 330. For example, if the user is associated with N top relevant advertisements, these advertisements form the user relevant advertisement set 1740.
Based on the two candidate advertisement sets 1720 and 1740, the top relevant ad determiner 1760 determines a most relevant advertisement and sends the selected top advertisement in response to the request from the search engine 130. The top advertisement may be selected according to different selection criteria. For example, in some embodiments, an advertisement with a highest relevance score can be selected from the candidate advertisements from the content relevant ad set 1720 and user relevant ad set 1740. In some embodiments, the selected candidate advertisement may be required to be present in both the content relevant ad set 1720 and user relevant ad set 1740. In some embodiments, advertisements may be chosen based on their effective cost per thousand impressions (eCPM). Other metrics for choosing advertisements are contemplated.
Users' interactions with advertisements provided using the process described herein can be taken into account and fed back into the process to improve the relevance scores and ranking of the advertisements. Such a selected advertisement provides a higher degree of relevance in the context of a content web page and a user visiting the page. As such, this leads to improved reaction from a user to the displayed advertisement so that a content provider may potentially charge a premium rate for the impressions of advertisements while reducing user-aversion to visiting pages cluttered with irrelevant advertisements. This also helps the advertisers by selectively targeting users who would be most likely to purchase the product/service being marketed, thereby providing the most bang-for-the-buck for displaying the advertisements.
Computer 2000, for example, includes COM ports 2050 connected to and from a network connected thereto to facilitate data communications. Computer 2000 also includes a central processing unit (CPU) 2020, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 2010, program storage and data storage of different forms, e.g., disk 2070, read only memory (ROM) 2030, or random access memory (RAM) 2040, for various data files to be processed and/or communicated by the computer as well as possibly program instructions to be executed by the CPU. Computer 2000 also includes an I/O component 2060, supporting input/output flows between the computer and other components therein such as user interface elements 2080. Computer 2000 may also receive programming and data via network communications.
Hence, aspects of the method of providing advertisements as outlined above may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of content providers or other explanation generation service provider into the hardware platform(s) of a computing environment or other system implementing a computing environment or similar functionalities in connection with generating content and user relevant advertisements. Thus, another type of media that may bear the software elements include optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including by not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings herein. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables, copper wires and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) communications. Common forms of computer-readable media, therefore, include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch card paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for executing.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution, e.g., an installation on an existing server. In addition, the multidimensional index and the indexing engine, and their components as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2014/081854 | 7/8/2014 | WO | 00 |