U.S. patent application number 09/748949 was filed with the patent office on 2002-06-27 for advertisement filtering and storage for targeted advertisement systems.
Invention is credited to Eldering, Charles A., Flickinger, Gregory C..
Application Number | 20020083441 09/748949 |
Document ID | / |
Family ID | 26922999 |
Filed Date | 2002-06-27 |
United States Patent
Application |
20020083441 |
Kind Code |
A1 |
Flickinger, Gregory C. ; et
al. |
June 27, 2002 |
Advertisement filtering and storage for targeted advertisement
systems
Abstract
An advertisement storage and filtering system for selectively
identifying targeted advertisements to be stored in the memory of
the STB. This storing of the selected advertisements can be
accomplished in a number of ways. In one embodiment, the
advertisements, in real-time and as they are received at the STB,
are processed by the STB and only those advertisements with the
appropriate characteristics are stored on the hard drive (HD). This
may require some buffering of the advertisements in the STB memory
as the STB processes and determines whether or not to store the
advertisement. The information required to determine whether or not
to store the advertisement could also be sent in advance, e.g., as
a data service in an advertisement channel. Alternatively, the STB
may store incoming advertisements in a memory temporarily and
subsequently determine whether or not to retain the stored
advertisements.
Inventors: |
Flickinger, Gregory C.;
(Furlong, PA) ; Eldering, Charles A.; (Doylestown,
PA) |
Correspondence
Address: |
EXPANSE NETWORKS, INC.
300 NORTH BROADSTREET
DOYLESTOWN
PA
18901
US
|
Family ID: |
26922999 |
Appl. No.: |
09/748949 |
Filed: |
December 27, 2000 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60229156 |
Aug 31, 2000 |
|
|
|
Current U.S.
Class: |
725/32 ;
348/E5.105; 348/E7.063; 348/E7.075; 348/E7.076; 725/34; 725/35 |
Current CPC
Class: |
G06Q 30/0254 20130101;
H04N 21/812 20130101; G06Q 30/0272 20130101; H04N 7/163 20130101;
H04N 21/4331 20130101; H04N 21/8586 20130101; H04N 21/2668
20130101; H04N 21/4532 20130101; G06Q 30/0264 20130101; H04H 60/37
20130101; H04H 60/45 20130101; H04N 7/17363 20130101; H04N 21/25883
20130101; H04N 21/26208 20130101; H04N 21/454 20130101; H04N 7/165
20130101; H04N 21/26233 20130101; H04N 21/26241 20130101; H04H
60/65 20130101; G06Q 30/02 20130101; H04N 21/25891 20130101; H04N
21/478 20130101; G06Q 30/0258 20130101; H04H 60/73 20130101; G06Q
30/0273 20130101; H04N 21/84 20130101; H04N 7/17354 20130101; H04N
5/44543 20130101; H04N 21/42684 20130101; H04N 21/4335 20130101;
H04H 60/27 20130101; H04H 60/375 20130101; H04N 7/088 20130101;
H04N 21/47 20130101 |
Class at
Publication: |
725/32 ; 725/35;
725/34 |
International
Class: |
H04N 007/025; H04N
007/10 |
Claims
What is claimed is:
1. In a television network environment, a method for selectively
storing targeted advertisements at a set-top box, the method
comprising: receiving an advertisement channel having a plurality
of advertisements; determining if an advertisement is appropriate
for the set-top box; and retaining the advertisement if it is found
to be appropriate.
2. The method of claim 1, wherein said determining is performed in
real-time or near real-time.
3. The method of claim 1, further comprising storing the plurality
of advertisements from the ad channel on a hard-drive prior to said
determining.
4. The method of claim 3, further comprising deleting the
advertisement from the hard drive if the advertisement is found to
be inappropriate.
5. The method of claim 1, wherein said determining is based on one
or more pre-determined parameters.
6. The method of claim 1, wherein said receiving includes receiving
one or more targeted advertisements via the advertisement
channel.
7. The method of claim 1, further comprising: assigning each
advertisement within the ad channel a unique AD_ID; assigning each
set-top box to one or more groups; forming an AD_ID group table;
forming an STB-group table; and joining the AD_ID table and
STB-AD_ID table to create a master STB-AD_ID table.
8. The method of claim 7, wherein said determination is based on
the STB-AD_ID table.
9. The method of claim 7, wherein the STB-AD_ID table comprises an
STB-MAC_ID column and an AD_ID column.
10. The method of claim 7, wherein the AD_ID group table comprises
an AD_ID column and a targeted group identification column.
11. The method of claim 7, wherein the STB-group table comprises an
STB-MAC_ID table and a targeted group identification column.
12. The method of claim 1, wherein said receiving includes
receiving metadata via the advertisement channel.
13. The method of claim 12, wherein the metadata is transmitted in
a vertical blanking interval.
14. The method of claim 1, wherein said receiving includes
receiving the metadata and splice_timing information via the
advertisement channel.
15. The method of claim 14, wherein the metadata and the
splice_timing information is encoded as a data service on the
advertisement channel.
16. The method of claim 15, further comprising decoding the data
service and identifying the timing of the advertisement from the
splice_timing information.
17. The method of claim 16, wherein said retaining includes storing
the advertisement during one or more splice windows identified by
the splice timing information.
18. In a television network environment, an advertisement
management system comprising: an advertisement channel generator
for receiving one or more advertisements and their corresponding
metadata information from an advertisement server, and generating
an advertisement channel comprising the advertisements and the
metadata information; and a set-top box for receiving the
advertisement channel and retrieving the advertisements and the
metadata information.
19. The apparatus of claim 18, wherein the set-top box comprises a
demodulator or decoder for demodulating or decoding the
advertisement channel to differentiate between the metadata
information and the advertisements.
20. The apparatus of claim 19, wherein the set-top box further
comprises a processor for decoding the metadata information to
determine one or more corresponding instructions.
21. The apparatus of claim 20, wherein the processor further
associates the instructions to the received advertisements to
select one or more appropriate advertisements.
22. The apparatus of claim 21, wherein the set-top box further
comprises a memory for storing the selected advertisements.
23. The apparatus of claim 18, wherein the advertisement channel
generator further comprises a vertical blanking interval encoder
for encoding metadata information on an advertisement channel.
24. The apparatus of claim 18, further comprising an advertisement
sequencer/multiplexer for multiplexing the advertisements on the
advertisement channel.
Description
[0001] This application claims priority under 35 U.S.C.
.sctn.119(e) for provisional application No. 60/229,156 filed on
Aug. 31, 2000.
BACKGROUND OF THE INVENTION
[0002] Whether the television programming service is being provided
by antenna broadcast, analog cable, digital broadcast satellite
(DBS), digital cable, switched digital video (SDV) or any other
means, generally all viewers (subscribers) of a particular program
will see the same advertisements (ads) in the same order at the
same times. In essence, each ad is "linked" to a particular point
within a particular program. This traditional paradigm for
delivering ads in the stream of television programming is herein
termed linked advertising. If any particular subscriber is not
viewing the particular program at the particular time, he or she
will not see the ad. That is, in linked advertising, the ads are
simply part of the data stream from the head end (HE), i.e., from
the central office of the television service provider, to all
subscribers of that service.
[0003] However, with modern digital television service methods,
including SDV systems (in which television service is received over
the telephone lines via a very high speed digital subscriber line
(VDSL)) and digital cable, both of which utilize the concept of
addressable set-top boxes (STBs), more personalized service is now
available. For instance, in both types of systems, two-way
communication between the subscriber's STB and the service provider
via the network is possible. Further, the service provider can send
different data to different subscribers.
[0004] In telephone based systems such as SDV, the service provider
can actually send different information to any individual
subscriber. In fact, in one embodiment, the VDSL television
delivery standard essentially is an access network utilizing
asynchronous transfer mode (ATM) protocol. In digital cable
systems, different data can be sent to different groups of
customers.
[0005] Accordingly, it is an object of the present invention to
provide an improved method and apparatus for delivering advertising
via a network, such as a television service network.
[0006] It is another object of the present invention to provide a
method and an apparatus for ad filtering and storage of targeted
ads.
[0007] It is a further object of the present invention to provide a
method and apparatus by which targeted ads can be inserted into the
television program stream in a targeted fashion either by
individual subscriber or group of subscribers on a network.
[0008] It is a further object of the present invention to provide a
method and apparatus for providing targeted ads to individual
subscribers or groups of subscribers on a network.
SUMMARY OF INVENTION
[0009] The present invention is directed at a method and apparatus
for providing targeted advertisements (ads) to the subscriber
terminals, e.g., set-top boxes (STBs). In particular, the invention
provides an ad storage and filtering system for selectively
identifying targeted ads to be stored in memory of the STB.
[0010] This storing of the selected ads can be accomplished in a
number of ways. In one embodiment, the ads, in real-time and as
they are received at the STB, are processed by the STB and only
those ads with the appropriate characteristics are stored on the
hard drive (HD). This may require some buffering of the ads in the
STB memory as the STB processes and determines whether or not to
store the ad. The information required to determine whether or not
to store the ad can be sent in advance, e.g., as a data service in
an ad channel.
[0011] Alternatively, the STB may store incoming ads in a memory
temporarily and subsequently determine whether or not to retain the
stored ads. A determination step may be performed to determine
whether each stored ad is appropriate or not, wherein the ads found
to be inappropriate are deleted.
[0012] In one embodiment, an ad channel that comprises ads to be
delivered to the STBs as well as metadata relating to splice-timing
and other instruction is generated. The metadata may be encoded on
the ad channel via an encoder, e.g., a vertical blanking encoder.
At the subscriber end, the STB decodes the ad channel, retrieves
the associated timing and other instructional information, selects
the appropriate ads and stores the selected ads in appropriate
splice windows for subsequent ad insertion.
[0013] While the invention is particularly suitable for inserting
targeted ads into television programming, the invention is readily
adaptable to inserting any particular data into any particular
stream of other data transmitted via a communications system. Such
systems can include targeted advertising in Electronic Program
Guides (EPGs) or digital overlay/insertion systems.
[0014] These and other features and objects of the invention will
be more fully understood from the following detailed description of
the preferred embodiments which should be read in light of the
accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The accompanying drawings, which are incorporated in and
form a part of the specification, illustrate the embodiments of the
present invention and, together with the description serve to
explain the principles of the invention.
[0016] In the drawings:
[0017] FIG. 1 is a block diagram of an exemplary television service
communication network;
[0018] FIG. 2 is a block diagram of an exemplary set-top box of
FIG. 1;
[0019] FIG. 3 illustrates an exemplary advertisement queue;
[0020] FIG. 4 illustrates an exemplary process flow by which an
advertisement is received and stored by the set-top box, according
to one embodiment;
[0021] FIGS. 5 illustrates example of how tables/maps are formed
according to one embodiment;
[0022] FIGS. 6 illustrates example tables/maps according to one
embodiment;
[0023] FIG. 7 illustrates exemplary methods of encoding
advertisement tags and timing information using vertical blanking
interval (VBI) data encoding and Motion Picture Expert Group (MPEG)
data encoding;
[0024] FIG. 8 illustrates exemplary methods of encoding
advertisement tags and timing information, according to two
embodiments of the present invention; and
[0025] FIG. 9 is a functional block diagram illustrating
advertisement scheduling and advertisement insertion, according to
one embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0026] In describing a preferred embodiment of the invention
illustrated in the drawings, specific terminology will be used for
the sake of clarity. However, the invention is not intended to be
limited to the specific terms so selected, and it is to be
understood that each specific term includes all technical
equivalents which operate in a similar manner to accomplish a
similar purpose.
[0027] With reference to the drawings, in general, and FIGS. 1
through 9 in particular, the apparatus of the present invention is
disclosed.
[0028] FIG. 1 generally illustrates three of the most common types
of digital television service delivery networks with which the
present invention can be suitably used. These include (1) Switched
Digital Video (SDV) using, for instance, very high speed digital
subscriber line (VDSL), (2) digital cable and (3) digital broadcast
satellite (DBS). The invention is also applicable to digital
broadcast television including Multipoint Multichannel Distribution
System (MMDS) and Local Multichannel Distribution System
(LMDS).
[0029] In a DBS system, a programming stream comprising upwards of
one hundred channels of television programming is delivered
directly from a geo-stationary satellite transmitter 12 orbiting
the earth to a receiving antenna 14 mounted on or near each
subscriber's home 16. The channels are transmitted from the antenna
14 via a cable to a satellite receiving station 15 (which is a form
of set-top box (STB)) in the subscriber's home 16. The STB 15
selects a channel and demodulates the signal for delivery to a
monitor (e.g., a television, not shown). Most DBS systems are
arranged such that data can also be sent in the upstream direction,
that is, from the STB 15 to the DBS provider. In most DBS systems,
the STB 15 is also coupled to the telephone line and is designed
and programmed to place telephone calls to the DBS service provider
to periodically send information in the upstream direction. Such
information may commonly comprise requests for Pay-Per-View (PPV)
programs, requests for changes in the subscription (a request that
one or more premium channels be added to the service, etc.).
Moreover, hybrid DBS/DSL systems, providing high speed DSL
landlines for both upstream and downstream communications are
becoming commonplace.
[0030] In a typical digital cable network 20, multiple channels of
television information are transmitted from a head end (HE) or
central office (CO) 22 via a cable transmitter 23. Particularly,
the channels are transmitted via cables 24 to nodes 26. The nodes
26 are essentially switching/routing stations which service
multiple homes (usually a few hundred). The nodes 26 route the
signals to individual subscribers 28. The individual subscriber 28
will have STBs 27 that select a particular channel from the
transmit stream, demodulate it and forward it for display on one or
more monitors or televisions (not shown). Different data streams
can be sent to the different nodes 26 of the network such that
households coupled to node 26a can receive different programming
than households coupled to node 26b. Thus, such systems are
"addressable" by node, but not by individual subscriber. Upstream
information may be sent from the STB 27 to the HE/CO 22 via a
dedicated upstream channel over the cable. In cable systems that do
not support two-way communication, the upstream "channel" can be
through the telephone as described above in connection with DBS
systems.
[0031] In accordance with a third common type of system, namely,
switched digital video (SDV) 30, television programming is
transmitted over the regular telephone network. Particularly,
television signals are transmitted from the Central Office (CO) 22
via a broadband digital terminal (BDT) 31 over wire, typically
fiber optic cable 32, to a universal service access multiplexer
(USAM) 34 which then delivers the data to multiple individual
subscriber/households 35 via regular telephone twisted wire pair 36
using VDSL modems and protocols. The USAM 34 receives a wide
bandwidth signal comprising some or all of the television channels.
However, because of the bandwidth limitations of twisted wire pair
36, typically only about one to four channel of television
programming at a time can be delivered from the USAM 34 to the
subscriber/household 35, depending, inter alia, on the physical
distance of the residence from the USAM 34.
[0032] Accordingly, the subscriber/household 35 has a STB 38 that
receives subscriber channel changes, and transmits them to the USAM
34, and then to the BDT 31. The BDT 31 switches the channel for the
subscriber and sends the newly selected channel to the
subscrier/household 35. SDV systems 30 are essentially fully modern
asynchronous two-way communication networks. Accordingly, the STB
38 can transmit information upstream via the same VDSL modem that
receives the downstream signals. SDV systems 30 typically operate
using an asynchronous transfer mode (ATM) protocol, which is
well-known in the networking arts.
[0033] In an alternative embodiment, the signals are transmitted
from the HE/CO 22 via the BDT 31 to a broadband network unit (BNU)
33. The BNU 33 delivers the data to individual households 35 using
coaxial cable 37.
[0034] FIG. 2 is a block diagram showing the basic components of a
STB 200 within which the present invention may be incorporated,
whether it be for DBS, SDV, digital cable or any other system. The
STB 200 includes an input port 202 for receiving to an input
signal, e.g., a coaxial cable in the case of analog or digital
cable TV, the telephone line in the case of SDV or an input cable
from an antenna in the case of DBS. The input signal may be an
analog or digital television input signal. Alternatively, the input
signal may be a video stream or multimedia stream such as a motion
picture expert group (MPEG) signal from any communications network,
such as the Internet. The STB 200 includes a system control unit
(SCU) 204 which controls operation of the components of the STB
200. The SCU 204 essentially is a central processing unit (CPU) and
may be any digital processing device, such as a microprocessor,
finite state machine (FSM), digital signal processor (DSP),
application specific integrated circuit (ASIC), general purpose
computer, etc. The SCU 204 receives commands from the subscriber,
such as through infrared (IR) reception of commands from a handheld
remote control unit (not shown) through an IR receiving circuit
208. The SCU 204 decodes the commands and forwards control signals
to other circuits in the STB 200 in order to carry out the
subscriber's commands, such as changing the channel. The STB 200
further includes a read only memory (ROM) 210 containing software
and fixed data used for operating the STB 200, and a random access
memory (RAM) 212 for storing changeable data, such as the
instructions and ads in accordance with the present invention.
Preferably, the STB 200 also includes a separate internal or
external large memory device, such as a hard disk (HD) 214 or
optical disk drive for storing the very large amounts of data that
comprise digital multimedia data, e.g., television programs and
ads. The SCU 204, RAM 212, ROM 210 and HD 214 are coupled to a
master bus 216 over which the units can communicate with each
other.
[0035] The input signal from input port 202 is passed through a
tuning circuit 218. Under the control of the SCU 204, the tuning
circuit 218 selectively passes out the data corresponding to the
particular channel selected by the subscriber. The data is passed
to a demodulator 220 that demodulates the data. A channel
processing circuit 222 takes the demodulated channel data and
processes it as needed. The necessary channel processing may
comprise almost nothing to significant processing of the data
depending on the particular form of the input data and the features
of the STB 200, which would be familiar to persons of ordinary
skill in the related arts. Exemplary functions that might be
performed in the channel processing circuitry 222 include decoding
an encoded data stream (e.g., MPEG, Dolby SurroundSound.TM.) or
inserting ads into the data stream in accordance with the present
invention.
[0036] If received data is to be stored locally at the STB 200, the
channel processing circuit 222 can pass the data to one of the
memory devices 210, 212 or 214 through the SCU 204.
[0037] The output of the channel processing circuit 222 is
typically coupled to a demultiplexer 224 which separates the audio
and video portions of the channel and forwards them to audio output
ports 226 and video output ports 228.
[0038] At least the tuner 218 and the channel processing circuit
222 are controlled by the SCU 204. However, the demodulator 220 and
demultiplexer 224 may also need control.
[0039] Many STBs 200 can also transmit data upstream to the HE.
Such STBs 200 would include a modulator 230 coupled to the SCU 204
for modulating data generated in the SCU 204 via an output port 232
and a cable or other link to the HE. It will be understood by those
of ordinary skill in the art that the input port 202 and output
port 232 might comprise the same physical port.
[0040] It also will be apparent to those of ordinary skill in the
related arts that FIG. 2 is a very high level depiction of the most
basic components of an STB 200 and that other forms are
possible.
[0041] The invention will now be described in connection with the
particular embodiment in which it is used to insert ads into
television programming. However, it should be understood by persons
of ordinary skill in the art that the invention can be used to
insert any data into any other data stream. For instance, the
invention can be applied to the Internet, streaming audio data,
etc. It may also be applied to insert ads in the electronic program
guides (EPGs) that are frequently provided in one channel of
television programming and which commonly include ads in a portion
of the display. The system can also be utilized for the management
of ads which are inserted directly into a portion of the screen
during the actual programming, such as those ads which are
electronically placed on the billboards in sports arenas or on the
field. Such ad insertion technology is commercially available from
companies such as Princeton Video Image, Inc., of Lawrenceville,
N.J. Preferably, the information stream includes particular time
intervals which are dedicated for insertion of such external data.
However, the invention can be utilized to replace existing data in
the data stream, if desired. In the nomenclature of the
specification, such designated intervals are termed "avails".
[0042] In accordance with a preferred embodiment of the invention,
the various television programming channels include open ad
(commercial) breaks designated specifically for the insertion of
ads by the television service provider. That is, the normal stream
of information in the channel includes intervals (avails),
typically containing one or more default ads, in which an alternate
ad from a source, external to the channel data itself, can be
inserted into that avail (i.e., substituted for the default ad).
The avails may also be created when a program is recorded on a STB
200 with memory or a personal video recorder.
[0043] The ads chosen are preferably stored in a memory local to
the STB 200. The local memory for storing the ad may comprise any
high volume memory, including, but not limited to, RAM 212,
magnetic HD 214, FLASH, and optical storage media such as optical
disks. Alternately, the ads can be stored on a remote server
coupled to the communications network.
[0044] In accordance with one embodiment of the invention, the STB
200 determines whether the equipment is turned on and, if so, to
what particular channel it is tuned, detects avails in that
channel, and inserts the identified ads into the avails as they
arrive.
[0045] Thus, in accordance with the invention, ads are no longer
linked to any particular ad spot in any particular program. In
accordance with the invention, a virtual roadblock can be set up
whereby the subscriber will receive the designated ads in the
designated order as avails occur in whatever programming he or she
is viewing, regardless of the channel, program or time of day. In
this manner, advertisers can more specifically reach their target
audience while also being given a much higher level of confidence
that their ads have actually been viewed by their target
audience.
[0046] In traditional linked advertising, the advertiser pays to
have an ad displayed in a designated time slot in a designated
channel, regardless of who or how many subscribers (viewers) are
tuned to that channel at that time. In accordance with the present
invention, the ad is not played to any subscriber unless that
subscriber's STB 200 is turned on. Further, the ad is played in the
channel to which the STB 200 is tuned, thus virtually guaranteeing
that the subscriber actually sees the ad that the advertiser has
paid to have displayed.
[0047] Moreover, the television service provider can address
individual STBs 200 or at least groups of STBs 200 depending on the
particular network and instruct them to insert the particular ad.
Accordingly, the television service provider can sell advertising
space to advertisers in a much more targeted fashion than in the
prior art.
[0048] Ad identifiers may be transmitted to the individual STBs 200
from a central location of the television service provider in any
reasonable manner. Preferably, the ads themselves are also
transmitted to the STBs 200 for storage until they are "played".
Several manners are well known in connection with existing digital
cable and VDSL systems for transmitting data to individual
receiving nodes coupled to the network. For instance, VDSL systems
essentially operate on an ATM protocol with video typically being
carried as MPEG data. In digital cable and DBS systems, ads can be
delivered in MPEG transport streams.
[0049] Numerous means are available for delivering targeted ads to
the STBs 200 for placement in the program streams as well as
delivering the ads themselves for storage. Common to all of these
architectures are multiple forward channels (CO/HE 22 transmitting
to STBs 200) and one return channel (STB 200 transmitting to the
CO/HE 22). One of the forward channels (hereinafter the ad channel)
may be dedicated to delivering the ads, metadata about the ads and
instructions for the STBs 200 regarding how the ads are to be
organized. The ads may be stored in one or more queues, wherein the
queue is an ordered list dictating an order in which ads should be
inserted.
[0050] FIG. 3 illustrates an exemplary ad queue 300. The queue 300
consists of m slots (Q.sub.1-Q.sub.m) with each slot containing an
ad identified by its corresponding AD_ID. It is to be noted that
the AD_ID may be a pointer such as an ad resource locator (ARL)
wherein the pointer points to the STB 200 from where to extract the
contents of the corresponding ad. For exemplary purposes, FIG. 3
illustrates a queue 300 having m slots labeled as Q.sub.1,
Q.sub.2,-Q.sub.m, each stack having a corresponding ARL or AD_ID.
In FIG. 3, the Q.sub.1 slot 301 points to a Ford ad, the Q.sub.2
slot 303 points to a Burger King ad, the Q.sub.3 slot 305 points to
a Revlon ad, the Q.sub.4 slot 307 points to a K-Mart ad, and the
Q.sub.m slot 321 points to a Kim's Gift Shop ad.
[0051] The return path/channel is used for, inter alia,
communicating to the service provider, which ads are stored at the
STB 200, which ads have been played and when, which ads are
scheduled for play, etc. Such information is critical for selling
and charging the advertisers for playing the ads. The return path
would typically be a low bandwidth channel since the amount of data
transmitted upstream is very limited relative to the video and
audio data, which is transmitted in the downstream channels. Also,
as previously noted, the return path need not be through the same
network as the downstream path. For instance, as discussed above in
connection with SDV or DBS, the return path can be through a modem
via Plain Old Telephone Service (POTS) or over a DSL.
[0052] In one exemplary embodiment, a service provider (i.e., DBS,
cable, SDV, multichannel multipoint distribution system (MMDS),
local multipoint distribution system (LMDS)) allocates and
dedicates one or more channels of the system to be used for
delivering nothing but ads and ad metadata. This channel could be a
high bandwidth channel (e.g., 6 MHz). This channel would be encoded
and transported in the same manner as any other programming content
channel on the system and would include all ads that are intended
for display to any subscriber on the network.
[0053] The STBs 200 could be pre-programmed with ad maps (or have
ad-maps or instructions on how to create ad-maps downloaded to
them) which indicate to the STBs 200 the types of ads they are to
download from the ad channel and which types of ads they can
ignore.
[0054] In one embodiment, each ad can have a tag associated with it
(e.g., embedded within it or linked to it). This tag could be a
simple identifier or a complete ad vector describing many
characteristics of the ad. Such metadata could be transported with
the ad or in advance of the ad.
[0055] Each STB 200 contains, in memory, a map which tells the STB
200 the particular advertising group or groups to which it belongs,
the group or groups, depending on the demographic, psychographic or
other information available to the cable service provider about the
owner of the STB 200.
[0056] The ad tag or vector can be detected by the STB 200 to
determine whether or not to store the ad and when and how to
display the ad. Such determination can be accomplished in a number
of ways depending on the application. If the tag is a simple
identifier (of the ad or the ad group to which it belongs) and is
sent with the ad, the STB 200 could examine the tag at the moment
the advertisement is received and either save it or ignore it based
upon the instructions/rules preprogrammed into the STBs 200 ad
map.
[0057] The tags would indicate for which one (or more) of a
plurality of advertising groups the ad is intended. The STBs 200
choose and store those ads that have a matching advertising group
in the tag to the advertising group or groups in the STBs 200
advertising group map.
[0058] The ad maps can be preprogrammed into the STB 200 before it
is delivered to the subscriber. However, more preferably, the maps
are sent to the STBs 200 via the network on a periodic basis, such
as is done via a carousel mechanism. In one embodiment, each ad is
assigned a unique identifier. Each ad also is assigned to one or
more target groups (i.e., subscribers) for which it may be
appropriate. The television service provider constructs a map which
indicates, for each unique ad identifier, the target groups for
which that ad is intended. The entire map can be sent to each STB
200 so that each STB 200 can utilize the map to identify and pick
out the appropriate ads. Alternately, individual tables for each
individual advertising group can be generated at the CO/HE 22 and
sent to the appropriate STBs 200. In either case, the STB processor
having the table examines each ad identifier and compares it to its
table. If the ad identifier matches one contained in its table, the
STB 200 would pick out that ad and save it. Otherwise, it would
ignore the ad.
[0059] In another embodiment, the ads delivered on the ad
channel(s) could be time-division or channel-division multiplexed
by advertising group. In time division multiplexing, ads
corresponding to advertising groups are temporally grouped together
when transmitted. The STBs 200 could be instructed to download all
ads sent on the ad channel during particular time periods, those
time periods corresponding to the advertising group or groups to
which it belongs In channel division multiplexing, each advertising
group is assigned a different advertising channel. The STBs 200 are
instructed to download all ads sent on the particular ad channel(s)
to which it corresponds.
[0060] In a system such as SDV 30 which operates on an ATM
protocol, because the ATM switching occurs at the HE/CO 22, the
HE/CO 22 is able to direct different ad channels to one or more of
its subscribers' STBs 200 on different VPI/VCIs. In this type of
embodiment, one or more ad channels corresponding to one or more
specific subscribers could be created and sent to the appropriate
subscriber(s). Each STB 200 would be instructed to tune to a
particular ad channel (VPI/VCIs) in order to receive and store all
the ads on that particular channel. This type of embodiment is
advantageous in that the STBs 200 would not need to filter the ads
since each ad received on the channel would be appropriate for that
STB 200. In such a system, the CO/HE 22 could have its own ad
server for generating the ad channel, or could receive ad channels
from upstream.
[0061] In the case of analog video, the ads could be transmitted
just as analog video is transmitted over the network and
subsequently digitized at the reception point.
[0062] Ads can be delivered to the STBs 200 via low, medium or high
width channels and in any of a variety of formats such as streaming
media, MPEG2, MPEG4, and in various protocols (ATM, IP)
[0063] In a simplest embodiment of the invention, the ads are
inserted in the avails in the channel to which the STB 200 is tuned
in the memory address order in which they are listed. In a more
practical embodiment, the ads are displayed in the avails in
accordance with an algorithm that takes into account both the order
of the ads and the duration of the avail relative to the duration
of the ads such that the duration of the ad(s) inserted into the
avail match the duration of the avail.
[0064] In accordance with a more preferred embodiment of the
invention, the STB 200 maintains multiple ads and executes a
subscriber (viewer) determination algorithm for selecting which ad
to retrieve based on predetermined criteria. For instance, a
different ad may be maintained for each potential subscriber
(television viewer) at the subscriber location (e.g., mother,
father, child). The algorithm for determining which ads are
retrieved could be based on many factors including, the nature of
the program to which the STB 200 is tuned, the time of day, recent
channel change or volume control history which might be indicative
of the particular subscriber. For instance, PCT Publication No. WO
033233A1, entitled "Subscriber Identification System" and assigned
to the same assignee as the present invention (corresponding to
U.S. patent application Ser. No. 09/452,893, filed on Dec. 2,
1999), the disclosure of which is incorporated herein by reference,
discloses a method and apparatus in accordance with this feature
for determining the probable identity or at least characteristics
of the particular subscriber in a household that is viewing the
television.
[0065] In accordance with alternative embodiments of the invention,
the ads themselves need not be stored at the STB 200 but can be
stored at a separate server on the network which communicates with
the STB 200 via the network.
[0066] The principles of one embodiment includes means to
selectively store ads on the STB 200, and subsequently "insert and
play" them at the appropriate time. Ads are received via the ad
channel or any other means, stored on a HD 214 (or other storage
means including Flash memory) on the STB 200, and selected ads are
then substituted or spliced into the programming being delivered or
the programming being viewed. The relative timing of ad
delivery/storage and subsequent play-out can widely vary. The
substitution could occur within seconds after the ad is stored, or
months after it is stored depending on the application. The STB 200
would contain a mass storage means to store the ads and one or more
processors to determine, in one embodiment, which ads to store
[note that other embodiments can include profiling and ad matching
at the STB], and carry out, inter alia, the substitution. The STB
200 could receive and store each ad delivered on the ad channel.
However, in a preferred embodiment, the STB 200 stores only
selected ads.
[0067] This storing of selected ads can be accomplished in a number
of ways. In one embodiment and according to the ad channel delivery
method, the ads, in real-time and as they are received, are
processed by the STB 200 and only those ads with the appropriate
characteristics are stored on the HD 214. This may require some
buffering of the ads in the STB memory as the STB 200 processes and
determines whether or not to store the ad or alternatively, the
information required to determine whether or not to store the ad
could be sent in advance of the ad (e.g., as a data service in an
ad channel). In another embodiment, all ads are stored on the HD
214 temporarily, and post-processing by the STB 200 deletes ads
that are not appropriate or desired.
[0068] FIG. 4 shows exemplary process flows by which an ad is
received and stored by the STB 200 according to one embodiment. The
ads are delivered to the STB 200, preferably via an ad channel. The
STB 200 either (a) stores all the ads on the HD as they are
received and subsequently analyzes the stored ads to determine if
they are appropriate, deleting from the HD those ads which it
determines are not appropriate (note that this subsequent
processing can occur immediately after the ad is stored) or (b)
determines, in "real time", whether or not the ad is appropriate
and stores the ad on the STB HD if the ad is appropriate (and
ignores it otherwise).
[0069] As shown in FIG. 4, the exemplary process flow begins in
step 401, where the STB 200 selects an ad from the incoming ad
channel. As mentioned before, the ads may be transmitted to the STB
200 via an ad channel.
[0070] Upon receiving such an ad, the STB 200 may either follow the
processing associated with branch A or the processing associated
with branch B. In branch A, the STB 200, in the step 403 stores the
selected ad on the hard drive of the STB 200. In step 405, the STB
processor determines if the selected ad is appropriate, i.e., if
the incoming ad has one or more characteristics that match the
pre-determined criteria of the STB 200. Step 407 is a decision
function to evaluate if the ad is appropriate. If in step 407, the
ad is found appropriate, it is retained on the HD (step 411). If in
step 407, the ad is found inappropriate, the ad is deleted from the
HD (step 409).
[0071] If the STB 200 chooses to follow the processing associated
with branch B, then in step 415, the STB 200 buffers the selected
ad in the memory of the STB 200. It is to be noted that this is
different than the processing of branch A, where the ad is
immediately stored on the HD. Herein, the ad is buffered, e.g., in
a cache memory. In step 417, the STB processor determines if the ad
is appropriate. Unlike the processing of branch A, such a
determination is made in real-time. In step 419, a determination of
whether the ad is appropriate is made. If the ad is found
appropriate, it is stored on the HD of the STB 200 in step 423. If
the ad is not found appropriate, it is deleted from the cache
memory and the cache memory is cleared (step 421).
[0072] It is to be noted that ads selected for ultimate storage can
be determined by a number a factors, including the ads themselves
(their IDs and characterizations), the STB profile, processing
instructions of the STB, how the ads are delivered to the STB,
etc.
[0073] In one embodiment, each ad has a tag or label associated
with it (e.g., attached/embedded in it or linked to it). This label
could be a simple identifier or a complete ad vector describing
many characteristics of the ad. Such metadata would be transported
with the ad or in advance of the ad as described in Applicant's
co-pending U.S. application Ser. No. 09/635,544 filed on Aug. 10,
2000 entitled "Transporting Ad Characterization Vectors".
[0074] This tag or ad vector can be used by the STB 200 to
determine whether or not to store the ad (and also when and how to
display the ad). Such determination can be accomplished in a number
of ways depending on the application. In the case that the tag is a
simple identifier (of the ad or the group to which the ad belongs),
and is sent with the ad, the STB 200 would examine the tag of the
ad as soon as the ad is received (on-the-fly), and either save it
or ignore/discard it based upon instructions/rules (e.g., a group
map) possessed by the STB 200 (i.e., previously sent to the STB by
e.g., the operator). Such "on-the-fly" processing may require that
each ad received be buffered in the memory while the processing and
decision of whether or not to store the ad on the STB is made. As
soon as the decision is made, the buffer memory is cleared, and the
ad is either discarded or stored on the HD (or other memory).
[0075] In one example, the tag/label is pre-pended to the ad (or is
at the beginning of the ad). When the ad is received at the STB
200, the tag is received first and a decision immediately made as
to whether to store or ignore the ad. Such comparison processing
may be accomplished prior to the completion of the ad, at which
point the ad is either stored persistently or ignored/discarded.
This case is particularly applicable to ads delivered as streaming
media.
[0076] There are several ways to encode an ad tag or other metadata
as will be evident to those of ordinary skill in the art. Such ad
labels could be encoded in the vertical blanking interval (VBI). A
decoder in the STB 200 would extract this label from the video
signal and use it to identify the ad. Other methods for encoding
data services in analog video services and how to extract those
data are well known to those of ordinary skill in the art.
[0077] Such an ad tag could also be encoded as a separate data
service as part of each ad or for the ad channel "program". In the
case of digitally encoded video (e.g., MPEG-2, DVB), a separate
data stream could be created for each ad program stream. This
encoded tag could be created for each ad prior to the ad becoming a
part of the ad channel program stream, or alternatively, tags could
be added for each ad after (or during) the ad channel creation. In
the first case, each encoded ad has another elementary stream data
service corresponding to the tag (i.e., each ad has an additional
program identification (PID)) which carries the tag for the ad. In
the second case, there would be one data service for the entire ad
channel comprising the ad labels of the ads. Service for the entire
program stream (i.e., a complete and continuous ad channel) carries
separate data service (which is a sequence of ad-labels) and there
is only 1 additional PID for the program. In either case, the ad
tag carried with each ad or in the ad channel and temporally linked
to the ad would be used by the STB 200 to identify the ad and
ultimately its appropriateness.
[0078] In the case of a program data service, the data service
could comprise a table that mapped each AD_ID to a label or group
designation. The STB 200 would decode this data service, which
would identify the ad (e.g., via an AD_ID), or identify the ads
group, or both. The data service could also include the timing of
the ads.
[0079] In the case that the ad label accompanied each ad as a
separate data service, the tags/labels could be pre-pended to the
ad (i.e., the tag to start at the beginning of the ad), and would
only require a brief amount of "ad time" in order to be completely
decoded (e.g., <0.1 second). The STB 200 would comprise a data
decoder and processor such that as the data stream of the ad (i.e.,
ad tag) was being decoded, as soon as the label had been decoded,
the label would be sent to the processor, and a determination made
by the STB whether or not to store the ad (based on instructions or
map table at the STB). If necessary, the incoming ad could be
buffered until a decision was made whether or not to store the ad.
Alternatively, a data service could be sent such that when it was
decoded, a map would be constructed of which ads were appropriate
to the STB prior to receiving the ad (i.e., the data service
"leads" the ads). This would eliminate the need to buffer the ad
while processing the labels to determine whether or not to store
the ad.
[0080] Alternatively, the transport stream PSI/SI information could
also be used to characterize the ad channel (e.g., carry metadata
regarding the ads and their temporal sequence). FIGS. 5 and 6 show
methods of encoding ad tags and timing information according to two
embodiments of the present invention (VBI data encoding and MPEG
data encoding).
[0081] FIG. 5 illustrates a method for tagging/labeling ads
according to which groups they are appropriate for and allowing
each STB 200, belonging to one or more groups, to determine, for
each ad received, whether or not to store that ad on the STB 200.
In this embodiment, each unique ad is assigned a unique identifier
(AD_ID). Thereon, by using AD_IDs, each ad is assigned to one or
more target groups (i.e., subscriber groups) that it may be
appropriate for. A map table is constructed which indicates, for
each AD_ID, what target groups that AD_ID is appropriate for. This
entire map table can be sent to each STB (e.g., via the carousel)
and the STB 200 can then process this table, identifying those
AD_IDs that would be appropriate for its group. Alternatively, this
processing could be done upstream (e.g., at the CO/HE) resulting in
a map for each STB-group indicating each AD_ID that was appropriate
for the STB-group. This STB-AD_ID map could then be sent to the STB
200. In either case, the STB processor has access to this table,
the table revealing which AD_IDs the STB 200 should save. As the
ads come in on the ad channel, the STB 200 would examine each ad's
AD_ID, and compare the AD_ID to its table; if the AD_ID was
contained in the table, then the STB would save the ad, otherwise,
it would ignore the ad, and the ad would not be stored.
[0082] FIG. 5 shows exemplary steps in accordance with this
embodiment. The process begins at step 501 where each STB 200 is
assigned to one or more groups, thereby an STB-group table is
formed, the STB-group illustrating various STBs assigned to various
groups. Each STB 200 with its unique identifier (e.g., MAC_ID) is
assigned to one or more groups and a master table is formed of all
STB-group assignations. At step 503, each ad is assigned a unique
AD_ID, and at step 505 each AD_ID is assigned to one or more
groups; this results in a master table containing all AD_ID-group
associations/assignations, such a master table referred to as an
AD_ID-group table. At step 507, the two master tables (STB-group
table and AD_ID-group table) are joined (using the groups field
common to both tables) to form a master STB-AD_ID table which will
contain an entry for each STB 200 and list each ad appropriate for
that STB 200. It is to be noted that the master STB-AD_ID table may
be an individual STB-AD_ID table corresponding to a particular STB
200. In step 509, from the master table, the ads appropriate for an
individual STB 200 can be identified, and this information used by
each individual STB 200 to store the ads appropriate for that STB
200. It is to be noted that the entire map can be sent to each STB
200 (e.g., via the carousel) or just the map corresponding to the
particular STB 200. Moreover, the determination of which ads are
appropriate for a given STB 200 can be performed upstream or at the
STB 200 itself.
[0083] FIG. 6 illustrates, in an exemplary manner, how a master
STB-AD_ID table may be formed. As shown in FIG. 6, an STB-group
table 601, having an STB-MAC_ID 603, and target group(s)
identification 605, may be joined with an AD_ID table 607, having
an AD ID column 609, and target group(s) identification column 611,
to form one or more master STB-AD_ID table 613. For exemplary
purposes, master STB-AD_ID table 613 is shown to have an STB-MAC_ID
column 615 and an AD ID column 617.
[0084] FIGS. 7 and 8 show methods of encoding ad tags and timing
information according to two embodiments of the present invention
(VBI data encoding and MPEG data encoding).
[0085] Essentially, one or more new data services for the ad
channel "program stream" is created and in it is sent both metadata
regarding the ads and splice information (the start and end timing)
of each ad. The STB 200 receives and decodes this data, examines
the metadata for each ad (e.g., its group) and then extracts/saves
the appropriate ads by writing to storage the ads received within
one or more splice windows (i.e., between the splice in and splice
out points).
[0086] As illustrated in FIG. 7, an ad channel generator 703,
receives metadata 707 and one or more ads 709 from an ad server
701, and then by utilizing a VBI encoder 711, and an ad
sequencer/multiplexer 713, transmits the information to a modulator
(mod) 715. The output of the ad channel generator 703 is an ad
channel 717 that is forwarded to a STB 705.
[0087] At the STB 705, the ad channel 717 is received by a
demodulator/decoder 719 that splits the ad channel 717 into video
stream 731 and metadata 729, wherein the video stream 731 is
transmitted to a buffer 723, and the metadata 729 is transmitted to
a VBI decoder 721. The metadata information 729 is transmitted to a
processor 727 that deciphers the metadata 729 to compute received
instruction 733. The instructions 733 are then transmitted to
buffer 723 for storage. Based on the instruction 733, the buffer
723 transmits the selected ads to memory 725.
[0088] In another embodiment, as illustrated in FIG. 8, an ad
channel generator 803 receives ads 811, and metadata 813 from an ad
server 801. The ad channel generator 803 also receives metadata and
splicing_timing information from a metadata and splicing-timing
encoder 815. It is to be noted that the output of encoder 815 may
be a new data service containing ad metadata and splicing_timing
information 817.
[0089] The output of ad channel generator 803 is one or more ad
channel(s) (along with program stream) 819. The ad channel and
program stream 819 are then transported to STB 809 via a transport
network 805 and an access network 807.
[0090] The STB 809 receives the ad channel (819), decodes the
received data services (821), and identifies the timing associated
with the ad (i.e., insertion of the ad) from the splice information
(822). Based on 819, 821 and 822, the STB 809 accordingly
identifies which ads should be stored (823). The STB 809 stores the
ad in an appropriate splice window (824).
[0091] Another method of determining which ads, delivered by the ad
channel will be stored on a particular STB, is for the STB to be
instructed to periodically retain ads. That is, the STB, depending
on which group (target group) it belongs is instructed (via
downloaded instructions) to save ads sent at a particular time, or
within a particular time period, and to discard other ads. In an
example embodiment, ads corresponding to target groups are
temporally grouped together when transmitted/transported to the
STB. Each STB, based on its membership in one or more target
groups, and based on instructions received (e.g., from a download
carousel, or from another metadata/instruction channel) about the
delivery timing of ads appropriate for its group in the ad channel,
selectively "picks off" and stores those ads received in the
appropriate timing interval.
[0092] It should be apparent to those of ordinary skill in the art,
that the number of particular embodiments of the invention are
practically limitless. Technologies for inserting data such as ads
into other data streams is well known. In accordance with the
invention, ads stored in digital format could be readily inserted
into digital video streams as well as analog video streams.
Further, as previously noted, the invention is not limited to
insertion of ads but can apply to any form of data and also is not
limited to television but can be used to insert any information
into any data stream.
[0093] FIG. 9 is a functional block diagram illustrating ad
insertion, according to one embodiment of the present invention. In
this example, the received programming stream 901 is in the form of
a DVB transport stream, i.e. a multiple program transport stream
(MPTS). A tuner 902 extracts and demodulates the channel selected
by the subscriber from the MPTS. This channel carries digital cue
tones which are detected by a detection module 910. The ad to be
inserted in the next detected avail has already been queued (e.g.,
from a scheduler 912 using the avail data and prioritization or
other scheduling algorithm). An ad insertion module 904 inserts or
splices the queued ad according to the cue tone timing. A resulting
program stream 905 with the substituted ad is decoded by decoder
module 906 and sent to a television 908 or other display
device.
[0094] The scheduler 912 is the retrieval circuit, which receives
the instructions for the organization of the ads in the local
memory and then organizes the ads in accordance with the received
instructions. In this exemplary embodiment, the scheduler 912
retrieves the instructions from a dedicated control channel 915 in
the program stream 901. However, as previously noted, this is just
one of many possible transport streams for the instructions. The
scheduler 912 also provides a schedule and notifies the ad
insertion module 904 of the schedule.
[0095] When the cue tone is detected by the detection module 910,
the ad insertion module 904 requests the appropriate ad from an ad
storage unit 914 which then sends the ad to the insertion module
904. The ad insertion module 904 then inserts the ad with the
proper timing.
[0096] In this exemplary embodiment, the ads that are stored into
the ad storage unit 914 are received over a dedicated ad channel in
the media stream. For instance, the scheduler 912 may include
circuitry for picking out the appropriate ads for the particular
STB from a continuous stream of ads as previously described and
writing them to the ad storage unit 914.
[0097] A watchdog module 920 notifies the scheduler 912 of any
changes that may require update or switching among multiple ads as
previously described. For instance, a profiler module 922 can
process information, such as data, as to the program being watched
and remote control operation such a volume control and channel
change control to attempt to determine which particular viewer in a
subscriber household is viewing the television in order to choose
among the various ads as previously described.
[0098] The ad insertion module 904 generates and stores an ad
insertion log 916 of all insertion events. This is essentially the
schedule of the ads inserted and whether or not they were inserted
successfully and/or displayed. The insertion logs 916 will
eventually be sent upstream to the CO/HE to be used for billing
advertisers based on the ads that have been played at each
subscriber's location.
[0099] Since FIG. 9 is functional block diagram, the blocks in FIG.
9 do not necessarily correspond to separate hardware components,
such as illustrated in FIG. 2. For exemplary purposes, however,
blocks 914 and 916 represent portions of memory and might
correspond to any one of more of the memories 210, 212, 214 shown
in FIG. 2. Functional blocks 904, 906, 910, 912, 920, and 922
represent processing steps and might correspond to the SCU 204 and
the channel processing circuit 222 shown in FIG. 2. As processing
steps, these blocks may correspond to software executed by any form
of digital processor in the SCU 204. However, any one or more of
these functions could be performed by dedicated hardware (e.g., an
analog circuit) within the SCU 204 or separate therefrom. It should
be understood that the term circuit as used in this specification
is intended to be all-inclusive and to encompass analog circuits
and digital circuits, including FSMs, digital signal processors,
computers, CPUs, ASICs, and programmed general purpose processors.
Functional block 902 corresponds to one or more of tuner block 218,
demodulator block 220 and demultiplexer block 224 in FIG. 2.
[0100] Having thus described a few particular embodiments of the
invention, various alterations, modifications, and improvements
will readily occur to those of ordinary skill in the art. Such
alterations, modifications and improvements as are made obvious by
this disclosure are intended to be part of this description though
not expressly stated herein, and are intended to be within the
spirit and scope of the invention. Accordingly, the foregoing
description is by way of example only, and not limiting. The
invention is limited only as defined in the following claims and
equivalents thereto.
* * * * *