Method and system for advertisement multicast pre-delivery caching

A method (600) for a system (200) for delivering a content offering (102) containing one or more advertisements (331) includes identifying one or more triggers (115,321,117,118) indicating that one or more advertisement avails (326,327,328) occur in the content offering. After advertisements are obtained, portions (332,333) of the advertisements are multiplexed with portions (334,335) of the content offering occurring between a trigger and a corresponding advertising avail. The portions of the advertisements are delivered to subscriber devices (206) such that all portions are delivered prior to the advertising avail occurring or completing at the subscriber device.

BACKGROUND

Technical Field

This disclosure relates generally to multimedia delivery systems, and more particularly to multimedia delivery systems delivering advertising to subscriber devices.

Background Art

Multimedia delivery systems, such as those used by cable operators, content originators, over-the-top content providers, and so forth, deliver multimedia video content, software updates, webpages, and other information to subscriber devices. Frequently, advertising is inserted into the multimedia content. Subscribers watch these advertisements during commercial breaks, which are known as “avails,” that occur during the multimedia playback. The insertion of these advertisements provides a revenue source for not only the system provider but for content providers as well. Such advertising helps to offset the cost of creating and delivering programming to subscribers. The traditional way these service providers and system providers earn such revenue is via the insertion of advertisements into avails in broadcast programming.

In traditional advertising insertion, everyone saw the same advertisement. When a show was delivered via broadcast, every subscriber receiving the broadcast saw the exact same advertisement. While this made content delivery easy due to the fact that a single advertisement could be inserted into content delivered to every single subscriber, it was less than satisfactory for the advertiser. Advertisers have long preferred to deliver targeted advertising to people with common interests or demographics. Targeted advertising is the selection of video advertisements for insertion into broadcast programming in such a manner as to match the advertisement to an individual viewer's interest profile.

In some modern content delivery system technologies, attempting to deliver targeted advertising is problematic. For example, in certain broadcast systems where multiple users view common programming, attempting to deliver any form of targeted advertising can cause unwanted bandwidth spikes. Transitioning from delivering a single television program to one hundred users, for example, to delivering individual advertisements to each user causes tremendous bandwidth spikes during advertising avails. It would be advantageous to have improved systems and methods for advertising insertion and delivery.

DETAILED DESCRIPTION OF THE DRAWINGS

Before describing in detail embodiments that are in accordance with the present disclosure, it should be observed that the embodiments reside primarily in combinations of method steps and apparatus components related to inserting advertising into multimedia content streams for delivery using multicast, which can occur in one embodiment in an adaptive bit rate system. Any process descriptions or blocks in flow charts should be understood as representing modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included, and it will be clear that functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

As noted above, delivering targeted advertising in many multimedia delivery systems typically requires significant additional bandwidth capacity to deliver advertising to individually targeted groups. In broadcast programming to ten different groups, for example, system bandwidth during commercial avails would need to be ten times higher than when the programming was being delivered. While systems exist to deliver targeted advertising in this fashion, the systems are expensive. Additionally, during broadcast programming, much of the system bandwidth goes unused.

Turning toFIG. 1, illustrated therein is one prior art system100that illustrates this problem. A subscriber device101presents multimedia content to a subscriber on a display. When an advertising avail occurs, the subscriber device101looks to its local cache102to see if the advertisement is stored locally. In conventional systems where every subscriber saw the same national advertisement, the subscriber device101would find the advertisement stored within its local cache102because the advertisements were delivered in tandem with the multimedia content.

However, in modern systems where advertisements are selected for particular groups or demographics, advertisers prefer to deliver more targeted advertisements. For example, an advertiser may elect to deliver a tire commercial showing cars driving on sunny days to viewers in the south, and cars driving on snowy days to viewers in the north. Consequently, different viewers receive different advertisements. Advertisers are thus unable to deliver a single advertisement to each and every viewer with the content.

Accordingly, when the subscriber device101looks to its local cache102, the advertisement will not be stored there. The subscriber device101thus looks to its local gateway103, which is referred to as an “edge” device, and that receives content and advertising from a content delivery network server104. The edge device has a local cache105, but since the advertising is targeted it must be retrieved from a central server. Accordingly, the advertisement is not stored at the edge device either.

In many multimedia content delivery systems, the edge device is a hypertext transfer protocol (HTTP) client of the content delivery network server104. The edge device thus makes an HTTP GET request of the content delivery network server104. The content delivery network server104then sends another HTTP GET request to an advertisement server106to retrieve an advertisement. The advertisement server106then sends an HTTP GET request to an advertisement service107. The advertisement is delivered from the advertisement service107to the advertisement server106to the content delivery network server104to the local gateway103to the subscriber device101. When hundreds of subscriber devices perform this operation at each advertisement avail, bandwidth spikes can be extreme. Some content delivery network service providers are not able to sustain these spikes due to network limitations.

Some other systems attempt to avoid these network spikes and still deliver targeted advertising by delivering advertisements only when bandwidth demands are low. For example, a system operator my elect to deliver advertisements to subscriber devices at night when few customers are using bandwidth on the system. Each advertisement is then stored in memory of a subscriber device for use when bandwidth demand is high, e.g., the next day. The problem with this solution is that each subscriber device must have extremely large amounts of memory in which the nightly advertisement delivery can be stored. If low bandwidth cycles occur only once every twenty-four hours, the subscriber device would need to store enough advertisements for an entire day of programming. Again, this is an expensive way to deliver targeted advertising due to the large memory requirements needed in each subscriber device.

Embodiments of the present disclosure provide an improved system for delivering advertising, including targeted advertising, to subscriber devices. In one or more embodiments, advertising is multicast to a group of devices from a multicast server. Advertisement portions, or advertisement “chunks,” can be multiplexed with content delivery such that advertising is delivered piecemeal, with sufficient advertisement portions for a single avail, or portion of an avail, being delivered “just in time” for avail insertion and rendering. This method results in very little memory being required at the subscriber device.

In one or more embodiments, the memory requirement is just that needed to hold enough advertising for a single avail. For example, in a ninety-second avail, three thirty-second advertisements could be stored in Dynamic Random Access Memory (DRAM) or Flash memory. When the avail occurs during play out of the programming, the subscriber device simply retrieves the advertising from this memory and delivers it to the subscriber.

In one or more embodiments, the memory requirement can be further reduced to just that needed to hold one or more upcoming advertisement portions delivered at the time of, or slightly before, the request of the content portions from a subscriber device. For example, if each advertising portion represents two to five seconds of an advertisement, as little as one portion would need to be cached if a new portion was received each time a cached portion was rendered. The portions could be received and drawn from the subscriber device cache on a first in first out basis to reduce the cache requirement to only two to five seconds of advertisement content. Embodiments of the disclosure contemplate that adaptive bitrate streaming protocols frequently divide a content stream into portions of between two and ten seconds.

Advantageously, by multiplexing the advertising into the content and delivering the same via multicast, advertising can be delivered to subscriber devices at a very low data rate, with the delivery ensuring that advertisements corresponding to a particular avail arrive at the subscriber device just before they are needed for insertion into the avail. This results in smoothing network bandwidth loading.

Turning now toFIG. 2, illustrated therein is a brief overview of one system200configured in accordance with one or more embodiments of the disclosure. In one embodiment, a subscriber device201requests multimedia content for delivery. Accordingly, the subscriber device201, through its edge device203tunes to a content delivery network server204. In one embodiment, the content delivery network server204operates as an adaptive bit rate server that includes a multicast server208to deliver multimedia content to multiple subscriber devices. In one embodiment, the subscriber device201uses an Internet Group Management Protocol command to tune to the content delivery network server204. Other methods of subscribing a subscriber device201to a content delivery network server204to receive content will be obvious to those of ordinary skill in the art having the benefit of this disclosure.

One or more processors or controllers in a content delivery network server204can then determine if there is sufficient capacity to provide the requested services to the subscriber device201. In one embodiment, this decision determines not only whether the content can be delivered to the subscriber device201, but whether content with advertising multiplexed therein can be delivered from the multicast server208such that all portions of advertising required for a particular avail are delivered during a duration prior to the corresponding advertisement avail occurring or completing in the content at the subscriber device201.

Illustrating by example, in one embodiment a two-minute advertising avail occurs during content delivery every hour. Accordingly, the content delivery system would need to delivery not only the content itself to the subscriber device201, but all portions of two minutes of advertising as well. In one embodiment, the two minutes of advertising can be divided into portions, multiplexed with portions of the content, and delivered across a duration occurring between avails. Thus, if each avail occurred two minutes before the hour, the portions of the two minutes of advertising could be selectively delivered between the hour and two minutes prior to the next hour as system bandwidth allows. However, all portions of the two minutes of advertising would need to be delivered prior to the avail completing at the subscriber device201if they are to be inserted into the avail. As will be shown in more detail below, if the portions do not reach the subscriber device in time, one or more embodiments provides for a default advertisement as a backup.

The two minutes of advertising could be delivered prior to the avail occurring at the subscriber device201in one embodiment. In another embodiment, where advertisement portions are being delivered as they are used, all portions of the advertisement would need to be delivered to the subscriber device201such that the last portion was delivered before the avail completes at the subscriber device201. Accordingly, it can be drawn from the local cache202or the edge cache205for presentation during the avail.

If the content delivery network server204can accommodate the requested service, the system then multiplexes the portions of the advertisement with portions of the content to “trickle feed” the appropriate advertising from a multicast server208to the subscriber device201for storage in a local cache202.

In short, rather than handling all the HTTP GET commands occurring in the prior art system (100) ofFIG. 1, which cause tremendous bandwidth spikes, the multicast server208of the system200inFIG. 2pushes and pre-caches advertising into the local cache202of the subscriber device201or the edge cache205of the edge device203by multicasting portions of the advertisement between avails. This trickle delivery works to smooth bandwidth loading and demand on the network. When the avail occurs, the subscriber device201inserts the locally stored advertising into the avail for delivery to a client.

In one or more embodiments, the system200ofFIG. 2accommodates adaptive bit rate content delivery. In such an embodiment, the advertising delivered by this trickle method can be directed to specific users in accordance with the adaptive bit rate protocol that employs the Hypertext Transfer Protocol to establish a direct communication connection between a subscriber device201and a content delivery network server204to deliver content.

In one embodiment, the system200can identify one or more triggers associated with a content offering that indicate that an advertisement avail will occur within the content offering. The triggers can take many forms. In the example above for instance, where two minutes of advertising occur every hour, with each avail occurring two minutes before the hour, the trigger could be the conclusion of an avail. In another embodiment, the trigger can be the beginning of the content delivery. In another embodiment, the trigger can be the act of a subscriber device tuning to a multicast server. In another embodiment, the trigger can be a rule construct that is applied to all content offerings. In yet another embodiment, the trigger could be a Society of Cable Telecommunications Engineers (SCTE)-35 packet. A transcoder or other device in the system can identify one or more triggers associated with a content offering. In one embodiment, each trigger indicates that one or more advertisement avails occur in the content offering subsequent to, i.e., after, the one or more triggers.

A placement opportunity manager209can then determine a duration until at least one advertisement avail occurs or completes in the content offering at the subscriber device201. In one embodiment, the duration is the amount of time between the trigger being identified and the corresponding avail occurring or completing at the subscriber device. This duration can include latency due to the subscriber device requesting content, the content being delivered, and so forth.

An advertisement injector210operable with the placement opportunity manager209can then obtain at least one advertisement to insert in the at least one advertisement avail. In one or more embodiments, the advertisement is a targeted advertisement intended for a user or group of users having a common demographic, geography, or interest.

The advertisement injector210can then multiplex portions of the advertisement(s) with portions of the content offering occurring between the trigger and the advertisement avail. The multicast server208, which in one embodiment is an adaptive bit rate multicast server, can then deliver the portions of the advertisement to a plurality of subscriber devices. Where the advertisement is a targeted advertisement, each subscriber device of the plurality of subscriber devices may be associated with a subscriber having the common demographic, geography, or interest.

In one embodiment, this data is delivered as a multicast adaptive bit rate data stream. In one embodiment, the data stream is delivered such that all portions of the advertisement are delivered during the duration and prior to the advertisement avail occurring or completing in the subscriber device201. The subscriber device201caches these portions in local cache202and then inserts the advertisement into the avail when it occurs.

Embodiments of the disclosure advantageously provide just-in-time delivery of advertising that can be stored locally in a subscriber device201in a very small amount of memory. Rather than delivering numerous different advertisements for a variety of content offerings to a subscriber device201, which requires very large and costly amounts of memory, in one embodiment of the disclosure only advertising for a tuned service are delivered and cached.

Thus, for a ninety-second advertisement avail, the maximum memory requirement in the local cache202of the subscriber device201is an amount of storage for three thirty-second commercials. Where advertisement portions are delivered as they are consumed, the memory requirement is even less. This results in a tremendous memory savings in the local cache202of the subscriber device201compared to prior art systems. Unlike prior targeted advertising solutions, embodiments of the disclosure are suitable for small static memory devices and do not require subscriber device hard disks or other large storage devices.

Moreover, embodiments of the disclosure provide an advertiser with the ability to insert targeted advertising into preferred programming and at preferred time of day windows. Since advertisements can be delivered just in time, advertisers are assured that their advertisements are delivered during a particular broadcast, movie, or program. This is in contrast to prior art techniques of delivering advertising at night, for example, and inserting them into any number of shows the following day. With embodiments of the present disclosure, the context of for which content offering the advertisements are being cached is understood due to the fact that advertising is being delivered during that very content offering. Advantageously, this feature increases the targeting reach due to the fact that for many content offerings collective viewers share similar demographics, such as age group or interest. Accordingly, embodiments of the disclosure enable targeted advertisements to reach a larger target population in most advertising avails, further improving both the multicast transmission efficiency as well as the advertiser's reach.

Additionally, embodiments of the disclosure advantageously do not cause network bandwidth spikes during targeted advertising insertions. System service providers can manage advertising delivery to smooth network data demands by trickle feeding multiplexed advertising portions to subscriber devices with content portions across the duration defined between the trigger and the avail. Accordingly, the delivery of these advertisements in this manner increases overall network efficiency.

Turning now toFIG. 3, illustrated therein is a more detailed view of one explanatory content delivery system300configured in accordance with one or more embodiments of the disclosure. The content delivery system300includes a content provider311, a server structure312, one or more intermediate network servers313, an edge device203, and one or more subscriber devices201. The structure of the content delivery system300ofFIG. 3is explanatory only. Other configurations will readily be obvious to those of ordinary skill in the art having this disclosure.

In one embodiment, the server structure312includes a central server314that is operable with one or more other server structure devices. In this embodiment, the other server structure devices include a transcoder315, a packager316, a placement opportunity manager209, an advertisement injector210, a multicast controller317, and a multicast server208.

In one embodiment, the central server314is a content delivery management device comprising, but not limited to, one or more processors or processing units, a system memory, and one or more communication bus links coupling various system components including the one or more processors to the system memory. The system bus can take any number of possible bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.

The system memory of the central server314can be any of a variety of computer readable media. Such media can be any available media that is accessible by the central server314and includes both volatile and non-volatile media, removable and non-removable media. The system memory includes computer readable media in the form of volatile memory, such as random access memory (RAM), and/or non-volatile memory, such as read only memory (ROM). The system memory typically contains computer readable instructions and/or program modules such as operating systems and/or application software that are accessible to and/or are presently operated on by the central server314.

A content provider311delivers content in the form of one or more content offerings318to the server structure312. In one embodiment, the content offering318can comprise, for example a television program or movie, which has been encoded from a content provider feed319. The content offering318can be digitally compressed video content that can be demultiplexed and stored in a convenient format such as MPEG, MPEG 2, or MPEG 4. It will be clear to those of ordinary skill in the art having the benefit of this disclosure that other types of content could be used with the systems, methods, and devices described herein.

While only one content provider311and content provider feed319are shown for simplicity, in many embodiments the server structure312would have numerous content provider feeds from multiple content providers. The server structure312may also receive program content streaming from one or more video servers for delivery to the subscriber devices201as well.

The server structure312receives the content offering318through one or more switches at a transcoder315. The transcoder315facilitates receipt of the content offering318so that it can be stored in local memory at the server structure312for subsequent delivery to the one or more subscriber devices201.

In one embodiment, the transcoder315is operable to identify one or more triggers320,321,322,323,324,325associated with a content offering318. In one embodiment, each trigger320,321,322,323,324,325indicates that one or more advertisement avails326,327,328occur in the content offering318subsequent to the one or more triggers320,321,322,323,324,325.

The triggers320,321,322,323,324,325,140can take different forms. Illustrating by example, trigger320is content offering boundary, which is the beginning of the content offering318in this illustrative embodiment. Trigger323is an avail boundary, and more specifically the end of advertisement avail327in this illustrative embodiment. Trigger322comprises a predefined rule set applied to the content offering318. For example, the predefined rule set may indicate that three advertisement avails326,327,328should occur during a predefined time period, such as one hour, or during a particular content offering318. Trigger140represents a subscriber device201tuning to a channel, address, or resource locator of the multicast server208.

In one embodiment, the triggers320,321,322,323,324,325can comprise markers in the content offering318itself. For instance, triggers320,321are Society of Cable Telecommunications Engineers (SCTE)-35 cue packets placed within the content offering318. Trigger320may comprise, for example, an SCTE-35 cue packet in an MPEG-2 stream. While triggers320,321,322,323,324,325are some examples of triggers suitable for use with embodiments of the disclosure, others will readily be obvious to those of ordinary skill in the art having the benefit of this disclosure. For example, other triggers may include a Dual Tone Multi-Frequency (DTMF) tone sequence in a digital or analog content offering, a Gigabit PoE Injector (GPI) contact closure in a GPI relay from the equipment such as a satellite receiver, or via some other trigger.

Once the transcoder315identifies a trigger320,321,322,323,324,325indicating that one or more advertisement avails326,327,328occur within the content offering318, the transcoder315can alert the placement opportunity manager209that the triggers320,321,322,323,324,325have been identified. The placement opportunity manager209then estimates a duration123,330until an advertisement avail326,327following the trigger will occur in the content offering318at the subscriber device201. This duration123,330can include latencies in the content delivery system300, including content requests by the subscriber device201, delivery latency, and so forth.

In one or more embodiments, this duration123,330will be less than sixty minutes due to the fact that many programs are sixty minutes in length. Where, for example, the trigger322is the content boundary, the placement opportunity manager209can calculate the amount of time between the content boundary and when the next advertisement avail326will occur or complete in the subscriber device201. This amount of time can be inclusive of system latencies.

Where the trigger321is an SCTE-35 cue packet, the placement opportunity manager209can calculate the amount of time between the SCTE-35 cue packet and when the next advertisement avail327is likely to occur or complete in the subscriber device201. This duration123,330, in one embodiment, represents the amount of time within which an advertisement can be delivered to a subscriber device201so as to provide just-in-time delivery for insertion of the advertisement into the advertisement avail326,327,328.

In one embodiment, any of the central server314, transcoder315, placement opportunity manager209, or combinations thereof can then notify the advertisement injector210that one or more advertisements331are needed for a particular advertisement avail326,327,328. The advertisement injector210can be operable with, or can include, an advertisement selector to select or receive advertisements. In one embodiment, the central server314, transcoder315, the placement opportunity manager209, or combinations thereof sends an “advertisement needed” message, such as an SCTE-30 message to the advertisement injector210.

In one embodiment, when the advertisement injector210receives the “advertisement needed” message, it may determine which content offering318is being delivered to a particular subscriber device201. The advertisement injector210may use this information and/or other advertising information or schedules to select the proper advertisement(s)331.

The advertisement injector210may identify one or more advertisements331for insertion into any one advertisement avail326,327,328. For example, where the advertisement331is targeted for a specific geographic region, plurality of subscriber devices201, demographic, or other group, the advertisement injector210or its corresponding advertising selector can select an advertisement331as a function of the demographic factor common to each subscriber device of this plurality of subscriber devices201.

In one or more embodiments, the server structure312has stored therein data corresponding to demographics associated with subscribers using each subscriber device201. The server structure312also has knowledge of which subscriber devices201are currently receiving content from the edge device203. Accordingly, advertisement injector210in one or more embodiments can use this data to optimize advertisement selection such that targeted advertisements most appropriate for the current viewers are selected to provide additional functionality.

In one embodiment, the advertisement injector210only selects enough advertisements331to fill a single advertisement avail, e.g., advertisement avail326, to keep memory requirements in the subscriber device201to a minimum. For example, if advertisement avail326is a two-minute commercial break, the advertisement injector210may select four thirty-second advertisements.

Once the necessary advertisements331are selected, in one embodiment the advertisement injector210multiplexes portions332,333of the advertisement331with portions334,335of the content offering318for delivery to a subscriber device201during the duration330occurring between the trigger321and the corresponding advertisement avail328occurring or completing in the subscriber device201. The portions332,333of the advertisement331are then delivered to the subscriber device201from the multicast server208during the duration330so that they are available just in time to be inserted into the content offering318when the advertisement avail328occurs at the subscriber device201.

In one embodiment, the portions332,333of the advertisement331are delivered to the subscriber device201from the multicast server208using an adaptive bit rate protocol. While traditional multimedia delivery networks used a real time streaming protocol to stream video in which a user may employ simple commands at the subscriber device201to play, fast-forward, and rewind content, new streaming protocols have been developed to make media delivery across a network more efficient. One such protocol is one of the many hypertext transfer protocol adaptive bit rate streaming standards, such as the hypertext transfer protocol dynamic streaming protocol, the Smooth Streaming.sup.TM protocol, the MPEG-DASH protocol, or other adaptive bitrate streaming protocols.

In adaptive bit rate streaming systems, multiple files are created for a content offering318. Each file is encoded at different data rates, and is then divided into portions334,335that represent short “chunks” of the content offering318. Each portion334,335may represent two to ten seconds of the content offering318. The various segments are loaded at the multicast server208.

Embodiments of the disclosure contemplate that if the content delivery system300waits for an advertisement avail326,327,328to deliver an advertisement331directed to a particular group of subscriber devices201, the required bandwidth will increase dramatically during each advertisement avail326,327,328as shown above with reference toFIG. 1. To prevent this, in one embodiment the content delivery system300delivers, with the multicast server208operable with the advertisement injector210, the portions332,333of the advertisement331to a plurality of subscriber devices201as a multicast adaptive bit rate data stream131such that all portions332,333of the advertisement331are delivered during the duration between a trigger321and an advertisement avail328, and prior to the advertisement avail328occurring or completing at the subscriber device201.

For example, the multicast server208may insert up to a couple of minutes of advertising into content offerings per hour such that the advertising is delivered to the subscriber device201just before they needed for insertion into an advertisement avail328. Thus, in one embodiment the subscriber device would store in its local cache302between two to ten seconds and one to two minutes of advertising seconds of the advertisement avail327in a cache302that can be a small amount of RAM or flash memory. In one or more embodiments, this will be less than fifty megabytes of data for storage in the local cache302of the subscriber device201.

These portions332,333are trickled336to the cache302of the subscriber device201so that overall bandwidth increases minimally without the large spikes that occur with real time delivery. Embodiments of the disclosure therefore level bandwidth demand by spreading demand peaks out over time. With a very small increase in bandwidth across the duration over the nominal multicast rate the advertisements331are delivered, bandwidth demand peaks are removed, and only a small cache302in the client device is required to store advertising.

In one embodiment, along with the advertising, the multicast server208also delivers a cache notification message337that instructs the subscriber device201to store338the portions332,333of the advertisement in its cache302until the corresponding advertisement avail327occurs. In one embodiment, cache notification message337also instructs the subscriber device201to insert339the advertisement331into the content offering318when the advertisement avail327occurs.

As the advertisement331is being delivered during a duration330occurring between a trigger321and an advertisement avail328occurring at the subscriber device201, in one embodiment the cache notification message337also includes a cache policy340that identifies a minimum duration during which the portions332,333of the advertisement331are to be cached in the cache302of the subscriber device201.

It should be noted that while the discussion to this point refers to multiplexing portions332,333of an advertisement331with portions334,335of the content offering318and delivering that to a subscriber device201from a multicast server208for storage in a local cache302of the subscriber device201. However, the exact same process could be performed to multiplex portions332,333of an advertisement331with portions334,335of the content offering318and delivering that data stream131to the edge device203as well. In such an embodiment, the subscriber device201could request the advertisement331from the edge device203in real time. While this would cause the bandwidth to increase at the communication link341between the edge device203and the subscriber device201, it is contemplated that each edge device203serves far fewer subscriber devices than, for example, does the multicast server208. Accordingly, while there may still be bandwidth demand spikes in the system, they would be far smaller than where the multicast server208unicasts advertisements331to subscriber devices201.

It should also be noted that in one or more embodiments the content offering318can include one or more default advertisements342. These default advertisements342could be general in nature and suitable for presentation to all subscriber devices. Accordingly, in the event that delivery of the portions332,333of the targeted advertisement331failed to occur prior to an advertisement avail327occurring or completing in the subscriber device201, the subscriber device201could simply present the default advertisement342instead. When presenting default advertisements342, there is no need to do anything special to play them. To the contrary, they simply do not have a targeted advertisement inserted over the default advertisement342. Accordingly, the default advertisements342play normally.

Alternatively, upon failure of delivery of targeted advertisement331, the subscriber device201could fetch the advertisement as described inFIG. 1. Note that the default advertisement342can, but need not be pre-delivered with the content offering318. Thus, where bandwidth or quality of service or other factors precluded delivery the portions332,333of the advertisement331to the subscriber device201such that all portions332,333of the advertisement331are delivered during the duration330and prior to the advertisement avail327occurring, a subscriber would instead see a default advertisement342included with the content offering318. In one or more embodiments, the subscriber device201can report back to the advertisement injector210regarding whether a targeted advertisement or another advertisement, such as the default advertisement, was presented to a subscriber. Not only does this report provide an indication of system performance, but it also facilitates correct advertising billing and advertisement contract fulfillment.

Turning now toFIG. 4, illustrated therein is a signal flow diagram for one embodiment of a content delivery system in accordance with one or more embodiments of the disclosure. Initially, a content provider311delivers a content offering318to a transcoder315of a server structure312. The transcoder315receives a content offering318. In one embodiment, the content offering318comprises a video stream encoded into a digital content stream such as MPEG-2 by an encoder. The encoder may be located, for example, with the program creator, broadcast originator, content provider311, or service provider.

The transcoder315then identifies, in one embodiment, one or more triggers associated with the content offering318. In one embodiment, the content offering318has associated therewith one or more triggers (320,321), which can be in the form of SCTE-35 cue packets. In one embodiment each trigger indicates that one or more advertisement avails occur in the content offering318subsequent to the one or more triggers. By identifying the triggers, the transcoder315attempts to find the earliest point the remaining components of the system can make an advertising selection and delivery decision that delivers a selected advertisement to an edge device203, which can be a subscriber device or an origin server, with an adaptive bit rate multicast server208. Where an SCTE-35 cue packet serves as a trigger, the transcoder315can include an Event Signaling and Management (ESAM) interface to detect these triggers. As noted above, other triggers can be used as well.

Regardless of which triggers are used, when a trigger is identified, the transcoder315notifies402the placement opportunity manager209of this fact by forwarding a message to the placement opportunity manager. The placement opportunity manager209then determines403a duration until at least one advertisement avail occurs in the content offering318. In one embodiment, the placement opportunity manager209generates break marker information, such as a unique signal identifier, during this process. The duration and any other information associated with the advertisement avail is then communicated404back to the transcoder315in one or more embodiments. The signal flow ofFIG. 4thus illustrates one embodiment of identifying a trigger at an optimal point where the placement opportunity manager209is aware of an advertisement avail.

In one embodiment, the placement opportunity manager209, in addition to doing its normal work generating breaks in the content offering for each trigger, then communicates405a need for one or more advertisements to the advertisement injector210. In one embodiment, this communication comprises delivering an “advertisement needed” message407to the advertisement injector210. The advertisement injector210can then acknowledge408this request with a response.

In one embodiment, the advertisement injector210receives or has data indicating which subscriber devices are receiving the content offering318. For example, the advertisement injector210has data indicating how many subscriber devices have established sessions with the multicast server208due to the fact that each subscriber device201has an open session to a manifest manipulator operating at the server structure (312). The advertisement injector210additionally has data of the channel the content offering318is being delivered on, the identifier of the client device, and so forth so that an advertisement can be specifically selected for a particular user or a group of users sharing a common location, geography, demographic or other characteristic.

When the advertisement injector210receives the advertisement needed message407it may apply this information to select the proper advertisement. In one embodiment, the advertisement injector210then works with an advertising decision service, which is resident at the advertisement injector210, or is in communication with the advertisement injector210, to determine what advertisement is to be inserted into the advertisement avails of the content offering318. In one embodiment, this decision is based upon demographic information associated with the subscriber device to which the advertisement will be delivered.

The advertisement injector210may also apply one or more advertising schedules and/or other information as part of the process of selecting an advertisement(s). The advertisement injector210may identify one or several advertisements to be inserted into advertisement avails of the content offering318. The advertisement injector210then obtains409at least one advertisement for insertion into a corresponding advertisement avail.

The advertisement injector210can then notify415the multicast controller317with a pre-delivery advertisement notification where the various files are stored, including the content offering318and the advertisements. Said differently, once the decision of which advertisement is to be used has been made, the advertisement injector210sends a message to the multicast controller317. In one embodiment, the message is known as a pre-delivery advertisement notification that contains a list of advertisement uniform resource locators. The pre-delivery advertisement notification can also include a popularity ranking for the selected advertisement so that the multicast controller317can use this information to determine a number of edge devices203tuned in versus advertisement popularity so that it can decide whether to multicast the advertisement through the multicast server to the edge device203.

The multicast controller317can then decide416whether sufficient resource availability exists to deliver, with the adaptive bit rate multicast server208, the multiplexed portions of the advertisement to the edge device203such that all portions of the advertisement are delivered prior to the advertisement avail occurring or completing at a subscriber device (201) served by the edge device203. If so, the multicast controller317then tells the multicast server208to distribute a cache notification message417. Accordingly, a cache notification message417is delivered to the multicast server208that includes the file list, cache policy, and other information. In one embodiment, the cache notification message417includes a cache policy telling the edge device203how long to cache the selected advertisement. The multicast server208then delivers419the multicast adaptive bit rate stream to the edge device203as previously described.

Meanwhile, the transcoder315can deliver410a transcoded data stream420to the packager416. In one embodiment, the transcoded data stream420includes the marker information generated by the placement opportunity manager209that was delivered404to the transcoder315. In one embodiment, the packager316then interrogates411the placement opportunity manager for information for insertion into the manifest file that will accompany the adaptive bit rate streams that are delivered to the edge device203via the multimedia delivery network.

This information can include signal information, file location, advertisement avail information, advertisement delivery information, caching policies, and other information. In one embodiment, the cache notification message will include instructions for the edge device203to store portions of the advertisement until the at least one advertisement avail occurs. In one embodiment, the cache notification message can include an instruction instructing insertion of the advertisement cached in the edge device203into the content offering318when the at least one advertisement avail occurs. In one embodiment, the cache notification message can include a cache policy identifying a minimum duration during which the portions of the advertisement are to be cached in the edge device203.

The packager416can then create the manifest file. It can then publish413the manifest to the multimedia delivery network, which can include publication to one or more edge devices203. The multimedia delivery network and/or edge devices203can then acknowledge414the publication to the packager316.

Turning now toFIG. 5, the remainder of the content delivery process is shown. The subscriber device201sends501a get manifest request to the advertisement injector210. The advertisement injector210then sends502a corresponding get manifest request to the server structure312. The server structure312then delivers503the manifest to the advertisement injector210. The advertisement injector210then manipulates504the manifest by inserting uniform resource locators for selected advertisements. The advertisement injector210then returns505the manipulated manifest to the subscriber device201.

When an advertisement avail occurs at the subscriber device201, the subscriber device201looks for the advertisement portions in its local cache, which could be within the subscriber device201, located proximately with the subscriber device201, or in an edge device operable with the subscriber device201. If they are not there, the subscriber device201requests506the advertisement portions from the edge device203. This is in contrast to prior art systems where the advertisements would be requests directly from the server structure312. Since the advertisement portions have been multicast to the edge device203, they can be retrieved507locally rather than from the server structure312, thereby saving bandwidth. If for some reason the advertisement portions are not at the edge device203, they can be retrieved from the server structure312as a backup measure.

As shown and described inFIGS. 4-5, once the placement opportunity manager209detects one or more triggers, it makes an advertisement decision request to the advertisement injector210. The advertisement injector210can then apply various information, such as the number of clients watching a content offering318, the popularity of advertisements in a campaign system, or other information, and make a decision regarding which are the most important advertisements, which are the most popular advertisements, and so forth to determine which advertisements are trickled to the edge device203for caching.

Turning now toFIG. 6, illustrated therein is a method600, suitable for use in a multimedia delivery system for delivering multimedia content containing one or more advertisements. At step601, the method600identifies one or more triggers associated with a content offering. In one embodiment, each trigger indicates that one or more advertisement avails occur in the content offering subsequent to the one or more triggers.

In one embodiment, the triggers identified at step601comprise a content offering boundary. In another embodiment, the triggers identified at step601comprise a predefined rule set applied to the content offering. In one embodiment, the triggers comprise an SCTE-35 cue packet contained in the content offering received from a content provider.

At step602, the method600determines a duration until at least one advertisement avail occurs at a subscriber device in the content offering. This duration can include system latencies such as the amount of time it takes the subscriber device to request the content, delivery times, and so forth. At step603, the method600obtains at least one advertisement to insert in the at least one advertisement avail.

At step604, the method600selects at least one advertisement. In one embodiment, this selection is based upon a function of a demographic factor common to each subscriber device. At step605, the method600multiplexes portions of the selected advertisement with portions of the content offering occurring between the detected trigger(s) and the corresponding advertisement avail(s).

At step606, the method600delivers the portions of the advertisement to a plurality of subscriber devices. In one embodiment, these portions are delivered as a multicast adaptive bit rate data stream. In one embodiment, the delivery occurring at step606occurs such that all portions of the advertisement are delivered during the determined duration and prior to the advertisement avail occurring or being completed at the subscriber device.

At step607, the method600delivers at least cache notification message. In one embodiment, the cache notification message instructs that the portions of the advertisement are to be cached in edge devices until the advertisement avail occurs. In one embodiment, the cache notification message sent at step607further instructs insertion of the advertisement cached in the edge device into the content offering when the at least one advertisement avail occurs. Accordingly, the edge device can insert the trickled advertisement portions into the advertising avail when it occurs so that a subscriber sees the advertisement.

As shown and described, embodiments of the disclosure deliver small amounts of advertising, such as one to two minutes, that are cached in a subscriber device or edge server, and that require very little cache memory. A provider of a network can manage this advertising delivery to smooth network bandwidth demand by trickle feeding advertising so that it is delivered just in time for an advertising avail opportunity. The delivery of these advertisements can be used to fill in unused bandwidth between network capacity peaks, thereby increasing network efficiency.

In one embodiment, triggers are identified to commence the advertisement delivery. For example, where the trigger is a content boundary, delivery of the advertisement could begin just after subscriber “tunes” to the content offering or program. If the advertisement avail occurs immediately after the subscriber joins the program, and the selected advertisement has not arrived, a default advertisement in the content offering could be used. The trickled advertisement could be used for subsequent advertising avails if the business rules permit that usage.

In one or more embodiments, personalized advertising can be delivered to subscribers independent of programming content. The subscriber device, to keep memory requirements low, can cache only enough advertising for a single avail, overwriting old advertisements with new advertisements as they are received. While the subscriber is tuned to the content offering, precached targeted advertisements can be inserted at the next advertisement avail. The multicast server can then delivering targeted advertisements, with the subscriber device or edge device always keeping one to two minutes, approximately fifty megabytes or so, of advertisements cached for upcoming avails.