This description relates to managing advertising inventory.
Dynamic content may be delivered and presented to users across packet-based networks, such as the Internet. Dynamic content generally refers to content that continuously or nearly continuously changes over time (that is, content with a temporal dimension), such as audio and/or visual content. When sent over a packet-based network, such dynamic content may be, for example, downloaded content that is fully transmitted to a client system before the client system presents the content. Alternatively, such dynamic content may be, for example, streaming content such as streaming audio and/or video. Streaming content generally refers to content that is sent as a continuous stream and presented as it is received at a client system. Thus, a user of a client system that is receiving streaming content does not wait until the content is fully downloaded before the dynamic content is presented, as is generally the case for downloaded content. Rather, the client system receiving streaming content usually downloads and buffers a portion of the dynamic content. The client system then presents the buffered portion another portion of the dynamic content is downloading.
Streaming content may be sent from a pre-encoded (or otherwise pre-prepared) file (referred to as “on-demand” streaming) or may be distributed as part of a live broadcast feed (referred to as “live” streaming). For live streaming, a live broadcast feed is typically encoded into a compressed digital signal as the broadcast feed is received, for example, by an encoder and the encoded signal is transmitted from a server that is able to do multicast; that is, able to send the same signal to multiple client systems at the same time. A live broadcast feed may depict live activity (that is, activity occurring as the feed is broadcasted) or may depict previously recorded activity.
Different segments or pieces of dynamic content may be coupled together to form a collection of dynamic content. In addition, different types of dynamic content may be coupled together to form a collection of different types of dynamic content. The different types of dynamic content may include, for example, programming content and advertising content. Programming content is generally the editorial content that a user desires to have presented. Advertising content is generally any other content besides the editorial content and is typically content that promotes particular services or goods. Advertising content may be, for example, previews for programming content being offered in the future (referred to as “previews”), an indication of the source of programming content (referred to as “branding”), or promotions to buy or otherwise acquire specific products or services (referred to as “advertisements”).
In a disclosed implementation, an inventory management system may be used to estimate future advertising inventory for dynamic advertising content, such as audio or video advertising. Such estimates may assist the entity in selling the right amount of inventory. To do so, for example, the inventory management system may have access to the amount of dynamic programming content previously consumed by an audience during one or more past time periods. This information may then be used by an inventory management system to forecast or estimate the future available advertising inventory.
According to one general aspect, data is accessed that indicates a cumulative amount of time that dynamic programming content was presented to members of an audience during a past time period. The dynamic programming content is and has been associated with one or more locations in one or more computer-based content sites. Based on the accessed data, a cumulative amount of time that the dynamic programming will be presented to members of a future audience during a future time period is estimated. Based on this estimate, the advertising inventory for the one or more locations is estimated for the future time period, for example, by using a forecasting algorithm.
Implementations may include one or more of the following features. For example, the advertising inventory may be estimated based on the estimated cumulative amount of time that dynamic content will be presented in the future and one or more accessed spot loads for the future time period.
Locations in the one or more content sites may be associated with one or more categories. The category with which a location is associated may be based on the dynamic programming content associated with the location. Advertising inventory may be estimated for the one or more categories based on the estimated advertising inventory for the multiple locations associated with the one or more categories. For example, two locations may be associated with one of the categories, and the advertising inventory for the category may be based on the advertising inventory estimated for the two locations.
A hierarchy of categories may be maintained. Categories of lower level nodes of the hierarchy may sub-divide the categories of one or more higher level nodes. The locations may be associated with one or more nodes of the hierarchy. The node with which a location is associated may be based on the dynamic programming content associated with the location. Advertising inventory for a node of the hierarchy may be estimated based on the advertising inventory estimated for locations associated with nodes below the node.
The cumulative amount of time that dynamic programming content was presented to members of an audience during a past time period may be measured or estimated in a number of ways. For example, the amount of time that the dynamic programming content is presented to each individual member of the audience during the past time period may be tracked. The cumulative amount of time may be computed based on these tracked amounts of time. Tracking the amount of time for each member may include receiving one or more status messages and the cumulative amount of time may be determined based on the status messages.
Alternatively, or additionally, for example, status messages may be received during the past time period, for example, from the server that provides the dynamic content. Each status message may indicate a number of members of the audience to which the dynamic programming content is being presented. The cumulative amount of time may be computed based on these status messages by calculating an average number of members of the audience to which the dynamic content that was presented during the past time period.
As another example, the amount of advertising content was presented to the audience during the past time period may be tracked and the cumulative amount of time may be computed based on the amount of advertising content presented and the spot load during the past time period.
The future audience may include all users that access the dynamic programming content during the future time period. Alternatively, the future audience may include users to whom the dynamic content is presented by a media client application that sends status messages regarding the presentation of the dynamic content.
According to another general aspect, a management hierarchy is maintained. The management hierarchy includes nodes that correspond to themes and at least some of the nodes are surface locations. Each surface location has associated dynamic programming content that is related to the corresponding theme of the surface location. The associated dynamic programming content is available for selection by a member of an audience such that the selected dynamic programming content is presented to the member by a media client application. Status messages are received from the media client application of each member and indicate an amount of time dynamic programming content is presented to the member during a time period. The status messages also indicate the surface location associated with the dynamic programming content presented to the member. For each surface location, the received status messages are used to compute a total amount of time that dynamic programming content associated with the surface location was presented to the audience during the time period. Based on the computed total amount of time, a total amount of time that dynamic programming content associated with the surface location is presented during a future time period may be estimated. Based on this estimate, the advertising inventory for the surface location during the future time period is estimated. In some implementations, the available inventory for a node in the management hierarchy that is above the surface location may be estimated based on the estimated available inventory for the surface location.
Implementations of the described techniques may include hardware, a method or process, and computer software on a computer-accessible medium.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
According to various implementations, an entity may make dynamic programming content available to members of an audience on one or more site locations in one or more content sites. The audience may be the set of users that access the content or some subset of those users. For example, the audience may be all users that access the content, may be the users in a particular geography that access the content, may be the users that access the content during a particular time, may be the users that access the content using particular technology that allows the user's consumption of content to be tracked, or may be the users that meet any combination of such factors.
Consumption of the dynamic programming content by members of the audience creates opportunities to present advertising content to the members of the audience. Advertising inventory refers to some quantity of such opportunities to present advertising content to the members over a time period. In several implementations, the amount of advertising inventory available during a time period may be calculated as the product of two items: (1) the spot load during the time period (that is, the ratio of advertising content presented to a member of an audience during the time period to dynamic content presented to the member during the time period) and (2) the cumulative amount of time that members of the audience spend viewing or listening to dynamic content during the time period. For example, if the spot load during a time period is three pieces of advertising content per hour of dynamic content presented and the cumulative amount of time members of the audience spend viewing or listening to dynamic content during that time period is 1000 hours, then the available advertising inventory for the time period is 3000 pieces of advertising content.
Accordingly, as members of an audience consume programming content available at one or more locations in one or more content sites, advertising inventory is created at those locations. Generally, the entity may “sell” future advertising inventory by accepting orders for new advertising campaigns (an order for a new advertising campaign may be referred to as an “insertion order”). An insertion order may describe the parameters of the advertising campaign, such as, for example, a particular piece of advertising content (for example, a particular advertisement) to be presented (sometimes referred to as the “creative”), may describe a certain target group to which the creative should be presented, and may quantify in one way or another a certain number of times the creative should be presented within a certain time period. To meet such requirements, the entity may associate the advertising campaign with one or more of the locations in an attempt to present the particular piece of advertising content the requested number of times to the target group.
However, because the entity is selling future advertising inventory, and future advertising inventory depends on how much dynamic content will be consumed by members of the audience in the future, the actual amount of future available advertising inventory is not generally known when the entity accepts the new advertising campaign. Thus, it may be difficult to sell the right amount of advertising inventory. For instance, the entity may sell more advertising inventory than what is available in the future, in which case the amount of advertising content presented is less than the amount the advertiser desired to have presented. Alternatively, the entity may sell less inventory than what is available in the future, in which case the entity is losing advertising revenue.
To assist the entity in selling the right amount of inventory, the amount of dynamic content consumed by the audience at one or more of the locations may be determined. This information may then be used by an inventory management system to forecast or estimate the future available advertising inventory. When the entity receives an insertion order, the entity may use the forecasted advertising inventory to help determine the locations to which the campaign should be allocated and when the advertising campaign should be scheduled so that the requirements of the advertising campaign can be met. The portion of the advertising inventory consumed by an advertising campaign at the locations may be calculated and subtracted from the available inventory at the locations to represent the estimated available inventory left at the locations. Such information may be used by the entity to help determine whether more advertising inventory is available for sale or to determine whether the requirements of a new insertion order can be met.
In some implementations, the entity may associate one or more of the locations with one or more categories and may forecast the future available advertising inventory for the categories. For example, the entity may manage programming content in a hierarchical fashion. Each node of the hierarchy may represent a particular theme or topic, and programming content related by that theme or topic may be associated with the node. Then, the programming content associated with a node may be made available on one or more locations in one or more content sites. As members of an audience consume programming content associated with the node from the one or more locations, the amount of dynamic content consumed by the audience may be determined. This then may be used to estimate or forecast the future available inventory at the node.
In this case, the entity may allocate advertising campaigns against one or more nodes. When an advertising campaign is associated with a node, the creative associated with the campaign is then available to be presented when programming content associated with the node is presented. The entity may use the forecasted advertising inventory at the nodes to help determine one or more nodes to which an advertising campaign should be allocated and when the advertising campaign should be scheduled so that the requirements of the advertising campaign can be met. For instance, the entity may select nodes with themes or topics that are expected to be attractive to the target group, and then use the estimated value of the available inventory to determine whether the piece of advertising content can be presented the requested number of times at those nodes. The portion of the advertising inventory consumed by an advertising campaign at the nodes then may be calculated and subtracted from the available inventory at the nodes to represent the estimated available inventory left at the nodes.
Referring to
Each of the components of system 100 (for example, client systems 102, media page server 106, media state server 112, scheduler 114, audience measurement server 116, audience measurement database 118, inventory manager 120, programming content source 108 and advertising content source 110) may be implemented using, for example, a general-purpose computer capable of responding to and executing instructions in a defined manner, a personal computer, a special-purpose computer, a workstation, a server, a device, a component, or other equipment or some combination thereof capable of responding to and executing instructions. These components may receive instructions from, for example, a software application, a program, a piece of code, a device, a computer, a computer system, or a combination thereof, which independently or collectively direct operations, as described herein. The instructions may be embodied permanently or temporarily in any type of machine, component, equipment, storage medium, or propagated signal.
Packet switched network 104 may include the Internet, Wide Area Networks (WANs), Local Area Networks (LANs), analog or digital wired and wireless telephone networks (for example, a Public Switched Telephone Network (PSTN), an Integrated Services Digital Network (ISDN), or a Digital Subscriber Line (xDSL)), or any other wired or wireless network including, for example, a corporate LAN. Network 104 may include multiple networks or subnetworks, each of which may include, for example, a wired or wireless data pathway.
In addition, while illustrated as separate components, combinations of client systems 102, media page server 106, media state server 112, scheduler 114, audience measurement server 116, audience measurement database 118, inventory manager 120, programming content source 108 and/or advertising content source 110 may be implemented on a single computing device or cluster of computing devices.
In general, client systems 102 communicate with media page server 106 to obtain a media page, from which a user can select programming content for presentation by client systems 102. The client systems 102 receive the selected programming content from programming content source 108 and present it to the user. Client systems 102 also may present advertising content from advertising content source 110.
Client systems 102 may communicate with media state server 112 to determine specific advertising content to present from advertising content source 110. As described more fully in application Ser. No. 11/023,638, filed Dec. 29, 2004 and entitled “Advertising Content Delivery,” incorporated herein by reference, media state server 112 may access a template to determine parameters of the advertising content to be presented on client systems 102. Such parameters may include, for example, how many pieces of advertising content should be presented and the types of advertising content (for example, previews, advertisements, or teasers).
Media state server 112 then communicates these parameters to scheduler 114. Based on these parameters and the requirements of various advertising campaigns, scheduler 114 then selects one or more specific pieces of advertising content. Scheduler 114 then identifies the specific piece(s) of advertising content to media state server 112. Media state server 112 then causes client system 102 to present the specific piece(s) of advertising content.
As client systems 102 present dynamic content, they may send status messages to audience measurement server 116. The status messages may indicate information such as the node in a hierarchy from which programming content was selected and the amount of time dynamic content was presented as a result of the selection. Based on such information, audience measurement server 116 may calculate the cumulative amount of time content from a node was presented to client systems 102 during a time period. Audience measurement server 116 then may store this information in audience measurement database 118.
Alternatively, or additionally, programming content source 108, advertising content source 110, or both, may send status messages to audience measurement server 116. The status messages may indicate information such as the node in a hierarchy from which programming content was selected and the number of users receiving content at that point in time. Based on such information, audience measurement server 116 may calculate the cumulative amount of time content from a node was presented to client systems 102 during a time period. Audience measurement server 116 then may store this information in audience measurement database 118.
The information in audience measurement database 118 may be accessed by inventory manager 120 and used to forecast future available advertising inventory. Inventory manager 120 also may communicate with scheduler 114 to update the estimated future inventory based on accepted insertion orders (for example, by subtracting the advertising inventory consumed by accepted insertion orders from the estimated inventory).
An implementation of the interactions of client systems 102, media page server 106, media state server 112, audience measurement server 116, scheduler 114, and content sources 108 and 110 are more fully described in
Client system 102 may execute a hypertext transfer protocol (HTTP) based web browser that presents media pages, such as hypertext markup language (HTML) or other markup language web pages. A media client application may be embedded in one or more of the web pages presented by the web browser. The media client application presents dynamic content, such as audio content or video content, to a user through, for example, visual, auditory, or tactile presentation devices. The media client application also may implement the HTTP protocol to request the dynamic content.
Alternatively, the media client application may be a stand-alone application that presents both static content, such as the static portion of web pages, and the dynamic content such as audio or video content. Stand-alone media client applications also may implement HTTP to request the static content and/or the dynamic content. Examples of a media client application include Windows Media Player from Microsoft Corp. of Redmond, Wash. and RealPlayer from RealNetworks of Seattle, Wash., both of which can be stand-alone or embedded into a web page.
Programming content source 108 may execute HTTP server software to respond to requests for programming media from an HTTP-based media client application. In response to such requests, programming media source 108 provides the requested programming media to the media client application for presentation. Similarly, advertising content source 110 may execute HTTP server software to respond to requests for advertising media.
Likewise, server computer 106 may execute HTTP server software to respond to data requests from an HTTP-based web browser and/or an HTTP-based media client application executing at client system 102. In response to a data request from the web browser or media client application, server computer 106 provides a media page, for example a web page, for presentation by the web browser or media client application.
The web page may present one or more selections of programming content for presentation by the media client application and includes information (for example, a uniform resource locator (a URL)) that allows the media client application to form a request for the programming content. The programming content may be in the form of live or on-demand media streams, or in the form of downloaded content.
Referring to
More specifically, at the top of management hierarchy 200 is a home node 210 that represents the collection of all programming content managed under this hierarchy. Underneath home node 210 are nodes directed to different topics or themes. For example, under home node 210 is a node 212 directed to movies, a node 214 directed to music, and a node 216 directed to current events. Each of these nodes has nodes underneath them directed to sub-topics or sub-themes of the topic or the theme associated with the higher level node. For instance, the movies node 212 has a lower level node 212a directed to action movies, a lower level node 212b directed to comedies, and a lower level node 212c directed to science fiction movies. The music node 214 includes a lower level node 214a directed to alternative music, a lower level node 214b directed to rock music, and a lower level node 214c directed to R&B music. Likewise, the current events node 216 includes a lower level node 216a directed to world news, a lower level node 216b directed to national news, and a lower level node 216c directed to top news stories.
The entity may associate one or more pieces of programming content with a node in the management hierarchy, where the pieces of programming content are related by the topic or theme of that node. For example, music videos by alternative rock bands may be associated with “alternative rock” node 214a. In general, the programming content that is associated with a node may or may not be related by any parameter other than the theme of the node.
Programming content that is associated with a lower level node may then be associated with the nodes above the lower level node. For instance, programming content related to action movies may be associated with action node 212a, programming content related to comedy movies may be associated with comedy node 212b, and programming content related to science fiction movies may be associated with 212c. The aggregate of the programming content associated with nodes 212a, 212b, and 212c may then be associated with movies node 212. Similarly, the aggregate of the content associated with nodes 212, 214, and 216 is associated with home node 210.
In addition, some programming content that is associated with one node may be associated with another one of the nodes. For example, programming content associated with the “alternative rock” node 214a may be associated also with the “top news stories” node 216c. For instance, if an alternative rock band has a new music video, that music video may be associated with the “alternative rock” node 214a and may also (at least while the music video is still considered new) be associated with the “top news stories” node 216c.
Other hierarchical organizations are possible. For example, a news station may have a hierarchy that breaks down into news related topics, such as headline news, local news, world news, sports, talk shows, etc. Furthermore, a hierarchy may be maintained for a number of media outlets and may have a hierarchical organization that breaks down into the various media outlets, and then further breaks down into various topics offered by those media outlets. In addition, a provider of online content may have its own “channels” of specialized content, and these channels may be included in the hierarchy. For instance, the online service from America Online, Inc. of Dulles, Va. offers a “channel” to subscribers referred to as “AOL Sessions,” which provides unique performances by various artists.
One or more of the nodes of management hierarchy 200 may be surface locations (also referred to as a site location). A surface location is a node on management hierarchy 200 that has some or all of its associated programming content made available to a user as a collection of programming content that is associated with the topic or theme of the surface location. Thus, programming content associated with a surface location is “surfaced” to the user as programming content that relates to the theme of the surface location. For example, if the “alternative rock” node is a surface location, then some or all of the programming content associated with the “alternative rock” node 214a is made available to a user as a collection of programming content related to alternative rock.
The programming content associated with a surface location may be made available to members of an audience at one or more locations on one or more content sites. In general, the presentation of the programming content from these locations creates some advertising inventory for those locations. The entity may manage this advertising inventory according to the management hierarchy by allocating an advertising campaign among various nodes of the management hierarchy. Allocating a campaign to a node may associate the campaign with any surface locations at or below that node. As a result, the creative of the campaign may be presented during the opportunities that occur when programming content associated with surface locations at or below the node is selected for presentation from the one or more locations in the one or more content sites. In general, the entity may allocate a campaign to management nodes in an attempt o reach the target group because the target group is believed to be interested in the theme or topic of the nodes.
In addition, collections of nodes or surface locations may be managed by the entity under a single brand (for example, a product, service, or concept that is publicly distinguished from others by a symbol, brand name, or trademark). The entity may manage the brand with distinct business rules separate from other brands, but particular programming content may be associated with multiple brands. For example, there may be a surface location that has a theme corresponding to audio recordings of live musical performances (that is, the site location makes available audio recordings of live musical performances) and another site location may have a theme corresponding to video recordings (with or without accompanying audio) of live musical performances. These site locations may be on separate branches of the management hierarchy, but from a business perspective are managed under a single brand corresponding to live musical performances.
A number of different interfaces may be used to make some or all of the programming content associated with a surface location available as a collection of content related to the theme or topic of the surface location. For example, the interface may be multiple web pages, as shown and described below in
Referring to
Referring to
Referring to
Thus, by navigating through the various web pages, the user may navigate to a site location having a theme the user is interested in, and select particular programming content associated with the site location/theme using links on the web page to which the user has navigated.
Referring to
In general, an interface 351 is presented in a browser 350 and includes a video rendering window 352 in which selected video content is displayed and associated control buttons 354 for controlling the playback of the selected video content. A section 356 presents a graphical hierarchy of themes and a section 362 presents video content associated with a surface location when a user selects a theme from section 356 that corresponds to the surface location.
The video rendering window 352 is part of a media client application embedded in the web page. The control buttons 354 may be the native controls of the media client application or may be HTML buttons tied to Javascript or other code that controls the media client application. The illustrated control buttons 354 include a rewind button 354a, a stop button 354b, a play button 354c, a pause button 354d, and a fast forward button 354e.
The graphical hierarchy presented in section 356 includes buttons 358 that represent higher level themes. The buttons illustrated include a music button 358a, a movies button 358b, and a current events button 358c.
When a user selects one of the buttons 358, the theme(s) under the selected theme is displayed in section 360. For example, as shown, when a user selects the music button 358a, the themes under the music node are displayed in section 360. In this case, alternative rock 360a, rock 360b, and R&B 360c are shown.
As described above, management nodes 214a, 214b, and 214c are surface locations. These nodes have themes that correspond to themes 360a, 360b, and 360c. Accordingly, when a user selects one of the themes 360a, 360b, or 360c, selections of the video content associated with the corresponding surface location are presented in section 362. In the example shown, a user has selected the alternative rock node 360a and, therefore, selections of the video content associated with the alternative rock management node 214a is presented in section 362.
There are three selections shown in the illustrated example. A first selection includes an identification 364a of the corresponding video content and a play button 364b that may be used to select the corresponding video content for presentation. The identification 364a may simply be words describing the video content, may be the first frame of the video content, a picture that identifies the video content, or any other identifier of the video content. Similarly, the second and third selections contain respective identifications 366a and 368a and respective play buttons 366b and 368b.
Thus, the user may use the elements presented in section 356 to navigate to a site location having a theme the user is interested in, and select particular programming content associated with the site location/theme using the elements in section 362. In this example, each theme in the graphical hierarchy of themes corresponds to a theme in management hierarchy 200; however, this need not be the case. Rather, themes other than those corresponding to a surface location may be different.
Referring to
Referring to
In general, an interface 420 is presented in a web browser 400 and includes a section 450 that presents a graphical hierarchy of themes, control buttons 456, a section 458 that displays information about the currently selected station, and a section 460 that displays information about the currently playing audio segment (for example, a song).
Section 450 displays genres 452a-452b. When a user selects a genres, the stations beneath the selected genre in the hierarchy of themes are displayed under the genre in a tree-like fashion. As shown, the alternative rock genre 454a has been selected, resulting in the stations 454a-454c being displayed.
When a user selects a station, for example, one of stations 454a-454c, section 458 displays information about the selected station and identifies which audio segment will be played next. Section 460 displays information about the currently playing audio segment, such as the artist, song, and album. When the user subsequently selects the play control button 456b, the currently playing audio segment is presented to the user. As the audio segments change, sections 458 and 460 are updated to reflect the currently playing audio segments and audio segments that are queued to be played next. The user may select a stop control button 456a to stop the audio content from being presented.
As with the example shown in
Referring to
Client system 102 sends a request for a media page to server 106 (502). The media page is, for example, a web page that corresponds to a surface location in a management hierarchy or a web page that provides an interface that allows a user to navigate to various surface locations in a management hierarchy. Accordingly, the web page includes links to selections of programming content which a user of client system 102 can select for presentation. Server 106 returns the media page to client system 102 (504), which presents the media page to the user using, for example, a stand alone media client application or a web browser.
When a user selects one of the selections of programming content (506), the media client application sends a request for content to media state server 112 (502). The request generally indicates the programming content selected and the surface location from which it is selected, and may indicate other parameters.
When media state server 112 receives the request from the media client application, media state server 112 determines and accesses an appropriate template. In general, a template outlines the desired media experiences for programming content and advertising content presented to the user. For instance, a template may describe how many pieces of advertising content should be presented with the programming content, the types of advertising content (for example, previews, advertisements, or teasers), and the order in which the programming content and advertising content should be presented. As an example, the template may indicate the following order: (1) a branding segment; (2) the selected programming content; and (3) an advertisement. Which template applies may depend, for instance, on the surface point from which the programming content was requested, the particular programming content selected, and/or the category of the particular programming media. Other parameters also may be used to determine which template applies, such as those described in application Ser. No. 11/023,638.
After accessing the appropriate template, media state server 112 sends to scheduler 114 a request for the advertising content (510). The request includes an indication of the types of advertising content needed and the surface location from which the programming content was selected. For instance, for the exemplary template described above, the request includes (1) an indication that a branding segment is needed, (2) and indication that an advertisement is needed, and (3) the surface location from which the programming content was selected.
Upon receiving the request for a selection, scheduler 114 selects the appropriate advertising content, which may include, for example, an appropriate branding segment and an appropriate advertisement (512). Some advertising content, such as the branding segment, may remain the same for a surface location. However, other advertising content, such as advertisements, are dynamically selected for a surface location depending on the advertising campaigns allocated to the surface location. To select such a piece of advertising content, scheduler 114 may store the parameters of the various advertising campaigns, such as the surface locations to which they are allocated, the number of times the advertising content associated with each campaign should be presented during a time frame, and when the campaigns are scheduled. When a request for such advertising content is received from media state server 112, scheduler 114 may determine which advertising campaigns are allocated to the surface location indicated in the request and then selects a particular advertising campaign and advertising content associated with that campaign in a manner that attempts to insure that the criteria for all of the available advertising campaigns are met. For example, scheduler 114 may use heuristic rules that select advertising campaigns in a manner that attempts to satisfy the requirements of the various campaigns.
For instance, a set of campaigns may be selected based on criteria, such as, for example, the surface location, date, and time of the request for the programming content. Scheduler 114 may then select the campaign in the set that is the behind on the number of times the advertising content should be presented during a time frame. As an example, if two campaigns each have a requirement that the associated advertising content be presented 3000 times over 3 days, and on the start of the second day the advertising content of the first campaign has only been presented 500 times, while the advertising content of the second one has been presented 1000 times, then the first campaign will be selected. Other rules may disqualify the first campaign. For example, if the advertising campaign specifies that the advertising content can not be shown to the same person more than once in a given period, and the campaign has already been shown to the user, then the other campaign may be presented, even though it is not as far behind.
Once the specific pieces of advertising content are selected, scheduler 114 then returns to the media state server 112 the locations, for example URLs, or other identification of the selected advertising content in advertising media source 110 (514). For the exemplary template, scheduler 114 returns the URLs for the selected branding segment and the selected advertisement.
Media state server 112 also obtains the location (for example URL) of the programming content selected by the user. Media state server 112 obtains the URL, for example, by querying a database based on an indication of the selected programming content in the request (502) from the client system 102. Media state server 112 arranges the URLs into a playlist that contains the URLs for the branding segment, the programming content, and the advertisement in the order indicated by the template.
Media state server 112 then returns the playlist to the media client application (516). Based on the playlist, the media client application then requests (518) the media segments from the appropriate locations in content sources 108 and 110. The content sources 108 and 110 return (520) the media segments requested, which are presented by the client system.
Thus, for the playlist based on the exemplary template, the media client application executing on client system 102 uses the URL for the branding segment to request the branding segment from the advertising content source 110 (518), which returns the branding segment to client system 102 for presentation (520).
After the client system 102 presents the branding segment, the media client application processes the URL for the selected programming content. As a result, the media client application requests (518) the selected programming content from programming content source 108, which returns (520) the selected programming content to the media client application for presentation. Once the programming content is presented by client system 102, the URL for the advertisement is processed. This results in the media client application requesting (518) the advertisement from the advertising content source 110 and the advertising content source 110 returning the advertisement to the client system 102 for presentation (520). While the previous discussion describes the media client application as processing the next URL after the previous piece of content is presented, the media client application may begin processing one or more of the subsequent URLs on the playlist prior to finishing the presentation of a piece of content.
In addition, the media client application executing on client system 102 periodically or aperiodically transmits one or more status messages to audience measurement server 116 (522) as the media client application presents the dynamic content. In other implementations, the status messages may be sent before or after the media client application presents the dynamic content.
Generally, the status messages allow audience measurement system 116 to track the amount of content presented on client system 102 from a particular surface location and, more generally, may allow a view of the audience behavior to be synthesized. Status messages generally include an indication of the surface location from which programming content was selected, and may indicate a brand associated with that surface location.
Status messages also may identify the content being presented and may indicate a particular state of the media client application. For example, the status messages may indicate the beginning of a presentation of content, continuing presentation, or the end of presentation. Status messages also may indicate the dynamic content is being fast forwarded, rewound, paused, or played, and/or whether the media client application is in the foreground or background.
Some state information regarding the media client application may be inferred based on subsequent state updates. For instance, it may be inferred that the media client application has stopped presenting content when a subsequent state update indicates that the media client application has connected to different content for presentation.
Status messages also may include an identifier that uniquely identifies the client system sending the status message. For example, a globally unique identifier (GUID) may be generated and included in the status messages.
To determine the amount of time that content is presented from a surface location, the time that status messages are received may be recorded by audience measurement system 116. Assuming negligible transmission time from client system 102 to audience measurement system 116, the recorded times indicate the time at which content is presented on client system 102 (assuming any appropriate conversion, such as to a different time zone). Alternatively, the status messages may include a time stamp that indicates the time at which content is presented on client system 102. As another alternative, the status messages themselves may indicate the amount of time a particular piece of dynamic content was presented.
Other manners of implementing status messages are described in application Ser. No. 11/023,631, filed Dec. 29, 2004 and entitled “Auditing Of Content Related Events” application Ser. No. 11/023,631 is hereby incorporated herein by reference for all purposes.
In the implementation shown in
The implementation shown is also based on advertising campaigns that indicate the number of times the creative is to be presented over a number of days, a target group, and a time period when the advertising campaign should be completed. For example, the advertising campaign may indicate that the creative be presented 3000 times over 2 days, targeted to youths, and completed by the end of February. In addition, the implementation is based on a scheduler 114 that tries to evenly spread all presentations of the creative out evenly over all days remaining in the advertising campaign. Other implementations may vary, however, depending on the parameters of the advertising campaigns and how the scheduler attempts to schedule presentations of the creative.
Also, in the implementation described, the spot load is expressed as the number of creatives or ads presented to a member per length of time dynamic content is presented to the member. Similarly, the advertising inventory is expressed in terms of “impressions,” where an impression is generally a presentation of a creative to a member of the audience. Because it may be difficult to determine whether the advertising unit was actually presented to the member, an impression may more generally be considered to be the presentation of a creative on a client system.
As an overview, audience measurement server 116 tracks the amount of time dynamic content is presented to a member of the audience and the particular surface location from which the dynamic content was presented (
The estimates at the various nodes may be used to help to insure that orders or tentative orders for advertising campaigns can be met. One or more interfaces may be provided to allow a user (referred to as a “traffick manager”) to view current estimates of the inventory at various nodes and tentatively input insertion orders to obtain estimates of the advertising inventory consumed at various nodes by the insertion order (
For instance, the traffick manager may review the currently available inventory to estimate how much can be sold and inform the advertising sales team about how much is available. Alternatively, or additionally, the traffick manager may tentatively schedule an insertion order and have the inventory manager 120 estimate the amount of inventory consumed at the various nodes to which the advertising campaign is allocated (
More specifically, referring to
Thus, in the example shown, the user selected the “90's Alternative” station from the “alternative rock” surface location (for example, using the interface shown in
Referring to
The example in
a-9 show examples and processes that may be performed by inventory manager 120 in estimating inventory at a node of the management hierarchy for a particular future day and time block.
Referring to
Inventory manager 120 selects a future day (for example, Monday, February 1), time block (for example, 9 am-10 am), and surface location (for example, “90's alternative”) (802). Inventory manager 120 then accesses TTSL/V data at the selected surface location for the same time block and day in the weeks prior to the future day (for example, TTSL/V data at the “90's alternative” surface location during 9 am-10 am for the Mondays prior to Monday, February 1) (804). The accessed TTSL/V data may be actual TTSL/V data accessed from audience measurement database 118 or may be estimated TTSL/V data. The TTSL/V data may include estimated TTSL/V data depending on how far in the future the forecast extends. For example, if the forecast is for Monday, February 1 and, at the time of the forecast, there are no other intervening Mondays, then the TTSL/V data may include only the actual TTSL/V data stored in the audience measurement database 118. However, if there is an intervening Monday, then the TTSL/V data for the intervening Monday may be estimated TTSL/V data, while the TTSL/V data for the Mondays before the intervening Monday may be actual TTSL/V data.
Inventory manager 120 then applies a forecasting algorithm to the accessed TTSL/V data to determine the estimated TTSL/V at the surface location for the future day and time block (806). Known forecasting algorithms may be used, such as the autoregressive moving average (ARMA) or the autoregressive integrated moving average (ARIMA).
Once the estimated TTSL/V at the surface location for the future day and time block is calculated, inventory manager 120 multiplies the desired spot load for the surface location during the future day and time block times the estimated TTSL/V for the future day and time block (808). The result is the estimated available advertising inventory at the surface location for the future day and time block. For instance, if the TTSL/V for the future day and time block is 100 hours and the spot load is 3 impressions per hour, then the estimated inventory is 300 impressions.
As an example of an implementation of process 800, inventory manager 120 selects the surface location of “90's alternative,” the time block of 9 am-10 am, and future day of the next Monday (802). Inventory manager 120 the accesses the TTSL/V information for previous Mondays between 9 am-10 am (804) at the “90's alternative” surface location and applies a forecasting algorithm to this information to estimate the TTSL/V at the “90's alternative” surface location for the next Monday between 9 am-10 am (for instance, 50 hours) (806). Inventory manager 120 then multiplies the desired spot load for this day and time block (for instance, 3 impressions/hour) times the estimated TTSL/V for that period to determine the estimated advertising inventory available for the “90's alternative” surface location for next Monday during 9 am-10 am (for instance, 150 impressions) (808).
Process 800 may be repeated for each future day and time block for which an estimate is desired. For instance, if the inventory is to be estimated for the next month, process 800 may be performed for each day and time block in the next month.
b shows an example of the estimated TTSL/V calculated during 9 am-10 am for two surface locations (“90's alternative” and “80's alternative”) for February 1 through February 7.
Referring to
Inventory manager 120 selects a node on the management hierarchy and a day and time block (902). Inventory manager 120 then accesses the available inventory during the day and time block for the surface locations at or below the selected node (904) and sums the accessed inventory (906). This process may be performed for each node in the hierarchy, and for each day and time block for which inventory has been estimated.
As an example of process 900, and referring again to
Referring to
Based on the parameters of the insertion order, inventory manager 120 simulates the advertising inventory consumed by the insertion order for the various nodes to which the advertising campaign is allocated for the days and time blocks during which the advertising campaign is scheduled (1004). A number of techniques may be used to simulate the consumption of the advertising inventory.
For each node, day, and time block combination, the inventory manager 120 subtracts the estimated consumed inventory for that node, day, and time block combination from the estimated inventory available at the node, day, and time block combination (1006). This results in an estimated remaining inventory for the nodes, days, and time blocks.
Table 1302 shows the estimated inventory available and consumed at the “alternative rock” node during the time block 9 am-10 am, while table 1304 shows the estimated inventory available and consumed at the “alternative rock” node during the time block 10 am-11 am. Table 1306 shows the estimated inventory available and consumed at the “classic rock” node during 9 am-10 am.
With respect to the “alternative rock” node during 9 am-10 am, row 1302a shows that the available inventory for Day 1, Day 2, and Day 3 during this time block is 1000 impressions, 2000 impressions, and 3000 impressions, respectively. Row 1302b shows the estimated portion (in number of impressions) of the inventory consumed by order 1 at the “alternative rock” node for each of Day 1, Day 2, and Day 3 during the 9 am-10 am time block. Row 1302c shows the estimated portion of the inventory consumed by order 2 at the “alternative rock” node for each of Day 1 and Day 2 during the 9 am-10 am time block.
Similarly, with respect to the “alternative rock” node during 10 am-11 am, row 1304a shows that the available inventory for Day 1, Day 2, and Day 3 during this time block is 2000 impressions, 1000 impressions, and 1000 impressions respectively. Row 1304b shows the estimated portion of the inventory consumed for order 1, while row 1304c shows the estimated portion of the inventory consumed for order 2.
With respect to the “classic rock” node during 9 am-10 am, row 1306a shows that the available inventory for Day 1, Day 2, and Day 3 during this time block is 2000 impressions, 1000 impressions, and 1000 impressions respectively. Row 1306b shows the estimated portion of the inventory consumed by order 1 at the “classic rock” node for each of Day 1, Day 2, and Day 3 during the 9 am-10 am time block.
As shown in table 1302, the estimated portion of the inventory consumed by order 1 at the “alternative rock” node for Day 1 during the 9 am-10 am time block is 333 impressions. This is calculated by first summing the inventory available for each combination of node, day, and time block (1202). Thus, in this example, this is the sum of the inventory at the “alternative rock” and “classic rock” nodes over Day 1, Day 2, and Day 3 during the 9 am-10 am time block and available inventory at the “alternative rock” node over Day 1, Day 2, and Day 3 during the 10 am-11 am time block, which is 1000+2000+3000+2000+1000+1000+2000+1000+2000=15000. The total number of times the creative is to be shown is then divided by the total inventory (1204), which in this case is 5000 divided by 15000. This provides a campaign percentage of one-third. The campaign percentage is then multiplied by the inventory available at each combination of node, day, and time period, with the result being the estimated inventory consumed for that combination of node, day, and time period (1206). Thus, for Day 1 during 9 am-10 am at the “alternative rock” node, 1000 impressions (available inventory for Day 1 between 9 am-10 am) is multiplied by one-third (campaign percentage), which results in an estimate of 333 impressions being consumed from the inventory for Day 1 during the 9 am-10 am time block. As can be seen in row 1302b, this procedure also results in an estimate of 667 impressions consumed for Day 2 between 9 am-10 am, and 1000 impressions consumed for Day 3. Similarly, as can be seen in row 1304b of table 1304, this procedure also results in an estimate of 667 impressions consumed at the “alternative rock” node for Day 1 between 10 am-11 am, 333 impressions for Day 2 between 10 am-11 am, and 333 impressions for Day 3 between 10 am-11 am. Lastly, as can be seen in row 1306b of table 1306, this procedure results in an estimate of 667 impressions consumed at the “classic rock” node for Day 1 between 9 am-10 am, 333 impressions for Day 2 between 9 am-10 am, and 667 impressions for Day 3 between 9 am-10 am
The process is similar for order 2, except that the total inventory would be calculated based on the two days that order 2 is scheduled and the campaign percentage would be multiplied by the inventory available in each of those two days. Thus, for order 2 over Day 1 and Day 2 during 9 am-11 am on the “alternative rock” node, the total inventory is 1000+2000+2000+1000=6000 impressions. The campaign percentage is then equal to 2000 divided by 6000, or one-third. For Day 1 between 9 am-10 am at the “alternative rock” node, the estimated inventory consumed by order 2 is then 333 impressions and for Day 2 between 9 am-11 am the estimated inventory consumed is 667 impressions. Similarly, at the “alternative rock” node between 10 am-11 am, the estimated amount consumed for Day 1 is 667 impressions and for Day 2 is 333 impressions.
Both operations shown in
Referring to
Section 1402 includes a section 1402a that allows the traffick manager to select either a starting level of the hierarchy (for example, top of hierarchy, genre nodes, or station nodes) or to start with insertion orders. A second section 1402b allows the traffic manager to then select which nodes under the starting level to display (for example, the nodes corresponding to a particular theme or that are managed under a particular brand) or to display the insertion orders that are allocated to nodes under the starting level.
Section 1404 includes various drop-down boxes corresponding to brand, station node, insertion order, or genre node. These drop-down boxes allow the traffick manager to select either all or a particular brand, station node, insertion order, or genre node, depending on the selections made in section 1402. The information displayed in grid 1410 is then filtered to only display the particular selection.
Section 1406 includes a drop-down box 1406a that allows the traffic manager to select whether the information in grid 1410 is displayed on an hourly or daily basis. A drop-down box 1406b allows the traffick manager to then select the time span, that is, how many days are displayed, while a selection box 1406c allows the traffick manager to select the starting day of the time span. A drop-down box 1406d allows the traffick manager to display which days of the week in the time span are displayed. Section 1406 also includes a drop-down box 1406e that allows for the selection of the hours or block of hours that are displayed for a given day, and a drop-down box 1406f that allows for the selection of the time zone for the hours displayed.
Depending on the selections made in section 1406, the information displayed may represent actual numbers or predicted numbers, or both. In the event the starting day is in the past, the information displayed for past times in grid 1410 represents actual numbers, while the information displayed for the present and future times are estimated.
Section 1408 includes check boxes that allow the traffick manager to select what information is displayed in each cell of grid 1410. When the “ad capacity” check box is selected, each grid shows the total estimated or actual advertising inventory that is available if no campaigns were consuming inventory. The “ad availability” check box allows for the display of the actual or estimated remaining advertising inventory given the campaigns that are consuming inventory, while the “ads delivered” check box allows for the display of how many creatives have been or are expected to be delivered.
A drop-down box 1416 allows the traffick manager to select whether data is shown only for accepted insertion orders, pending insertion orders, or both. Selection of a button 1418 invokes the interface shown in
In interface 1400, the traffick manager has selected the top of the hierarchy with section 1402a and selected the genre nodes in section 1402b. The timeline selected in section 1406 shows daily (as opposed to hourly) time slots, extending for one week from 1/31, and shows all days. Section 1408 has been used to select the display of available inventory, remaining inventory, and estimated inventory consumed in each cell of grid 1410.
Consequently, grid 1410 contains rows 1412a and 1412b for each genre node, and columns 1414a-1414g for each day starting from 1/31 and extending a week. Each cell of grid 1410 displays, from top to bottom, (1) the available inventory for the day if no campaigns were consuming inventory; (2) the remaining inventory for the day (percentage of unallocated inventory); and (3) the number of impressions delivered or expected to be delivered for the day (that is, the advertising inventory consumed). These values may be calculated for the day by summing up these values calculated for each hour time block of the day. When the number of impressions expected to be delivered is greater than the estimated remaining inventory, the remaining inventory is shown as a negative percentage. In addition, each cell of grid 1410 may be shaded a particular color depending on the remaining advertising inventory for the day (for example, darker shades of red may be used for lower amounts of remaining inventory). A column 1414h shows the totals for each genre node, with the remaining inventory shown in number of available impressions rather than a percentage.
Area 1710 includes a list 1710a of pending insertion orders from which the traffick manager can select for editing and a button 1710b that allows the traffick manager to add a new pending insertion order to the list. Edit area 1720 includes a text box 1720a for naming a pending insertion order, a selection box 1720b for selecting a start date of the insertion order, a selection box 1720c for selecting an end date of the insertion order, and a text box 1720d for entering the number of times the creative should be presented. Edit area also includes a section 1720e for selecting the nodes to which the insertion order is allocated, and a section 1720f for selecting the days and time blocks in the week during which the insertion order is to be active.
In the example shown, the traffic manager clicked on button 1710b to create the pending insertion order shown in section 1710 (named “New Pending IO” by default), which opened edit area 1720. The traffic manager then used section 1720e to allocate the insertion order to the “alternative rock” node, specified start and end dates using selection boxes 1720b and 1720c, specified 100,000 impressions to be delivered between those dates, and specified that the insertion order play on Monday through Friday, 9:00 AM to 7:00 PM. After clicking the submit button 1720g, inventory manager 120 will estimate the advertising inventory consumed by the insertion order during the days and time blocks it is scheduled, and the estimated inventory will be included in interface 1400 as appropriate.
While not shown, there may be an option on any of the above interfaces, or another interface, that allows the traffick manager to adjust the spot load for a node, or multiple nodes. Such an adjustment would impact, at least, the available inventory.
As an example of how a traffick manager may use one or more of the interfaces depicted in
The techniques described above are not limited to any particular hardware or software configuration. Rather, they may be implemented using hardware, software, or a combination of both. The methods and processes described may be implemented as computer programs that are executed on programmable computers comprising at least one processor and at least one data storage system. The programs may be implemented in a high-level programming language and may also be implemented in assembly or other lower level languages, if desired.
Any such program will typically be stored on one or more computer-usable storage media or devices (for example, CD-ROM, RAM, or magnetic disk). When read into the processor of the computer and executed, the instructions of the program cause the programmable computer to carry out the various operations described above.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, while the foregoing has described the use the HTTP protocol and HTML, other standard or proprietary protocols may alternatively be used.
As another example, while status messages are described above for tracking the amount of time members of an audience spend viewing or listening to dynamic content from a node, other techniques may be used to measure or estimate this time. For instance, by noting how many creatives are delivered during an hour, an estimate of the TTSL/V for that hour can be calculated by dividing the number of creatives delivered by the spot load.
Alternatively, or additionally, as noted above, programming content source 108, advertising content source 110, or both, may send status messages to audience measurement server 116, which then may be used to estimate or measure the cumulative time. In one implementation, programming content source 108 periodically or aperiodically sends status messages indicating how many users are receiving content from a particular node. These status messages then may be used to measure the cumulative time for the audience during a time period. For example, programming content source 108 may have a number of users connected to the “90's alternative” station 412b and may send status messages whenever the audio segments switch from music to advertising content. In such a case, the following status messages indicating the following may be received from programming content source 108:
To estimate or measure the cumulative time for the audience between 12:00 and 13:00, the average of the audience counts is calculated. In this example, the average would be (100+90+80+90+100)/5=92 user hours between 12:00 and 13:00. The accuracy of this technique generally depends on how frequently the messages are sent by the programming content source 108, advertising content source 110, or both. When status messages from client systems 102 are used, the accuracy generally depends on the how accurately the status messages from client systems 102 record the time when a client system begins presenting content and the time when a client stops presenting content.
Also, in the implementation shown with respect to
Inventory, however, may be estimated based on larger or smaller time blocks. Estimating based on smaller time blocks (for example, estimating the inventory for fifteen minute time blocks) may allow for views of finer granularity, such as, for example, per fifteen minutes, which may be desirable if advertising campaigns can be scheduled during the smaller time blocks. Estimating based on larger time blocks may reduce computing time and storage space and, therefore, may be desirable if finer levels of granularity are not wanted, for example, because advertising campaigns are not able to be scheduled on the smaller time basis (for instance, if advertising campaigns can only be scheduled for a day, without being able to be scheduled within specific hours of the day, then viewing estimated inventory per hour or block of hours may not be wanted).
In addition, in the implementation shown in
In the implementation of
Furthermore, elements of one or more implementations may be combined, deleted, supplemented, or modified to form further implementations. Accordingly, other implementations are within the scope of the following claims.
This application claims priority under 35 USC §119(e) to U.S. Provisional Patent Application Ser. No. 60/616,637, filed on Oct. 8, 2004, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60616637 | Oct 2004 | US |