System and method of server-side ad insertion for over the top (OTT) streams
First Claim
1. A scalable, multi-platform, seamless Server-side Ad-Insertion (SSAI) system with a single stream input and output having (a) a Stream Playout (202), (b) an Advertisement Detector and Playlist Instrumenter (ADPI) (204), (c) a Load Switch (210), (d) an Advertisement Replacement System (ARS) (211), (e) an Advertisement Server (212), (f) a plurality of users (216a-c), and (g) one or more third parties (215) wherein:
- a) an adaptive input stream (201) having content and advertisement triggers is sent;
b) the ADPI (204) puts out Advertisement Break position and duration (206) for the ARS (211) and a Common Instrumented Playlist (CIP) (205) for the users (216a-c) wherein;
i) the CIP (205) contains a list of URLs which includes content URLs, Beacon redirections (208) and ServeAd redirections (209);
ii) the Beacon redirections (208) is added periodically in the CIP (205) so that the users often reach out to the ARS (211) to mark presence of the users;
iii) the ServeAd redirections are added to the ARS (211) only during an advertisement break so that the ARS (211) can replace in-stream advertisements;
iv) the ADPI (204) looks for different types of advertisement cues in input manifest and Content Segments (203), and sends detected cues to the Advertisement Replacement System (ARS) (211) as the Advertisement Break position and duration (206);
v) the Advertisement Break position and duration (206) includes (a) Media sequence, (b) Presentation Timestamp (PTS) in Media segment where the advertisement Audio/Video (A/V) begins or ends, (c) duration, and (d) cue type; and
vi) the ADPI (204) chops detected advertisements into constant duration segments and add a matching number of ServeAd redirections in the CIP (205) with URL to a chopped segment as URL parameter, thus gives the flexibility to replace any detected advertisement with multiple combinations of unrelated advertisements;
c) the ADPI (204) and ARS (211) are load-balanced by the Load Switch (210) when they need to scale according to user-demand such that;
i) during the scaling process, the ARS (211) cannot serve the replacements or track users;
ii) when the ARS (211) starts scaling, it sends a signal to the ADPI (204) asking the ADPI (204) not to add the Beacons (208) or ServeAds redirections (209) in the CIP (205) for the duration of scaling; and
iii) post scaling the ARS (211) informs the ADPI (204) to start adding the Beacons (208) or ServeAd redirections (209) again;
d) the ARS (211) communicates with the Advertisement Server (212) to enable fetching advertisements (213) for every user and reports successful advertisement playback (214) wherein;
i) the ARS (211) receives periodic Beacon redirections (208) from the plurality of users (216a-c) as the users play the CIP (205);
ii) the ARS (211) tracks the users based on IP Address, User-Agent, Cookie or any other parameter made available, thus the ARS (211) knows active users playing the CIP (205) all the time;
iii) for each active user, for every break information (206) received from the ADPI (204), the ARS (211) requests advertisements (213) from the Advertisement Server (212);
iv) the Advertisement Server (212) responds with an acknowledgment message, said response includes an advertisement, if available with the Advertisement Server (212);
v) request Fetched advertisements (213) parameters sent to the Advertisement Server (212) includes duration, unique user identifier, IP Address and User-Agent representing the user request sent for;
vi) when the users reach out to the ARS (211) during the ServeAd redirections (209), said ARS (211) serves them the Fetched advertisements (213);
vii) the ARS (211) redirects users to replace advertisement segment if fetched, else use chopped original advertisement segments; and
viii) the ARS (211) reports Quartiles (214) for all users and all breaks, once the segment is downloaded by the user'"'"'s player;
e) a plurality of users (216a-c) on a plurality of devices and platforms communicate with the ARS (211) such that;
i) an output stream (207) sends the periodic Beacon redirections (208) to the ARS (211) for tracking the active users and sends the ServeAd redirections (209) that facilitates serving different advertisement per user to the ARS (211) for every segment of a detected advertisement;
ii) the user'"'"'s player fetches the unmodified Content Segments (203) from the Stream P layout (202);
iii) the user'"'"'s player requests advertisement segment as per the CIP (205) from the ARS (211) based on the ServeAd redirections (209); and
f) third parties (215) are Stream Playout and Advertisement Server(s).
1 Assignment
0 Petitions
Accused Products
Abstract
A scalable, multi-platform, seamless Server-side Ad-Insertion system and method with a single stream input and output having an Advertisement Detector and Playlist Instrumenter (ADPI) which puts out Advertisement Break position and duration for an Advertisement Replacement System (ARS) and a Common Instrumented Playlist (CIP) for the users, a Load Switch to balance the ADPI and ARS loads when they need to scale according to user-demand, and a plurality of users on a plurality of devices and platforms communicating with the ARS. The ARS communicates with the Advertisement Server to enable fetching advertisements for every user and reports successful advertisement playback. The CIP contains a list of URLs having Beacon redirections which are added periodically to indicate user presence to the ARS and content URLs. ServeAd redirections is added to the ARS only during advertisement break so that ARS can replace in-stream advertisements.
18 Citations
13 Claims
-
1. A scalable, multi-platform, seamless Server-side Ad-Insertion (SSAI) system with a single stream input and output having (a) a Stream Playout (202), (b) an Advertisement Detector and Playlist Instrumenter (ADPI) (204), (c) a Load Switch (210), (d) an Advertisement Replacement System (ARS) (211), (e) an Advertisement Server (212), (f) a plurality of users (216a-c), and (g) one or more third parties (215) wherein:
-
a) an adaptive input stream (201) having content and advertisement triggers is sent; b) the ADPI (204) puts out Advertisement Break position and duration (206) for the ARS (211) and a Common Instrumented Playlist (CIP) (205) for the users (216a-c) wherein; i) the CIP (205) contains a list of URLs which includes content URLs, Beacon redirections (208) and ServeAd redirections (209); ii) the Beacon redirections (208) is added periodically in the CIP (205) so that the users often reach out to the ARS (211) to mark presence of the users; iii) the ServeAd redirections are added to the ARS (211) only during an advertisement break so that the ARS (211) can replace in-stream advertisements; iv) the ADPI (204) looks for different types of advertisement cues in input manifest and Content Segments (203), and sends detected cues to the Advertisement Replacement System (ARS) (211) as the Advertisement Break position and duration (206); v) the Advertisement Break position and duration (206) includes (a) Media sequence, (b) Presentation Timestamp (PTS) in Media segment where the advertisement Audio/Video (A/V) begins or ends, (c) duration, and (d) cue type; and vi) the ADPI (204) chops detected advertisements into constant duration segments and add a matching number of ServeAd redirections in the CIP (205) with URL to a chopped segment as URL parameter, thus gives the flexibility to replace any detected advertisement with multiple combinations of unrelated advertisements; c) the ADPI (204) and ARS (211) are load-balanced by the Load Switch (210) when they need to scale according to user-demand such that; i) during the scaling process, the ARS (211) cannot serve the replacements or track users; ii) when the ARS (211) starts scaling, it sends a signal to the ADPI (204) asking the ADPI (204) not to add the Beacons (208) or ServeAds redirections (209) in the CIP (205) for the duration of scaling; and iii) post scaling the ARS (211) informs the ADPI (204) to start adding the Beacons (208) or ServeAd redirections (209) again; d) the ARS (211) communicates with the Advertisement Server (212) to enable fetching advertisements (213) for every user and reports successful advertisement playback (214) wherein; i) the ARS (211) receives periodic Beacon redirections (208) from the plurality of users (216a-c) as the users play the CIP (205); ii) the ARS (211) tracks the users based on IP Address, User-Agent, Cookie or any other parameter made available, thus the ARS (211) knows active users playing the CIP (205) all the time; iii) for each active user, for every break information (206) received from the ADPI (204), the ARS (211) requests advertisements (213) from the Advertisement Server (212); iv) the Advertisement Server (212) responds with an acknowledgment message, said response includes an advertisement, if available with the Advertisement Server (212); v) request Fetched advertisements (213) parameters sent to the Advertisement Server (212) includes duration, unique user identifier, IP Address and User-Agent representing the user request sent for; vi) when the users reach out to the ARS (211) during the ServeAd redirections (209), said ARS (211) serves them the Fetched advertisements (213); vii) the ARS (211) redirects users to replace advertisement segment if fetched, else use chopped original advertisement segments; and viii) the ARS (211) reports Quartiles (214) for all users and all breaks, once the segment is downloaded by the user'"'"'s player; e) a plurality of users (216a-c) on a plurality of devices and platforms communicate with the ARS (211) such that; i) an output stream (207) sends the periodic Beacon redirections (208) to the ARS (211) for tracking the active users and sends the ServeAd redirections (209) that facilitates serving different advertisement per user to the ARS (211) for every segment of a detected advertisement; ii) the user'"'"'s player fetches the unmodified Content Segments (203) from the Stream P layout (202); iii) the user'"'"'s player requests advertisement segment as per the CIP (205) from the ARS (211) based on the ServeAd redirections (209); and f) third parties (215) are Stream Playout and Advertisement Server(s). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A scalable, multi-platform, seamless Server-side Ad-Insertion (SSAI) method with a single stream input and output having (a) Stream Playout (600), (b) a Stream Receiver, Parser and Decoder (602), (c) a plurality of users (605), (d) a Cue Detector (606), (e) a Break Aggregator (608), (f) a Boundary Annealer and Segmenter (610), (g) a Segment Store (611), (h) a Playlist Builder and Server (613), (i) a Load Switch (615), (j) a User Tracker Server (UTS) (616), (k) a Replacement Advertisement Builder (RAB) (619), (I) an Advertisement Transcoder (620), (m) a Replacement Content Server (RCS) (622), (n) an Advertisement Server (625), and (o) a Quartile Reporter (626), comprising the steps of:
-
a) advertisement Detection and Playlist Instrumentation (ADPI) (650) further comprising the steps of; i) starting the process with the Stream Receiver, Parser and Decoder (602) taking an authenticated input stream (601) from the Stream P layout (600); ii) handling authentication and authorization schemes as applicable by the Stream Receiver and passing over a playlist variant stream to the Parser for parsing and downloading each segment; iii) decrypting the content by the Decoder if the adaptive input stream (601) is DRM protected; iv) receiving the stream segment along with header information (603) by the Cue Detector (606) and looking for advertisement cues in headers or in Content Segments (604) and passing the cue information to the Break Aggregator (608) for conveying the break information (607) in the following format, {Splice PTS, Break Type, Media Index, duration wherein; A) splice PTS indicates precise Presentation Time Stamp (PTS) where content is switched to an advertisement, the PTS is a reference to audio and video frame where the content has stopped, and an advertisement started; B) break Type indicates start or end of an Advertisement Break; C) media Index is segment number in a variant playlist, where change was noticed; D) duration is not always available more so for Live input streams {0x12345678, begin, 48}, {0x5aibaba, end, 53} which means advertisement break started at splice PTS of 0x12345678 in segment #48, ended at 0x5aibaba in segment 53; and E) media index, PTS values are maintained cross-referenceable across playlist variants; v) aggregating (609) smaller breaks into larger breaks by the Break Aggregator (608) to facilitate larger choice for a replacement, also breaking very large advertisement breaks into reasonable size chunks typically a multiple of 5 seconds, often 5, 10, 15, 20 or 30 seconds; vi) re-encoding a portion of the content by the Boundary Annealer in the Boundary Annealer and Segmenter (610) when the content-advertisement boundary is within a segment and serving them separately; vii) chopping media segments into smaller chunks by a Segmenter present within the Boundary Annealer and Segmenter (610) and storing them in the Segment Store (611) and serving, thus imparting higher flexibility during advertisement replacement; and viii) the Playlist Builder and Server (613) builds output playlist (614) with periodic redirections to the UTS (616) called Beacons, these are used to track users, said output playlist (614) also includes redirections to the RCS (622) only during advertisement break with URL parameters referring to chopped input advertisement which are stored in the Segment Store (611) called ServeAd redirections; b) advertisement Replacement (ARS) (660) further comprising the steps of; i) playing the output playlist (614) by the end-users in playing devices (605), said output playlist (614) comprises periodic redirections in the form of Beacon redirections (617) which is utilized by the User Tracker Server (UTS) (616) for tracking users and ServeAd redirections (624) that helps the Replacement Content Server (RCS) (622) for replacing advertisement segments where the output playlist (614) is the communication between the users and the ADPI (650); ii) conveying the Advertisement Break position and duration (618) every time to the Replacement Advertisement Builder (RAB) (619) by the Playlist Builder and Server (613), the format is like that between the Cue Detector (606) and Break Aggregator (608) iii) communicating the aggregated breaks to the Advertisement Replacement System (RCS) (660) by the Playlist Builder and Server (613); iv) receiving a list of active users (630) by the RAB (619) from the UTS (616), and Fetching advertisements (627) for all active users from the Advertisement Server (625); v) transcoding the received advertisements (621) with the help of the Advertisement Transcoder (620); vi) maintaining a mapping of replacement advertisement per active user, per detected advertisement segment (623) in the RAB (619) which is presented by the RCS (622) based on the ServeAd redirections (624); and vii) reporting Quartiles (629) to the Quartile Reporter (626) by the RCS (622), once replacement segment is served for downloaded advertisement segment with reporting URL (628), this is done for all Quartiles for all the replacement advertisements, for all breaks, and for all users; c) load Balancing wherein the Load Switch (615) commanding the Playlist Builder and Server (613) if there is overloading in the Advertisement Replacement System (ARS) (660), stopping to insert Beacons and ServeAds into the playlist further comprising the steps of; i) reconfiguring the ARS (660) while the load is reduced or when the ARS (660) is scaled for handling a higher load; and ii) instructing the Playlist Builder and Server (613) for inserting ServeAds and Beacons again. - View Dependent Claims (10, 11, 12, 13)
-
Specification