U.S. patent application number 17/485619 was filed with the patent office on 2022-01-13 for advertisement proxy generating playback manifest.
This patent application is currently assigned to iHeartMedia Management Services, Inc.. The applicant listed for this patent is iHeartMedia Management Services, Inc.. Invention is credited to Jeffrey James Bengel, David C. Jellison, JR., Jeffrey Lee Littlejohn, Daniel N. MacTiernan.
Application Number | 20220012779 17/485619 |
Document ID | / |
Family ID | 1000005865958 |
Filed Date | 2022-01-13 |
United States Patent
Application |
20220012779 |
Kind Code |
A1 |
MacTiernan; Daniel N. ; et
al. |
January 13, 2022 |
ADVERTISEMENT PROXY GENERATING PLAYBACK MANIFEST
Abstract
An advertisement proxy obtains a playlist associated with a
destination platform. The playlist includes information identifying
media items scheduled for delivery to the destination platform, an
empty spot block, and metadata associated with the empty spot
block. A playback manifest is generated based on the playlist, and
includes the information identifying the media items scheduled for
delivery to the destination platform, and spot information
identifying an additional media item selected for inclusion in the
empty spot block based on the metadata, format information
identifying a media format associated with the destination
platform, and location information specifying locations from which
the media items and the additional media item can be obtained. The
playback manifest is transmitted from the advertisement proxy to a
content distribution network, which obtains the media items and the
additional media item based on the location information, formats
the media items and the additional media item based on the format
information, and transmits the media items and the additional media
items to the destination platform in accordance with the playback
manifest.
Inventors: |
MacTiernan; Daniel N.;
(Ocean City, NJ) ; Littlejohn; Jeffrey Lee;
(Mason, OH) ; Jellison, JR.; David C.; (Ogallala,
NE) ; Bengel; Jeffrey James; (Springboro,
OH) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
iHeartMedia Management Services, Inc. |
San Antonio |
TX |
US |
|
|
Assignee: |
iHeartMedia Management Services,
Inc.
San Antonio
TX
|
Family ID: |
1000005865958 |
Appl. No.: |
17/485619 |
Filed: |
September 27, 2021 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14264274 |
Apr 29, 2014 |
11132720 |
|
|
17485619 |
|
|
|
|
14076420 |
Nov 11, 2013 |
10346884 |
|
|
14264274 |
|
|
|
|
13021882 |
Feb 7, 2011 |
8600813 |
|
|
14076420 |
|
|
|
|
09854319 |
May 11, 2001 |
7890368 |
|
|
13021882 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 65/4069 20130101;
G06Q 30/0272 20130101; G06Q 30/02 20130101; G06Q 30/0277
20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02; H04L 29/06 20060101 H04L029/06 |
Claims
1. A method for use in a processing system implementing an
advertisement proxy, the method comprising: obtaining, by the
advertisement proxy, a playlist associated with a destination
platform, wherein the playlist includes: information identifying
media items scheduled for delivery to the destination platform; at
least one empty spot block; and metadata associated with the at
least one empty spot block; generating, by the advertisement proxy,
a playback manifest based on the playlist, wherein the playback
manifest includes: the information identifying media items
scheduled for delivery to the destination platform; spot
information identifying an additional media item selected for
inclusion in the at least one empty spot block, wherein the
additional media item is selected for inclusion based on the
metadata; format information identifying a media format associated
with the destination platform; location information specifying
locations from which the media items and the additional media item
can be obtained; transmitting the playback manifest from the
advertisement proxy to a content distribution network, wherein the
content distribution network: obtains the media items and the
additional media item based on the location information; formats
the media items and the additional media item based on the format
information; and transmits the media items and the additional media
items to the destination platform in accordance with the playback
manifest.
2. The method of claim 1, wherein: the playback manifest is a
preliminary manifest; and wherein the content distribution network
modifies the preliminary manifest.
3. The method of claim 2, wherein: the content distribution network
modifies the preliminary manifest by altering location information
associated with one or more media items in response to determining
that the one or more media items are available from a different
location in closer physical proximity to the destination
platform.
4. The method of claim 1, wherein generating the playback manifest
includes: transmitting a request for an external advertisement
server to select the additional media item in accordance with the
metadata associated with the at least one empty spot block; and
modifying the playlist based, at least in part on information
received in response to the request.
5. The method of claim 1, wherein: the metadata associated with the
at least one empty spot block includes advertiser priority
information associated with the empty spot block.
6. The method of claim 1, wherein: the playback manifest includes
at least one tag configured to cause the destination platform to
report presentation of at least a portion of a normalized media
file of the normalized media files.
7. The method of claim 1, wherein the destination platform is an
automotive radio platform.
8. A system comprising: a processor configured to implement an
advertisement proxy, the advertisement proxy configured to: obtain
a playlist associated with a destination platform, wherein the
playlist includes: information identifying media items scheduled
for delivery to the destination platform; at least one empty spot
block; and metadata associated with the at least one empty spot
block; generate a playback manifest based on the playlist, wherein
the playback manifest includes: the information identifying media
items scheduled for delivery to the destination platform; spot
information identifying an additional media item selected for
inclusion in the at least one empty spot block, wherein the
additional media item is selected for inclusion based on the
metadata; format information identifying a media format associated
with the destination platform; location information specifying
locations from which the media items and the additional media item
can be obtained; transmit the playback manifest from the
advertisement proxy to a content distribution network, wherein the
content distribution network: obtains the media items and the
additional media item based on the location information; formats
the media items and the additional media item based on the format
information; and transmits the media items and the additional media
items to the destination platform in accordance with the playback
manifest.
9. The system of claim 8, wherein: the playback manifest is a
preliminary manifest; and wherein the content distribution network
modifies the preliminary manifest.
10. The system of claim 9, wherein: the content distribution
network modifies the preliminary manifest by altering location
information associated with one or more media items in response to
determining that the one or more media items are available from a
different location in closer physical proximity to the destination
platform.
11. The system of claim 8, wherein generating the playback manifest
includes: transmitting a request for an external advertisement
server to select the additional media item in accordance with the
metadata associated with the at least one empty spot block; and
modifying the playlist based, at least in part on information
received in response to the request.
12. The system of claim 8, wherein: the metadata associated with
the at least one empty spot block includes category priority
information associated with the empty spot block.
13. The system of claim 8, wherein: the playback manifest includes
a plurality of tracking calls configured to fire at different
points during playout of one or more media items at the destination
platform.
14. The system of claim 8, wherein the destination platform is an
automotive radio platform.
15. A non-transitory computer readable medium tangibly embodying a
program of instructions configured to be executed by a processor,
the program of instructions comprising: at least one instruction to
obtain, by an advertisement proxy, a playlist associated with a
destination platform, wherein the playlist includes: information
identifying media items scheduled for delivery to the destination
platform; at least one empty spot block; and metadata associated
with the at least one empty spot block; at least one instruction to
generate, by the advertisement proxy, a playback manifest based on
the playlist, wherein the playback manifest includes: the
information identifying media items scheduled for delivery to the
destination platform; spot information identifying an additional
media item selected for inclusion in the at least one empty spot
block, wherein the additional media item is selected for inclusion
based on the metadata; format information identifying a media
format associated with the destination platform; location
information specifying locations from which the media items and the
additional media item can be obtained; at least one instruction to
transmit the playback manifest from the advertisement proxy to a
content distribution network, wherein the content distribution
network: obtains the media items and the additional media item
based on the location information; formats the media items and the
additional media item based on the format information; and
transmits the media items and the additional media items to the
destination platform in accordance with the playback manifest.
16. The non-transitory computer readable medium of claim 15,
wherein: the playback manifest is a preliminary manifest; and
wherein the content distribution network modifies the preliminary
manifest.
17. The non-transitory computer readable medium of claim 16,
wherein: the content distribution network modifies the preliminary
manifest by altering location information associated with one or
more media items in response to determining that the one or more
media items are available from a different location in closer
physical proximity to the destination platform.
18. The non-transitory computer readable medium of claim 15,
wherein the at least one instruction to generate the playback
manifest includes: at least one instruction to transmit a request
for an external advertisement server to select the additional media
item in accordance with the metadata associated with the at least
one empty spot block; and at least one instruction to modify the
playlist based, at least in part on information received in
response to the request.
19. The non-transitory computer readable medium of claim 15,
wherein: the metadata associated with the at least one empty spot
block includes a campaign identifier associated with the empty spot
block.
20. The non-transitory computer readable medium of claim 15,
wherein: the playback manifest includes at least one tracking call
configured fire in response to playout of at least a portion of a
media file at the destination platform; and the content
distribution network configured to initiate deliver of a subsequent
media file in response to the at least one tracking call firing.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present U.S. Utility Patent Application claims priority
pursuant to 35 U.S.C. .sctn. 120 as a continuation of U.S. Utility
application Ser. No. 14/264,274, entitled "MEDIA DELIVERY TO
LIMITED CAPABILITY PLATFORMS", filed Apr. 29, 2014, scheduled to
issue as U.S. Pat. No. 11,132,720 on Sep. 28, 2021, which is a
continuation-in-part of U.S. Utility application Ser. No.
14/076,420, entitled "Split Spot Breaks", filed Nov. 11,2013,
issued as U.S. Pat. No. 10,346,884 on Jul. 9, 2019, which is a
continuation-in-part of U.S. Utility application Ser. No.
13/021,882, entitled "Technique of Providing Targeted Media Items",
filed Feb. 7, 2011, issued as U.S. Pat. No. 8,600,813 on Dec. 3,
2013, which is a continuation-in-part of U.S. Utility application
Ser. No. 09/854,319, entitled "Providing Targeted Advertising
Inventory", filed May 11, 2001, issued as U.S. Pat. No. 7,890,368
on Feb. 15, 2011, all of which are hereby incorporated herein by
reference in their entirety and made part of the present U.S.
Utility Patent Application for all purposes.
FIELD
[0002] This invention relates in general to computer implemented
systems, and more particularly, to splitting spot breaks.
BACKGROUND
[0003] The Internet is a vast collection of global-spanning
networks that communicate with each other by using protocols, such
as the Transmission Control Protocol (TCP) and the Internet
Protocol (IP). Via its networks, the Internet enables many
computers, located at different sites around the world, to access
information from each other.
[0004] The World Wide Web (i.e., the "WWW" or the "Web") is the
fastest growing part of the Internet. The Web works within a
client/server model. Web client software runs on the Web client
computers, and Web server software runs on the Web server computer.
Web client software--known as the Web browser--interacts with both
the user and the Web server software. In particular, the Web
browser receives a Universal Resource Locator (URL) request from a
user. The URL is a unique identifier for requested information. The
Web browser then sends the URL request to the Web server software
using Hypertext Transfer Protocol (HTTP). In response to the URL
request, the Web server software locates and returns the requested
information to the Web browser.
[0005] The Web contains Web pages that incorporate text, graphics,
sound, animation, and other multimedia elements. Many Web pages are
formatted in a language called Hypertext Markup Language (HTML).
HTML controls the appearance of a Web page. Specifically, HTML
controls how information, such as, text, images, and push-buttons
are arranged on a Web page. Hypertext links connect the web pages
to each other, and to any other pages, graphics, binary files, or
multimedia files.
[0006] HTML is based on SGML (Standard Generalized Markup
Language). SGML allows documents to describe their own
grammar--that is, to specify a tag set used in the document, and to
specify the structural relationships that those tags represent.
SGML makes it possible to define different formats, for each
document; to handle large and complex documents; and to manage
large information repositories. Full SGML, however, contains many
optional features that are not needed for Web applications.
[0007] HTML web pages incorporate a small set of tags in
conformance with SGML. In general, HTML is well suited for
hypertext, multimedia, and the display of small and reasonably
simple documents. HTML is not well suited for large, complex
documents.
[0008] The World Wide Web Consortium (W3C) created a simplified
subset of SGML, specially designed for Web applications, and
designed for large and complex documents. This subset is called XML
(Extensible Markup Language). XML is independent of any platform,
vendor, or application. Therefore, XML can be used to exchange
information, without regard to the system that the information is
coming from or going to. In addition, XML enables the exchange of
information, not only between different computer systems, but it
also enables the exchange of information across different
languages.
[0009] The Web has provided authors, scientist, academics, and
other content providers with a vehicle for distributing their works
across a global network. Web users, however, seem to view the Web
as analogous to basic cable. For cable, people pay a basic rate for
the cable connection, and rarely do they pay additional fees for a
particular cable show. Similarly, Web users are willing to pay a
basic rate for an Internet connection, but they are less willing to
pay additional fees for content. Consequently, advertising is one
way that the content provider can generate revenue.
[0010] Many content providers seek to increase their advertising
revenue by targeting advertisements to users, based on variables
such as gender, age, geographic location, etc. In general, content
providers can justify high advertising rates by showing that a
company's advertisements are being viewed by users that would
likely purchase the company's product.
[0011] Often, when delivering targeted advertisements, the
destination device is provided with a playlist that requires the
destination device to determine when an advertisement needs to be
requested, and to send a request for an advertisement to an ad
server. The ad server responds to the request by sending an
advertisement to the destination device, which in turn presents the
advertisement to a user. Requiring the destination device to
request advertising content from an ad server usually requires the
destination device to have the ability to distinguish spot blocks
from other primary media content, and to be able to process varied
ad server response types. Less mature delivery platforms and
devices may not have the capabilities needed to implement direct
requests to ad servers.
[0012] In view of the above it should be apparent that conventional
ad delivery techniques, devices, and systems are less than
perfect.
SUMMARY
[0013] To overcome the limitations in the prior art described
above, and to overcome other limitations that will become apparent
upon reading and understanding the present specification, various
methods, apparatuses, and articles of manufacture for providing
targeted information to consumers are disclosed. In some
embodiments, an ad proxy receives a playlist that includes media
identifiers designating media items, and empty spot blocks to be
filled with targeted or non-targeted advertising. The ad proxy can
request advertising content from an ad server, and generate a
playback manifest by inserting information received from the ad
server into the empty spot blocks. The information received from
the ad server can include advertising content, advertising content
identifiers, and location addresses from which the advertising
content can be obtained or requested. The ad proxy sends the
playback manifest to a content distribution network (CDN), which
can fill in information missing from the playback manifest, or
replace information included in the playback manifest produced by
the ad proxy. For example, the CDN can, in some embodiments,
replace one or more identifiers specifying primary media items or
advertising content with network addresses at which the primary
media or advertising content can be obtained. In some embodiments,
these network addresses, sometimes referred to herein as
server-hosted locations, have been inserted into the playback
manifest prior to the playback manifest being received by the
CDN.
[0014] The CDN delivers the playback manifest to the destination
platform. In some cases, the playback manifest is delivered in
conjunction with some or all of the primary media files and
advertising content files referenced in the playback manifest.
These files can be provided to the destination platform in the same
normalized format, regardless of whether the file includes
advertising content or primary media content. In other embodiments,
a playback manifest including hosted server locations or other
network locations from which particular files can be obtained is
delivered to the destination platform, but the normalized files
themselves are not sent to the destination platform until
requested.
[0015] In addition to media file locations, a playback manifest can
also include one or more tracking-calls configured to be executed,
or "fired," by the destination platform in response to the
destination platform playing out particular media files, or
portions of media files. These tracking-calls can be inserted into
the manifest by the ad proxy, the CDN, or by another server device
or service. The tracking-calls fired by the destination platform
can be used to calculate impression data, either alone or in
conjunction with other data, for example data from the ad server
indicating advertisements requested or delivered.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Aspects of this disclosure will become apparent upon reading
the following detailed description and upon reference to the
accompanying drawings, in which like references may indicate
similar elements:
[0017] FIG. 1 is a schematic diagram illustrating a hardware
environment used to implement a server computer in one embodiment
of the invention;
[0018] FIG. 2 is a schematic diagram illustrating a hardware
environment used to implement a client computer in one embodiment
of the invention;
[0019] FIG. 3 is a schematic diagram illustrating a hardware
environment used to implement a client device in one embodiment of
the invention;
[0020] FIG. 4 is a schematic diagram illustrating a client/server
computer environment of an embodiment of the present invention;
[0021] FIG. 5 is a flow diagram illustrating a process performed by
the Third Party Advertising System;
[0022] FIG. 6. is a schematic diagram illustrating a client/server
computer environment of an embodiment of the present invention;
[0023] FIG. 7 is a flow diagram illustrating the process performed
by the Third Party Media Distribution System;
[0024] FIG. 8 is a block diagram illustrating a system implementing
split spot breaks according to various body the present
disclosure;
[0025] FIG. 9 is a flowchart illustrating method of splitting spot
breaks according to various embodiments of the present
disclosure;
[0026] FIG. 10 is a flowchart illustrating methods of adjusting
split spot break lengths according to various embodiments of the
present disclosure;
[0027] FIG. 11 is a table illustrating various considerations
relating to split spot break ordering options according to various
embodiments of the present disclosure;
[0028] FIG. 12 is a diagram illustrating a spot break split
according to various embodiments of the present disclosure;
[0029] FIG. 13 is a block diagram illustrating a system for
distribution and tracking of primary media files and advertising
content files delivered to an automotive application platform,
according to various embodiments of the present disclosure; and
[0030] FIG. 14 is a flow diagram illustrating a method of
distributing primary media files and advertising content files to
an automotive application platform, and tracking playout of those
files, according to various embodiments of the present
disclosure.
DETAILED DESCRIPTION
[0031] The following is a detailed description of embodiments of
the disclosure depicted in the accompanying drawings. The
embodiments are in such detail as to clearly communicate the
disclosure. However, the amount of detail offered is not intended
to limit the anticipated variations of embodiments; on the
contrary, the intention is to cover all modifications, equivalents,
and alternatives falling within the spirit and scope of the present
disclosure as defined by the appended claims.
[0032] One embodiment of this invention is comprised of a
collection of components, which will be referred to herein as the
"Third Party Advertising System" or "TPAS." It is to be understood
that these components may be combined in many different ways to
form a variety of combinations within the scope of the invention.
The term TPAS is sometimes used herein interchangeably with the
term "ad server," although not all ad servers belong to third
parties. Furthermore, ad servers may or may not include all of the
functionality of TPAS servers described herein.
[0033] The TPAS enables a user or ad proxy to access a list of
targeted advertisement options (also referred to as data items).
Initially, an ad proxy or a user at a client computer, invokes the
TPAS. The TPAS then requests logon authorization information from
the user. The logon authorization information includes a client
identifier (e.g., username and/or password), a client interface
version, and the Greenwich Mean Time (GMT). The logon authorization
information can also include local time, including, but not limited
to Pacific, Mountain, Central, and Eastern Time. Alternatively, the
logon authorization information can be unencrypted.
[0034] To determine whether a user, an ad proxy, or both are
authorized to access the TPAS system, the TPAS system compares the
client identification information with logon information contained
in a database that is connected to the TPAS server computer. When a
match exists, the TPAS returns a limited life span key to the user.
This limited life span key provides the user with the ability to
encrypt data and decipher encrypted data. The limited life span key
is active for a pre-defined time duration (e.g., ten minutes).
Alternatively, the TPAS system may place a cookie on the user
computer to enable requests for targeted advertisements without
requiring logon information, thereby allowing the user to remain
anonymous.
[0035] The ad proxy or user uses the limited life span key to
encrypt a request for targeted advertisement options. The request
contains parameter requirements, including audience demographic
requirements and/or content requirements. The ad proxy or user
sends the encrypted request to the TPAS.
[0036] In response to the encrypted request, the TPAS compares the
parameter requirements with the description of each advertisement
stored in the database. The TPAS then uses XML to create a list
which contains each advertisement that satisfies the parameter
requirements. Advertisements that satisfy the parameter
requirements are referred to as targeted advertisements. Of course,
a different mark-up language could be used for the list, such as
HTML or SGML, without exceeding the scope of this invention.
[0037] Next, the TPAS encrypts the XML list, and returns the
encrypted list to the client computer. The client computer uses its
limited life span key to decrypt the XML list of targeted
advertisements.
[0038] At this point, the user or ad proxy may select one or more
targeted advertisements from the list. The user can then purchase
the selected, targeted advertisements from any advertisement
provider. When the purchased advertisements are played and/or
displayed, the client computer sends an XML report to the TPAS. Of
course, a different mark-up language could be used for the report,
such as HTML or SGML, without exceeding the scope of this
invention. This report is an example of a type of tracking-call,
although tracking-calls are not limited to only these types of
reports.
[0039] One advantageous feature of the TPAS includes providing
users or ad proxies with a list of targeted advertisements,
wherein, each of the targeted advertisements satisfies the user's
parameter requirements. In addition, since XML can be used to
exchange information, without regard to the system that the
information is coming from or going to, the TPAS can be used with
any device or appliance that can transmit and receive an XML
communication.
[0040] Another embodiment of this invention can include a
collection of components, referred to herein as a "Third Party
Media Distribution System" or "TPMDS." In some embodiments, the
TPMDS includes or is used to implement an external ad management
system. TPMDS components may be combined in many different ways to
form a variety of combinations within the scope of the
invention.
[0041] The TPMDS can handle the distribution of lists of multiple
types of media, including, but not limited to advertisements, music
videos, radio programs. Types of advertisements that can be handled
and differentiated by the TPMDS can include, but are not limited
to, promotional advertisements, gateway advertisements, banner
advertisements, commercial advertisements, and "jingles." In
addition, the TPMDS can accept, differentiate and convert between
media of different audio formats, including, but not limited to
WAV, WMP, WMA, Real, QT, MP3, MP4, Liquid, and Emblaze formats; the
TPMDS can also accept, differentiate and convert media of different
file wrapper formats, including, but not limited to RSS and MP4
formats; the TPMDS can also accept, differentiate and convert
between various streaming protocols, including but not limited to
RTSP, RTMP, MMS, RTP, UDP, TCP, HDS, and HLS. For example, the
TPMDS enables a user to access a list of targeted media item
options (also referred to as data items), and compares parameter
requirements with media item information stored in a database. The
TPMDS can also handle the distribution of media items using servers
other than the server within which the TPMDS is located, including
servers transmitting dynamic media streams, as the database can
retrieve information on media items to be retrieved using other
servers. Finally, the TPMDS can receive and transmit information
with client devices other than computers, such as consumer devices,
which can include appliances, personal digital assistants (PDAs),
wrist watches, stand-alone Internet radios, set top boxes, and
television systems. The TPMDS enables a user to access a list of
targeted advertisement options (also referred to as data
items).
[0042] Initially, the user at a client computer, or the ad proxy,
invokes the TPMDS. The TPMDS then requests logon authorization
information from the user. The logon authorization information
includes a client identifier (e.g., username and/or password), a
client interface version, and the Greenwich Mean Time (GMT). The
logon authorization information can also include local time,
including, but not limited to Pacific, Mountain, Central, and
Eastern Time. Alternatively, the logon authorization information
can be unencrypted.
[0043] To determine whether a user is an authorized user, the TPMDS
system compares the client identification information with logon
information contained in a database that is connected to the TPMDS
server computer. When a match exists, the TPMDS returns a limited
life span key to the user. This limited life span key provides the
user with the ability to encrypt data and decipher encrypted data.
The limited life span key is active for a pre-defined time duration
(e.g., ten minutes). Alternatively, the TPMDS system may place a
cookie on the user computer to enable requests for targeted media
items without requiring logon information, thereby allowing the
user to remain anonymous.
[0044] The user or ad proxy uses the limited life span key to
encrypt a request for targeted media item options. The request
contains parameter requirements, including audience demographic
requirements and/or content requirements. The request can also
contain media requirements, including, but not limited to specific
media type, including, but not limited to specific audio format and
file wrapper format. For example, a user may request targeted
commercial spots that are of a specific file wrapper format and
audio format. The user sends the encrypted request to the
TPMDS.
[0045] In response to the encrypted request, the TPMDS compares the
parameter requirements with the description of each media item
stored in the database. The TPMDS then uses XML to create a list
which contains each media item that satisfies the parameter
requirements. Media items that satisfy the parameter requirements
are referred to as targeted media items. Of course, a different
mark-up language could be used for the list, such as HTML or SGML,
without exceeding the scope of this invention.
[0046] Next, the TPMDS encrypts the XML list, and returns the
encrypted list to the client computer. The client computer, or ad
proxy, uses its limited life span key to decrypt the XML list of
targeted media items.
[0047] At this point, the user may select one or more targeted
media items from the list. The user can then purchase the selected,
targeted media items from any media item provider. When the
purchased media items are played and/or displayed, the client
computer sends an XML report to the TPMDS. Of course, a different
mark-up language could be used for the report, such as HTML or
SGML, without exceeding the scope of this invention.
[0048] Before providing the details of the TPAS and the TPMDS, the
hardware environments used to implement a client computer, client
device, and a server computer in one embodiment of the present
invention are discussed.
[0049] FIG. 1 is a schematic diagram illustrating a hardware
environment used to implement a server computer 100 in one
embodiment of the invention. The present invention is typically
implemented using a server computer 100, which generally includes a
processor 102, a random access memory (RAM) 104, data storage
devices 106 (e.g., hard, floppy, and/or CD-ROM disk, drives, etc.)
data communications devices 108 (e.g., modems, network interfaces,
etc.), display devices 110 (e.g., CRT, LCD display, etc.), and
input devices 112 (e.g., mouse pointing device, keyboard, CD-ROM
drive, etc.). It is envisioned that attached to the server computer
100 may be other devices, such as read only memory (ROM), a video
card, bus interface, printers, etc. Those skilled in the art will
recognize that any combination of the above components, or any
number of different components, peripherals, and other devices, may
be used with the server computer 100.
[0050] The server computer 100 operates under the control of an
operating system (OS) 114. The operating system 114 is booted into
the memory 104 of the server computer 100 for execution when the
server computer 100 is powered-on or reset. In turn, the operating
system 114 then controls the execution of one or more computer
programs 116, such as the comparison software for comparing the
parameter requirements with available advertisements, and list
software for creating an XML list of targeted advertisements. The
present invention is generally implemented in these computer
programs 116, which execute under the control of the operating
system 114, and cause the server computer 100 to perform the
desired functions as described herein.
[0051] The operating system 114 and computer programs 116 are
comprised of instructions which, when read and executed by the
server computer 100, cause the server computer 100 to perform the
steps necessary to implement and/or use the present invention.
Generally, the operating system 114 and/or computer programs 116
are tangibly embodied in and/or readable from a device, carrier, or
media such as memory 104, data storage devices 106, and/or data
communications devices 108. Under control of the operating system
114, the computer programs 116 may be loaded from the memory 104,
data storage devices 106, and/or data communications devices 208
into the memory 204 of the server computer 100 for use during
actual operations.
[0052] Thus, the present invention may be implemented as a method,
apparatus, or article of manufacture using standard programming
and/or engineering techniques to produce software, firmware,
hardware, or any combination thereof. The term "article of
manufacture" (or alternatively, "computer program product") as used
herein, is intended to encompass a tangible, non-transitory,
computer storage medium that stores a computer program accessible
from any computer-readable device, carrier, or media. Of course,
those skilled in the art will recognize many modifications may be
made to this configuration without departing from the scope of the
present invention.
[0053] Those skilled in the art will also recognize that the
environment illustrated in FIG. 1 is not intended to limit the
present invention. Indeed, those skilled in the art will recognize
that other alternative hardware environments may be used without
departing from the scope of the present invention.
[0054] FIG. 2 is a schematic diagram illustrating a hardware
environment used to implement a client computer 200 in one
embodiment of the invention. The present invention is typically
implemented using a client computer 200, which generally includes a
processor 202, a random access memory (RAM) 204, data storage
devices 206 (e.g., hard, floppy, and/or CD-ROM disk, drives, etc.),
data communications devices 208 (e.g., modems, network interfaces,
etc.), display devices 210 (e.g., CRT, LCD display, etc.), and
input devices 212 (e.g., mouse pointing device, keyboard, CD-ROM
drive, etc.). It is envisioned that attached to the client computer
200 may be other devices, such as read only memory (ROM), a video
card, bus interface, printers, etc. Those skilled in the art will
recognize that any combination of the above components, or any
number of different components, peripherals, and other devices, may
be used with the client computer 200.
[0055] The client computer 200 operates under the control of an
operating system (OS) 214. The operating system 214 is booted into
the memory 204 of the client computer 200 for execution when the
client computer 200 is powered-on or reset. In turn, the operating
system 214 then controls the execution of one or more computer
programs 216, such as software for reporting when an advertisement
has been played/displayed. The present invention is generally
implemented in these computer programs 216, which execute under the
control of the operating system 214, and cause the client computer
200 to perform the desired functions as described herein.
[0056] The operating system 214 and computer programs 216 are
comprised of instructions which, when read and executed by the
client computer 200, cause the client computer 200 to perform the
steps necessary to implement and/or use the present invention.
Generally, the operating system 214 and/or computer programs 216
are tangibly embodied in and/or readable from a device, carrier, or
media such as memory 204, data storage devices 206, and/or data
communications devices 208. Under control of the operating system
214, the computer programs 216 may be loaded from the memory 204,
data storage devices 206, and/or data communication devices 208
into the memory 204 of the client computer 200 for use during
actual operations.
[0057] Thus, the present invention may be implemented as a method,
apparatus or article of manufacture, using standard programming
and/or engineering techniques to produce software, firmware,
hardware, or any combination thereof. The term "article of
manufacture" (or alternatively, "computer program product") as used
herein, is intended to encompass a computer program accessible from
any computer-readable device, carrier, or media. Of course, those
skilled in the art will recognize many modifications may be made to
this configuration without departing from the scope of the present
invention.
[0058] Those skilled in the art will also recognize that the
environment illustrated in FIG. 2 is not intended to limit the
present invention. Indeed, those skilled in the art will recognize
that other alternative hardware environments may be used without
departing from the scope of the present invention. It will also be
appreciated that various embodiments employ more than one server
device. Furthermore, a particular physical device can be considered
a server in one context, and a client in another context, depending
on whether the device is serving information to another device, or
requesting and consuming information. Thus an ad proxy can be
considered to be a server in the context of providing a playback
manifest to a content distribution network (CDN), and a client in
the context of requesting advertising content from an ad sever.
[0059] FIG. 3 is a schematic diagram illustrating a hardware
environment used to implement a client device 300. Client device
300 can be a consumer device, such as an appliance, a personal
digital assistant (PDA), a wrist watch, a stand-alone Internet
radio, a set top box, or a television system, or other consumer
device, as well as a general computing device such as personal
computers including but not limited to a laptop computer, a desktop
computer, or a tablet device. Client device 300 generally includes
a processor 302, a random access memory (RAM) 304, data storage
devices 306 (e.g., hard, floppy, and/or CD-ROM disk, drives, etc.),
data communications devices 308 (e.g., modems, network interfaces,
etc.), display devices 310 (e.g., CRT, LCD display, etc.), and
input devices 312 (e.g., mouse pointing device, keyboard, CD-ROM
drive, etc.). Other devices, such as read only memory (ROM), a
video card, bus interface, printers, etc. can be attached to or
included in client device 300. Those skilled in the art will
recognize that various combinations of the above components, or any
number of different components, peripherals, and other devices, may
be used with the client device 300.
[0060] Client device 300 operates under control of an operating
system (OS) 314. Operating system 314 can be booted into the memory
304 of the client device 300 for execution when the client device
300 is powered-on or reset. In turn, operating system 314 can
control the execution of one or more software programs 316, such as
software for reporting when an advertisement has been played or
displayed. Various embodiments are implemented as software programs
316, which execute under control of operating system 314, and cause
client device 300 to perform desired functions, some of which are
described herein.
[0061] Operating system 314 and software programs 316 include
instructions which, when read and executed by client device 300,
cause client device 300 to perform operations useful in
implementing various embodiments of the present invention. The
operating system 314 and software programs 316 can take the form of
a computer readable medium, which is readable from a device,
carrier, or media such as memory 304, data storage devices 306,
data communications devices 308. Under control of the operating
system 314, the software programs 316 may be loaded from the memory
304, data storage devices 306, data communication devices 308 into
the memory 304 of the client device 300 for use during actual
operations.
[0062] Thus, various embodiments can be implemented as a method,
apparatus or article of manufacture, using standard programming or
engineering techniques to produce software, firmware, hardware, or
any combination thereof. The term "article of manufacture" (or
alternatively, "software program product") as used herein, is
intended to encompass a software program accessible from any
computer-readable device, carrier, or media. Of course, those
skilled in the art will recognize many modifications may be made to
this configuration without departing from the scope of the present
invention.
[0063] Those skilled in the art will also recognize that the
environment illustrated in FIG. 5 is not intended to limit the
present invention. Indeed, those skilled in the art will recognize
that other alternative hardware environments may be used without
departing from the scope of the present invention.
[0064] FIG. 4 is a schematic diagram illustrating a client/server
computer environment of an embodiment of the present invention, and
more particularly, illustrates a typical distributed computer
system 400 using the Internet to connect the server computer 100 to
the client computer 200.
[0065] The server computer 100 is connected to a database 406 that
contains user logon authorization information and information about
the available data items. In FIG. 4, the data items are
advertisements. Those skilled in the art will recognize that other
data items may be used without departing from the scope of the
present invention.
[0066] The logon authorization information includes client
identifiers (e.g., usernames and passwords) for users that are
authorized to access the TPAS system. The advertisement information
includes, but is not limited to the following: (1) the title of the
advertisement; (2) the spot identification number; (3) the flight
identification number; (4) the spot Universal Resource Locator
(URL); (5) the click action URL; (6) the duration; and (7) the
description.
[0067] The title of the advertisement provides a descriptive title,
and the spot identification number is based on the type of
advertisement. For example, a banner advertisement may have a
different spot identification number than an audio advertisement.
The flight identification number is associated with the following:
the target audience of an advertisement; the period of time during
which a particular advertisement is played/displayed; and the
number of times that the advertisement will be played/displayed.
The spot URL and the click action URL define the location of the
advertisement. The duration defines the time length (e.g., five
seconds) of the advertisement. The description contains a written
description, possibly provided by the advertiser, possibly
automatically provide by information stored within the TPAS system
or gathered from information received by third party sources from
outside of the TPAS system.
[0068] A user at a client computer 200 invokes the TPAS. The user
could be a content provider, such as an Internet radio station or a
music on demand Web site, an audio server that provides content to
a broadcast chain, a cloud-based media provider, or a Web site that
provides content. Alternatively, the user can be a consumer,
including an advertiser. At the server computer 100, the TPAS
system requests the logon authorization information from the user.
The logon authorization information includes the user's interface
version, client identifier, and GMT time. Arrow 402 represents the
client computer 200 sending a logon request to the server computer
100. It is noted that all communication between the client computer
200 and the server 100 computer is in XML, and each communication
has a specific header that identifies the content of the
communication. For example, the communication may be a logon
communication, a request communication, etc.
[0069] To determine whether a user is an authorized user, the TPAS
system compares the client identifier information with the logon
authorization information contained in the database 406. When a
match exists, the TPAS returns a limited life span key to the user,
as represented by Arrow 404. This limited life span key provides
the user with the ability to encrypt data and decipher encrypted
data. The limited life span key is active for a predefined time
duration (e.g., ten minutes).
[0070] The user uses the limited life span key to encrypt and send
a request for targeted advertisement options, as represented by
Arrow 406. The request contains parameter requirements, including
audience demographic requirements and/or content requirements. The
audience demographic requirements include, but are not limited to,
age, gender, geographic location, interests, education, income, and
musical format.
[0071] In one embodiment, the location demographic requirement
includes the real time location. For example, assume that the
content provider seeks to provide an advertisement to someone that
is standing in front of a coffee shop. The content provider will
then request advertisement options that are related to that
particular coffee shop.
[0072] The musical format includes any compressed format (e.g.,
WMP, WMA, WAV, Real, QT, MP3, MP4, Liquid, or Emblaze). Other
content requirements include, but are not limited to, spot type,
gateway, inserted, audio or video, audio format, file wrapper
format, graphic, encoding, encoding rate, and Codec. Exemplary spot
types include, but are not limited to, a promotional advertisement,
a gateway advertisement, a banner advertisement, a commercial
advertisement, or a "jingle."
[0073] The TPAS compares the parameter requirements with the
advertisement descriptions. The TPAS then uses XML to create a list
that contains each advertisement which satisfies the parameter
requirements. Each advertisement is tagged (or affixed) with its
advertisement information.
[0074] Next, the TPAS encrypts the XML list, and returns the
encrypted list to the client computer, as represented by Arrow 408.
The client computer uses its limited life span key to decrypt the
XML list of targeted advertisements.
[0075] The user may select one or more targeted advertisements from
the list. The user can then purchase the selected, targeted
advertisements from any advertisement provider. When the purchased
advertisements are played and/or displayed, the client computer
sends an XML report to the TPAS, as represented by Arrow 410. The
report is a specified XML schema that includes, but is not limited
to: the client identification number, the spot identification
number, the flight identification number, the start and stop
play/display time in GMT, and the number of times that the
advertisements was played/displayed.
[0076] FIG. 5 is a flow diagram illustrating the process performed
by the TPAS. Block 500 represents the TPAS receiving a logon
request from a user. When the user is an authorized user, the TPAS
transmits a limited life span encryption key, as represented by
Block 502.
[0077] Block 504 represents the TPAS receiving an encrypted request
for a list of targeted advertisements from the authorized user. The
request includes parameter requirements, including audience
demographic requirements and content requirements. The TPAS then
compares the parameter requirements with the descriptions of each
advertisement, as represented by Block 506.
[0078] Block 508 is a decision block that represents the TPAS
determining whether there are any advertisements that satisfy the
parameter requirements. When there are advertisements that satisfy
the parameter requirements, the TPAS creates and transmits the list
of targeted advertisements to the authorized user, as represented
by Block 512. The TPAS then proceeds to Block 514.
[0079] Block 514 represents the TPAS system receiving an XML report
from the authorized user each time a targeted advertisement is
played and/or displayed, attempts to play or display, or is
otherwise ordered, requested, or scheduled to play or display.
[0080] Otherwise, when no advertisements satisfy the parameter
requirements, the TPAS may return a message stating that: "no
advertisements satisfy the parameter requirements.about.," or other
similar message, as represented by Block 510.
[0081] FIG. 6 is a schematic diagram illustrating a client/server
computer environment of an embodiment of the present invention, and
more particularly, illustrates a typical distributed computer
system 600 using the Internet to connect the server computer 100 to
the client device 300.
[0082] The server computer 100 is connected to a database 406 that
contains user logon authorization information and information about
the available data items. In FIG. 6, the data items are media items
612, which are retrieved using a second server 614. The second
server 614 can be the server computer 100. Information on media
items 612 that are retrieved using second servers 614 other than
server computer 100 can be retrieved using the second servers 614
and stored on the database 406. Those skilled in the art will
recognize that other data items may be used without departing from
the scope of the present invention.
[0083] The logon authorization information may include client
identifiers (e.g., usernames and passwords) for users that are
authorized to access the TPMDS system. The media item information
includes, but is not limited to the following: (1) the title of the
media item; (2) the media item identification number; (3) the
flight identification number; (4) the media item Universal Resource
Locator (URL); (5) the click action URL; (6) the duration; and (7)
the description.
[0084] The title of the media item may provide a descriptive title
and the media item identification number is based on the type of
media. For example, a talk radio program may have a different media
item identification number than a music video. The flight
identification number is associated with the following: the target
audience of a media item; the period of time during which a
particular media item is played/displayed; and the number of times
that the media item 612 will be played/displayed. The spot URL and
the click action URL define the location of the media item 612;
they can also define the location of the media item if the media
item 612 is to be retrieved using a second server 614 that is not
the server computer 100. The duration defines the time length
(e.g., ten minutes) of the media item. A spot block identifier can
also be included. The description contains a written description,
possibly provided by the media provider.
[0085] In some embodiments, the TPAS may be configured to respond
to spot break split information received from broadcast automation
software. The spot break split information can include information
indicating which portion of as spot break is reserved for the TPAS
to use for inserting targeted advertisements.
[0086] A user at a client device 300 invokes the TPMDS. The user
could be a media provider, such as an Internet radio station or a
music on demand Web site, an audio server, or a Web site that
provides media. Alternatively, the user can be a consumer, an
advertiser or a client. At the server computer 100, the TPMDS
system requests the logon authorization information from the user.
The logon authorization information may include the user's
interface version, client identifier, and GMT time. Arrow 602
represents the client device 300 sending a logon request to the
server computer 100. It is noted that some or all communication
between the client device 300 and the server 100 computer may be in
XML, and may have a specific header that identifies the content of
the communication. For example, the communication may be a logon
communication, a request communication, etc.
[0087] To determine whether a user is an authorized user, the TPMDS
system compares the client identifier information with the logon
authorization information contained in the database 406. When a
match exists, the TPMDS returns a limited life span key to the
user, as represented by Arrow 604. This limited life span key
provides the user with the ability to encrypt data and decipher
encrypted data. The limited life span key is active for a
predefined time duration (e.g., ten minutes).
[0088] The user may use the limited life span key to encrypt and
send a request for targeted media options, as represented by Arrow
606. The request contains parameter requirements, including
audience demographic requirements and/or media requirements. The
audience demographic requirements include, but are not limited to,
age, gender, geographic location, interests, education, income, and
musical format.
[0089] In one embodiment, the location demographic requirement
includes the real time location. For example, assume that the media
provider seeks to provide a media item to someone that is living in
the state of New York. The media provider will then request media
options that are related to the state of New York.
[0090] The musical format includes any compressed format (e.g.,
WMP, Real, QT, MP3, MP4, Liquid, or Emblaze). Other media
requirements include, but are not limited to, media type, gateway,
inserted, audio or video, audio format, file wrapper format,
graphic, encoding, encoding rate, and Codec. Exemplary media types
include, but are not limited to, an advertisement, a music video, a
song, or a radio program.
[0091] The TPMDS can compare the parameter requirements with the
media item information on the database 406. The TPMDS may then use
XML to create a list that contains an entry for each media item
which satisfies the parameter requirements. Each media item entry
can be tagged (or affixed) with its media item information. If a
media item 612 is to be retrieved using a second server 614 that is
not the sever computer 100, the media item information tagged with
the media item entry can include the identification of the second
server 614 through which the media item 612 is to be retrieved.
[0092] Next, the TPMDS encrypts the XML list, and returns the
encrypted list to the client device 300, as represented by arrow
608. The client device 300 uses its limited life span key to
decrypt the XML list of targeted media item entries.
[0093] The user may select one or more targeted media item entries
from the list. The user can then purchase or otherwise obtain the
selected, targeted media item 612 from any media provider,
including those media items located on a second server 614. When
the media items 612 are played or displayed, the client computer
may send a report, e.g., an XML report, to the TPMDS, as
represented by arrow 610. The report may be a specified XML schema
that includes, but is not limited to: the client identification
number, the media item identification number, the flight
identification number, the start and stop play/display time in GMT,
and the number of times that the media item was
played/displayed.
[0094] FIG. 7 is a flow diagram illustrating the process performed
by the TPMDS. Block 700 represents the TPMDS receiving a logon
request from a user. When the user is an authorized user, the TPMDS
transmits a limited life span encryption key, as represented by
Block 702.
[0095] Block 704 represents the TPMDS receiving an encrypted
request for a list of targeted media items from the authorized
user. The request includes parameter requirements, including
audience demographic requirements and content requirements. The
TPMDS then compares the parameter requirements with the
descriptions of each media item, as represented by Block 706.
[0096] Block 708 is a decision block that represents the TPMDS
determining whether there are any media items that satisfy the
parameter requirements. When there are media items that satisfy the
parameter requirements, the TPMDS may create and transmit the list
of targeted media items, including information on the location of
the targeted media items, to the authorized user, as represented by
Block 712. The TPMDS then proceeds to Block 714.
[0097] Block 714 represents the TPMDS system receiving an XML
report from the authorized user each time a targeted media item is
played and/or displayed, or attempts to play or display, or is
otherwise ordered, requested or scheduled to play or display.
[0098] Otherwise, when no media items satisfy the parameter
requirements, the TPMDS may return a message stating that: "no
media items satisfy the parameter requirements," or other similar
message, as represented by Block 710.
[0099] Referring next to FIGS. 8-12, various methods, systems, and
devices for splitting a single spot break, will be discussed. Those
skilled in the art will appreciate that streaming spots are
generally of a one-to-many listener distribution process. However,
it is possible to send a signal and target ads using a one-to-one
listener distribution. Various embodiments described herein allow
the particular type of ad delivery process used (e.g. one-to-many
or one-to-one) to be varied within a single spot break. The way in
which a spot break is split up can be determined based on size
(length) allocated to spot versus commercials sold at each rate,
and may use an internal ad management system priority code. Part of
the spot break may be allocated to an internal ad management system
and the rest to an external ad management system, or the whole spot
break may be allocated to either an internal ad management system
or an external ad management system.
[0100] In some embodiments, control of different spot breaks within
a particular period of time can be implemented in a manner similar
to splitting a single spot break. For example if there are two spot
breaks within an hour, they can be split so that the first spot
break in its entirety corresponds to the first portion of a single
spot break, and is controlled by a first ad management server,
while the second spot break in its entirety corresponds the second
portion of a single spot break, and ads are inserted into the
second spot break under control of a second ad management server.
Other time periods in which control of different spot breaks can be
split between different ad management servers include any of
various dayparts.
[0101] As opposed to more conventional techniques, in which
insertion of advertisements is performed under control of a single
entity, the techniques described in the following discussion can be
used to allow, for example, one entity to insert universally
applicable advertisements into one part of a spot break, while
another entity can insert targeted advertisements into another
portion of the spot break. In various embodiments, either or both
of the first and second entities can insert filler in addition to,
or in place of, advertisements.
[0102] The phrase, "universally applicable advertisements" and
other similar terms are used herein to refer to advertisements
intended for an entirety of an audience consuming media presented
on a particular channel, or station, while the phrase "targeted
advertisements" refers to advertisements selected for a subset of
the entire audience, such as a group of listeners having one or
more similar demographic attributes, or with granularity that can
be as small as an individual listener. It will be appreciated that
universally applicable advertisements may be targeted to the extent
that they are targeted to the majority of media consumers receiving
media content from the broadcast or stream, but such "universal
targeting" is performed at a different level of granularity.
Another distinction between universal advertisements and targeted
advertisements (keeping in mind that universal advertisements can
be targeted broadly to an entire audience) is that different
targeted advertisements can be provided, concurrently or
non-concurrently, to different media consumers of particular media
programming, while universal advertisements are intended to be
provided to the audience as a whole.
[0103] The difference between universal advertisements and targeted
advertisements, as those terms are used herein, can be understood
by considering an example in which a single advertisement is
provided to consumers of a program on both a broadcast channel, and
on each and every individual stream representing that particular
broadcast channel. By contrast, targeted advertisements refer to
advertisements that can be provided to different consumers of the
same or different media streams based on more individualized
consumer preferences and/or demographics. Assume, for example 70%
of the listeners to a classic rock radio station may be between the
ages of 30 and 45. Thus, universal advertisements can be selected
to appeal to that 70% of listeners. Assuming, however, that 10% of
the listeners are listening online via a streaming media player,
and those listeners have identifiable preferences and demographics
that do not match the 70%, those listeners can each be provided
with individually customized advertisements, or demographically
customized advertisements, during at least a portion of the spot
break.
[0104] As used in the following discussion, reference to
controlling a spot break refers generally to controlling which
advertisements are inserted into one or more portions of the spot
break, and in some cases the order in which those advertisements
are inserted within that portion. Reference to splitting a spot
break refers to dividing control of a block of time in a media
broadcast or stream that is used generally for presenting
advertisements, and in some cases filler, to media consumers. In
some cases splitting a spot break also refers to dividing spot
break into universal and targeted portions. Note that splitting a
spot break does not include splitting a spot break between
advertisements and filler, with no split in control or
universal/targeted content. Furthermore, although some of the
embodiments discussed herein involve splitting a spot break into
two different portions, the techniques are equally applicable to
splitting a spot break into more than two portions. For example, a
single spot break can be split into three, four, five or more
spots.
[0105] Additionally, a spot break divided into multiple portions
can be combined or recombined, either partially or fully, to
decrease the number of different portions. For example, if a spot
break is divided into 4 different portions, the last three portions
can be recombined, leaving the original first portion and a
recombined second portion. Similarly, the middle two portions can
be combined, leaving the original beginning and end portions, and a
single recombined middle portion. Recombining different portions
can be performed when an ad management system assigned to control
one of the portions does not have sufficient content, or sufficient
quality of content, for insertion during its assigned portion of
the spot break. Combining two spot break portions can be performed
on-the-fly, and can include passing control of an assigned portion
of a spot break either early or late, or passing control to a
standby system.
[0106] Referring to FIG. 8, an implementation of a system 800
configured to split control of a single spot break is illustrated
and discussed according to various embodiments of the present
disclosure. System 800 includes processing system hardware 801,
which can be used to control and automate various media broadcast
functions. System 800 also includes streaming audio server 823,
which provides content and advertisements to streaming broadcast
chain 825, through which a streaming broadcast of media content can
be provided to a network such as Internet 827; over the air audio
server 813, which provides content and advertisements to on air
broadcast chain 815, through which media content can be broadcast
via a broadcast tower 817; and external ad management system 811,
which provides advertisements during designated portions of a split
spot break to audio servers 813 and 823.
[0107] Processing system hardware 801 includes broadcast automation
system 802, which in at least one embodiment can be at least
partially implemented using a NexGen.RTM. audio server; internal ad
management system 807, which in at least one embodiment can be
implemented at least partially using a traffic and billing system
such as Viero.RTM., and can be used to provide control for various
traffic and billing functions such as entering and editing orders,
and scheduling spots based at least in part on the spot break split
information 806 received from spot break split module 805; and
communications interface 809, which allow processing system
hardware 801 to communicate via various different communications
networks.
[0108] Broadcast automation system 802 includes database server
803, which provides content to one or both of over-air audio server
813 and streaming audio server 823, and spot break split module
805, which determines how a spot break should be split, and may
notify internal ad management system 807 and external ad management
system 811. For example, spot break split module 805 can be used to
determine whether a particular percentage of a spot break should be
reserved for universal advertisements, and the remaining portion
reserved for targeted advertisements; which portion of the spot
break could be controlled by internal ad management system 807, and
which portion by external ad management system 811; whether the
split proportions of the spot break could be reallocated based on
the length of currently scheduled advertisements; and the like.
[0109] In at least one embodiment, processing system hardware 801
and its subcomponents can be implemented as virtual servers
implemented on the same hardware as another of the illustrated
devices or modules. Furthermore, various distributed processing
techniques can be used to spread functionality of one or more of
the illustrated servers across multiple different machines.
[0110] In various embodiments, programming provided by streaming
audio server 823 to streaming broadcast chain 825 is the same
programming provided by over-air audio server 813 to on air
broadcast chain 815. In many instances, however, particular spots,
or advertisements, included in the various spot breaks provided to
on air broadcast chain 815 and streaming broadcast chain 825 can
vary, even though the length and timing of the spot breaks
themselves are generally consistent with each other.
[0111] In some implementations, it is desirable to be able to
provide universal advertisements to all media consumers for part of
the spot break, but provide targeted advertisements to some of the
media consumers during another part of the spot break. Thus, for
example, all consumers might receive two universal advertisements
at the beginning of a spot break, while during the second part of
the spot break some consumers will receive additional universal
advertisements, while others will receive targeted advertising in
place of the universal advertisements.
[0112] The proportion of universal advertisements to targeted
advertisements received by certain consumers can be determined by
spot break split module 805, and that proportion can be
communicated to internal ad management system 807 and external ad
management system 811. In various embodiments, spot rate module 805
can provide information to internal ad management system 807 and
external ad management system 811 that designates a number of
portions into which any particular spot break is to be split, a
length of one or more of the particular portions of the spot break,
a start time of one or more spot break portions, and end time of
one or more spot break portions, or some combination of these.
Various embodiments provide for different spot breaks to be split
differently, providing for dynamically varying how different spot
breaks are split, including dynamically varying the relative
lengths of the first and second portions for different spot
breaks.
[0113] In some embodiments, information specifying a spot break
length may not actually be provided to the ad management systems
807 and 811. Instead, a start signal can be delivered to whichever
ad management system is placed in control of a beginning portion of
the spot break, and a message passing control from the initial ad
management system can be delivered to the subsequent ad management
system at or near the end of the beginning portion of the split
spot break. In some embodiments, the message passing control from
the initial ad management system to a subsequent ad management
system can come in the form of a marker in the data stream being
delivered to a content distribution network, such as streaming
broadcast chain 825. In at least one embodiment, this marker is
received and interpreted by streaming broadcast chain 825. The
marker can indicate a length of time an ad insertion module, for
example external ad management system 811, should be allowed to
control advertisement insertions into the broadcast stream.
[0114] In other embodiments, control can be passed in other ways.
For example, (1) an ad management systems can be synched to a
common time clock for ad breaks, and particular ad management
systems automatically assume control as specified by the common
time clock; (2) ad management systems can respond to one or both of
begin-control and end-control markers included in content, or in
discrete messages from a centralized ad controller; (3) an ad
management system can insert ads into a portion of a spot break
based on a combination of synching to a time clock and content
markers; (4) a content detection/recognition system can detect
periods of no content, or silence, signaling ad break and initiate
a change in control of ad-insertion from one management system to
another; (5) an ad management system can recognize a song or other
specific content item being played out, use that knowledge to
determine when play-out of the media item will be completed, and
synch to a clock so that specifies an ad break at upon completion
of play-out of the media item.
[0115] During a time when an ad management system controls its
designated portion of the spot break, the controlling ad management
system can insert advertisements according to various business
rules. These business rules can specify types of advertisements
allowed to be played adjacent to each other, target information
indicating how the advertisement should be targeted, and priority
information indicating whether a particular advertisement,
advertiser, group of advertisements, type of advertisement, or the
like are to be given priority over other categories of
advertisements. Examples of business rules that can be used to
assist in assigning control of portions of an ad break to various
management systems, or used in assigning particular advertisement
can be found in the following patents, each of which is
incorporated by reference herein in its entirety: U.S. Pat. No.
7,386,492, entitled, "Inventory And Revenue Maximization Method And
System"; U.S. Pat. No. 7,941,350, entitled, "Inventory And Revenue
Maximization Method And System"; U.S. Pat. No. 8,230,460, entitled,
"Real-Time Insertion And Reporting Of Media Content"; U.S. Pat. No.
8,356,037, entitled, "Processes To Learn Enterprise Data Matching";
and U.S. Pat. No. 8,443,046, entitled, "Automated Content Delivery
To Distributed Media Outlets."
[0116] In various embodiments, an ad management system can pass
information to one or more other ad management systems to assist in
implementation of various business rules. For example, a first ad
management system scheduled to control insertion of advertisements
into an earlier portion of a spot break can send an Ad Conflict
message to a second advertisement system, which is scheduled to
control insertion of advertisements into a later portion of the
same spot break. The Ad Conflict message can include information
about advertisements being inserted, or scheduled to be inserted
by, the first ad management system. This information can include
conflict information, content identifiers, rule identifiers, or
similar information that can be used by the second ad management
system to identify and attempt to minimize or avoid potential
advertiser adjacency conflicts. For example, the first ad
management system can notify the second ad management system that
an ad for Cell Phone Provider A is being inserted, and include a
rule reference identifier that specifies no advertisements from
Cell Phone Provider B are to be played within the same spot break
as an ad for Cell Phone Provider A. The second ad management system
can look up the rule reference identifier, and take actions as
needed to prevent insertion of a prohibited ad into a later portion
of the ad break. As needed, the second ad management system can
schedule an alternate ad or fill to replace a prohibited ad, pass
control to another ad management system, or pass control back to
the first ad management system.
[0117] In some implementations, the second ad management system can
pass an Ad Conflict message to the first ad management system,
allowing the first ad management system to take corrective action
if needed. In various embodiments, multiple ad management systems
can coordinate among themselves in an iterative manner to ensure
that various business rules are complied with. Furthermore, some or
all of the same information included in an Ad Conflict message of
some implementations can be sent alternatively or additionally in a
Change of Control message, or as part of another message delivered
directly or indirectly to or from an ad management system.
[0118] In some embodiments, the message indicating the change of
control between the two ad management systems can be transmitted
from the initial ad management system to the subsequent ad
management system, while in other embodiments, spot break split
module 805 can transmit the message. In various implementations,
splitting the spot break and insertion of advertisements into split
spot breaks can be performed in advance, rather than in near
real-time. For example, during generation of a radio station's
clock or log, spot breaks foot module 805 can instruct internal ad
management system 807 to schedule advertisements and fill in only
the first 75 seconds in a 130 second spot break, and instruct
external ad management system 811 to provide advertisements and
fill for the remaining 55 seconds of the spot break.
[0119] Referring next FIG. 9, a method 900 according to various
embodiments of the present disclosure will be discussed. At block
903 length of the spot break is determined. The length of the spot
break can be determined from a program clock were station log. A
check is made to determine whether the length of the spot break
satisfies a split threshold, as illustrated by block 905. In
various embodiments, it is desirable to leave very short spot
breaks intact, without being split, because splitting very short
spot breaks could prevent some longer advertisements from running,
and results in shorter spot breaks having fewer advertisements and
more fill. In at least one embodiment, the split threshold
specifies that spot breaks having a length of 74 seconds or less
are not to be split. Note that the split threshold can be
configured differently for each individual station, so that
although a 76 second spot break will be split into two portions for
a first station, that same 76 second spot break will not be split
for a second station.
[0120] As noted earlier, splitting a spot break can refer to
dividing control between an internal ad management system and an
external ad management system, and/or splitting a spot break
between universal and targeted advertisements. Likewise, the split
threshold can refer to a division of control between different ad
management systems, and/or dividing a spot break between universal
and targeted advertisements. Furthermore the rule can be specified
for implementation at either or both an internal ad management
system or an external ad management system.
[0121] As illustrated by block 907, if the spot break is determined
to be too short to split, the spot break is not split. As
illustrated by block 909, if the spot break is not split,
advertisements can be transmitted under control of a single
advertisement management system, either the first advertisement
management system for a second advertiser management system. In
cases where a single advertisement management system manages the
entire spot break, but provides some targeted advertisements in
some universal advertisements, one type or the other of
advertisement can be provided--for example, either all universal or
all targeted. Note that use of the terms "first" and "second" is
not intended to refer to an order, or sequence, but rather these
terms are used simply to differentiate one advertisement management
system from another.
[0122] If it is determined at block 905 that the length of the spot
break sufficient to satisfy the split threshold, an order in which
the different portions of the spot break are to be presented is
determined that block 917. Note that in various embodiments, the
universal advertisements are always presented during a portion of a
spot block that is first in time, and the targeted advertisements
are assigned to any remaining portion of the spot block that is
unused by the universal advertisements. Similarly, in some such
embodiments ad management systems responsible for delivering
primarily universal advertisements are always assigned a beginning
portion of a spot break, and ad management system responsible for
delivering primarily targeted advertisements are allotted the
remaining, or terminal, portion of the spot break on use by the ad
management system delivering the universal advertisements.
[0123] At block 919 a determination is made regarding whether the
spot break total length falls within a first range. If the length
of the spot break falls within a first range of links, the internal
and external ad management systems are allocated portions of the
spot break based on a first rule as illustrated by block 921. If
the length of the spot break does not fall within the first range,
as illustrated by block 919, the split portions can be allocated
using a second rule, as illustrated by block 911. In either case,
the remainder of the spot break is allocated to the other of the
two ad management systems, as illustrated by block 913.
[0124] In some embodiments, the portion of the spot break allocated
to the different ad management servers at block 921 can be
determined using a tiered model, based on the total length of the
spot break. For example, a spot break that meets a first threshold
requirement, which may or may not be the same as the split
threshold requirement, can result in an internal ad management
system being allocated a certain portion of the spot break, while a
longer spot break that meets a second threshold would result in the
internal ad management system being allocated a greater portion of
the spot break, although the increased portion allocated to the
internal ad management system is not necessarily coextensive with
the increase in the total size of the spot break.
[0125] In at least one embodiment, for every 1 min. of length in a
spot break, an internal ad management system can be assigned
control of Y seconds of the spot break. For example, if a spot
break is zero (0) to 74 seconds long, it may not be considered long
enough to split. If a spot break is 74 seconds to 134 seconds long,
the internal ad management system may be assigned to 60 seconds
minimum allocation. For a spot break that is between 135 seconds
and 185 seconds long, the internal ad management system may be
assigned 120 seconds minimum allocation.
[0126] Other spot break lengths and proportions can be used
consistent with the teachings set forth herein. For example, Y (the
length assigned per minute of spot break length) may be a fixed
value, such as 60 seconds, or the value of Y can be varied to
provide different length allocations for different tiers of a spot
break. In some embodiments, an internal ad management system may be
assigned 60 seconds of a spot break having only between 74 seconds
and 134 seconds, but be assigned only 90 seconds for spot break
between 135 and 185 seconds. A spot break can be assigned to
different tiers based on length, and/or based on various business
or technical considerations, such as estimated revenue of targeted
ads versus universal ads, the cost of delivering targeted ads,
whether targeted ads or universal ads will satisfy advertisement
campaign requirements, or the like.
[0127] In some embodiments, a determination regarding whether or
not to adjust the allocated splits is made, as illustrated by block
923. In some embodiments, the decision to adjust the split can be
pre-determined on an individual, station-by-station basis. Thus,
changing the split might be prohibited by some stations, and
allowed by others. Subject to split adjustment being enabled, the
decision about whether to adjust the split can depend on how many
paid or unpaid advertisements the internal and external ad
management systems are prepared to provide, the revenue expected
from advertisements provided by the respective systems, how much
fill is available, or the like.
[0128] In some embodiments determining whether split proportions
need to be adjusted, as illustrated by block 923, can include
determining whether one or more portions of an ad break are to be
combined or recombined, to decrease the number of portions into
which a spot break is split. The decision to combine can be based
on whether or not particular ad management systems have sold out
sufficient inventory to fill their assigned portions, whether a
particular spot break will support the number of portions
contemplated, whether conflicting ad content is likely to be caused
by the split granularity being too fine, whether too fine a
granularity would cause various other inventory constraints, or
based on other business rules. Combining two spot break portions
can be performed on-the-fly, and can include passing control of an
assigned portion of a spot break either early or late, or passing
control to a standby system.
[0129] Referring next to FIG. 10, the decision about whether or not
to adjust the split of a particular spot break split is discussed
in greater detail with reference to method 1000. In general, the
local ad management system may have too few, just enough, or too
many advertisements scheduled for its allocated portion of a spot
break. If there are just enough, then the split does not need to be
adjusted. If there are too few advertisements, then the first ad
management system can either add filler or pass control to the next
ad management system early. If too many advertisements are
scheduled, there are two different options: 1) run the
advertisements as scheduled and pass control late to the next
system; or 2) forgo running the excess advertisements and pass
control early. Additional filler can, in some cases, be inserted to
keep the length of the portion as close to originally planned as
practical.
[0130] As illustrated by block 1003, a check is performed to
determine whether the initial ad management system has enough ads
to fill its assigned portion of the split spot block. If the
initial ad management system does not have enough advertisements, a
check is made to determine whether the advertisements being
provided by the first system are being provided to a streaming
client, as illustrated by block 1013. If the advertisements are
being provided to a streaming client, the first ad management
system passes control to the second ad management system early, as
illustrated by block 1015. As illustrated by block 1017, if the
advertisements are not being provided to a streaming client, the
first ad management system, will add fill until its assigned
portion of the spot break is complete. As illustrated by block
1019, control is passed to the second ad management system per the
originally determined split.
[0131] If the first ad management system has enough ads to fill its
assigned portion of the spot break, a determination is made at
block 1005 to determine whether the length of the scheduled ads
being provided by the first ad management system exceed the link of
the first ad management system's assigned portion of the spot
break. If the length of the scheduled ads does not exceed the
assigned portion of the spot break, then, as illustrated by block
1007, the split proportions are not changed.
[0132] If, however, the length of the scheduled ads does exceed the
first ad management system's assigned portion of the spot break a
determination is made regarding whether the current ad management
system will surrender a terminal portion of its allotted portion of
the spot break based, at least in part, on a length of a final
advertisement scheduled to be inserted into the first portion of
the spot break. Thus, if running the last scheduled advertisement
will result in exceeding the assigned portion of the spot break
split, another check is made at block 1009 to determine whether or
not the run last spot parameter is set to true. If the run last
spot parameter is false, the last ad scheduled to be run will not
be run, and a decision must be made whether or not to pass control
to the next ad management system early, or whether to fill the
remaining time freed by deciding not to run the last ad with
filler. Thus, if the run last spot parameter is false, the method
proceeds from block 1009 back to block 1013.
[0133] If however the run last spot parameter is true, as
illustrated by block 1021, the last advertisement will be run, even
though running the last advertisement will use up more than the
first ad management system's allocated portion of the spot break.
Because the first ad management system is using up more than its
allotted time, as illustrated by block 1023 the portion of the spot
break allocated to the second ad management system will be
correspondingly reduced, and control will be passed to the second
ad management system later than originally determined.
[0134] Referring next to FIG. 11, various options for splitting a
single spot break will be discussed according to embodiments of the
present disclosure. As illustrated by FIG. 11, various different
orders of control can be applied to a split spot break, for
example, internal first, then external (row 1); external first then
internal (row 2); alternating internal and external control for
each spot break (row 3); alternating between allowing complete
internal control of one break and complete external control of the
next break (row 4); a three way split with internal, sellable ads
first, external sellable ads second, and fill provided by the
internal ad management system (row 5); and a three way split with
external, sellable ads first, internal sellable ads second, and
fill provided by the external ad management system (row 6).
[0135] Each row of the table shown in FIG. 11 illustrates a
different split order, with the columns representing various
consequences of selecting a particular split order. For example,
row one shows a split order in which an internal ad management
system is given control of the initial portion of the spot break,
and external, or third-party, ad management system is given control
of the second portion of the spot break. The listening experience
perceived by a media consumer refers to the order in which the
consumer may be provided with content. For example, in row one, a
listener will hear advertisements provided by the internal ad
management system, followed by fill provided by the internal ad
management system, followed by advertisements provided by the
third-party ad management system, followed by fill provided by the
third-party ad management system. In some embodiments this would
result in universal/national ad, universal/national fill,
targeted/local ads, and finally targeted/local fill.
[0136] The category conflict column indicates whether or not there
is a potential for conflict between advertisement categories. A
category conflict can occur, for example, when a universal/national
advertisement for one type of product has the potential to be
followed by a targeted advertisement for a competing product of the
same type. Typically, category conflicts are handled by the ad
management server controlling advertisement insertion into the spot
break. But in some embodiments, ad insertion for different portions
of a single ad break is controlled by different ad management
servers, and category conflicts have the potential to arise between
the ad management servers. Because a single ad management server
does not control the entire spot break, a technique for handling
conflicts between different ad management servers can be used to
improve the listening/viewing experience for media consumers. In
some embodiments, information passed directly or indirectly between
the different ad management servers can be used to avoid, or
minimize, the occurrence and impact of inter-server conflicts that
may arise. It will be noted that row 4 does not present a potential
for inter-server conflicts, because a single ad management server
controls an entire spot break.
[0137] The Constraints on Inventory/Pacing Management column refers
generally to limitations on presenting advertisements imposed by
various split arrangements. Pacing refers generally to the
speed/frequency with which an inventory of sold advertisements is
carried out. For example, if 200 spots are sold for playout on
weekdays during a particular month, to remain "on pace" to playout
all of the advertisements during the month, 10 spots should be
aired each weekday of the month (assuming a 4 week month). Some
split orders can make it more difficult to remain on pace during
periods of increased ad play, for example a national ad campaign
that requires a large number of advertisements to be played during
a limited period of time, because the available ad time is split
between national and local ads. This effectively leaves less time
for playout of the national ads. Consider row 4, for example.
Assume that a broadcast hour includes two ad breaks, and it is
desirable to broadcast a particular ad 2 times per hour to stay on
pace. Further assume that business rules prohibit 2 ads from being
played during the same hour. It is apparent that the desired pace
cannot be maintained, because only one ad can be played each
hour.
[0138] The Revenue Management, Ad Ops POV (Point of View) column
illustrates how a particular type of ad break split will affect
revenue management and ad opportunities. For example, if an ad
break is split as illustrated by row 1, it may be more difficult to
sell ad space to national buyers, since national ads will generally
air at the end of an ad break. If the split is performed according
to row 2, local ads may be more difficult to sell. If control of an
ad break is performed as shown in row 3, local and national ads are
alternated, so there will be little negative impact.
[0139] The last column, labeled NPP POV (national programming
platform point of view) shows how the split arrangement can be
viewed from the perspective of the NPP. Generally, although not
necessarily always, both the first and second ad management servers
insert fill from NPP. This fill can be short form fill, which is
sometimes considered less desirable, and long form fill, which is
generally considered to be more desirable. If a split type results
in ad breaks that have very little room for fill, the NPP may have
to provide the less desirable short form fill. However, the split
arrangement shown by row 5 is likely to provide the opportunity to
use more long form fill, which NPP will generally find to be
desirable.
[0140] Referring next to FIG. 12, a diagram illustrating the timing
of the spot break split according to the split order shown in row
six of FIG. 11 will be discussed. FIG. 12 includes a NexGen.RTM.
being used to implement a broadcast automation system that
facilitates providing spot break splits. In particular, NexGen.RTM.
digital server 1203 splits control of spot break 1205 into two
portions, a first portion controlled by an internal ad management
server, allows the internal ad management server to insert
advertisements and/or fill into the spot break up to the split.
After the split, an external ad management server is scheduled to
control insertion of advertisements and fill into the spot break.
As illustrated the internal ad management server can pass control
of the spot break to the external ad management server early, i.e.
prior to the scheduled split.
[0141] Referring next to FIGS. 13 and 14, variations of the present
disclosure tailored for use with less mature destination platforms,
or platforms that do not include sufficient functionality to
implement some of the above described embodiments, will be
discussed. For example, in some embodiments, delivery of targeted
advertising combined with reporting of impressions is implemented
in an integrated automotive application platform. Some integrated
automotive platforms currently lack sufficient functionality or
resources to differentiate advertising spots from primary media
content in a playlist, or the ability to handle requests to, and
responses from, ad servers. In some cases, even if the integrated
automotive application platforms could be made capable of
implementing more complex ad content delivery, various design and
cost considerations may weigh in favor of integrating less than
full functionality into an automotive application platform.
[0142] Referring now to FIG. 13, a system 1300 for distribution and
tracking of primary media files and advertising content files
delivered to an automotive application platform will be discussed
according to various embodiments of the present disclosure. System
1300 includes playback sequencer 1303, ad proxy 1305, ad server
1307, content distribution network 1309, and automotive application
platform 1311, all of which cooperate to deliver and track media
and advertisement files.
[0143] Playback sequencer 1303 can, in various embodiments, be
implemented using a system including some or all of the elements of
system 800, which is illustrated and discussed above with respect
to FIG. 8. Various embodiments, however, can be implemented without
the ability to split spot breaks. For example, one or more server
computers, such as server 100, (FIG. 1), can be programmed or
otherwise configured to execute a broadcast automation system that
generates playlists for use in conjunction with an automotive
application platform 1311. In various embodiments, playback
sequencer 1303 need not be aware that the playlist being generated
is to be used in conjunction with a limited capability destination
platform, such as an embedded automotive application platform 1311.
Instead, the playlist generated can be device and platform
agnostic. In other embodiments, playback sequencer 1303 can
generate or alter a playlist based on the type of destination
platform.
[0144] In general, a playlist generated by playback sequencer 1303
represents a schedule including both media identifiers and spot
blocks. The term "schedule" refers generally to an ordered list
with relative timing information specifying timing relationships
between various media items and spot blocks included in the
schedule. A schedule can, if desired, include actual start and end
times, however it is sometimes desirable to time-shift the playlist
so that playout of the media items can begin at some random time in
the future, while maintaining the same relative timing
relationships between playlist elements.
[0145] The playlist can include one or more spot blocks, each of
which can be made up of one or more spots. In some embodiments,
some or all of the spot blocks are fully or partially predetermined
by an internal ad management system of the playback sequencer, such
as ad management system 807, while other spot blocks are left
empty. For example, a first spot block can include time slots for
three advertisements, all of which can be fully or partially
determined by the playback sequencer, while a second spot block can
include time slots for two advertisements, neither of which have
been pre-selected by playback sequencer 1303.
[0146] Where playback sequencer 1303 has selected advertisements to
fill one or more portions of a spot block, playback sequencer 1303
can insert an advertisement identifier or other information into
the spot block. For example, if playback sequencer 1303 selects an
advertisement for Brand X soft drink for insertion into a
particular spot block, playback sequencer 1303 can insert into the
playlist a unique advertisement identifier, an advertisement title,
a location from which to request the advertisement, such as a
Uniform Resource Locator (URL), or some other suitable identifying
information. In addition to, or in place of the identifier,
playback sequencer 1303 can insert into the spot block the actual
advertising content, metadata associated with the advertising
content, or the like.
[0147] In yet other embodiments, playback sequencer 1303 can
partially define the advertising content to be included in one or
more spot blocks by associating a type, category, sub-category, or
class of advertising content with the spot block based on various
ad-placement rules. These rules can also be used to specify or
prohibit placement of advertisements from particular advertisers.
Some or all of the associated information can be included in the
spot blocks, or in metadata associated with the spot blocks, to aid
ad proxy 1305 in proper advertisement insertion, or to provide
parameters for use by ad server 1307 in selecting advertisements in
response to a request by ad proxy 1305.
[0148] After generating the playlist, playback sequencer 1303 can
transmit the playlist via a digital, packet switched network such
as the Internet, to ad proxy 1305, which in turn obtains
information designating advertising content to be inserted into the
empty spot blocks. In at least one embodiment, ad proxy 1305
processes the playlist received from playback sequencer 1303 to
identify empty or partially empty spot blocks and requests
advertising content.
[0149] Ad proxy 1305 can use information included in the playlist,
for example advertising parameters included in the empty spot
blocks or metadata associated with the empty spot blocks, to
request advertising content from ad server 1307, which in some
embodiments is a third party ad management system, similar to
external ad management system 811, internal ad management system
807, or some combination of both. The information included in the
advertisement request can include information such as length of a
spot block, advertisement type, preferred format, advertisement
priority range, a campaign identifier, prohibited advertising
content, and other information that ad server 1307 can use to
select appropriate advertising content for the empty spot
blocks.
[0150] Ad proxy 1305 uses the information received in response to
its request for advertising content and the information included in
the playlist received from playback sequencer 1303 to generate a
preliminary version of a playback manifest. The preliminary version
of the playback manifest generated by ad proxy 1305 can, in some
embodiments, also be the final version of the playback manifest, in
which case the preliminary playback manifest is substantially
identical to playback manifest 1320. However, in some embodiments,
the preliminary playback manifest is less complete than playback
manifest 1320, includes additional information not included in
playback manifest 1320, or includes different information that can
be used by content distribution network (CDN) 1309 to locate and
provide hosted media files to automotive application platform
1311.
[0151] An example of a less-complete playback manifest is a
playback manifest that does not include the tracking-calls
associated with media files 1325, 1327, and 1329. Additional
information included in a preliminary playback manifest can include
media metadata, instructions, links, or other information used by
CDN 1309 to identify and obtain hosted media files. The additional
information can include, but is not limited to, destination
platform information, which can used to identify automotive
application platform 1311 as the proper destination platform, and
normalized format information used by CDN 1309 to properly format
hosted media files. In some embodiments, ad proxy 1305 generates a
playback manifest that includes media identifiers or media location
information that is later replaced with different location
identifiers by CDN 1309.
[0152] In some embodiments, allowing CDN 1309 to replace media
identifiers or other information in a playback manifest can be
useful when responsibility for identifying specific servers or
other hosted media locations is delegated to the CDN. For example,
CDN 1309 can override a hosted media location specified in a
preliminary playback manifest if CDN 1309 determines: 1) that the
hosted media location is unavailable due to network connectivity
issues; 2) to assist in load-balancing; or 3) to provide faster
transfer times if hosted media files are available at a physical
location closer to automotive application platform 1311.
[0153] In some embodiments, a hosted server location can specify a
location of a device connected locally to automotive application
platform 1311. For example, if some, but not all, of the media
items specified in playback manifest 1320 are available from an
on-board memory device either integrated into or connected to
automotive application platform 1311, and CDN 1309 is aware of the
location at which the media files are stored, CDN 1309 can alter
the playback manifest to reflect that the media file can be
obtained from the on-board storage location. The CDN can be made
aware of media items available locally by using user data and
preferences obtained during user registration for a service,
received from a network-capable communications device connected to
automotive application platform 1311, or the like.
[0154] In various embodiments, a playback manifest generated by ad
proxy 1305 includes the same information included in playback
manifest 1320, including addresses at which primary media content
and advertising content can be obtained, and tracking-calls. In
some embodiments, the advertising and the primary media content are
fully or partially included in the playback manifest. Where the
playback manifest generated by ad proxy 1305 includes the same
information included in playback manifest 1320, CDN 1309 can simply
forward playback manifest 1320 to automotive application platform
1311 without any changes.
[0155] Hosted media files can be transmitted concurrently with
playback manifest 1320. The hosted media files can include both
advertising content, e.g. advertisements; and primary media
content, such as songs or programs. In at least one embodiment,
substantially all media files delivered to automotive application
platform 1311 by CDN 1309 are normalized. As used herein, the term
normalized refers to transcoding or otherwise modifying the media
files to ensure that the media files delivered in the same format,
regardless of whether the media files contain advertising content
or primary media content. One advantage to normalizing the files is
that application platform 1311 need not expend processing power to
identify differences between advertising content and primary media
content. In some embodiments, media files can be considered to be
normalized even if they are encoded according to different
standards, as long as automotive application platform 1311 does not
need to perform processing to determine whether or not the
underlying content is primary media or advertising content.
[0156] Thus, in some embodiments, CDN 1309 can obtain primary media
content and advertising content having varied formats, and deliver
normalized media files to automotive application platform 1311 for
playout to a media consumer as directed by playback manifest
1320.
[0157] In some embodiments, rather than providing automotive
application platform 1311 with the hosted media files and playback
manifest 1320 concurrently, CDN 1309 transmits the playback
manifest and the hosted media files at different times. In some
such embodiments, CDN 1309 can deliver playback manifest 1320, and
wait until automotive application platform 1311 requests delivery
of particular media files during execution of the playback
manifest. For example, when executing playback manifest 1320,
automotive application platform 1311 can request 1.sup.st media
file 1325 for playout. The request can include a location
identifier obtained from playback manifest 1320. This location
identifier can directly specify a location at which the 1.sup.st
media file can be obtained. In other implementations, the location
identifier can include an indirect location identifier that allows
CDN 1309 to determine a location at which the 1.sup.st media file
1325, or content used to generate 1.sup.st media file 1325, is
stored. The content can include primary content or advertising
content, and can be stored at a hosted location as a normalized
media file ready for delivery to the destination platform. In some
embodiments, the content is stored in a non-normalized format, and
CDN 1309 performs the normalization in response to a request.
[0158] Continuing with the current example, at some point before
1.sup.st media file 1325 is finished being played out, automotive
application platform 1311 requests delivery of 2.sup.nd media file
1327. 2.sup.nd media file 1327 can be advertising content or
primary media content, and can be delivered by CDN 1309 using the
same procedure used to deliver 1.sup.st media file 1325. Automotive
application platform 1311 can request a block of one or more media
files at any one time.
[0159] Playback manifest 1320 can include tracking-calls associated
with some or all of the media files 1325, 1327, and 1329. These
tracking-calls can be used to report playout of primary media items
and advertisements, thereby facilitating calculation of a number of
impressions. In some embodiments, tracking-calls fired by
automotive application platform 1311 can be used for the dual
purpose of initiating delivery of subsequent media files to and
tracking playout of primary media and advertising content. For
example, CDN 1309 can deliver 1.sup.st media file 1325 at the same
time as playback manifest 1320, and deliver subsequent media files
in response to automotive application platform firing one of the
tracking-calls, e.g. a tracking URL, included in playback manifest
1320. This technique can be used to reduce the number of requests
for content generated by automotive application platform 1311.
[0160] As used herein, the term "tracking-call" refers generally to
a message transmitted by a destination platform, such as automotive
application platform 1311, to a network location, such a server
within CDN 309. As used herein, the term "tracking-call" refers to
an indicator in playback manifest 1320 identifying an address or
network location to which the message is sent, or an instruction
included in playback manifest 1320 that causes the destination
platform to "fire" or send a message. The term "tracking-call" is
also used herein to refer to the content of the message being sent,
or to the act of transmitting, or "firing," the message. Except
where the context requires otherwise, the term "tracking-call"
should be interpreted broadly to include a physical indicator or
instruction included in playback manifest 1320, a message being
transmitted, and the act of transmitting the message. A
tracking-call can include a network address to which a message
should be sent, information sent to the network address identifying
a subsequent network location to be notified, or the like. Examples
of tracking-calls include a uniform resource locator (URL), a
tracking pixel, or some other suitable indicator, address,
instruction, or message.
[0161] In various embodiments, one or more tracking-calls are
associated with normalized media files 1325, 1327, and 1329, and
are inserted into playback manifest 1320 by CDN 1309 or ad proxy
1305. These tracking-calls can be used to instruct and notify
automotive application platform 1311 to fire, or transmit,
tracking-calls at various points during playback of each media
file. For example, the 1.sup.st tracking-call associated with
1.sup.st media file 1325 can be used to cause automotive
application platform 1311 to fire a tracking-call when 30% of
1.sup.st media file 1325 has been played out, and to fire a
2.sup.nd tracking-call when playout of the media item has
completed. The 1.sup.st tracking-call associated with 2.sup.nd
media file 1327 can be used to cause automotive application
platform 1311 to fire a tracking-call when playout of 2.sup.nd
media file 1327 is initiated, and again when playout is 75%
complete.
[0162] In at least one embodiment, tracking-calls associated with a
normalized media file are processed by automotive application
platform 1311 the same way, regardless of whether a particular
normalized media file includes advertising content or primary media
content. Thus, there is no need for automotive application platform
1311 to have the capability to distinguish between advertising
content and primary media content.
[0163] In some embodiments, when automotive application platform
1311 fires a tracking-call, a message is sent to a URL indicated by
the tracking-call. The content of the message can include media
item identifiers, allowing the CDN to determine which media item
has been played out. In some implementations, the message includes
a subsequent network address to be notified of the playout, and
either the CDN or the device located at the subsequent address can
make the determination about which media has been played out. In
some instances, each different media file may correspond to a
dedicated network address, allowing the media item to be determined
based on the address to which the tracking-call is sent.
[0164] A first tracking-call to a particular dedicated address can
be assigned a first value, and a second or subsequent tracking-call
made to the same dedicated address can be assigned other values, so
that when all of the tracking-calls are added together the result
is 100%. Consider, for example that two tracking-calls are assigned
to each media file, and each tracking-call is assigned a value of
0.5. When tracking-calls are received at a dedicated address, a
counter can be incremented. The first tracking causes the counter
to be incremented to represents 0.5 playouts. A second
tracking-call received at the same dedicated address can cause the
counter to increment another 0.5 playouts, thereby representing a
full playout.
[0165] In some embodiments, tracking-calls fired by different
destination platforms are not distinguished from each other, so
that 4 first tracking-calls from 4 different destination platforms
will have a playout value equivalent to 2 full playouts. In other
embodiments, tracking-calls from different destination platforms
are distinguished from each other. First and second tracking-calls
can also be distinguished from each other, or have different
weights assigned. For example, first tracking-calls can be assigned
a weight of 0.3, and second tracking-calls can be assigned a weight
of 0.7, so that two first playouts result in a total playout value
of only 0.6, while a first and a second tracking-call will result
in a total playout value of 1.0.
[0166] In various embodiments, CDN 1309 can process the
tracking-calls, forward tracking-calls, or forward playout
information included in the tracking-calls to ad proxy 1305 or ad
server 1307. In some implementations, CDN 1309 includes third party
servers that receive tracking URLs or other tracking-calls fired by
automotive application platform 1311. The tracking-calls fired by
automotive application platform 1311 can be used to determine
advertising impressions by themselves, or in conjunction with
information generated by ad server 1307 during the process of
delivering advertising content to ad proxy 1305.
[0167] For example, an advertising impression can be registered for
each 1.0 playout value determined based on the tracking-calls fired
by automotive application platform 1311. In other embodiments, an
impression can be registered when ad server 1307 provides an
advertisement to ad proxy 1305, and at least one tracking-call has
been fired by automotive application platform 1311. In some
embodiments, different classes of impression can be determined,
with a "class A" impression being generated when ad proxy 1305
delivered an advertisement, and full playout of the advertisement
is confirmed by a tracking-call. A "class B" impression can be
registered when ad proxy 1305 delivered an advertisement, and at
least partial playout of the advertisement is confirmed by a
tracking-call from a destination platform. Other methods of
determining when and how to register impressions can be implemented
using the techniques described herein.
[0168] Referring next to FIG. 14, a method 1400 of distributing
primary media files and advertising content files to an automotive
application platform, and tracking playout of those files, will be
discussed according to various embodiments of the present
disclosure. As illustrated by block 1401, a playlist having at
least one partially empty spot block is generated by a playback
sequencer or other media automation system. One or more entire spot
blocks may be empty, or only a portion of one or more spot blocks
may be empty, but at least one spot block is partially empty. The
term "spot block" is used herein to refer to one or more schedule
positions in a playlist at least conditionally reserved for
insertion of advertising content. An empty spot block does not
necessarily mean that there is no information associated with the
spot block. Instead, an "empty spot block" refers to a spot block
that has yet to have a specific advertisement designated for
playout during the schedule position assigned to the spot block.
The term "spot break" is sometimes used herein interchangeably with
the term "spot block."
[0169] As illustrated by block 1403 in some embodiments, a
determination is made regarding whether the destination platform is
capable of making calls directly to an ad server to request
advertising content, and whether the destination platform has the
ability to use information provided by an ad server in response to
the request. This determination can be made based on user
registration information or preferences, based on a network query
to the destination platform, based on information included in the
playlist request, based on information about destination platform
capabilities provided by an automobile manufacturer, or a
combination of two or more of these methods. In some embodiments,
if a request for a playlist is received from an ad proxy, or from a
device other than the destination platform itself, the result of
the determination at block 1403 is NO, even if the destination
platform might be capable of directly requesting advertising
content from an ad server.
[0170] As illustrated by blocks 1405 and 1411, a practical result
of the decision made at block 1403 is to determine whether or not
the playlist will be sent to an ad proxy, or directly to a content
distribution network (CDN). If the destination platform is not
capable of directly requesting advertising content from an ad
server, the playlist is transmitted to the CDN, as shown by block
1405. The CND transmits the playlist to the destination platform,
as illustrated by block 1407, and as shown at block 1409, the
destination platform requests the advertisements used to fill the
empty spot blocks.
[0171] If it is determined at block 1403 that the destination
platform is not capable of handling direct advertisement requests,
the playlist is transmitted to an ad proxy, as shown by block 1411.
As illustrated by block 1413, the ad proxy requests advertising
content from an ad server. The request to the ad server can include
advertising parameters and other information used in selecting
advertising specifically targeted to the destination platform. In
other embodiments, the ad proxy can simply provide the ad server
with an identifier associated with the destination platform, and
the ad server can determine the advertisement targeting parameters
in addition to selecting the advertisements. Note that in some
embodiments, the advertisement targeting parameters are already
included in the playlist itself, or in metadata or other data
associated with the playlist.
[0172] As illustrated by block 1415, the ad proxy generates a
playback manifest and fills the spot blocks with the advertisements
provided by the ad server. Filling the spot blocks can include, in
some instances, inserting advertising content into the playlist,
but in various embodiments filling empty spot blocks is performed
by inserting identifiers or hosted media locations into the spot
blocks. Thus a playback manifest, in at least some embodiments,
includes a list of identifiers that associate particular items of
primary media content and advertising content with particular
time-portions of the playlist or scheduled. In some
implementations, the ad proxy also inserts tracking-calls into the
playback manifest.
[0173] As illustrated at block 1417, the playback manifest is
transmitted to the content distribution network (CDN). As
illustrated at block 1419, the CDN uses the information included in
the playback manifest, to obtain primary media and advertising
content for delivery to the destination platform. The CDN can
obtain the content in the form of normalized media files, but as
illustrated by block 1421, in one embodiment the CDN generates
normalized media files from the primary media content and the
advertising content.
[0174] The CDN transmits the normalized media files and the
playback manifest to the destination platform, as illustrated at
block 1423. The media files can be delivered to the destination
platform at substantially the same time the playback manifest is
delivered, or at a later time in response to media file requests or
tracking-calls made by the destination platform.
[0175] As illustrated at block 1425, the destination platform plays
out the normalized media files in accordance with the playback
manifest, including firing tracking URLS or other tracking-calls,
as shown at block 1427. The tracking URLS can be transmitted to the
CDN, the ad proxy, the ad server, an advertiser's tracking system,
or some other destination, for calculation of impressions, as
illustrated by block 1429. Impressions can be calculated using any
of various techniques without departing from the spirit and scope
of the present disclosure.
[0176] As may be used herein, the terms "substantially" and
"approximately" provides an industry-accepted tolerance for its
corresponding term and/or relativity between items. Such an
industry-accepted tolerance ranges from less than one percent to
fifty percent and corresponds to, but is not limited to, component
values, integrated circuit process variations, temperature
variations, rise and fall times, and/or thermal noise. Such
relativity between items ranges from a difference of a few percent
to magnitude differences. As may also be used herein, the term(s)
"configured to", "operably coupled to", "coupled to", and/or
"coupling" includes direct coupling between items and/or indirect
coupling between items via an intervening item (e.g., an item
includes, but is not limited to, a component, an element, a
circuit, and/or a module) where, for an example of indirect
coupling, the intervening item does not modify the information of a
signal but may adjust its current level, voltage level, and/or
power level. As may further be used herein, inferred coupling
(i.e., where one element is coupled to another element by
inference) includes direct and indirect coupling between two items
in the same manner as "coupled to". As may even further be used
herein, the term "configured to", "operable to", "coupled to", or
"operably coupled to" indicates that an item includes one or more
of power connections, input(s), output(s), etc., to perform, when
activated, one or more its corresponding functions and may further
include inferred coupling to one or more other items. As may still
further be used herein, the term "associated with", includes direct
and/or indirect coupling of separate items and/or one item being
embedded within another item.
[0177] As may also be used herein, the terms "processing module",
"module", "processing circuit", and/or "processing unit" may be a
single processing device or a plurality of processing devices. Such
a processing device may be a microprocessor, micro-controller,
digital signal processor, microcomputer, central processing unit,
field programmable gate array, programmable logic device, state
machine, logic circuitry, analog circuitry, digital circuitry,
and/or any device that manipulates signals (analog and/or digital)
based on hard coding of the circuitry and/or operational
instructions. The processing module, module, processing circuit,
and/or processing unit may have an associated memory and/or an
integrated memory element, which may be a single memory device, a
plurality of memory devices, and/or embedded circuitry of the
processing module, module, processing circuit, and/or processing
unit. Such a memory device may be a read-only memory, random access
memory, volatile memory, non-volatile memory, static memory,
dynamic memory, flash memory, cache memory, and/or any device that
stores digital information. Note that if the processing module,
module, processing circuit, and/or processing unit includes more
than one processing device, the processing devices may be centrally
located (e.g., directly coupled together via a wired and/or
wireless bus structure) or may be distributedly located (e.g. cloud
computing via indirect coupling via a local area network and/or a
wide area network). Further note that if the processing module,
module, processing circuit, and/or processing unit implements one
or more of its functions via a state machine, analog circuitry,
digital circuitry, and/or logic circuitry, the memory and/or memory
element storing the corresponding operational instructions may be
embedded within, or external to, the circuitry comprising the state
machine, analog circuitry, digital circuitry, and/or logic
circuitry. Still further note that, the memory element may store,
and the processing module, module, processing circuit, and/or
processing unit executes, hard coded and/or operational
instructions corresponding to at least some of the steps and/or
functions illustrated in one or more of the figures. Such a memory
device or memory element can be included in an article of
manufacture.
[0178] The present disclosure has been described above with the aid
of method steps illustrating the performance of specified functions
and relationships thereof. The boundaries and sequence of these
functional building blocks and method steps have been arbitrarily
defined herein for convenience of description. Alternate boundaries
and sequences can be defined so long as the specified functions and
relationships are appropriately performed. Any such alternate
boundaries or sequences are thus within the scope and spirit of the
claimed invention. Further, the boundaries of these functional
building blocks have been arbitrarily defined for convenience of
description. Alternate boundaries could be defined as long as the
certain significant functions are appropriately performed.
Similarly, flow diagram blocks may also have been arbitrarily
defined herein to illustrate certain significant functionality. To
the extent used, the flow diagram block boundaries and sequence
could have been defined otherwise and still perform the certain
significant functionality. Such alternate definitions of both
functional building blocks and flow diagram blocks and sequences
are thus within the scope and spirit of the claimed invention. One
of average skill in the art will also recognize that the functional
building blocks, and other illustrative blocks, modules and
components herein, can be implemented as illustrated or by discrete
components, application specific integrated circuits, processors
executing appropriate software and the like or any combination
thereof.
[0179] The present disclosure may have also been described, at
least in part, in terms of one or more embodiments. An embodiment
of the present invention is used herein to illustrate the present
invention, an aspect thereof, a feature thereof, a concept thereof,
and/or an example thereof. A physical embodiment of an apparatus,
an article of manufacture, a machine, and/or of a process that
embodies the present invention may include one or more of the
aspects, features, concepts, examples, etc. described with
reference to one or more of the embodiments discussed herein.
Further, from figure to figure, the embodiments may incorporate the
same or similarly named functions, steps, modules, etc. that may
use the same or different reference numbers and, as such, the
functions, steps, modules, etc. may be the same or similar
functions, steps, modules, etc. or different ones.
[0180] Unless specifically stated to the contra, signals to, from,
and/or between elements in a figure of any of the figures presented
herein may be analog or digital, continuous time or discrete time,
and single-ended or differential. For instance, if a signal path is
shown as a single-ended path, it also represents a differential
signal path. Similarly, if a signal path is shown as a differential
path, it also represents a single-ended signal path. While one or
more particular architectures are described herein, other
architectures can likewise be implemented that use one or more data
buses not expressly shown, direct connectivity between elements,
and/or indirect coupling between other elements as recognized by
one of average skill in the art.
[0181] The term "module" is used in the description of the various
embodiments of the present invention. A module includes a
functional block that is implemented via hardware to perform one or
module functions such as the processing of one or more input
signals to produce one or more output signals. The hardware that
implements the module may itself operate in conjunction software,
and/or firmware. As used herein, a module may contain one or more
sub-modules that themselves are modules.
[0182] While particular combinations of various functions and
features of the present invention have been expressly described
herein, other combinations of these features and functions are
likewise possible. The present invention is not limited by the
particular examples disclosed herein and expressly incorporates
these other combinations.
* * * * *