Corresponding reference characters indicate corresponding parts throughout the drawings.
In an embodiment, the invention dynamically selects advertisements for rendering with program content to a user 102 in a content download service such as illustrated in
Although described primarily in the context of video media files, aspects of the invention may be applied to various forms of digital media, including video and multimedia files (e.g., movies, movie trailers, television shows, etc.), audio files (e.g., music tracks, news reports, audio web logs, audio books, speeches, comedy routines, etc.), media broadcasts (e.g., webcasts, podcasts, audiocasts, videocasts, video blogs, blogcasts, etc.), and images.
Embodiments of the invention make use of targeted advertising as a mechanism for providing program content to consumers free of charge. In contrast to existing systems, the ads are selected dynamically at the time of playback, not at the time of delivery. The selection of which ads to play is based on existing campaigns, targeting information, etc. stored in a manifest. It is possible, for example, to display different ads each time the program content is viewed.
Referring again to
The content owners 106 or providers supply program content (e.g., video and/or audio files) with associated metadata. This metadata includes the locations in the video at which ads can be inserted (e.g., ad breaks), and which ads provider is responsible for running the ad campaigns. For example, the ads provider may be identified by a uniform resource locator. One or more ads providers or advertisers 108 sell ads against the ad breaks. The ads providers supply ad content 110. The ads providers also run an ad engine and report collection service 112 for collecting the reports of which ads have been played. Furthermore, the ads providers make available ad manifests via an ad manifest service 114. The ad manifests may be distributed via database, stream, file, or the like. The ad manifests include information about the current ad campaigns including which ads (or groups of ads) should be associated with which types of program content. The ad manifests also include the rules about when the advertising may be shown and on what devices/formats. The ad manifests further include the definition of tracking events for reporting on the advertising playback (e.g., a video ad was played, thus it can be billed).
An example manifest is shown in Appendix B. The exemplary ad manifest in Appendix B is an extensible markup language (XML) representation of the ad campaigns in effect. The exemplary format of this file represents a common format and allows for the expression of a rich set of semantics. The common format enables campaigns from multiple ad providers to be run by the media service client 104 without further specialization of the media service client 104 code. The exemplary manifest data structure comprises a program field, an ad break field, a time field, and a rules field. The program field stores a value corresponding to the identified program content item. The ad break field stores a value corresponding to at least one of the segments associated with the identified program content item. The time field stores a value representing an advertisement duration. The rules field identifies the advertisements associated with the identified program content item.
Content ingestion servers 116 receive the program content supplied by the content owners 106, together with the location of the ad manifests, and publish them in a catalog. This catalog includes information about the program content and includes metadata such as categories, descriptions, duration, etc. Content delivery networks 118 interface with the media service client 104 or other computing device associated with the user 102 to deliver the content 128 including program content and advertisements to the user 102.
The user 102 interfaces with the media service client 104, application, computing device, or the like that provides functionality such as browsing, searching, downloading, managing and consuming the content 128. A catalog manager 120 associated with the media service client 104 downloads the catalog via, for example, a catalog web service 122 and allows the user 102 to browse it in search of content 128. An exemplary catalog is shown in Appendix A. Once an item is selected for download, the corresponding ad manifest is retrieved, for example, by a download manager 124 and stored (e.g., as manifests 126). The ad manifest for each program content includes the information for determining which ads should be downloaded together with the program content. The download manager 124 downloads the selected program content and associated ads. Downloading includes retrieving the program content and associated ads. Downloading may also include receiving the program content and associated ads pushed from another computing device (e.g., pushed from a server at regular intervals).
The download manager 124 also periodically updates the downloaded advertisements to maintain a fresh pool of ads that may be displayed against the selected program content. Maintaining a readily available pool of ads enables offline playback, provides high-quality ad files, and allows for various different ads to be displayed against the selected program content.
For example, in one embodiment, the download manager 124 in the media service client 104 checks each of the downloaded program content items to identify and parse the corresponding ad manifests to determine if the current local pool of ads is fresh. If particular ads are no longer relevant, the ads may be deleted from the local pool, while additional ads may be downloaded to keep the local ad pool fresh.
In one embodiment, one or more computer-readable media or other memory areas such as memory area 130 associated with the media service client 104 have computer-executable components comprising the catalog manager 120, a user interface component 132, the download manager 124, a playback manager 134, and a report component 136. The catalog manager 120 downloads a content catalog from a catalog service. The user interface component 132 displays, to the user 102, at least a portion of the content catalog downloaded by the catalog manager 120. The download manager 124 downloads program content and advertisements associated therewith. The playback manager 134 selects one or more of the advertisements associated with the program content and renders, to the user 102, the program content and the selected advertisements downloaded by the download manager 124. The playback manager 134 updates a playback report collection service 138 with the particular program content and ads rendered to the user 102. In addition, the report component 136 identifies the rendered advertisements to one or more advertisement reporting services such as ad report collection service 112. In an embodiment, the report component 136 performs synchronization functions with the ad engine and report collection service 112.
The memory area 130 also stores or otherwise persists the manifests and content (e.g., the program content and the associated advertisements) downloaded by the download manager 124. In an embodiment, the program content is divided into segments such that ad breaks may be detected. The advertisements are inserted at the ad breaks by the playback manager 134. As such, rendering of the program content is interrupted by the rendering of the advertisements. In an aspect of the invention, the manifest correlates particular ads to particular segments of the program content.
In an embodiment, the history or report component 136 determines and maintains content metadata 140 relating to the rendered program content and selected advertisements. The content metadata 140 is stored or otherwise persisted in the memory area 130. A query component 142, also stored in the memory area 130, enables the user 102 to search the content metadata 140 based on search criteria received from the user 102. In an embodiment, the query component 142 is separate from the media service client 104. For example, the query component 142 may be part of a web browser. The search criteria may include keywords, and may implement text-based searching and context-based searching (e.g., which ads were rendered after a particular segment of particular program content). Locating the previously-viewed content may be accomplished via a graphical or textual timeline, search keywords or categories, or an association between program content and respective ads. Based on the input search criteria, the query component 142 returns search results to the user to help the user 102 identify at least one of the rendered advertisements or program content or program content segment. In addition, targeted advertisements may be placed in association with query terms or results.
In another embodiment, the user interface component 132 displays a timeline to the user 102 of the rendered program content and associated advertisements such as shown in
The computer typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that may be accessed by computer. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of any of the above are also included within the scope of computer readable media.
In operation, a computing device executes computer-executable instructions such as those illustrated in the figures to implement aspects of the invention.
Referring next to
At playback of the program content, the user selects the particular program content to be rendered. The media service client selects, based on the manifest associated with the selected, particular program content, ads to be inserted into the program content at 212. The ads are selected from the downloaded pool of ads. The media service client renders the selected program content with the selected ads inserted therein at 214. The rendering is reported to an ad service at 216.
In an embodiment, the operations in
In one embodiment, one or more computer-readable media have computer-executable instructions for performing the method illustrated in
Referring next to
Metadata associated with the rendered ads and program content is determined and/or collected at 306. Exemplary metadata for each of the content items (e.g., ads or program content) includes one or more of the following: an identifier associated with the content item, a time associated with the rendering of the content, and a duration of the rendering of the content item. Other exemplary metadata include information such as which ads were displayed against which programs, whether or not the ads were skipped, and whether the user provided a rating to the program content or ads. Other exemplary metadata includes a program content identifier (e.g., the content item that a particular ad is associated with), an identifier of an ad played immediately prior and/or after the content item, a name of a product or service associated with the content item, a hyperlink to the ad, a thumbnail image, a description, and a last time played.
The media service client sorts, orders, prioritizes, or otherwise organizes the content items into a timeline (e.g., based on a rendering time associated with each of the content items) at 308. As an example,
In an embodiment, the content items are sorted in the user interface based on one or more of the following: a user preference, a user viewing habit, a storage location of the rendered content items, a category associated with the rendered content items, a time associated with the rendered content items, and a duration of rendering for each of the content items.
Alternatively or in addition, the user may tag, select, or otherwise provide input corresponding to one of the rendered advertisements. During the display of the metadata corresponding to the rendered content, the metadata corresponding to the tagged advertisement is visually distinguished to the user. Visually distinguishing includes, for example, highlighting the advertisement, displaying the advertisement metadata in a prominent portion of the display, underlining or bolding the advertisement metadata, or the like. This allows the user to tag advertisements of interest for additional viewing. In an embodiment, content that is supplemental or related to the rendered advertisement is downloaded from the media content download service. The supplemental content includes, for example, a longer, full-featured advertisement presenting more product details. The supplemental content is available for rendering to the user at, for example, the completion of the currently rendered program content, or during an ad-insertion break.
In one embodiment, one or more computer-readable media have computer-executable instructions for performing the method illustrated in
Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment illustrated in
The following examples further illustrate embodiments of the invention. The figures, description, and examples herein as well as elements not specifically described herein but within the scope of aspects of the invention constitute means for running an advertisement campaign associated with a media content download service in which advertisements are inserted into the program content during rendering, and means for enabling the user to select and view previously-viewed advertisements in the media content download service.
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
Embodiments of the invention may be implemented with computer-executable instructions. The computer-executable instructions may be organized into one or more computer-executable components or modules. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
A portion of an exemplary content catalog is shown below.
An exemplary manifest is shown below.
- <Manifest Timestamp=“2005-12-20T00:00:00” SchemaVersion=“1”>
- <Ads HousePriority=“60”>
- <Ad ID=“2853997” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2853998” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2853999” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878254” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878407” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878408” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878409” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878410” ConditionGroupID=“1115192” Priority=“20”>
- <Goals>
- <AdCreatives>
- <Ad ID=“2878547” ConditionGroupID=“1115192” Priority=“60”>
- <Goals>
- <AdCreatives>
- <Conditions>
- <ConditionGroup ID=“1115192”>
- <Creatives>
- <Creative ID=“813620” EventSetID=“1”>
- <Creative ID=“813621” EventSetID=“1”>
- <Creative ID=“813619” EventSetID=“1”>
- <Creative ID=“820569” EventSetID=“1”>
- <Creative ID=“820567” EventSetID=“1”>
- <Creative ID=“820568” EventSetID=“1”>
- <Creative ID=“820570” EventSetID=“1”>
- <Creative ID=“820571” EventSetID=“1”>
- <Creative ID=“820572” EventSetID=“1”>
- <Events>
- <EventSet ID=“1” ImpressionEvent=“PL”>