# US 11,445,271 B2 · Real-time ad tracking proxy

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

- Number: US 11,445,271 B2
- Document ID: US11445271B2
- Status: Granted
- Kind: B2
- Application number: 16/658,799
- Filed: 2019-10-21
- Published: 2020-04-23
- Granted: 2022-09-13
- Earliest claimed: 2018-10-19
- Assignees: ARRIS Enterprises LLC
- Applicants: ARRIS Enterprises LLC
- Inventors: David A. Romrell; Yixiang Zeng; Sean Michael Sheedy; Matthew A. Milford
- Web page: https://patentgrep.com/patent/US11445271B2

## CPC

- H04N 21/637: Control signals issued by the client directed to the server or network components
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04L 65/1045: Proxies, e.g. for session initiation protocol [SIP]
- H04L 65/612: for unicast
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04N 21/23439: {for generating different versions}
- H04N 21/25866: {Management of end-user data (customer care in data networks H04L41/5077)}
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- 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/812: {involving advertisement data (advertising per se G06Q30/02)}
- 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: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method provides for tracking client playback events when playing an asset specified in a manifest for streaming adaptive bit rate (ABR) content. The method includes generating, with a manifest manipulator, a manifest that includes an asset URL inserted at a marker denoting a placement opportunity in a content manifest requested by a client. The manifest also includes callback URLs for tracking playback events to be returned by the client. The manifest manipulator sends the manifest to the client. At least one of the callback URLs is received by a tracking proxy associated with the manifest manipulator, indicating that the event has been performed by the client. In response, a tracking URL is obtained by the tracking proxy. The tracking URL is sent to at least one asset decision system participating in an asset decision process that resulted in providing the asset URL to the manifest manipulator.

## Claims

### Claim 1

A method for tracking client playback events when playing an asset specified in a manifest for streaming adaptive bit rate (ABR) content, comprising:
generating, with a manifest manipulator, a manifest that includes (i) an asset Uniform Resource Locator (URL) inserted at a marker denoting a placement opportunity in a content manifest requested by a client, the asset URL specifying a link to a file that includes an asset and (ii) one or more callback URLs for tracking playback events to be returned by the client when a specified playback event is performed by the client while playing the asset;
using the manifest manipulator to send the manifest to the client;
receiving at least one of the callback URLs indicating that the client has performed the playback event specified by the at least one callback URL;
responsive to the receipt of the at least one callback event, obtaining, with a tracking proxy associated with the manifest manipulator, a tracking URL to be sent to at least one asset decision system participating in an asset decision process that resulted in providing the asset URL to the manifest manipulator; and
sending the tracking URL from the tracking proxy to the at least one asset decision system.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
sending a request from the manifest manipulator to a first asset decision system to resolve the asset decision for the placement opportunity; and
subsequent to sending the request, receiving at the manifest manipulator the asset URL and tracking data associated therewith.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
obtaining the tracking URLs for each type of playback event to be tracked from the tracking data; and
creating and storing a data structure associated with the asset URL that includes the tracking URLs obtained from the tracking data.

### Claim 4 (depends on 3)

The method of claim 3, further comprising storing in the data structure one or more options specifying how the tracking URLs are to be sent to the at least one asset decision system.

### Claim 5 (depends on 4)

The method of claim 4, wherein the options are selected from the group including a specification of a feedback method to be employed when sending the tracking URLs to the at least one asset decision system, a specification of number of retries or timeouts that may be performed, a degree to which data from individual clients should be anonymized to prevent them from being identified, and ability to smooth or adjust the rate at which feedback should be provided to individual asset decision systems.

### Claim 6 (depends on 2)

The method of claim 2, wherein the asset URL is received from a second asset decision system to which the request is caused to be redirected by the first asset decision system.

### Claim 7 (depends on 6)

The method of claim 6, wherein sending the tracking URL from the tracking proxy to the at least one asset decision system includes sending at least a first tracking URL to the first asset decision system and at least a second tracking URL to the second asset decision system.

### Claim 8 (depends on 7)

The method of claim 7, wherein the first and the second tracking URLs track different playback events performed by the client while playing the asset.

### Claim 9 (depends on 1)

The method of claim 1, wherein the one or more callback URLs includes a plurality of callback URLs, each of the callback URLs tracking a single type of playback event.

### Claim 10 (depends on 1)

The method of claim 1, wherein at least one of the one or more callback URLs are incorporated in the manifest as VAST tracking elements, HLS TAGS and/or DASH events.

### Claim 11 (depends on 1)

The method of claim 1, wherein the one or more callback URLs are incorporated in the manifest as a media segment URL pointing to the tracking proxy.

### Claim 12 (depends on 11)

The method of claim 11, wherein the tracking proxy returns a zero byte payload in response to receipt of the callback URL.

### Claim 13 (depends on 11)

The method of claim 11, wherein, in response to receipt of the callback URL, the tracking proxy returns a media segment URL at which a media segment is available.

### Claim 14 (depends on 1)

The method of claim 1, wherein sending the tracking URL from the tracking proxy to the at least one asset decision system includes sending a plurality of tracking URLs to individual asset decision systems using a queue that performs rate smoothing to ensure that the individual asset decision systems do not receive the tracking URLs at a rate greater than a specified rate.

### Claim 15 (depends on 1)

The method of claim 1, further comprising anonymizing individual client data prior to sending the tracking URL to the at least one asset decision system.

### Claim 16 (depends on 1)

The method of claim 1, wherein receiving at least one of the callback URLs indicating that the client has performed the playback event includes receiving the at least one callback URL from the client.

### Claim 17 (depends on 1)

The method of claim 1, wherein receiving at least one of the callback URLs indicating that the client has performed the playback event specified by the at least one callback URL includes receiving the at least one callback URL from an ABR to Legacy Transport Stream (ALTS) converter that translates streaming ABR content into a multicast transport stream for delivery to the client.

### Claim 18

A method for tracking client playback events on behalf of one or more asset decision systems that participate in an asset decision process that supplies an asset URL for an asset specified in a manifest for streaming Adaptive Bitrate (ABR) content, comprising:
sending a request from an asset decision request module associated with a manifest manipulator to a first asset decision system to resolve an asset decision for a placement opportunity in a manifest for streaming ABR content that is requested by a client;
subsequent to sending the request, receiving at least one asset Uniform Resource Locator (URL) specifying a link to a file that defines one or more assets to be inserted into the manifest for the placement opportunity and at least one tracking URL that is to provide to at least one asset decision system participating in an asset decision process tracking information concerning playback of the asset by the client;
using a manifest splicer associated with the manifest manipulator to incorporate the asset URL into the manifest;
using the manifest manipulator to send the manifest to the client;
receiving feedback from the client indicating that a playback event has occurred;
in response to receipt of the feedback, determining that a playback event has occurred; and
in response to determining that a playback event has occurred, sending, with a tracking proxy associated with the manifest manipulator, a tracking URL to the at least one asset decision system participating in an asset decision process that resulted in providing the asset URL to the manifest manipulator.

### Claim 19 (depends on 18)

The method of claim 18, wherein the tracking URL conforms to a Society of Cable Telecommunications Engineers (SCTE) 130-3 PlacementStatusNotification message.

### Claim 20 (depends on 18)

The method of claim 18, further comprising:
wherein receiving the feedback includes receiving from the client a request for one or more updated manifests during a period of time that the asset is to be played by the client; and
wherein determining that the playback event has occurred includes inferring that the playback event has occurred as a consequence of receiving the request for one or more updated manifests.

### Claim 21 (depends on 18)

The method of claim 18, wherein the feedback includes receiving a callback URL from the client indicating that the client has performed a playback event specified by the callback URL, wherein the callback URL was provided to the client in the manifest.

### Claim 22 (depends on 18)

The method of claim 18 wherein said at least one asset decision system includes the first asset decision system.

### Claim 23 (depends on 18)

The method of claim 18, wherein the playback event is a start event.

### Claim 24 (depends on 18)

The method of claim 18, wherein the playback event is an end event.

### Claim 25 (depends on 18)

The method of claim 18, further comprising delivering the asset from the client to a multiplicity of viewers over a shared distribution network.

### Claim 26 (depends on 18)

The method of claim 18, further comprising determining a number of current viewers using an audience measurement system associated with the shared distribution network.

### Claim 27 (depends on 18)

The method of claim 18, further comprising querying an audience measurement system associated with the shared distribution network to determine a number of current viewers at a time when a callback event is received by the audience measurement system.

### Claim 28 (depends on 27)

The method of claim 27, wherein the tracking URL includes a parameter indicating a number of current viewers.

### Claim 29 (depends on 27)

The method of claim 27, further comprising repeatedly invoking the tracking URL a plurality of times corresponding to the number of current viewers.

### Claim 30 (depends on 27)

The method of claim 27, further comprising repeatedly invoking the tracking URL using a queue that performs rate smoothing to ensure that an individual asset decision system does not receive the tracking URLs at a rate greater than a specified rate.

### Claim 31 (depends on 30)

The method of claim 30, further comprising logging each invocation of the tracking URL so that a failed invocation of a tracking URL can be replayed or otherwise accounted for.
