# US 10,373,196 B2 · Method and system for ad insertion in over-the-top live media delivery

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,373,196 B2
- Document ID: US10373196B2
- Status: Granted
- Kind: B2
- Application number: 14/168,734
- Filed: 2014-01-30
- Published: 2014-05-29
- Granted: 2019-08-06
- Earliest claimed: 2012-06-28
- Assignees: Ericsson Inc.
- Applicants: Ericsson AB
- Inventors: Kevin J. Ma; Robert Hickey; Raj Nair; Paul Tweedale; Daniel Biagini; Jianguo Xu; Prabhudev Navali
- Web page: https://patentgrep.com/patent/US10373196B2

## CPC

- G06Q 30/0251: Targeted advertisements
- G06Q 30/0277: {Online advertisement}
- H04L 65/612: for unicast
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04N 21/26603: {for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques}
- H04N 21/2668: Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles {(information retrieval from the Internet by querying with filtering and personalisation G06F16/9535; arrangements for replacing or switching information during the broadcast H04H20/10; push services over packet-switching network H04L12/1859; adaptation of message content in packet-switching networks H04L51/063)}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/458: Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules {; time-related management operations (arrangements for replacing or switching information during the broadcast or during the distribution H04H20/10)}
- H04N 21/462: Content or additional data management e.g. creating a master electronic programme guide from data received from the Internet and a Head-end or controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/812: {involving advertisement data (advertising per se G06Q30/02)}
- H04N 21/8547: involving timestamps for synchronizing content
- H04N 21/8586: {by using a URL (processing chained hypermedia data for information retrieval G06F16/94; information retrieval from the Internet by using URLs G06F16/955; URL in broadcast information H04H20/93; Web-based protocols H04L67/02)}
- H04N 21/23418: {involving operations for analysing video streams, e.g. detecting features or characteristics (television picture signal circuitry for scene change detection H04N5/147; filtering for image enhancement G06T5/00; methods or arrangements for recognising scenes G06V20/00; arrangements characterised by components specially adapted for monitoring, identification or recognition of video in broadcast systems H04H60/59)}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method is provided for performing targeted ad insertion in over-the-top delivery of content by detecting ad replacement opportunities in a live content stream and preparing the content for seamless replacement with segmented HTTP adaptive streaming delivery. The method includes provisions for multi-stage proxy-based segment replacement for targeted ad delivery. The method provided works transparently with standard HTTP adaptive streaming clients. A system is also specified for implementing a client and server content delivery infrastructure in accordance with the provisions of the method.

## Claims

### Claim 1

A method of operating a computer system for targeted advertisement replacement in a live content stream, comprising:
detecting metadata indicating program boundaries in the live content stream;
extracting advertisement decision server, program identifier, and/or advertisement spot information from the metadata;
issuing an advertisement placement request to an advertisement decision server;
including advertisement decision server, program identifier, and/or advertisement spot information in the advertisement placement request to the advertisement decision server;
receiving and processing an advertisement placement response from the advertisement decision server, wherein the advertisement decision server response is cached locally for use in future advertisement replacement opportunities;
determining advertisement program boundaries; and
replacing stream advertisement asset segments of the live content stream with segments indicated in the advertisement placement response, wherein the segments indicated in the advertisement placement response are transparently proxied from a network proxy to the computer system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the advertisement placement request employs a protocol selected from SCTE-130, Video Ad Serving Template/Video Multiple Ad Playlist, and a non-standard protocol.

### Claim 3 (depends on 1)

The method of claim 1, wherein the advertisement decision server, program identifier, and/or advertisement spot information are detected via inline metadata.

### Claim 4 (depends on 3)

The method of claim 3, wherein the in-band metadata includes one or more of ID3 tags, non-standard frame types, and non-standard metadata headers.

### Claim 5 (depends on 1)

The method of claim 1, wherein advertisement decision server, program identifier, and/or advertisement spot information are detected via manifest file metadata.

### Claim 6 (depends on 5)

The method of claim 5, wherein the metadata includes one or more of HLS m3u8 comments and DASH MPD tags/comments.

### Claim 7 (depends on 1)

The method of claim 1, wherein the advertisement decision server, program identifier, and/or advertisement spot information detected via segment URL metadata, e.g., appended as part of the query string.

### Claim 8 (depends on 1)

The method of claim 1, wherein subscriber identity, location, and/or demographic information are detected via segment URL metadata, e.g., appended as part of the query string.

### Claim 9 (depends on 8)

The method of claim 8, further comprising: providing subscriber identity, location, and/or demographic information to the advertisement decision server to enable advertisement personalization.

### Claim 10 (depends on 1)

The method of claim 1, further comprising: modifying advertisement segment requests to append subscriber identity, location, and/or demographic information to segment request URLs.

### Claim 11 (depends on 1)

The method of claim 1, further including sending beacon messages reporting on completed advertisement playback.

### Claim 12 (depends on 1)

The method of claim 1, further comprising: determining upcoming advertisement program boundaries, advertisement program start boundaries, and advertisement program end boundaries.

### Claim 13 (depends on 12)

The method of claim 12, wherein program boundaries are detected via in-band metadata.

### Claim 14 (depends on 13)

The method of claim 13, wherein the in-band metadata includes one or more of ID3 tags, non-standard frame types, and non-standard metadata headers.

### Claim 15 (depends on 12)

The method of claim 12, wherein program boundaries are detected via manifest file metadata.

### Claim 16 (depends on 15)

The method of claim 15, wherein the manifest file metadata includes one or more of HLS m3u8 comments and DASH MPD tags/comments.

### Claim 17 (depends on 15)

The method of claim 15, further comprising: transparently proxying and modifying the manifest file to append subscriber identity, location, and/or demographic information to segment URLs in the manifest file processed by the media player.

### Claim 18 (depends on 12)

The method of claim 12, further including:
receiving a manifest request for a current live stream manifest file and retrieving the manifest file from a content delivery network;
determining whether the manifest file contains a start of a new advertisement or contains segments of an advertisement currently being replaced;
if the manifest file contains neither the start of a new advertisement nor segments of an advertisement currently being replaced, then responding to the manifest request with the manifest file unmodified;
if the manifest file contains the start of a new advertisement, then (i) extracting advertisement decision server, program identifier, and/or advertisement spot information from the manifest request, (ii) issuing an advertisement placement request to the advertisement decision server, (iii) receiving and processing the advertisement placement response from the advertisement decision server, and responding to the manifest request with a first modified manifest file including an advertisement asset specified in the advertisement placement response; and
if the manifest file contains segments of an advertisement currently being replaced, then (i) looking up segments of the advertisement currently being replaced, and (ii) responding to the manifest request with a second modified manifest file including the looked up segments.

### Claim 19 (depends on 18)

The method of claim 18, wherein the advertisement decision server returns a manifest file or a URL pointing to a manifest file specifying the segments for the replacement advertisement.

### Claim 20 (depends on 18)

The method of claim 18, wherein the advertisement decision server returns an advertisement media identifier used to look up the manifest and/or segment location information for the selected advertisement.

### Claim 21 (depends on 18)

The method of claim 18, further including storing the advertisement placement response as well as a mapping between a current client advertisement request and the advertisement placement response so that subsequent advertisement segment requests may be properly mapped for continuation of a selected advertisement.

### Claim 22

A computerized device operable as a client or an ad segment proxy in a content delivery system, comprising:
memory storing computer program instructions;
one or more processors for executing the instructions;
input/output (I/O) circuitry connecting the computerized device to external devices; and
interconnect circuitry connecting the memory, processor(s) and I/O circuitry together,
wherein the computer program instructions are operative when executed by the processor(s) to cause the computerized device to perform a method of processing a live content stream including:
detecting metadata indicating program boundaries in the live content stream;
extracting advertisement decision server, program identifier, and/or advertisement spot information from the metadata;
issuing an advertisement placement request to an advertisement decision server;
including advertisement decision server, program identifier, and/or advertisement spot information in the advertisement placement request to the advertisement decision server;
receiving and processing the advertisement placement response from the advertisement decision server,
wherein the advertisement decision server response is cached locally for use in future advertisement replacement opportunities;
determining advertisement program boundaries; and
replacing stream advertisement asset segments of the live content stream with segments indicated in the advertisement placement response, wherein the segments indicated in the advertisement placement response are transparently proxied from a network proxy to the computerized device.

### Claim 23 (depends on 22)

The computerized device of claim 22, wherein the method performed by execution of the computer program instructions further includes retrieving and returning to the client media player advertisement segments from a remote server specified in the advertisement placement response.

### Claim 24 (depends on 22)

The computerized device of claim 22, wherein the method performed by execution of the computer program instructions further includes redirecting the client media player to advertisement segments on remote server specified in the advertisement placement response.

### Claim 25 (depends on 22)

The computerized device of claim 22, wherein the method performed by execution of the computer program instructions further includes determining upcoming advertisement program boundaries, advertisement program start boundaries, and advertisement program end boundaries.

### Claim 26 (depends on 25)

The computerized device of claim 25, wherein the method performed by execution of the computer program instructions further includes:
receiving a manifest request for a current live stream manifest file and retrieving the manifest file from a content delivery network;
determining whether the manifest file contains a start of a new advertisement or contains segments of an advertisement currently being replaced;
if the manifest file contains neither the start of a new advertisement nor segments of an advertisement currently being replaced, then responding to the manifest request with the manifest file unmodified;
if the manifest file contains the start of a new advertisement, then (i) extracting advertisement decision server, program identifier, and/or advertisement spot information from the manifest request, (ii) issuing an advertisement placement request to the advertisement decision server, (iii) receiving and processing the advertisement placement response from the advertisement decision server, and responding to the manifest request with a first modified manifest file including an advertisement asset specified in the advertisement placement response; and
if the manifest file contains segments of an advertisement currently being replaced, then (i) looking up segments of the advertisement currently being replaced, and (ii) responding to the manifest request with a second modified manifest file including the looked up segments.
