# US 12,009,015 B2 · Smart creative feed

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

- Number: US 12,009,015 B2
- Document ID: US12009015B2
- Status: Granted
- Kind: B2
- Application number: 17/704,060
- Filed: 2022-03-25
- Published: 2022-09-29
- Granted: 2024-06-11
- Earliest claimed: 2021-03-26
- Assignees: Ready, Set, Co., LLC
- Applicants: Ready Set, Inc.
- Inventors: John Gargiulo; Sambou Makalou
- Web page: https://patentgrep.com/patent/US12009015B2

## CPC

- G11B 27/036: Insert-editing
- G06Q 30/0276: {Advertisement creation}
- G06V 10/761: {Proximity, similarity or dissimilarity measures}
- G06V 20/46: {Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames}
- G11B 27/002: {Programmed access in sequence to a plurality of record carriers or indexed parts, e.g. tracks, thereof, e.g. for editing; (transfer of record carriers from magazine G11B15/68, G11B17/10; G11B17/22)}
- G11B 27/031: Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B 27/34: Indicating arrangements {(indicating means incorporated in magazine or cassette G11B23/046 and G11B23/0875; indicating measured values in general G01D)}
- G06V 2201/10: Recognition assisted with metadata
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- 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
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

According to one aspect, a computer-implemented method for automatically generating a video advertisement is provided. The method includes obtaining one or more attributes relating to a video advertisement. The method includes obtaining a template, wherein the template comprises one or more blocks, wherein each block of the one or more blocks comprises one or more placeholders corresponding to one or more types of media assets. The method includes identifying, in a first block of the one or more blocks in the template, a first placeholder corresponding to a first type of media asset. The method includes selecting a first media asset from a first media library based on first metadata associated with the first media asset, the one or more attributes, and the first type of media asset. The method includes generating, using a rendering engine, a video advertisement, wherein the generated video advertisement comprises the first asset. The method includes outputting the generated video advertisement.

## Claims

### Claim 1

A computer-implemented method for automatically generating a video advertisement, the method comprising:
obtaining one or more attributes relating to a video advertisement;
obtaining a first set of one or more performance metrics associated with the one or more attributes;
obtaining a template, wherein the template comprises a plurality of blocks, wherein each block of the plurality of blocks corresponds to a temporal segment of video data for a video advertisement and comprises
a block identifier,
a block type,
one or more tags,
one or more video format attributes comprising at least one of a maximum length, a minimum length, a format type, a dimension, or an aspect-ratio, and
one or more placeholders corresponding to one or more types of media assets;
identifying, in a first block of the plurality of blocks in the template, a first placeholder corresponding to a first type of media asset, wherein the first block corresponds to a first temporal position;
selecting a first media asset from a first media library based on first metadata associated with the first media asset, the one or more attributes, the one or more tags for the first block, the first type of media asset, and the first set of one or more performance metrics;
identifying, in a second block of the plurality of blocks in the template, a second placeholder corresponding to a second type of media asset, wherein the second block corresponds to a second temporal position different than the first temporal position;
selecting a second media asset from a second media library based on second metadata associated with the second media asset, the one or more attributes, the one or more tags for the second block, the second type of media asset, and the first set of one or more performance metrics;
generating, using a rendering engine, a first segment of video data comprising the first asset in accordance with the one or more video format attributes of the first block, wherein the first segment of video data corresponds to the first temporal position;
generating, using the rendering engine, a second segment of video data comprising the second asset in accordance with the one or more video format attributes of the second block, wherein the second segment of video data corresponds to the second temporal position;
stitching the first segment of video data comprising the first asset and the second segment of video data comprising the second asset together into a video file comprising a video advertisement in accordance with the first temporal position and second temporal position;
outputting the generated video advertisement to an advertisement platform;
obtaining, from the advertisement platform, a second set of one or more performance metrics for the first media asset and the second media asset; and
outputting, to a graphical user interface, the second set of one or more performance metrics.

### Claim 2 (depends on 1)

The method of claim 1 wherein the one or more types of media assets comprise one or more of video, audio, image, or text.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
identifying in the first block a second placeholder corresponding to a second type of media asset; and
selecting a second media asset from a second media library based on second metadata associated with the second media asset, the one or more attributes, the one or more tags for the first block, and the second type of media asset,
wherein the generating the first segment of video data comprises generating the first segment of video data comprising the first asset and the second asset.

### Claim 4 (depends on 3)

The method of claim 3, wherein the first type of media asset is different than the second type of media asset.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
obtaining one or more testing metrics for the generated video advertisement; and
modifying the generated video advertisement based on the one or more testing metrics.

### Claim 6 (depends on 5)

The method of claim 5, wherein the modifying comprises generating, using the rendering engine, a second video advertisement, wherein the second video advertisement comprises at least one of:
a second media asset different than the first media asset,
a temporal ordering of the first segment of video data and the second segment of data different than an original temporal ordering of the first segment of video data and the second segment of video data in the generated video advertisement,
a combination of the first media asset and the second media asset different than an original combination of the first media asset and the second media asset in the generated video advertisement, or
a placement of the first media asset different than an original placement of the first media asset in the first generated video advertisement.

### Claim 7 (depends on 1)

The method of claim 1, wherein the obtaining one or more attributes relating to a video advertisement comprises:
obtaining video footage associated with a first user;
breaking the video footage into a plurality of blocks of video footage, wherein each block comprises one or more media assets; and
generating, for each media asset of the one or more media assets, metadata comprising the one or more attributes.

### Claim 8 (depends on 7)

The method of claim 7, wherein the generating comprises using a machine learning model to identify the one or more attributes.

### Claim 9 (depends on 1)

The method of claim 1, wherein the selecting the first media asset comprises:
determining that the first media asset has a type that is the same as the first type of media asset.

### Claim 10 (depends on 1)

The method of claim 1, wherein the selecting the first media asset comprises:
calculating a similarity score between the obtained one or more attributes and one or more attributes in the first metadata.

### Claim 11 (depends on 10)

The method of claim 10, wherein the calculating the similarity score comprises:
calculating a first similarity score between the obtained one or more attributes and the one or more attributes in the first metadata based on a first criteria;
calculating a second similarity score between the obtained one or more attributes and the one or more attributes in the first metadata based on a second criteria; and
combining the first similarity score and the second similarity score.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
updating the first placeholder with information identifying a storage location of the first media asset in the first media asset library and positioning information of the first media asset for inclusion in the generated first segment of video data; and
submitting the template with the updated first placeholder to the rendering engine.

### Claim 13 (depends on 12)

The method of claim 12, wherein the positioning information comprises a sequence order of the first media asset in the generated first segment of video data.

### Claim 14 (depends on 1)

The method of claim 1, wherein the rendering engine modifies at least one of a length, size, aspect ratio, or resolution of the first asset for inclusion in the video file.

### Claim 15 (depends on 1)

The method of claim 1, wherein the one or more performance metrics in the first set or the second set comprise at least one of three second video view or video average play time.

### Claim 16 (depends on 1)

The method of claim 1, wherein the one or more attributes relating to the video advertisement comprise one or more keywords describing content of a media asset, tags comprising information about a production of a media asset, or talent tags comprising information about people contained in a media asset.

### Claim 17 (depends on 1)

The method of claim 1, wherein the graphical user interface displays the second set of one or more performance metrics as an answer to a question regarding a performance of the first media asset or the second media asset.

### Claim 18 (depends on 1)

The method of claim 1, wherein the graphical user interface displays the one or more performance metrics as an indication of a good, neutral, or negative performance of the first media asset or the second media asset.

### Claim 19

A system comprising:
one or more processors; and
a non-transitory computer-readable medium coupled to the one or more processors, wherein the processor is configured to:
obtain one or more attributes relating to a video advertisement;
obtain a first set of one or more performance metrics associated with the one or more attributes;
obtain a template, wherein the template comprises a plurality of blocks, wherein each block of the plurality of blocks corresponds to a temporal segment of video data for a video advertisement and comprises
a block identifier,
a block type,
one or more tags,
one or more video format attributes comprising at least one of a maximum length, a minimum length, a format type, a dimension, or an aspect-ratio, and
one or more placeholders corresponding to one or more types of media assets;
identify, in a first block of the plurality of blocks in the template, a first placeholder corresponding to a first type of media asset, wherein the first block corresponds to a first temporal position;
select a first media asset from a first media library based on first metadata associated with the first media asset, the one or more attributes, the one or more tags for the first block, the first type of media asset, and the first set of one or more performance metrics;
identify, in a second block of the plurality of blocks in the template, a second placeholder corresponding to a second type of media asset, wherein the second block corresponds to a second temporal position different than the first temporal position;
select a second media asset from a second media library based on second metadata associated with the second media asset, the one or more attributes, the one or more tags for the second block, the second type of media asset, and the first set of one or more performance metrics;
generate, using a rendering engine, a first segment of video data comprising the first asset in accordance with the one or more video format attributes of the first block, wherein the first segment of video data corresponds to the first temporal position;
generate, using the rendering engine, a second segment of video data comprising the second asset in accordance with the one or more video format attributes of the second block, wherein the second segment of video data corresponds to the second temporal position;
stitch the first segment of video data comprising the first asset and the second segment of video data comprising the second asset together into a video file comprising a video advertisement in accordance with the first temporal position and the second temporal position;
output the generated video advertisement to an advertisement platform;
obtain, from the advertisement platform, a second set of one or more performance metrics for the first media asset and the second media asset; and
output, to a graphical user interface, the second set of one or more performance metrics.

### Claim 20

A computer program product, the computer program product comprising a non-transitory computer readable medium storing computer readable instructions that, when executed by one or more processors, cause the one or more processors to:
obtain one or more attributes relating to a video advertisement;
obtain a first set of one or more performance metrics associated with the one or more attributes;
obtain a template, wherein the template comprises a plurality of blocks, wherein each block of the plurality of blocks corresponds to a temporal segment of video data for a video advertisement and comprises
a block identifier,
a block type,
one or more tags,
one or more video format attributes comprising at least one of a maximum length, a minimum length, a format type, a dimension, or an aspect-ratio, and
one or more placeholders corresponding to one or more types of media assets;
identify, in a first block of the plurality of blocks in the template, a first placeholder corresponding to a first type of media asset, wherein the first block corresponds to a first temporal position;
select a first media asset from a first media library based on first metadata associated with the first media asset, the one or more attributes, the one or more tags for the first block, the first type of media asset, and the first set of one or more performance metrics;
identify, in a second block of the plurality of blocks in the template, a second placeholder corresponding to a second type of media asset, wherein the second block corresponds to a second temporal position different than the first temporal position;
select a second media asset from a second media library based on second metadata associated with the second media asset, the one or more attributes, the one or more tags for the second block, the second type of media asset, and the first set of one or more performance metrics;
generate, using a rendering engine, a first segment of video data comprising the first asset in accordance with the one or more video format attributes of the first block, wherein the first segment of video data corresponds to the first temporal position;
generate, using the rendering engine, a second segment of video data comprising the second asset in accordance with the one or more video format attributes of the second block, wherein the second segment of video data corresponds to the second temporal position;
stitch the first segment of video data comprising the first asset and the second segment of video data comprising the second asset together into a video file comprising a video advertisement in accordance with the first temporal position and the second temporal position;
output the generated video advertisement to an advertisement platform;
obtain, from the advertisement platform, a second set of one or more performance metrics for the first media asset and the second media asset; and
output, to a graphical user interface, the second set of one or more performance metrics.
