Online advertising is a form of promotion that uses the Internet and World Wide Web for the purpose of delivering marketing messages to attract customers. Online advertisements may be presented to customers in a variety of different formats, including, for example, keyword advertisements, online banners, interstitial advertisements, pre- and post-roll advertisements, and email advertisements. Online advertising may also be distributed to consumers through a variety of different channels, including search engine results pages (e.g., search result pages provided by Google or Microsoft), social networking sites (e.g., Facebook), online classifieds sites (e.g., Craigslist), and content sites (e.g., The New York Times, Yahoo!). The wide number of formats and multitude of channels that an advertiser may use has meant that advertisers have been forced to generate more and more display text for the advertisements in order to provide text that is suitable for the particular format and channel. The text that is generated for an advertisement is typically referred to as the “advertisement creative,” or simply “creative.”
All advertisers like to maximize the effectiveness of the money that they spend on advertising. Thus, advertisers try to produce creatives that result in the highest benefits (e.g., most profit) to the advertiser. An advertiser attempting to sell a product or service may spend significant resources for advertisement space and for paying marketing professionals to design a creative to use in an advertising campaign. Production of an advertisement creative can be a costly and labor-intensive process and, while some creatives can be highly effective at producing significant profit, others can result in little, or even lost, profit.
One of the challenges of producing a large number of new creatives is advertisers have historically relied upon a largely manual workflow to produce creatives. Relying on manual labor to create new creatives has a number of shortcomings. For example, one shortcoming is that the subjective experience and/or personal preference of the individual generating a creative can be reflected in the creatives. This can result in an over-reliance on an individual's personal patterns in generating new creatives and a lack of keyword and/or textual diversity in the new creative. Another shortcoming is that individuals may become tired and less efficient at producing creatives if forced to repetitively generate creatives. Still another shortcoming is that manual production limits the ability of the individual to see trends or strategies that lead to more effective creatives across a large dataset. Present methods to generate advertisements fall short of solving these challenges in a number of respects.
A system and method to automatically generate display text for advertisements (hereinafter referred to as the “advertisement creative” or “creative”) is disclosed herein. The generated creatives may be distributed in text, banner, email, or other advertising formats through online advertising distribution networks, including, but not limited to distribution networks like Google AdWords, DoubleClick, Bing Search Ads, and Yahoo! Search. By automatically generating creatives for advertisements, the system greatly reduces the amount of manual resources that are required to generate and launch advertising campaigns through one or more distribution networks. Moreover, the system improves the performance of creatives by basing the automatically-generated creatives at least in part on creatives that have been successful or frequently used in generating advertising traffic from consumers in the past.
In order to generate creatives, the system utilizes a record of the grammatical structure (or “grammar”) of creatives and combinations of two or more words (“N-grams”) to populate each grammar. To generate grammars of creatives, the system analyzes a large set of creatives that have previously been used in advertisements. The larger the set of historic creatives that are analyzed, the greater the variety of grammars that are typically generated. Historic creatives from an extended period (e.g., months or years) are therefore typically analyzed by the system. As will be described in additional detail herein, the historic creatives are analyzed to generate a record of the grammatical structure of the creatives. Moreover, historic creatives are analyzed to generate a set of N-grams from each of the creatives. The grammars and N-gram datasets that are generated from the analysis of historic creatives are stored by the system in one or more datasets for subsequent use in the generation of new creatives.
Once the grammar and N-gram datasets are populated with a sufficient number of grammars and N-grams, the system is able to generate new creatives for advertisements. The system receives a request for new advertisements from advertisers or other parties interested in placing advertisements. One or more grammars are selected by the system from the business category that is associated with the advertising request. The system then populates the selected grammars using N-grams that are obtained from the N-gram dataset in order to form new creatives. Although there may be some variance in the quality of the creatives generated using the disclosed automated method, the advertising text generated by the disclosed system and method significantly reduces the total time necessary to generate creatives for distribution over advertising networks.
Various embodiments of the invention will now be described. The following description provides specific details for a thorough understanding and an enabling description of these embodiments. One skilled in the art will understand, however, that the invention may be practiced without many of these details. Additionally, some well-known structures or functions may not be shown or described in detail, so as to avoid unnecessarily obscuring the relevant description of the various embodiments. The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the invention.
The grammar dataset 125 and N-gram dataset 130 are generated by analyzing historic advertising creatives that are contained in a historic ad dataset 135. The historic ad dataset 135 is large enough (i.e., contains a sufficient number of entries) to provide a representative sample of creatives used across a variety of different business categories. For example, the dataset may be compiled from a record of advertisements that were distributed by distributor networks (e.g., Google, Microsoft) over a period of several months or years. Each creative that is analyzed may include one or more pieces of associated metadata, such as a business or individual name associated with the creative (e.g., “State Farm Insurance,” “Costco”), a category of the goods or service being offered by the business or individual (e.g., insurance, furniture, electronics, car repair), a location of the business or individual (e.g., a city and state of the business), a period of time that the creative was distributed through an advertising network (e.g., January-February, 2009), and a geographic scope of distribution of the creative (e.g., Washington and Oregon). Moreover, the associated metadata may also include performance data reflecting the effectiveness of the creative (e.g., a measurement of the click-through rate, conversion rate, etc., of the creative). One skilled in the art will appreciate that a greater or lesser amount of metadata may be associated with the creative than the listed metadata. As will be described in additional detail herein, the historic creatives are analyzed to generate a record of the grammars of the creatives. The grammars are stored in a grammar dataset 125. Moreover, the historic creatives are analyzed to generate a set of N-grams from each of the creatives, and the N-grams are stored in the N-gram dataset 130. The system 105 may generate the grammar and N-gram dataset itself, or the system may access grammar and N-gram datasets that are generated and provided by other parties.
Once the grammar dataset 125 and N-gram dataset 130 are populated with a sufficient number of grammars and N-grams, the system 105 is able to generate new creatives. The creative generation system 105 receives one or more requests for new advertisements from advertisers 140 or other parties interested in placing advertisements. An advertisement request will typically include a business category for which the creatives are to be constructed. For example, the advertiser may want to advertise a car repair service, outdoor clothing that it manufactures, an upcoming sale that it is offering, or the advantages of a particular political cause that is espouses. If the request does not specify a particular business category, the system may estimate the business category based on the identity of the goods or services being advertised or may choose a default business category. The advertiser request will typically include other advertising campaign parameters, such as a budget, a time during which the campaign should run, and various rules that specify the conditions under which the advertisements with generated creatives are to be distributed. An operator of the system 105 specifies to the system the number of grammars that the creatives to be built across and a maximum number of creatives per grammar. Alternatively, the system may automatically determine a reasonable number of creatives and grammars depending on the desired number of advertisement that are to be distributed through the distribution network 110. The system 105 builds creatives for advertisements by selecting a grammar from the grammar dataset 125 and populating the grammar using appropriate N-grams from the N-gram dataset 130. The system continues until the desired number of creatives for the particular advertiser has been generated.
After generation, the creatives and the associated campaign parameters are provided by the system 105 to one or more of the online advertising distribution networks 110. Advertising distributors which directly or indirectly distribute advertisements include, but are not limited to, advertising distribution networks like Google AdWords, DoubleClick, Bing Search Ads, and Yahoo! Search. The distributed advertisements are typically syndicated through many websites that are operated on web servers 115. In some embodiments, the system 105 may also distribute advertisements directly to web servers 115 (i.e., the system may operate as the distribution network itself).
Consumers 120 access the websites containing the distributed advertisements using mobile or fixed, wired or wireless, computing devices such as personal computers, laptop computers, tablet computers, mobile phones, mobile gaming devices, or the like. At the websites, the consumers are exposed to one or more advertisements that contain the creative text. The consumer reaction to presented advertisements is often monitored by the advertising distributors. For example, the distributors may monitor the click-through rate of particular advertisements, or the conversion rate of consumers that select an advertisement. The performance data may be provided to the creative generation system 105 to improve the generation of future creatives by taking the performance of the current creatives into consideration when constructing additional grammars or N-grams.
The system 105 includes an extraction module 205, a creatives analysis module 210, an advertiser interface module 215, a creatives generation module 220, and a performance monitoring module 225 to implement the functionality disclosed herein. The various modules access, as necessary, the historic ad dataset 135, the grammar dataset 125, and the N-gram dataset 130. The operation of each module will be described in turn.
The extraction module 205 selects and prepares historic advertisement data that is stored in the historic ad dataset 135 for processing.
Returning to
Returning to
After identifying the number of phrases in a creative, at a block 420 the system analyzes each phrase in the creative and assigns an appropriate characterization of the phrase. The characterization describes the structure of the phrase, and is used when generating the grammar and subsequently building new creatives. To characterize each phrase, the system 105 assigns one or more codes to each phrase in accordance with the following Table 2:
The phrase types that are provided in Table 2 are merely representative, and a greater or lesser number of phrase types may be used depending on the complexity of the grammars that are being created. The system identifies which phrase type to assign to a phrase based on keywords, punctuation, or other structures that are contained in the phrase. For example, a phrase is characterized as a question if it ends in a question mark, and a phrase is characterized as a list item if it contains one or more commas indicative of a list. Once each phrase in a creative has been characterized, the resulting characterization is stored as the grammar for that creative. Using the example creatives from Table 1 and the codes in Table 2, the following grammars in Table 3 are therefore formed:
The grammar of each creative is the aggregate characterization of all phrases that are in the creative. The resulting grammars are stored by the system in the grammar dataset 125. In some embodiments, each grammar is stored with (i) a unique identifier that identifies the grammar; (ii) a count of the number of phrases in the grammar; and (iii) an indication of the product or service category that the grammar is associated with. Specialty grammars may therefore be constructed for each industry segment, with the grammars proving to be uniquely suited for selling products or services in that industry segment. The following Table 4 includes the fields of a representative record that is stored in the grammar dataset 125:
Where the creative flag identifies that the record is a creative, the ID is a unique identifier associated with the grammar, the category ID identifies the industry segment of the advertised goods or services, the phrase count indicates the number of phrases in the creative, and the grammar is the grammar determined by the system.
After constructing the grammar for each creative, the system analyzes each phrase in the creative to identify N-grams and construct an N-gram representation of each phrase. At a block 425, the system therefore selects one of the phrases of the creative. Using a sliding window of length two or more, the words of the creative are segmented into interlinked groups.
While the depicted examples use a bi-gram analysis of each phrase, it will be appreciated that any N-gram of length two or more may be used analyze the phrases in a creative. The system stores the N-gram representations of each phrase in the N-gram dataset 130. The following Table 6 includes the fields of a representative record that is stored in the N-gram dataset 130 to identify each phrase:
Where the phrase flag identifies that the record is a phrase, the ID is a unique identifier associated with the phrase, the creative ID identifies the creative with which the phrase is associated, the phrase index reflects the relative position of the phrase within the creative, the N-gram count is a count of the total number of N-grams in the phrase, and the grammar is an indication of the grammar of that phrase. The following Table 7 includes the fields of a representative record that is stored in the N-gram dataset 130 to identify each N-gram in the phrase:
Where the gram flag identifies that the record is an N-gram, the ID is a unique identifier associated with the N-gram, the creative ID identifies the creative with which the N-gram is associated, the phrase ID identifies the phrase with which the N-gram is associated, the phrase index indicates the relative position of the phrase within the creative, the gram location indicates the relative position of the N-gram within the phrase, the text is the text of the N-gram, the phrase type is the type of phrase that the N-gram is associated with, the lead term is the first term in the N-gram, the next N-gram is the immediately following N-gram in the phrase, the previous N-gram is the immediately preceding N-gram in the phrase, and the comma location is the location of the comma if the N-gram is part of a list.
Returning to
Once the grammar and N-gram datasets are populated with a sufficient number of grammars and N-grams, the system is able to generate new creatives for advertisements. Returning to
The creatives generation module 220 enables the system 105 to automatically generate creatives in response to advertising requests.
At a block 610, the system 105 identifies and selects one or more grammars from the grammar dataset 125 that are associated with the selected category. The system may consider a variety of factors when selecting which grammars to use. For example, the system may select the grammars that are the most prevalent within the selected category on the basis that grammars that have been historically popular may be the norm within that particular category. As another example, the system may select the grammars to use based on the historical performance of the grammars in the selected category. That is, the system may select those grammars in a category that have a history of high-click through or high conversion rates. The system may also take into account the geographic, temporal, or any other characteristics of the grammar when making the selection. In some circumstances, a particular category may have a small number of grammars or little diversity in grammars. When there are only a small number of grammars to select from, the system may supplement the grammars with standard grammars used by the system across all categories, or with grammars derived from other categories that are similar to the selected category.
At a block 615, the system builds creatives for each selected grammar using N-grams from the N-gram dataset 130.
After selecting the leading N-gram, the system 105 then enters into a loop during which one or more N-grams are added to the leading N-gram to complete the phrase. At a decision block 645, the system determines whether any N-grams exist that may be appended to the last N-gram based on the following rules:
At a block 655, the system 105 selects an N-gram to append to the phrase from the list of candidate N-grams. The system may select the N-gram randomly from the list of candidate N-grams, or may apply various methodologies to select the N-gram. For example, the system may select the most frequently used N-gram that is contained in the candidate list, where frequency is defined by the number of times that an N-gram appears in a category/grammar/phrase combination. The system may also select an N-gram based on the past performance of the creative from which the N-gram was derived. Other selection approaches will be apparent to one skilled in the art. Once selected, the N-gram is appended to the phrase being constructed.
Before continuing to select the next N-gram in the phrase, the system 105 performs a number of tests to ensure that the phrase is being accurately constructed. At a decision block 660, the system performs a test to see if the number of N-grams in the phrase has exceeded a maximum threshold. For example, the system may perform a check to ensure that there are not more than 20 N-grams in the phrase. If the number of N-grams in the phrase has exceeded the maximum threshold, processing continues to block 665 where the system terminates the construction of the phrase without appending a terminating N-gram. Phrases exceeding the maximum threshold without termination are typically discarded by the system since they are unlikely to generate usable phrases (i.e., the phrases are likely to include linguistic or syntactic errors). If the number of N-grams in the phrase is less than the maximum threshold, however, processing continues to a decision block 670.
At decision block 670, the system performs a test to see if the number of N-grams in the phrase has exceeded an expected number of N-grams that are likely to be found in the phrase. The likely number of N-grams is the adjusted average number of N-grams that were contained in the original creative phrases from which the model of the current phrase was derived. Alternatively, the likely number of N-grams may be the number of N-grams that were contained in the original creative phrase from which the model of the phrase was derived. If the number of N-grams in the phrase has exceeded the expected number of N-grams in the phrase, processing continues to a block 680 where the system selects the remaining N-grams in the phrase from which the last N-gram that was selected. By selecting the remaining N-grams in the phrase (i.e., by copying the end of a historic phrase onto the phrase being constructed), rather than selecting N-grams randomly, the system ensures an orderly completion of the phrase.
If the number of N-grams in the phrase has not exceeded the expected number of N-grams in the phrase, processing continues to a decision block 675 where the system performs a test to see if the diversity of a selected N-gram is too low. An N-gram's diversity is measured as the number of times it occurs in all phrases that are specified by a given category and grammar combination. The diversity reflects the popularity of the N-gram within the set of N-grams used in the selected category and grammar. If the N-gram's diversity falls below an expected threshold, processing continues to a block 680 where the system selects the remaining N-grams in the phrase from which the last N-gram that was selected. If the N-gram's diversity remains above the expected threshold, processing returns to block to decision block 645 where the system determines whether another N-gram is available to append to the phrase being constructed.
The process defined by blocks 645-680 is repeated by the system 105 until a terminating N-gram is appended to the phrase being constructed, or until one of the conditions is met which necessitates an early termination to the construction of the phrase. When the phrase construction is complete, processing continues to a decision block 685. At decision block 685, the system determines whether any phrases remain to be generated for the selected grammar. If any phrases remain to be generated, processing returns to block 635 where the next phrase in the grammar is selected and the phrase constructed with N-grams. If no phrases remain in the grammar, generation of the creative is complete.
Returning to
Returning to
By automatically generating creatives for advertisements, the system 105 greatly reduces the amount of manual resources that are required to generate and launch advertising campaigns through one or more distribution networks. Moreover, the system improves the performance of creatives by basing the automatically-generated creatives at least in part on creatives that have been successful or frequently used in generating advertising traffic from consumers in the past.
From the foregoing, it will be appreciated that specific embodiments of the invention have been described herein for purposes of illustration, but that various modifications may be made without deviating from the invention. For example, the tables depicted herein are designed to make them more comprehensible by a human reader. Those skilled in the art will appreciate that the actual data structure(s) used by the system to store information may differ from the tables shown, in that they, for example, may be organized in a different manner, may contain more or less information than shown, may be compressed and/or encrypted, and may be optimized in a variety of ways. Those skilled in the art will further appreciate that the depicted flow diagrams may be altered in a variety of ways. The order of the steps in the flow diagrams may be rearranged, steps may be performed in parallel, steps may be omitted, or other steps may be included. Accordingly, the invention is not limited except as by the appended claims.