One form of revenue for search engines and content providers are advertisements that are displayed on the pages of websites. These advertisements may take the form of banner advertisements, advertisement lists, or other commonly known advertisements. One form of advertising on web pages is referred to as contextual advertisement. In contextual advertising, advertisements are requested for a specific web page based on the content of that web page. The web page content is analyzed to identify which advertisements best match the content for the web page. Typically, one drawback of contextual advertising is that each of the advertisements for a particular web page are quite similar. If all of the advertisements are similar, it is less likely that user will visit each of the advertisements presented on the web page.
The present application describes a system and method for selecting advertisements for a web page.
The system includes an analysis engine, a policy module, and an advertisement engine. The analysis engine receives an advertisement request and evaluates the web page content to identify a first advertisement query based on the content of the web page and a second advertisement query based on the content of the web page or a behavioral feature. The advertisement engine retrieves a first set of advertisements based on the first advertisement query and a second set of advertisements based on the second advertisement query. The policy module receives the first and second sets of advertisements from the advertisement engine. The policy module blends the first set of advertisements and the second set of advertisements into a blended advertisement set. The blended advertisement set is provided to the web page server for display with the web page.
Other systems, methods, features and advantages will be, or will become, apparent to one with skill In the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the embodiments, and be protected by the following claims and be defined by the following claims. Further aspects and advantages are discussed below in conjunction with the description.
The system described in the present application improves the diversity of advertisements for contextual advertising. The system identifies one or more matching dimensions of user behavior, page content, and/or advertisement content. As such, the ads shown on web pages can be relevant to multiple dimensions, including for example user behavior targeting features, multiple topics on the web page, or publisher specified keywords, instead of showing ads all matching a dominant dimension.
As described above it is possible, in contextual advertising, that the advertisements displayed for a given page are very similar to each other, and mostly dominated by a few strongest features. If this dominant topic is not relevant to the user intent, the user will be less likely to click on any advertisement thus negatively affecting the click through rate (CTR).
To address these issues the system may increase the diversity of the advertisements served to a web page by executing multiple queries across different dimensions, such as user behavioral targeting (BT) categories, page content, and publisher supplied keywords (or hints). One method of increasing diversity includes (i) selection of multiple dimensions, (ii) formation of multiple queries based on selected dimensions, (iii) execution of multiple queries to retrieve ads candidates from each dimension, and (iv) blending of multiple result sets so that both the quality of particular ads and the diversity of the ads returned to the web page server are maximized. The selection method can be extended by configuring dimension importance to customize the advertisement mix for different pages or publishers. For pages having diverse topics, multiple content queries may be generated by clustering features based on their closeness to a topic. The method can be applied to the selection of both contextual ads and banner ads.
In addition, the system may cluster the result advertisements to increase diversity. The clustering may be based on an advertisement attribute, for example, advertisement category, or the clustering may be based on a dominant feature in the page-ad matching (i.e., the feature making the maximum contribution to the final score). Unlike the existing result set clustering algorithms, which are done in the post-processing stage and require retrieval of a large number of results, the proposed solution may be implemented at the index traversal time by maintaining multiple heaps of candidates. Each heap contains candidates from one cluster.
The result clustering would be useful where a single dominant topic exists on the page, for example, San Francisco on a weather channel page. The multiple advertisement result sets in this case could be, San Francisco Real Estate, San Francisco Travel, etc.
Now referring to
In a common example, the web page server 112 is accessed by a user system 110 that requests a web page 138. The user system 110 communicates over a wide area network such as the internet with the web page server 112. Accordingly, the web page server 112 provides the user system 110 with a web page 138 including web page content 140 and/or an executable code such as Java Script for use in the user system 110. As described above, many web pages will display advertisements to the user. As such, the web page server 112 may request advertisements 142 from the advertisement server 114 over an Internet connection. The advertisement server 114 may have access to the web page content 140 with which the advertisements 142 may be placed. Accordingly, the advertisement server 114 may identify words or phrases from the web page content 140 that are used to infer the interests of the user and serve advertisements 142 related to the interests of the user.
The advertisement server 114 may include an analysis engine 116, a policy module 118, and an advertisement engine 122. The analysis engine 116 accesses the web page content 140 and Identifies one or more advertisement queries for the web page 138 based on the web page content 140. In addition, the analysis engine 116 may be in communication with the web page server 112 to receive user Information such as a browser history or user preferences to generate advertisement queries. The user information may be stored in a cookie 130 on the user system 110 or in a database on the web server 112 based on a registration id 132 related to the current browser session.
While a first advertisement query 134 and a second advertisement query 136 are identified by two lines, multiple additional queries may also be included for each web page. Further, the advertisement queries may be transmitted along the same communication medium, and even within the same or multiple messages. The analysis engine 116 may also analyze user preference information based on the cookie 130 or registration id 132 to determine other advertisement queries based on user behavior. The content queries and the behavioral queries are then provided to the policy module 118. The analysis engine 116 may also access a database 120 that identifies a category for each query based on advertisement taxonomy.
The policy module 118 may, then, determine the proportion of each query relative to the number of advertisements requested. Further, the policy module 118 may determine the frequency for each query. In one example, ten advertisements are requested by the web page server 112 for the web page 138. The analysis module 116 identifies one content query and one behavioral query, while the policy module may determine that seventy percent of the requested advertisements will be selected from the content query and thirty percent of the advertisements will be selected from the behavioral query. As such, the top seven server results from the content query and the top three results from the behavioral query are retrieved. In addition, the policy module 118 may determine the order in which each advertisement is provided.
For example, the policy module 118 may determine to provide a content-related advertisement then a behavioral-related advertisement, in alternating order until all of the behavioral advertisements are used. Alternatively, the policy module may systematically distribute the advertisement across the series of advertisements. For example, one behavioral, two content, one behavioral, two content until each of the advertisements are used. As such, the cluster of content related advertisements may be separated to provide better geographic distribution on the web page. To facilitate the example described above, the policy module 118 is in communication with the advertisement engine 122 to provide each query to the advertisement engine 122. The advisement engine 122 then searches the advertisement database 124 based on each of the queries and provides the results of each query back to the policy module 118. Therefore, in the example provided, first result set 150 is provided based on the first advertisement query 134 and a second result set 152 is provided based on the second advertisement query 136. As described above, the policy module 118 selects the frequency and order for each advertisement to be provided back to the web page server 112.
Now referring to
The system may, then, execute the multiple queries to retrieve advertisement candidates from each dimension, as denoted in block 218. In block 220, the multiple results sets may be blended to increase advertisement diversity. The results sets may be blended based on a pre-defined frequency model or series, such as seventy percent content and thirty percent behavioral. In addition, diversity may be increased by controlling the specific sequence of the blending, for example, using a “round robin format” by alternating result sets in order or using a randomization format. The slate of blended advertisements may be provided to the web server for display to the user, as denoted by block 222.
Now referring to
In block 318, the result set is provided to the policy module where the results may be blended, for example by mixing or ordering with other dimensions. The policy module may then provide the advertisement results to the web page server in accordance with the pre-defined policy module rules.
Any of the modules, servers, or engines described may be implemented in one or more general computer systems. One exemplary system is provided in
In an alternative embodiment, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.
Further the methods described herein may be embodied in a computer-readable medium. The term “computer-readable medium” includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
As a person skilled in the art will readily appreciate, the above description is meant as an illustration of the principles of this invention. This description is not intended to limit the scope or application of this invention in that the invention is susceptible to modification, variation and change, without departing from spirit of this invention, as defined in the following claims.