Embodiments of the invention relate to content delivery systems that provide content with advertisements spliced into the content.
Aspects of the present invention are drawn to a system for use with a source content provider, a first database and a second database. The source content provider is able to provide source content data having a placement opportunity start identifier for an insert position for primary advertisement data and a placement opportunity stop identifier for an end position for the primary advertisement data. The first database has first advertisement data and second advertisement data, wherein one of the first advertisement data and the second advertisement data is to be inserted between the insert position and the end position. The first advertisement data has a second placement opportunity start identifier for a second insert position for nested advertisement data and a second placement opportunity stop identifier for a second end position for the nested advertisement data. The second database has the third advertisement data to be inserted between the second insert position and the second end position. The system includes a communication component, an advertisement management component, a nested advertisement determining component, a splicer and a manifest delivery controller. The communication component is able to receive the source content data. The advertisement management component is able to obtain one of the first advertisement data and the second advertisement data as obtained advertisement data. The nested advertisement determining component is able to determine whether the obtained advertisement data includes the second placement opportunity start identifier and the second placement opportunity stop identifier. The manifest delivery controller is able to assemble a manifest. Wherein when the nested advertisement determining component determines that the obtained advertisement data includes the second placement opportunity start identifier and the second placement opportunity stop identifier, the advertisement management component is further operable to obtain the third advertisement data as nested advertisement data. The splicer is able to generate output data comprising the source content data, the first advertisement data, the third advertisement data and the manifest. Wherein the manifest includes information indicating a first starting point of the first advertisement data and second starting point of the third advertisement data within the output data.
The accompanying drawings, which are incorporated in and form a part of the specification, illustrate example embodiments and, together with the description, serve to explain the principles of the invention. In the drawings:
A source content provider may want to deliver localized content direct to its subscribers. The content is created as a set of recorded files captured from different sources, i.e. video data, news data, sports data, traffic data, etc. These files are then spliced into custom manifests by a manifest delivery controller (MDC), which treats each piece of content as a new advertisement request. However, in order to monetize the content, source content provider may want to add advertisements to the content. This would effectively be adding advertisements to advertisements, since each piece of content is treated like an advertisement from the MDC's perspective. However, advertisements do not have advertisements, by the very nature of an advertisement. An advertisement is atomic in the sense that it plays out in its entirety.
A prior art system for providing content with advertisements will now be described in greater detail with reference to
As shown in the figure, content delivery system 100 includes a source content provider 102, a content service provider 104, an advertisement server 106, a network 108 and a plurality of end user devices 110.
Source content provider 102 is arranged to communicate with content service provider 104 via a communication channel 112. Content service provider 104 is additionally arranged to communicate with advertisement server 106 via a communication channel 114 and to communicate with the plurality of end user devices 110 via network 108 and a communication channel 116.
In operation, source content provider 102 provides source content to content service provider 104. The source content may be, for example, a movie or show that will ultimately be provided to the plurality of end user devices 110.
When content service provider 104 receives the source content, content service provider 104 may insert advertisements. This will be described in greater detail with reference to
As shown in
In operation, communication component 202 receives source content 218 via communication channel 112. In particular, receiving component 212 receives source content 218 via communication channel 112. This will be described in greater detail with reference to
As shown in the figure, stream 300 includes a source media portion 302, an advertisement placement opportunity start identifier 304, an advertisement space 306, an advertisement placement opportunity stop identifier 308 and a source media portion 310.
Source media portion 302 and source media portion 310 include data associated with the content to be delivered to the plurality of end user devices 110. This may be for example audio/video data associated with a movie or show.
Advertisement placement opportunity start identifier 304 is a marker that will be used by splicer 208 to identify the start location within stream 300 for which advertisement data may be inserted. Similarly, advertisement placement opportunity stop identifier 308 is a marker that will be used by splicer 208 to identify the ending location within stream 300 for which advertisement data may be inserted.
Advertisement space 306 is space within stream 300 between advertisement placement opportunity start identifier 304 and advertisement placement opportunity stop identifier 308 into which advertisement data may be inserted.
Returning to
Returning to
Returning to
As shown in the figure, stream 300 includes source media portion 302, advertisement placement opportunity start identifier 304, an advertisement portion 312, advertisement placement opportunity stop identifier 308 and source media portion 310.
As shown in
Returning to
Encoder 210 then generates an output stream 222 in the predetermined output encoding scheme, such as for example MPEG or ABR, wherein output stream 222 includes source media portion, advertisement portion 312, source media portion 310 and the newly generated manifest. Encoder 210 provides output stream 222 to communication component 202.
Receiving component 212 receives output stream 222 from encoder 210 and provides output stream 222 to transmitting component 214. Transmitting component 214 than provides an output signal 224 based on output stream 222. In particular, transmitting component 214 may provide further processing to output stream 222, such as for example filtering and amplifying, to generate output signal 224.
Output signal 224 is then provided to the plurality of end user devices 110 by way of communication channel 116 and network 108. In this example embodiment, output signal 224 includes a movie with an advertisement inserted therein.
In accordance with aspects of the present disclosure, advertisements are permitted to contain advertisements similar to media content, wherein a marker allows advertisements to play advertisements.
As mentioned above, prior art systems treat advertisements as atomic meaning there are no further decisions taken on the advertisement content. However, a system and method in accordance with aspects of the present disclosure opens up advertisements to decisions for additional use cases.
As opposed to treating advertisements as an asset to be inserted into other media content, aspects of the present disclosure include markers in advertisements so that their content can be inserted into other advertisements.
Consider, for example, a linear TV channel stream that contains Society of Cable Telecommunications Engineers (SCTE-35) markers indicating advertisement break locations. Typically, advertisements are spliced into the moving pictures experts group (MPEG) transport stream (TS) or adaptive bitrate (ABR) manifests and that advertisement insertion is complete. However, in accordance with aspects of the present disclosure, the advertisement media also contains SCTE-35 markers that need to be carried into the outbound stream/manifests as well. These splice points can then be used downstream by secondary level advertisement insertion systems to replace all or part of the primary level advertisement insertion.
Consider, for example, the use of national advertisements versus local/targeted advertisements. Suppose that a car manufacturer wants to insert nation-wide advertisements (content) into linear streams via HyperText Transfer Protocol Live Stream (HLS) markers but then also allow local advertisements (HLS Manifests with SCTE-35 annotations) to be stitched into the out bound manifests. This will enable downstream service providers to overlay a portion of the nation-wide advertisements from the car manufacturer with their own local sourced advertisements from local car dealerships. This carry through of SCTE-35 markers/ABR (HLS) annotations enable a secondary layer of advertisement insertions. In short, the present disclosure provides an advertisement splice point within advertisement media.
An example system and method for delivering content with nested advertisements in accordance with aspects of the present disclosure will now be described in greater detail with reference to
As shown in the figure, content delivery system 400 includes source content provider 102, a content service provider 402, an advertisement server 404, network 108 and plurality of end user devices 110.
Source content provider 102 is arranged to communicate with content service provider 402 via communication channel 112. Content service provider 402 is additionally arranged to communicate with advertisement server 404 via communication channel 114 and to communicate with the plurality of end user devices 110 via network 108 and communication channel 116.
As illustrated in the figure, method 500 starts (S502) and source content is received (S504). In an example embodiment, receiving component 212 receives the source content.
For example, returning to
As shown in
In this example, communication component 202, decoder 204, AMC 602, splicer 208 and encoder 210 are illustrated as individual devices. However, in some embodiments, at least two of communication component 202, decoder 204, AMC 602, splicer 208 and encoder 210 may be combined as a unitary device. Further, in some embodiments, at least one of communication component 202, decoder 204, AMC 602, splicer 208 and encoder 210 may be implemented as a computer having tangible computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such tangible computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. Non-limiting examples of tangible computer-readable media include physical storage and/or memory media such as RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. For information transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer may properly view the connection as a computer-readable medium. Thus, any such connection may be properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.
Example tangible computer-readable media may be coupled to a processor such that the processor may read information from, and write information to the tangible computer-readable media. In the alternative, the tangible computer-readable media may be integral to the processor. The processor and the tangible computer-readable media may reside in an application specific integrated circuit (“ASIC”). In the alternative, the processor and the tangible computer-readable media may reside as discrete components.
Example tangible computer-readable media may be also be coupled to systems, non-limiting examples of which include a computer system/server, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
Such a computer system/server may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Further, such a computer system/server may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
Components of an example computer system/server may include, but are not limited to, one or more processors or processing units, a system memory, and a bus that couples various system components including the system memory to the processor.
The bus represents one or more of any of several types of 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. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
A program/utility, having a set (at least one) of program modules, may be stored in the memory by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. The program modules generally carry out the functions and/or methodologies of various embodiments of the application as described herein.
The OSI model includes seven independent protocol layers: (1) Layer 1, the physical layer, which defines electrical and physical specifications for devices, and the relationship between a device and a transmission medium, such as a copper or fiber optical cable; (2) Layer 2, the data link layer, which provides the functional and procedural means for the transfer of data between network entities and the detection and correction of errors that may occur in the physical layer; (3) Layer 3, the network layer, which provides the functional and procedural means for transferring variable length data sequences from a source host on one network to a destination host on a different network (in contrast to the data link layer which connects hosts within the same network), and performs network routing functions and sometimes fragmentation and reassembly; (4) Layer 4, the transport layer, which provides transparent transfer of data between end users, providing reliable data transfer services to the upper layers by controlling the reliability of a given link through flow control, segmentation/desegmentation, and error control; (5) Layer 5, the session layer, which controls the connections (interchanges) between computers, establishing, managing and terminating the connections between the local and remote applications; (6) Layer 6, the presentation layer, which establishes context between application layer entities, by which the higher-layer entities may use different syntax and semantics when the presentation service provides a mapping between them; and (7) Layer 7, the application layer, which interacts directly with the software applications that implement the communicating component.
Generic Stream Encapsulation (GSE) provides a data link layer protocol, which facilitates the transmission of data from packet oriented protocols (e.g., Internet protocol or IP) on top of a unidirectional physical layer protocol (e.g., DVB-S2, DVB-T2 and DVB-C2). GSE provides functions/characteristics, such as support for multi-protocol encapsulation (e.g., IPv4, IPv6, MPEG, ATM, Ethernet, VLANs, etc.), transparency to network layer functions (e.g., IP encryption and IP header compression), and support of several addressing modes, a mechanism for fragmenting IP datagrams or other network layer packets over baseband frames, and support for hardware and software filtering.
In a layered system, a unit of data that is specified in a protocol of a given layer (e.g., a “packet” at the network layer), and which includes protocol-control information and possibly user data of that layer, is commonly referred to as a “protocol data unit” or PDU. At the network layer, data is formatted into data packets (e.g., IP datagrams, Ethernet Frames, or other network layer packets).
In operation, communication component 202 receives source content 606 via communication channel 112. In particular, receiving component 212 receives source content 606 via communication channel 112.
Returning to
Returning to
Returning to
For example, returning to
MDC 216 creates a manifest for source content 606. Encoder 210 then generates an output stream 608 in the predetermined output encoding scheme, such as for example MPEG or ABR, wherein output stream 608 includes source content and the newly generated manifest. Encoder 210 provides output stream 608 to communication component 202.
Receiving component 212 receives output stream 608 from encoder 210 and provides output stream 608 to transmitting component 214. Transmitting component 214 than provides an output signal 610 based on output stream 608. In particular, transmitting component 214 may provide further processing to output stream 608, such as for example filtering and amplifying, to generate output signal 610.
Output signal 610 is then provided to the plurality of end user devices 110 by way of communication channel 116 and network 108. In this example embodiment, output signal 610 includes just a movie without any advertisement inserted therein.
Returning to
Returning to
In this example embodiment, AMC 602 operates in some situations in a manner similar to AMC 206 discussed above with reference to
Returning to
As shown in the figure, advertisement server 404 includes a primary advertisement database 702 and a secondary advertisement database 704.
In this example, primary advertisement database 702 and a secondary advertisement database 704 are illustrated as individual devices. However, in some embodiments, primary advertisement database 702 and secondary advertisement database 704 may be combined as a unitary device. Further, in some embodiments, at least one of primary advertisement database 702 and secondary advertisement database 704 may be implemented as a computer having tangible computer-readable media for carrying or having computer-executable instructions or data structures stored thereon.
Primary advertisement database 702 includes a plurality of advertisements for insertion into source content. Some advertisements in advertisement database 702 are conventional and similar in form to those discussed above with reference to prior art systems. Namely, such conventional advertisements atomic in the sense that they are intended to be played out in their respective entireties.
However, database 702 includes other, nested, advertisements that differ from the conventional advertisements. In particular, the nested advertisements include their own advertisement media portion, a nested advertisement placement opportunity start identifier, a nested advertisement space, a nested advertisement placement opportunity stop identifier and another advertisement media portion. Therefore, these nested advertisements are structured so as to have additional, nested, advertisements inserted therein, in accordance with aspects of this disclosure.
Returning to
Returning to
For example, returning to
Returning to
For example, returning to
Returning to
For example, returning to
Encoder 210 then generates output stream 222 in the predetermined output encoding scheme. Encoder 210 provides output stream 222 to communication component 202.
Receiving component 212 receives output stream 222 from encoder 210 and provides output stream 222 to transmitting component 214. Transmitting component 214 than provides an output signal 224 based on output stream 222. Output signal 224 is then provided to the plurality of end user devices 110 by way of communication channel 116 and network 108.
Returning to
If it is determined that a secondary advertisement is required (Y at S510), then secondary advertisement data is obtained (S514). In an example embodiment, AMC 602 obtains the secondary advertisement data.
For example, returning to
In such a situation, NAD component 604 would detect nested advertisement placement opportunity start identifier, a nested advertisement space, a nested advertisement placement opportunity stop identifier and instruct AMC 602 to access secondary advertisement database 704 in advertisement server 404 to obtain a secondary advertisement.
AMC 602 will then access secondary advertisement database 704, as shown in
Returning to
For example, returning to
Again, as shown in the
Advertisement placement opportunity start identifier 304 is a marker that will be used by splicer 208 to identify the start location within stream 300 for which advertisement data may be inserted. Similarly, advertisement placement opportunity stop identifier 308 is a marker that will be used by splicer 208 to identify the ending location within stream 300 for which advertisement data may be inserted.
Splicer 208 then inserts secondary advertisement data 616 (as advertisement data 220 in
However, in this situation, secondary advertisement data 616 includes a nested advertisement placement opportunity start identifier, a nested advertisement space, a nested advertisement placement opportunity stop identifier. This will be described with reference to
As shown in the figure, stream 800 of content includes source media portion 302, advertisement placement opportunity start identifier 304, a primary advertisement portion 802, a nested advertisement placement opportunity start identifier 808, a nested advertisement space 806, a nested advertisement placement opportunity stop identifier 810, a primary advertisement portion 804, advertisement placement opportunity stop identifier 308 and source media portion 310.
In this example, primary advertisement portion 802 and primary advertisement portion 804 correspond to advertisement data 614.
Nested advertisement placement opportunity start identifier 808 is a marker that will be used by splicer 208 to identify the start location within advertisement data 614 for which secondary advertisement data 616 may be inserted. Similarly, nested advertisement placement opportunity stop identifier 810 is a marker that will be used by splicer 208 to identify the ending location within advertisement data 614 for which secondary advertisement data 616 may be inserted.
Nested advertisement space 806 is space within advertisement data 614 between nested advertisement placement opportunity start identifier 808 and nested advertisement placement opportunity stop identifier 810 into which secondary advertisement data 616 may be inserted.
After splicer 208 has inserted secondary advertisement data 616 into advertisement data 614, which is inserted into stream 300, the modified stream is provided to encoder 210. MDC 216 generates a manifest that identifies that locations of each “chunk” of data, which in this example, as shown in
Returning to
In the non-limiting example embodiments discussed above, a single nested advertisement is inserted into a primary advertisement. However, it should be noted that any number of levels of nesting of advertisements may be implemented in accordance with aspects of the present invention.
In the non-limiting example embodiments discussed above, a single nested advertisement is inserted into a primary advertisement so as to have portions of the primary advertisement on both sides of the nested advertisement. However, it should be noted that the nested advertisement may be disposed at the beginning or the end of the primary advertisement, in accordance with aspects of the present invention.
In the non-limiting example embodiments discussed above, an advertisement is used for purposes of discussion only. It should be noted that any type of content may be nested within any other type of content, in accordance with aspects of the present invention.
The foregoing description of various preferred embodiments have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The example embodiments, as described above, were chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
The present application claims priority from U.S. Provisional Application No. 62/670,232 filed May 11, 2018, the entire disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62670232 | May 2018 | US |