Approving transcoded advertisements in advertisement front end

Advertising parameters and associated television advertisements are received from advertisers. The television advertisements can be designated as pending approval. An automated approval process and a television provider approval process can be utilized to approve or disapprove of the television advertisements pending approval. Approved television advertisements can be provided to the television provider, e.g., by a download process over a network.

BACKGROUND

This disclosure relates to media advertising.

An advertiser, such as a business entity, can purchase airtime during a television broadcast to air television advertisements. Example television advertisements include commercials that are aired during a program break, transparent overlays that are aired during a program, and text banners that are aired during a program.

The cost of the airtime purchased by the advertiser varies according to both the amount of time purchased and other parameters such as the audience size and audience composition expected to be watching during the purchased airtime or closely related to the purchased airtime. The audience size and audience composition, for example, can be measured by a ratings system. Data for television ratings can, for example, be collected by viewer surveys in which viewers provide a diary of viewing habits; or by sat meters that automatically collect viewing habit data and transmit the data over a wired or wireless connection, e.g., a phone line or cable line; or by digital video recorder service logs, for example. Such rating systems, however, may be inaccurate for niche programming, and typically provide only an estimate of the actual audience numbers and audience composition.

Based on the ratings estimate, airtime is offered to advertisers for a fee. Typically the advertiser must purchase the airtime well in advance of the airtime. Additionally, the advertiser and/or the television provider may not realize the true value of the airtime purchased if the ratings estimate is inaccurate, or if the commercial that is aired is not relevant in the context of the television program and/or audience.

SUMMARY

Described herein are systems and methods for television advertising. In one implementation, advertising parameters and television advertisements are received from advertisers. The advertisement parameters can be associated with the television advertisements, and the television advertisements can be designated as pending approval. A television provider can be provided access to the television advertisements pending approval, and can approve or disapprove of the television advertisements pending approval. Approved television advertisements can be provided to the television provider, e.g., by a download process over a network.

In another implementation, a system includes an advertisement front end engine, an advertisement data store, an approval engine, and an advertisement distribution engine. The advertisement front end engine can be configured to receive advertisement data and television advertisements, and to associate the advertisement data with the television advertisements. The advertisement data store can be configured to store the advertisement data and associated television advertisements. The approval engine can be configured to identify a television advertisement pending approval by a television provider, and to receive television provider approval data for the television advertisement and approve or disapprove the television advertisement based on the television provider approval data. The advertisement distribution engine can be configured to provide approved advertisements to the television provider.

Particular implementations of the subject matter described in this specification can be implemented to realize one or more of the following advantages. Relevant and effective advertisements for millions of television provider subscribers can be delivered locally and/or nationwide by an automated process. The relevant advertisements can more effectively monetize airtime, which can attract additional advertisers and create greater value for the television provider's television advertisement inventory. Additionally, by measuring access of programmer inventory through subscriber viewing devices, such as set top boxes, operators can more effectively monetize specialty channels that serve smaller audiences and for which audience data have been historically difficult to measure.

Additionally, the television advertising system can, for example, create efficiencies in the buying/selling process through an automated online marketplace. For example, in one implementation, the advertising process is automated from planning the campaign, uploading the advertisement and serving the advertisement. An auction model can create pricing efficiencies for both buyers and sellers of television advertising. Advertisers can benefit from efficiencies by paying only for delivered impressions, or delivered actions, or other types of measurable events. Advertisers can also benefit form receiving the information the advertisers need to continually enhance the effectiveness of the advertiser's advertisements. The system can be implemented organically or can be implemented with third-party infrastructure partners.

Additional details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter wilt become apparent from the description, the drawings, and the claims.

DETAILED DESCRIPTION

FIG. 1is a block diagram of an example television advertisement system100. The television advertising system100can, for example, deliver relevant content (e.g., advertisements, and hereinafter referred to generally as advertisements) advertisements to viewers to facilitate operator monetization of programming and quantification of advertisement delivery to target markets. The television advertising system100can, for example, be implemented on one or computer servers, and can provide and receive data over a network. Example networks include local area networks (LANs), wide area networks (WANs), telephonic networks, and wireless networks (e.g., 802.11x compliant networks, satellite networks, cellular networks, etc). Additionally, the television advertising system100can, for example, communicate over several different types of networks, e.g., the Internet, a satellite network, and a telephonic network.

In general, the television advertising system100can receive television advertisements and advertisement campaign data from an advertiser140, e.g. an entity that provides television advertisements, such as a commercial entity that sells products or services, an advertising agency, or a person. The television advertising system100can facilitate the provisioning of television advertisements to a television provider160, e.g., an entity that facilitates the delivery of a television broadcast to viewers, such as cable provider, a digital satellite provider, a streaming media provider, or some other media provider. The provider160can, for example, receive a provider agent162from the television advertisement system100. The provider agent162can, for example, be located at an advertising broadcast insertion location of the provider162, e.g., at a head end of the provider.

The provider agent162can, for example, receive advertisement availability schedules from the provider160and provide the advertisement availability schedules to the television advertising system100. For example, the provider agent162can read schedule requests, either in real time or ahead of time, and identify which schedule times the television advertising system100has permission to fill with advertisements provided by the television advertising system100. Alternatively, the provider agent162can determine if one or more advertisements already scheduled or should/can be preempted or receive information that a scheduled advertisement should be preempted in accordance with one or more criteria (e.g., to improve revenue generation for the provider, or if an advertiser's budget has been depleted after a related advertisement was scheduled, etc.). The provider agent162can request the television advertising system100to identify a relevant advertisement for an identified airtime advertisement spot, e.g., an open advertisement slot or a preempted advertisement slot.

The advertisement can be deemed relevant based on advertisement meta data and an advertisement context, e.g., an advertisement for extreme sporting equipment for an advertisement having an available advertising budget may be selected for airing during a televised spoiling event for which the meta data identifies as a primary demographic 18-30 year old males.

The television advertising system100can, for example, select candidate advertisements to air during an advertisement availability based on account advertiser bids, budgets, and any quality metrics that have been collected, e.g., conversions, viewer actions, impressions, etc. For example, advertisements can be selected to air during the advertisement availability according to a computer-implemented auction. One exampling auction is a Vickrey-style in which each advertiser pays the bid of the next highest advertisement. Other auction processes can also be used, e.g., setting an advertiser bid equal to the estimated number of viewer impressions multiplied by the price an advertiser has offered to pay for each impression, etc.

Different bidding types can be implemented in the computer-implemented auction. For example, the bidding types can be cost per airing, a cost per impression, a cost per full viewing of the advertisement, a cost per partial viewing of the advertisement, etc. Other types of costs per actions can also be use, such as a phone calls resulting from phone call solicitations; a cost per network airing (e.g., $5.00 per 1000 impressions on a first network, $6.00 per 1000 impressions on a second network), cost per action scaled by the time of day, etc. An auction process can, for example, support ads with different or even multiple (hybrid) bidding types.

The advertisements selected from the television advertising system100auction, the advertisement air time, and/or the advertisement can be provided to the provider160. For example, all available advertisements, or a subset thereof, can be provided to the provider160prior to airing, and the provider agent162need only receive an advertisement identifier indicating which advertisement is to air during particular advertisement air time.

The provider agent162can thereafter provide a status to the television advertisement system100regarding when the advertisement aired. The provider agent162can also, for example, provide anonymized impression data related to viewing devices164a-164n.For example, logs related to viewing device164activity, e.g., set top box logs, can be anonymized to remove personal information related to viewing activities and provided to the television advertising system100. In another implementation, such information can be provided by the provider160, or by a third party.

In one implementation, based on the impression data for the airing of the advertisement, the television advertising system100can charge an advertiser a fee for airing the advertisement. The fee can, for example, be substantially in proportion to the number of impressions determined for a particular airing of an advertisement.

In one implementation, the fee can, for example, be based on the bidding type. For example, the bid may be based on a cost per airing, and thus an advertiser would be charged a fee for the airing of the advertisement. Other fee determinations can also be used.

The impressions can, for example, be measured statistically. An impression can be a household impression, e.g., the airing of an advertisement in household and independent of the number of televisions in a household. If the advertisement is aired on a viewing device in the household, one household impression can be recorded. Other impression types can also be used. For example, impressions can be generated by a program rating percentage, e.g., a percentage of viewership in measurable households; or by a program share percentage, e.g., a percentage of viewership in active measured homes; or by some other statistical measurement.

By way of another example, impressions can be measured by an analysis of activity logs of the viewing devices164. For example, a household may have three viewing devices164, and at a given time two of the devices may be tuned to a first channel and the third device may be tuned to a second channel. If a first commercial airs on the first channel and a second commercial airs on the second channel, impressions can be generated for each viewing device.

An impression can be dependant on a channel tune status when an advertisement airs on a channel. For example, an impression can occur when a viewing device164is tuned to a broadcast stream in which an advertisement is inserted, and the viewing device164remains tuned to the broadcast stream for N consecutive seconds during the actual display time of the insertion. For example, an impression can be defined as a viewing device remaining tuned to a broadcast stream for five seconds after the advertisement begins to air. Alternatively, an impression can be defined as a viewing device tuned to a broadcast stream when an advertisement is airing and remaining tuned to the broadcast stream for five seconds after tuning to the broadcast stream. Other tune times can also be used.

Likewise, other impression types can also be used. For example, an impression can based on an advertisement exposure, e.g., a brief exposure of an advertisement, or a full viewing of the advertisement, of a threshold viewing in between, e.g., five seconds, or five seconds of the first fifteen seconds; or a percentage of the advertisement viewed, etc.

In an implementation, the television advertisement system100can also include one or more data stores to store television advertisements and associated data, e.g., meta data related to the television advertisements, performance data related to the television advertisements, accounting data related to the advertisers and television advertisements, etc. In one implementation, the television advertising system100includes an advertisement data store102, an advertisement parameter store104, a log data store106, a performance data store108, and an out of band data store110. Additional advertisement related data can also be stored, e.g., an accounting data store112can store accounting data.

The television advertisement data store102can, for example, include advertisements that can be broadcast or aired during an advertisement spot. Example television advertisements include video advertisements, banner advertisements, overlay advertisements, such as logos, URLs, dynamic pricing information for an advertisement, etc., and other advertisements that can be used to convey information visually and/or aurally during a television broadcast.

The television advertisement parameter data store104can, for example, include cost per action parameters, frequency values, competitive restrictions, advertising budget data, geographic data, targeting data, etc. The television advertisement parameters104can, for example, be specified by the advertiser140, and/or can be automatically updated based on the performance of advertisements during an advertisement campaign.

The log data store106can include data logs from viewing devices164, e.g., set top boxes, satellite receivers, etc. The log data can include reporting data that identifies channel tunes, e.g., a channel identifier to which the viewing device was tuned, and channel tune times, e.g., the times that the viewing device was tuned to a channel. Other data can also be included, e.g., key presses of remote devices associated with the viewing devices164, commands received by the viewing devices164, etc. For example, if the viewing device164is a digital video recorder, the log data can include a list of recorded programs, and for each recorded program a record that indicates whether the recorded program has been played back, and the actions taken during playback, such as fast forwarding or skipping commercials can be included.

The performance data store108can, for example, include quality data, e.g., a total number of impressions for each advertisement, or an impression rate for each advertisement, and/or other quality parameter and/or impression parameters. Example Impression rates include a percentage of total potential viewers, e.g., the number of identified impressions divided by the number of subscribers: a percentage of actual impressions of a total number of impressions, e.g., a percentage of reliable impressions divided by a total number of impressions. An example reliable impression is an impression that satisfies a rule set or condition that determines that the impression was likely viewed on a viewing device by one or more persons.

Other performance data can also be stored in the performance data store108, e.g., performance of a particular advertisement during particular programming, the probability that viewers will tune to another channel during an advertisement; the probability that viewers will fast-forward through the advertisement; etc. Such probabilities can be normalized to average behavior on a per-advertisement basis, or on a per-time slot basis, or on some other measurable basis.

Performance data can also include data related to how much of an advertisement a viewer watched when the advertisement aired. For example, statistics related to aggregate tune-in and tune-out times; number of viewers, etc. can be measured and evaluated to determine qualify data related to advertisements based on viewing percentages.

The out of band data store100can, for example, include data related to the relevance or popularity of particular advertisements, advertisement subject matter, and television programs. For example, web pages can be mined to determine whether particular television programs are expected to have increased viewership, e.g., a sudden increase in fan pages for a program can be correlated to an increase in an expected ratings value, and the resulting data can be stored in the out of band data store110. Other data can include data related to search queries, page views on an advertise site, etc.

Likewise, the out of band data store110can, for example, store date resulting from mining a video web site to identify television advertisements that are particularly popular, e.g., a video web site may record viewing statistics that indicate a particularly humorous advertisement is relatively popular among a certain demographic. Such data can be used to further refine the advertising selection process.

Additionally, web sites related to television programs can be mined to determine relevance of products or services related to the television program. For example, a particular program may reference a product in an episode, and the mining of fan sites related to the program may reveal that the product mention has generated a significant interest in the product and related products. Accordingly, advertisements related to the product and related products may be deemed more relevant for time slots during the program.

The accounting data store112can, for example, store accounting data related to advertisements and advertisers140. The accounting data store112can store such data as campaign budgets, monthly spend parameters, and account balances for advertisers.

Other data can also be stored, such as data that can be utilized to adjust viewing forecasts, adjust pricing models, adjust relevancy measures, etc. For example, performance data related to certain products or services advertised, e.g., anonymized historical campaign data, trend analysis of program viewership, e.g., viewing statistics of program series episodes in first run, repeat, and syndication, etc. can be stored for analysis. In one implementation, data related to advertisements that were aired during time slots not served by the advertisement system100can be stored to analyze other advertising market models, e.g., fixed priced advertising markets, reserved advertising markets, etc.

The television advertisement system100can include an advertisement front end engine120, an advertisement distribution engine122, a scheduler engine124, a candidate engine126, a reporting engine128, and an accounting engine130. The advertisement front end engine120, advertisement distribution engine122, scheduler engine124, candidate engine126, reporting engine128, and accounting engine130can, for example, be distributed among a plurality of computer devices, e.g. server computers communicating over a network, or can be implemented on a single computer, e.g., as multiple threads on a server computer. Other implementation architectures can also be used. The advertisement front end engine120, advertisement distribution engine122, scheduler engine124, candidate engine128, reporting engine128, and accounting engine130can, for example, be implemented in software, such as executable object code, interpreted script instructions, or in combinations of executable and interpreted instructions. Other software and/or hardware implementations can also be used.

The advertisement front end engine120can, for example, be configured to receive advertisement data and television advertisements from the advertiser140and associate the advertisement data with the television advertisements. In one implementation, the advertisement front end engine140can include a web-based interface through which the advertiser140can upload television advertisements and associated campaign data, e.g., advertising budgets, targeting data, such as demographics and air times, product and/or service description data, such as vertical classifications, price ranges, subject matter, etc.

In one implementation, the advertisement front end engine120can include an approval engine configured to identify a television advertisement pending approval by the television provider160. Utilizing the approval engine160, the publisher may optionally review an advertisement and either approve or disapprove of the advertisement. For example, a cable provider may disapprove of advertisements that are of particularly low quality, e.g., poor sound quality, incorrect advertisement data, etc.

The advertisement distribution engine122can, for example, be configured to provide approved advertisements to the television provider160. In one implementation, the advertisements are provided to the television provider160in advance of airing the advertisements. The provider agent162can periodically issue a request to the television advertising system100for any new advertisements to be downloaded. For any such advertisements, the provider agent162or the distribution engine122can Initiate the download, and upon successful completion the provider agent162can notify the television advertising system100of a successful download. The television advertising system100can, for example, label the download with a particular ID that can be later user during scheduling to identify the scheduled advertisement. Accordingly, the publisher160can receive an advertisement identifier associated with an advertisement availability, e.g., a time slot, and can retrieve the advertisement locally at the television provider160premises and insert the selected advertisement into the broadcast stream.

The television advertisement scheduler engine124can, for example, be configured to receive s television advertisement request defining a television advertisement availability from the television provider160, and issue a request for candidate television advertisement data, e.g., data related to advertisements that are candidates for being selected to fill the advertisement availability. The television advertisement request can include geographic data, provider identification, network data, program data, and other data. For example, a request can specify advertisements that can be shown in the geographic are of the USA/California/Bay Area/Mountain View, with a remoteRepositoryld of XX of a television provider, for a television provider YY, on a television network ZZ, to be scheduled within the time window of Monday 2:00 PM-3:00 PM, and at a preferred time of 2:16 PM.

The candidate engine126can, for example, be configured to identify candidate television advertisement data in response to the request for candidate television advertisement data. The identification can be based on data associated with the television advertisements, such as the data stored in the advertisement parameter data store104. The candidate engine126can implement various targeting and/or filtering rules. For example, a budget restriction can be imposed if an advertiser budget is nearly depleted, and the expected fee for airing the advertisement based on expected impressions would exceed the remaining advertising budget.

Other example rules include the advertisement being successfully downloaded to the television provider160; the advertisement targeting the location or a superset of the location where the advertisement will be showing; the advertiser140or advertisement must not be considered fraudulent or delinquent; the publisher160has approved the advertisement for showing; the advertisement is targeting this particular television network and/or time; the advertisement is targeting a television program which, through internal or third party data sources, corresponds to the given request; and the advertisement is targeting a demographic profile which, through internal or third party data sources, corresponds to the given request. Fewer or more filtering and targeting conditions can also be applied.

In response to receiving the candidate advertisement data, the television advertisement scheduler engine124can select one or more television advertisements to air during the television advertisement availability. The selection can be based on the television advertisement request and the candidate television advertisement data. For example, the television advertisement request can be utilized to determine a context, e.g., the context of the programming associated with the advertisement, such as sporting event, an entertainment genre, a news program, etc.; or the context of the television network, e.g., a network type; or the context of a television channel; or the context of the time of day; or a combination of any of such examples. The context can be utilized to determine a relevancy score, and the relevancy score can be utilized to scale an auction result so that bids related to advertisements that are more relevant to the identified context are scaled higher than bids related to less relevant advertisements.

In an implementation, the scheduler engine124and/or the candidate engine126can enforce advertisement restrictions. For example, the scheduler engine124and/or the candidate engine126can filter the advertisements to eliminate unwanted advertisements, e.g., frequency capping can be performed to limit the scheduling of certain advertisements based on an amount of time since the advertisement was last aired; competitive restrictions can be applied so that one advertisement cannot be placed near another advertisement of a competitor, etc.

The reporting engine128can, for example, receive television advertisement report data from the provider160and determine whether the selected television advertisement aired based on the television advertisement report data. For example, an advertisement may not air due to a programming irregularity, e.g., a sporting event going beyond a scheduled broadcast, an interruption to scheduled programming due to breaking news, etc. In an implementation, the reporting engine128can process reporting logs, e.g., set top box logs, from viewing devices164to determine advertisement impressions.

The accounting engine130can, for example, receive the impression data from the reporting engine128and generate accounting data for advertisers. In one implementation, the accounting data can detail fees owed to the television advertising system100. The fees can, for example, be based on a cost per action parameter associated with an advertisement. For example, if an advertiser has specified $10.00 as a maximum cost per thousand impressions for a television commercial, and the reporting data indicates that 420,000 reliable impressions were generated from airing the advertisement then the advertiser may be billed for $4,200.

In another implementation, the accounting data can detail fees owed to the television advertising system100and the publisher pursuant to a revenue sharing agreement. An example revenue sharing agreement can include a percentage split between the operator of the television advertisement system100and the television provider160. For example, the operator of the television advertising system may receive 20% of the fee, and the operator of the publisher160may receive the remaining 80% of the fee. Another example revenue sharing agreement can include a first fee up to a maximum cap going to the operator of the television advertisement system, and the remaining fee going to the operator of the television provider160. For example, the operator of the television advertising system may receive the first $500 of the fee, and the operator of the publisher160may receive the remainder of the fee. Other revenue sharing agreements can also be used.

The advertisement front end engine120, advertisement distribution engine122, scheduler engine124, candidate engine126, reporting engine128, and accounting engine130can be implemented separately or in combination. For example, in one implementation, the scheduler engine124and the candidate engine126can be integrated as a single auction engine132on a computing device. Other combinations and/or subcombinations can also be used.

The system100ofFIG. 1can also facilitate the serving of other types of advertisement availabilities. For example, in addition to serving advertisement availabilities related to advertisement spots, times slots, and pods, advertisement availabilities that are dynamic, e.g., availabilities that are decided in real time, can also be served. An example dynamic availability can include the canceling of a scheduled advertisement, either at the request of the advertiser or automatically, such as when the advertisers budget is depleted; or in the event of a programming delay, e.g., a programming delay for a live event, etc.

FIG. 2is a block diagram of an example television advertisement front end system200. The television advertisement front end system200can, for example, be implemented in the advertisement system100ofFIG. 1.

The advertisement front end system200can facilitate the provisioning of advertisement data and television advertisements from the advertiser140or an agent of the advertiser, and can facilitate associating the advertisement data with the television advertisements. In one implementation, the advertisement front end system200can include a web-based front end interface202and an advertisement upload server204through which the advertiser140can upload television advertisements and associated campaign data associated with the advertisements, e.g., advertising budgets, targeting data, such as demographics and air times, product and/or service description data, such as vertical classifications, price ranges, subject matter, etc.FIGS. 5-9provide example front end user interface environments.

In one implementation, the advertisement upload server204can receive digital representations of the advertisements, e.g., video files, audio files, and text data files, that define the advertisements, e.g. video advertisements, including commercials, banners, and logo overlays; audio advertisements, and text-based advertisements. In another implementation, the advertisements can be provided to the advertising front end system200in either digital or analog form, e.g., video tapes, DVDs, etc., for processing for storage into the advertisement data store102.

The advertisements stored in the advertisement data store102may require transcoding info one or more different presentation formats. For example, an advertisement may be provided in high definition and in a first aspect ratio; the advertisement may thus be transcoded to conform to another video standard, such as NTSC or PAL. The transcoded advertisements can be accessed by a video streamer212and provided to provider160for local storage. In one implementation, the provider agent162can poll the advertisement front end system200periodically, e.g., daily or weekly, to request any new advertisements that have been uploaded and processed by the advertisement front end system200. Alternatively, the provider agent162can request now advertisements after being unable to locate an advertisement locally, or if the provider160indicates that an advertisement cannot be located in a local data store.

In one implementation, newly added advertisements can be designated as pending approval, and an approval engine208can be configured to identify television advertisements pending approval by a television provider and store the pending advertisements, or links to the pending advertisements, in an approval bin210. The approval engine can receive television provider160approval data for each television advertisement pending approval and approve or disapprove the television advertisement based on the television provider approval data. Approved advertisements can thereafter be downloaded or otherwise accessed by the provider160; conversely, disapproved advertisements will not be provided to the provider160. Accordingly, only approved advertisements will air on broadcast signals generated by the provider160.

In one implementation, advertisements awaiting approval can be automatically approved after an expiration of a time period, e.g., 72 hours, in another implementation, advertisements awaiting approval can be automatically disapproved after an expiration of the time period.

In another implementation, the approval engine can receive front end system200approval data for each television advertisement pending approval and approve or disapprove the television advertisement based on the front end system200approval data. For example, an operator of the front end system200may enforce various polices for advertisements, e.g., quality requirements, subject matter, etc.

In one implementation, the approval engine208can include an automated approval engine209that is configured to store approval criteria for each presentation format and evaluate a television advertisement in a presentation format against the corresponding approval criteria. Based on the evaluation, the automated approval engine209can automatically approve or disapprove the advertisement. For example, approval criteria based on color balance, sound balance, etc. can be utilized to automatically approve a transcoded advertisement. The automatically approved advertisements or access to the automatically approved advertisements can thereafter be provided to the approval bin210.

After the advertisements are downloaded to the provider160, or after the provider is otherwise provided access to the advertisements so that the advertisements can be aired by the provider, the provider agent162can provide an acknowledgment signal to the advertisement front end system200. The acknowledgement signal can, for example, specify that the publisher has received an advertisement or otherwise has access to the advertisement for airing. The acknowledgement signal can identify the publisher and be stored in the advertisement parameter data store104so that each advertisement can be associated with a corresponding list of publishers160that can air the advertisement.

In one implementation, a network interface214can be utilized to provide access to the advertisements stored in the advertisement data store104. For example, the network interface214can include a search engine interface and can serve the advertisements over a network, such as the Internet, in response to search queries that are relevant to the advertisement. In an implementation, the advertiser140can specify whether an advertisement that can be aired by the publisher can likewise be served over a network through the network interface214.

FIG. 3is a block diagram of an example television advertisement distribution system300. The advertisement distribution system300can, for example, be implemented in the advertisement system100ofFIG. 1.

The advertisement distribution system300facilitates the storing of advertisements on a local data store, e.g., local store166, associated with the television advertiser160. The storage of the advertisement at a local store166can, for example, facilitate real-time or near real-time auctioning and scheduling of advertisements, e.g., auctioning and scheduling advertisements for available time slots or spots only hours or even minutes before the occurrence of the time slot.

In one implementation, the provider agent162can communicate with the advertisement distribution engine122to determine whether advertisements are available for storage on the local store166. In one implementation, the provider agent162can poll the advertisement distribution engine122periodically, e.g., daily, weekly, etc. In another implementation, the advertisement distribution engine122can send a notification to the provider agent162when an advertisement is available for download, e.g., in response to the provider160approving one or more advertisements.

If advertisements are available for download, the advertisement distribution engine122can direct the provider agent162and a video streamer, e.g., the video steamer212, to establish a communication session for downloading the advertisements from the advertisement store102to the local store166. Additional data can also be downloaded, e.g., an advertisement identifier, or other advertisement parameters, e.g., stored in the advertisement parameter store104. Upon a successful completion of the download, the provider agent162can send an acknowledgement signal to the advertisement distribution engine122. The acknowledgment signal can, for example, be utilized to associate an advertisement with a television provider location, and to indicate that the television advertisement is stored in a local store166at the locus of the provider160.

In one implementation, the advertisement distribution engine122can evaluate advertisement parameters stored in the advertisement parameter store104to determine to which providers160the advertisements should be distributed. For example, if the advertisement parameters specify that an advertisement is related to a California marketing campaign, the advertisement will only be distributed to providers160that service the California market.

In one implementation, the advertisement can be transcoded by the advertisement system100into a presentation format specified by the provider160. In another implementation, the provider160can receive the advertisement in a standard format, e.g., and MPEG format, and transcode the advertisement into a suitable presentation format.

In another implementation, the advertisements can be streamed from the television advertising system100to the provider162in near-real time or during air time. Accordingly, the advertisements need not be stored in a local data store166.

FIG. 4is a block diagram of an example television advertisement scheduling and reporting system400. The television advertisement scheduling and reporting system400can, for example, be implemented in the advertisement system100ofFIG. 1.

In one implementation, the provider agent162can receive advertisement requests or advertisement availabilities in the form of an availability schedule402. The availability schedule402can include a list of advertisement availabilities, e.g., time slots, corresponding contexts, e.g., television programs, the advertisement availability type, e.g., a single spot or a pod of several spots; and other data, such as geographic data, provider identification data, network data, etc.

The availability schedule402can, for example, be provided periodically, e.g., on a weekly basis for a coming week; or on a daily basis, or at near real-time or in real time. The provider agent162can, for example, communication with a provider interface170, such as an API for a data server managed by the provider160. In another implementation, the provider interface170can be implemented in the provider agent162.

The provider agent162can provide the availability schedule402to the scheduling engine124of the advertisement scheduling and reporting system400. The scheduling engine124can, for example, communicate with the candidate engine126to identify candidate television advertisement data associated with advertisements that are eligible to fill the advertisement spots that are specified in the availability schedule402. The candidate engine126can implement various targeting and/or filtering rules as described with respect toFIG. 1above.

The scheduling engine124can select one or more television advertisements to air during the television advertisement availability defined in the availability schedule402. The selection can be based on the availability schedule402, e.g., the time slots and associated context, and the candidate television advertisement data. The context can be utilized to determine a relevancy score, and the relevancy score can be utilized to scale an auction result so that bids related to advertisements that are more relevant to the identified context are scaled higher than bids related to less relevant advertisements.

The scheduling engine124can utilize a Vickrey-style auction based on a cost per action, e.g., a cost per 1000 impressions, or a cost per network ($5.00 on network M, $6.00 on network Y), etc. multiplied by a quality score, e.g., a historical impression rate associated with the advertisement, such as a number of viewers that are determined to have viewed the advertisement divided by the total number of viewers that received the advertisement. Other factors that can be used to determine the quality score can be derived from the performance data stored in performance data store108, e.g., the performance of a particular advertisement during particular programming, the probability that viewers will tune to another channel during an advertisement; the probability that viewers will fast-forward through the advertisement; etc.

For example, assume the candidate engine126identifies three advertisements suitable for a particular advertisement spot. The scheduling engine124may determine an auction rank of the advertisements by multiplying the maximum cost per action for the advertisements by the qualify score of the advertisements. To illustrate, suppose the quality score (QS) of advertisements A, B, and C are “2,” “3,” and “1.2,” respectively. The rank of advertisements A, B, and C can be determined as follows:
A:Rank=QS×maximum cost per action=2.0×$5.00=10.00
B:Rank=QS×maximum cost per action=3.0×$7.50=22.50
C:Rank=QS×maximum cost per action=1.2×$10.00=12.00
The advertisers can thus be ranked as follows:1. B2. C3. A

Accordingly, the advertisement B would be selected and displayed during the advertisement spot. In one implementation, the actual cost an owner of the advertisement B will pay per thousand impressions can be determined by the subsequent advertisement rank (C) divided by the score of the advertisement B, e.g., 12/3=$4.00. Other auction processes can also be used.

In another implementation, for a set of advertisement spots, e.g., a pod of several 30-second advertisement spots, each spot can be auctioned separately. In another implementation, an entire pod can be auctioned, and the highest ranked advertisements can be selected for showing during the pod. For example, if the auction illustrated above for advertisements A, B and C was conducted for a pod of two advertisement spots, commercials B and C would be selected.

In one implementation, an impression rate can be set to an initial default value, e.g., a rate equal to an aggregate impression rate for advertisements in a related demographic or targeting area, and can thereafter be modified based on historical performance.

In an implementation, the scheduler engine124and/or the candidate engine126can enforce advertisement restrictions. For example, the scheduler engine124and/or the candidate engine126can filter the advertisements to eliminate unwanted advertisements, e.g., competitive restrictions can be applied so that one advertisement cannot be placed near another advertisement of a competitor. For example, a television advertisement availability window for an advertisement spot can be generated. The advertisement availability window can be time based, e.g., five minutes, or can be advertisement based, e.g., three advertisement spots prior to the advertisement spots and three advertisement spot subsequent to the advertisement spot. Advertisements that have associated competitive restrictions that are exclusive of the competitive restrictions of the television advertisements that are selected to air during the television advertisement availability window can thus be precluded from selection for that availability window. For example, if company A and company B are direct competitors for the same product, and an advertisement slot is available for auction, an advertisement for company B may only eligible to auction if an advertisement for company A has not or will not air during the associated advertisement availability window e.g., within a predetermined number of advertisement slots or predetermined amount of time.

Frequency capping can be performed to limit the scheduling of certain advertisements based on an amount of time since the advertisement was last aired. For example, frequency values associated with the television advertisements can be recorded, e.g., the rate of showings of the advertisements per hour. If a current frequency value of an advertisement exceeds a repetition threshold, the advertisement may be precluded from being shown during an advertisement availability.

Likewise, geographic data can be used to filter local advertisements. For example, the availability schedule may define an advertisement availability in San Francisco, Calif. Accordingly, targeted local advertisements that are not targeted to San Francisco, e.g., a local car dealership in Los Angeles, Calif., may be precluded from being shown during an advertisement availability for the locality of San Francisco.

Once the advertisements are selected for an advertisement availability, data related to the selected advertisements and intended display times, e.g. advertisement identifiers and corresponding time slots that the corresponding advertisements are to be shown, can be provided to the provider160as an advertisement schedule404. The advertisement schedule404can be accessed by an inserter172and a modulator174that are utilized to insert advertisements stored in the local store166into a broadcast stream176.

A verification report406that includes data indicating whether the advertisement aired can be provided to the provider agent162. In one implementation, the verification report406includes data that indicates whether the advertisement aired, the air time of the advertisement, and the channel on which the advertisement aired. The provider agent162can, in turn, transmit the verification report406to the television advertisement scheduling and reporting system400for processing by the reporting engine128and storing in the accounting data112. Depending on contractual obligations, e.g., whether the advertisers are billed according to impressions or are charged a fiat fee, the accounting engine130may then charge any fees due to the corresponding advertiser account.

In another implementation, data related to actual viewings, e.g., impression data408, can be provided to the provider160. The impression data408can, in turn, be provided to the provider agent162as an impression data report410. The impression data report410can be provided to the reporting engine128for processing to determine an impression value related to the actual and/or estimate of the number of impressions. The impression value can be used by the accounting engine130to charge any fees due to the corresponding advertiser account.

In one implementation, the impression data408can be defined by viewing device164logs, e.g., set top box activity data. For example, user activity, including channel changes and timestamps, can be recorded and provided to the provider160periodically, e.g., daily or weekly, in the form of logs. The logs can, for example, be processed by the reporting engine128so that the timestamps are correlated to the times of advertisement insertions. In one implementation, each viewing device164that was tuned to a broadcast stream during a time at which an advertisement was inserted is counted as an impression. Additionally, other impression data can also be determined, such as tune-in and tune-away times for partial views of an advertisement. As the log data can effectively measure impressions for tuned televisions, multiple impressions can be generated per household.

In another implementation, a caching layer420can be utilized to cache data related to advertisement selection and processing of advertisement requests. The caching layer420can, for example, be utilized to optimize performance of the auctioning process.

In one implementation, the provider agent162can anonymize data related to particular viewing devices164and account information before the data are received by the television advertising scheduling and reporting system400. Each viewing device164can be represented as an anonymous entity, and account information can be associated with a location information that has no more granularity than a zip code.

In another implementation, the impression data408can be defined by statistical measurements, e.g., by local and/or regional sampling and extrapolation to a viewership estimate, and can be provided by a third party. For example, Nielsen ratings data can be used to determine a viewership estimate and corresponding impression estimate.

In another implementation, advertisements can be targeted to video-on-demand users, digital video recorder users, and the like. Accordingly, the advertisement scheduling data404can include real time or near real time requests.

FIGS. 5-9are example television advertisement front end environments. The front end environments ofFIGS. 5-9can, for example, be implemented as a web-based user interface for advertisers140to the advertising system100. Other front end environments, however, can also be used. The front end environments ofFIGS. 5-9can he utilized to provide advertisements to the television advertisement system100, and to provide television advertisement parameters and other data for association with the advertisements.

FIG. 5is a screen shot of an example targeting area environment500, as indicated by the highlighted “Targeting Areas” setup stage on the setup menu502. A campaign name can be entered in a campaign name field504. A campaign can, for example, be a set of advertisements that are subject to a particular advertising rule set, e.g., a set of advertisements that share a common target demographic, for example.

An Ad Group can be defined in an Ad Group name field. An Ad Group can, for example, be a subset of a campaign. For example, a nation wide advertisement campaign can be divided into regional Ad Groups, e.g., Boston, Los Angeles, Seattle, etc.

An Available Areas frame508can be browsed to select available areas to target the advertisement campaign, and a Selected Areas frame510can display selected areas for the campaign. As shown inFIG. 5, available areas are divided into state regions. Additional geographic areas can be loaded into the Available Areas frame508by selecting an additional area, e.g., a state, in the Additional Areas frame512.

A navigation button514can be selected to continue to the next advertisement front end environment, an advertisement creation and upload environment600.

FIG. 6is a screen shot of an example advertisement creation and upload environment600, as indicated by the highlighted “Create/Upload Ad” setup stage on the setup menu502. An advertisement type can be selected from an advertisement menu602. For example, the advertisement menu602can be utilized to create and/or upload a text advertisement, e.g., a ticker advertisement that can be shown on the bottom or the side of a television screen; an image advertisement, such as a logo overlay; and a video advertisement, such as a television commercial.

Advertisement specifications604required for uploading an advertisement to the television advertisement system100can be displayed beneath a selected advertisement type. For example, the advertisement specifications604for a video advertisement602are shown.

Navigation buttons608can be selected to return to the previous advertisement front end environment500, or to continue to the next advertisement front end environment, a targeting advertisement environment700.

FIG. 7is a screen shot of an example targeting advertisement environment700, as indicated by the highlighted “Target Ad” setup stage on the setup menu502. One or more broadcast networks or stations can be selected from list of broadcast stations702carried by a provider, e.g. provider160, for showing advertisements in a campaign.

Scheduling data can be displayed on, for example, a weekly basis, as indicated by the weekday list704. Each weekday can have associated eligibility times706, e.g., times during which the advertiser desires the advertisement to be aired. A status indicator708can indicate a current status of a particular weekday status, e.g., “Running all hours,” or “Running afternoon and early evening,” etc. An edit menu710can be utilized to edit associated eligibility times706for a particular weekday.

Navigation buttons712can be selected to return to the previous advertisement front end environment600, or to continue to the next advertisement front end environment, a pricing environment800.

FIG. 8is a screen shot of an example pricing environment800, as indicated by the highlighted “Set Pricing” setup stage on the setup menu502. Budget data, such as weekly spend data, can be input info a budget field802. In one implementation, the budget data can be utilized to ensure that an advertiser budget is not exceeded during a specified period.

A cost per action, e.g., a cost per thousand impressions, can be input in a cost per action field804. In one implementation, the cost per action can be a maximum cost per action that an advertiser is willing to pay for a particular action. Other costs per actions can also be used, e.g., a cost per slot, etc.

Navigation buttons806can be selected to return to the previous advertisement front end environment700, or to continue to the next advertisement front end environment, a review environment900.

FIG. 9is a screen shot of an example review environment900, as indicated by the highlighted “Review and Save” setup stage on the setup menu502. The review environment900summarizes the advertisements parameters entered by an advertiser during the process of creating an advertisement campaign. A parameter summary902can, for example, summarize advertisement parameters, such as the campaign name, target languages, national, regional and local locations of the target customers/viewers, and a weekly budget.

An Ad Group summary904can also be displayed, if applicable. As shown inFIG. 9, an Ad group summary904displays a still image of one or more advertisements In the Ad group, a list of target networks, and a cost per action for the advertisements in the Ad group.

Navigation buttons906can be selected to return to the previous advertisement front end environment800, create another Ad group, or save the campaign.

FIG. 10is a flow diagram of an example process1000of selecting television advertisements for advertisement, availability. The process1000can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement scheduling and reporting system400.

Stage1002identifies television advertisement availability. For example, the scheduler engine124can receive advertisement availability data from a television provider160and identify advertisement availabilities, such as advertisement spots.

Stage1004identifies a context associated with the television advertisement availability. For example, the scheduler engine124and/or the candidate engine126can identify a context, e.g., a program type associated with an advertisement availability, based on the advertisement availability data, or based on other data that can be searched according to parameters specified in the advertisement availability data, e.g. the advertisement availabilities can be cross-referenced with programming and channel guide information provided by third parties.

Stage1006receives television advertisement parameters associated with television advertisements. For example, the scheduler engine124and/or the candidate engine126can receive television advertisement parameters from the advertisement parameter data store104. The advertisement parameters can be selected based on one or more filtering rules, based on the identified context, or by some other process.

Stage1008selects one or more television advertisements to air during the television advertisement availability based on the television advertisement availability, the context, and the advertisement parameters. For example, the scheduler engine124can perform an auction to select the highest ranked advertisements.

FIG. 11is a flow diagram of an example process1100for restricting television advertisements. The process1100can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement scheduling and reporting system400.

Stage1102identifies a television advertisement availability window for the television advertisement availability. For example, the scheduler engine124and/or the candidate engine126can identify a television advertisement availability window that is advertisement based, e.g., defined by adjacent advertisement spots, or time based, e.g., defined by a time window.

Stage1104identifies competitive restrictions associated with television advertisements that are selected to air during the television advertisement availability window. For example, the scheduler engine124and/or the candidate engine126can identify competitive restrictions stored in the advertisement parameter data store104advertisements currently selected to air during the television advertisement availability window.

Stage1106precludes selection of television advertisements having associated competitive restrictions that are exclusive of the competitive restrictions of the television advertisements that are selected to air during the television advertisement availability window. For example, the scheduler engine124and/or the candidate engine126may preclude selection of advertisements for company B if an advertisement for company A, a direct competitor, has aired or will air during the advertisement availability window.

FIG. 12is a flow diagram of an example process1200for auctioning advertisement spots for television advertisements. The process1200can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement scheduling and reporting system400.

Stage1202identifies advertisement time slots. For example, the scheduler engine124can receive advertisement availability data from a television provider160and identify advertisement time slots.

Stage1204identifies a television advertisement cost per action parameter for each television advertisement. For example, the scheduling engine124and/or the candidate engine126can access the advertisement parameters104and identify advertisement cost per action parameters.

Stage1206auctions the advertisement time slots based on the cost per action parameters. For example, the scheduler engine124can perform an auction based on the cost per action parameters.

Stage1208selects one or more television advertisements to air during the advertisement time slots based on the auction. For example, the scheduler engine124can select one or more advertisement based on the resulting auction rank of the advertisements.

FIG. 13is a flow diagram of an example process for auctioning1300advertisement spots based on a cost parameter and a quality parameter. The process1300can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement scheduling and reporting system400.

Stage1302identifies contexts associated with the advertisement time slots. For example, the scheduler engine124and/or the candidate engine126can identify a context based on a program type associated with an advertisement availability; or based on the advertisement time slot; or based on the broadcast network; or based on close-captioned text; or based on other data that can be searched according to the advertisement time slot, e.g. the advertisement availabilities can be cross-referenced with programming and channel guide information.

Stage1304determines a relevance measure for each advertisement based on the identified contexts and the targeting parameters. For example, the scheduler engine124and/or the candidate engine126can access the targeting parameters of an advertisement and determine whether the corresponding advertisement is relevant to the context.

Stage1306auctions the advertisement time slots based on a function of the cost per action parameter and the relevance measure for each advertisement. For example, the scheduler engine124can auction the advertisements based on a function of the cost per action parameter and the relevance measure so that advertisements that are more relevant to a context can be positively adjusted in an auction ranking.

In another implementation, advertisements can be auction solely on a cost per action parameter and a performance measure. For example, advertisers may desire to air commercials for a particular program with regard to context, such as an extremely popular sporting event for which ratings are projected to be very high across all demographics. Accordingly, the context can be ignored in some auction processes.

FIG. 14is a flow diagram of an example process1400for receiving and distributing advertisements from advertisers. The process1400can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement front end system200ofFIG. 2and the television advertisement distribution system300ofFIG. 3.

Stage1402receives advertisement parameters from advertisers. For example, the advertisement front end engine120or advertisement front end interface202can receive advertisement parameters from an advertiser.

Stage1404receives television advertisements from the advertisers. For example, the advertisement front end engine120or advertisement front end interface202can receive television advertisements from the advertisers.

Stage1406associates the advertisement parameters with the television advertisements. For example, the advertisement front end engine120or advertisement front end interface202can store the advertisements and advertisement parameters in the advertisement data store102and the advertisement parameter data store104as associated data.

Stage1408identifies the television advertisements as pending approval. For example, the approval engine208can identify any newly-stored advertisement in the advertisement data store102as pending approval.

Stage1410provides a television provider or a representative of the television provider access to the television advertisements pending approval. For example, the approval engine208can provide a television provider access to the television advertisements pending approval so that the provider can review the advertisements. The television advertisements or access to the television advertisements can, for example, be stored in the approval bin210.

Stage1412receives from the television provider approvals or disapprovals for the television advertisements pending approval. For example, the approval engine208can receive from the television provider approval data or disapproval data related to the advertisements pending approval.

Stage1414provides the approved television advertisements to the television provider. For example, the advertisement distribution engine122and the video streamer212can provide the approved television advertisements to the provider160.

FIG. 15is a flow diagram of an example process1500for providing auction results to a television provider. The process1500can, for example, be implemented in the advertisement system100ofFIG. 1and/or the television advertisement scheduling and reporting system400.

Stage1502identifies advertisement time slots of the television provider. For example, the scheduler engine124can receive advertisement availability data from a television provider160and identify advertisement time slots.

Stage1504auctions the advertisement time slots based on the television parameters. For example, the scheduler engine124can auction the advertisement time slots according to the advertisement parameters stored in the parameter data store104and other data, such as performance data stored in the performance data store108.

Stage1506selects one or more television advertisements to air during the advertisement time slots based on the auction. For example, the scheduler engine124can select the highest ranked advertisements of an auction for airing during the advertisement time slots.

Stage1508provides identification of the selected television advertisements to air during the advertisement time slots to the television provider. For example, the scheduler engine124can provide advertisement identifiers of the advertisements selected in stage1506to the provider160.

The apparatus, methods, flow diagrams, and structure block diagrams described in this patent document may be implemented in computer processing systems including program code comprising program instructions that are executable by the computer processing system. Other implementations may also be used. Additionally, the flow diagrams and structure block diagrams described in this patent document, which describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed structural means, may also be utilized to implement corresponding software structures and algorithms, and equivalents thereof.

Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.