U.S. patent application number 09/948326 was filed with the patent office on 2002-05-16 for system & method for the near-real time capture & reporting of large population consumer behaviors concerning television use.
Invention is credited to Brown, Thomas A., Endler, George III, Graves, George A., Heimark, Christopher J., Link, John F..
Application Number | 20020059632 09/948326 |
Document ID | / |
Family ID | 23071363 |
Filed Date | 2002-05-16 |
United States Patent
Application |
20020059632 |
Kind Code |
A1 |
Link, John F. ; et
al. |
May 16, 2002 |
System & method for the near-real time capture & reporting
of large population consumer behaviors concerning television
use
Abstract
A system and method for identifying television programming,
identifying and capturing consumer behavior as regards such
programming and providing a nearly-real time reporting of the
information to interested parties, while also providing
verification of actual delivery of advertising and/or program
content.
Inventors: |
Link, John F.; (Malvern,
PA) ; Graves, George A.; (Bala Cynwyd, PA) ;
Endler, George III; (Downington, PA) ; Heimark,
Christopher J.; (Paoli, PA) ; Brown, Thomas A.;
(West Chester, PA) |
Correspondence
Address: |
CAESAR, RIVISE, BERNSTEIN,
COHEN & POKOTILOW, LTD.
12TH FLOOR, SEVEN PENN CENTER
1635 MARKET STREET
PHILADELPHIA
PA
19103-2212
US
|
Family ID: |
23071363 |
Appl. No.: |
09/948326 |
Filed: |
September 6, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09948326 |
Sep 6, 2001 |
|
|
|
09280035 |
Mar 29, 1999 |
|
|
|
Current U.S.
Class: |
725/108 |
Current CPC
Class: |
H04N 21/6582 20130101;
H04H 60/31 20130101; H04N 21/44222 20130101; H04N 21/25891
20130101; H04N 7/17309 20130101 |
Class at
Publication: |
725/108 |
International
Class: |
H04N 007/173 |
Claims
We claim:
1. A set top box for use in a cable television system wherein said
set top box is in communication with a television, said set top box
transmitting information about events of said television to the
cable television system whenever television events occur.
2. The set top box of claim 1 wherein other peripheral devices are
in communication with said set top box, said set top box
transmitting information about events of said other peripheral
devices to the cable television system whenever events of said
other peripheral devices occur.
3. The set top box of claim 1 further comprising: hardware for
supporting communications over the cable television system and
including application program interfaces (APIs) for detecting
respective television events; a memory in communication with said
hardware; an operating system, stored in said memory, for managing
processes that run on said hardware; a resident application, stored
in said memory, for managing control interactions of said set top
box; a third-party application stored in said memory, said third
party application identifying a first set of selected APIs and
generating a first message for every detected event of said first
set of selected APIs and for transmitting said first message to
said cable system whenever any event of said first set of selected
APIs is detected.
4. The set top box of claim 3 wherein said operating system
comprises APIs for detecting other respective television events and
wherein said third-party application identifies a second set of
selected APIs of said operating system and generates a second
message for every detected event of said second set of selected
APIs of said operating system and for transmitting said second
message to said cable system whenever any event of said second set
of selected APls is detected.
5. The set top box of claim 4 wherein said resident application
comprises APIs for detecting additional respective television
events and wherein said third-party application identifies a third
set of selected APIs of said resident application and generates a
third message for every detected event of said third set of
selected APIs of said resident application and for transmitting
said third message to said cable system whenever said event of said
third set of selected APIs is detected.
6. The set top box of claim 2 further comprising: hardware for
supporting communications over the cable television system and
including application program interfaces (APIs) for detecting
respective other peripheral device events; a memory in
communication with said hardware; an operating system, stored in
said memory, for managing processes that run on said hardware; a
resident application, stored in said memory, for managing control
interactions of said set top box; a third-party application stored
in said memory, said third party application identifying a first
set of selected APIs and generating a first message for every
detected event of said selected APIs and for transmitting said
first message to said cable system whenever any event of said first
set of selected APIs is detected.
7. The set top box of claim 6 wherein said operating system
comprises APIs for detecting other respective other peripheral
device events and wherein said third-party application identifies a
second set of selected APIs of said operating system and generates
a second message for every detected event of said second set of
selected APIs of said operating system and for transmitting said
second message to said cable system whenever any event of said
second set of selected APIs is detected.
8. The set top box of claim 7 wherein said resident application
comprises APIs for detecting additional respective other peripheral
device events and wherein said third-party application identifies a
third set of selected APIs of said resident application and
generates a third message for every detected event of said third
set of selected APIs of said resident application and for
transmitting said third message to said cable system whenever said
event of said third set of selected APIs is detected.
9. The set top box of claim 5 wherein said set top box comprises an
identification number and said first, second and third message
comprises a structure that includes said identification number, the
time of said first, second or third message, respectively, and the
respective event that occurred.
10. The set top box of claim 9 where in said first, second and
third message structure further comprises the time of the event,
the current television channel, the volume and a cluster code.
11. The set top box of claim 6 wherein said set top box comprises
an identification number and said first, second and third message
comprises a structure that includes said identification number, the
time of said first, second or third message, respectively, and the
respective event that occurred.
12. The set top box of claim 11 where in said first, second and
third message structure further comprises the time of the event,
the current television channel, the sound volume and a cluster
code.
13. The set top box of claim 1 wherein said event comprises set top
on/off, television on/off and channel change.
14. The set top box of claim 13 wherein said event further
comprises television mute on/off and a program guide on/off.
15. The set top box of claim 2 wherein the cable television system
comprises a head end and wherein said other peripheral devices
comprise a video cassette recorder (VCR), an audio source, a
printer and a user text-entering interface and wherein said
operation transition comprises VCR on/off, audio source change,
printer on/off and non-head end requests across the cable
television system from said user text-entering interface.
16. The set top box of claim 2 wherein said other peripheral
devices comprises an auxiliary input source and wherein one of said
events comprises an auxiliary input source change.
17. A system for near-real time capturing and reporting of viewers'
cable television use for televisions coupled to a cable television
network including at least one head end, said system comprising: a
first subsystem for generating encoded media assets for
transmission through the cable network, said preparation subsystem
including means for assigning a range of codes to be associated
with the media assets and with entities that own the media assets
to form assigned asset data; a second subsystem, coupled to said
first subsystem, comprising: at least one set top box coupled to an
associated television for receiving said encoded media assets and
for obtaining data of television events as they occur, said at
least one set top box generating a message corresponding to each
one of said data of television events as they occur; at least one
set top box event dispatching means for receiving each of said
messages and for routing said messages to collection means within
said second subsystem; means for generating statistics from said
television event data coupled to said at least one set top box
event dispatching means; means for extracting the code from the
encoded media assets and creating asset tag timestamps therefrom;
and a third subsystem, coupled to said first subsystem and to said
second subsystem, said third subsystem comprising means for merging
said asset tag timestamps with: said statistics generated in said
second subsystem; information related to published broadcast
schedules and to head-end channel line-ups; and said assigned asset
data; to generate, in near-real time, viewership consolidated
data.
18. The system of claim 17 wherein said second subsystem further
comprises: (a) a cluster code database; (b) a cable customer
database; (c) a set top box identification database; and (d)
cluster code server means for merging data from said cluster code
database, said cable customer database and said set top box
identification database to generate set top box-to-cluster code
data.
19. The system of claim 17 wherein said collection means in said
second subsystem comprises a set top box event aggregator for
collecting counting data regarding how many set top boxes
experienced at least one event for creating set top box aggregate
data.
20. The system of claim 19 wherein said collection means in said
second subsystem further comprises a set top box audience tracking
sampler for recording television event data for a statistically
significant sample of households in the at least one head end and
for creating audience sample data.
21. The system of claim 20 wherein said collection means further
comprises a set top box service request router which routes a
service request message from said at least one set top box to an
external service.
22. The system of claim 17 wherein said means for extracting the
code in said second subsystem comprises a cable head end
transmission monitor that records the occurrence and time of any
assigned asset codes which are broadcast over the cable television
network and that creates said asset tag timestamps.
23. The system of claim 19 wherein said set top box aggregator
aggregates received set top box messages by time, channel, cluster
code and head end.
24. The system of claim 17 wherein said merging means further
comprises means for matching head end identification data and
virtual channel number data with published broadcast data for
updating said viewership consolidated data.
25. The system of claim 24 wherein said matching means also matches
head end identification data and virtual channel number data with
said asset tag timestamp data to update said viewership
consolidated data.
26. The system of claim 17 wherein said third subsystem further
comprises reporter means for providing said viewership consolidated
data as on-line information.
27. The system of claim 17 wherein said third subsystem further
comprises reporter means for providing said viewership consolidated
data as printed documentation.
28. A method for tracking television events of at least one
television in a cable system, said method comprising the steps of:
providing a cable set top box that is in communication with the
cable system and the at least one television; monitoring television
events using said cable set top box; and transmitting from said
cable set top box a signal indicative of said television events to
the cable system as said events occur.
29. The method of claim 28 further comprising the steps of: (a)
coupling other peripheral devices to said cable set top box; (b)
monitoring events of said other peripheral devices using said set
top box; and (c) transmitting from said cable set top box a signal
indicative of said events of said other peripheral devices to the
cable system as said events of said other peripheral devices
occur.
30. The method of claim 29 wherein said set top box comprises
hardware having application program interfaces (APIs) for detecting
predetermined events of said television and said other peripheral
devices and wherein said step of monitoring events of said
television and of said other peripheral devices comprises providing
a third-party application to a memory in said set top box and
whereby said third-party application identifies selected APIs in
the hardware of said set top box.
31. The method of claim 30 wherein said set top box further
comprises an operating system having its own set of APIs and
wherein said step of monitoring events of said television and of
said other peripheral devices further comprises said third-party
application identifying selected APIs of said operating system.
32. The method of claim 31 wherein said set top box further
comprises a resident program stored in the memory of said set top
box and wherein said resident program comprises its own set of APIs
and wherein said step of monitoring events of said television and
of said other peripheral devices further comprises said third-party
application identifying selected APIs of said resident program.
33. The method of claim 32 wherein the set top box comprises an
identification number and wherein said step of transmitting a
signal indicative of said events of said television and of said
other peripheral devices comprises configuring said third-party
program to generate a message structure identifying each of said
events according to set top box identification number, time of
message and type of event.
34. The method of claim 33 wherein said step of transmitting a
signal further comprises including in said message the time that
same type of event occurred last, the volume and a cluster
code.
35. The method of claim 34 wherein said type of event comprises set
top box on/off, television on/off and channel change.
36. The method of claim 35 wherein said type of event comprises
television mute on/off and a program guide on/off.
37. A method for near real time capturing and reporting of viewers'
cable television use for televisions coupled to a cable television
network including at least one head end, said method comprising the
steps of: (a) generating encoded media assets for transmission
through the cable network, (b) assigning a range of codes to be
associated with said media assets and with entities that own the
media assets to form assigned asset data; (c) coupling at least one
set top box to an associated television for receiving said encoded
media assets and for obtaining data about television events as they
occur; (d) generating a message, by said at least one set top box,
corresponding to each one of said data of said television events as
they occur and transmitting them into the cable television network;
(e) routing each of said messages to collection means; (f)
generating statistics from said television event data; (g)
extracting the code from the encoded media assets and creating
asset tag timestamps therefrom; (h) merging said asset tag
timestamps with: said statistics; information related to published
broadcast schedules and to head-end channel line-ups; and said
assigned asset data; to generate, in near-real time, viewership
consolidated data.
38. The method of claim 37 wherein said step of generating
statistics from said television events data includes utilizing a
cluster code database, a cable customer database, a set top box
identification database and a cluster code server for merging data
from said cluster code database, cable customer database and said
set top box identification database to form set top box-to-cluster
code data.
39. The method of claim 38 wherein said step of generating
statistics from said television events data comprises collecting
counting data regarding how many set top boxes experience at least
one event and creating set top box aggregate data.
40. The method of claim 39 wherein the step of generating
statistics from said television event data includes recording
television event data for a statistically significant sample of
households in the at least one head end and generating audience
sample data.
41. The method of claim 40 further comprising the step of routing a
service request message from the at least one set top box to an
external service.
42. The method of claim 40 wherein said step of extracting the code
from the encoded media assets comprises recording the occurrence
and time of any assigned asset codes which are broadcast over the
cable television network and creating said asset tag
timestamps.
43. The method of claim 39 wherein said step of generating
statistics from said television event data further comprises
aggregating said counting data by time, channel, cluster code and
head end.
44. The method of claim 37 wherein said step of merging said asset
tag timestamps further comprises matching head end identification
data and virtual channel number data with published broadcast data
for updating said viewership consolidated data.
45. The method of claim 44 wherein said step of merging said asset
tag timestamps further comprises matching head end identification
data and virtual channel number data with said asset tag timestamp
data to update said viewership consolidated data.
46. The method of claim 37 further comprising the step of reporting
said viewership consolidated data on-line.
47. The method of claim 37 further comprising the step of reporting
said viewership consolidated data as printed documentation.
Description
FIELD OF THE INVENTION
[0001] The invention pertains to the field of automatic monitoring
of cable television use, and more particularly, to a system and
method for near-real time capturing and reporting of cable
television use by consumers.
BACKGROUND OF INVENTION
[0002] The purchase of cable television time for advertisers is
extremely expensive. As a result, it is has always been desirous to
obtain good reliable statistics about who is watching "what" and
when they are watching "it". To obtain such information, it is
necessary to construct a system/method that is capable of
identifying cable media once transmitted, determining which channel
consumers are tuned to and then generating useful data from such
information. Examples of past and current systems/methods, or
portions thereof, directed towards this objective are listed
below.
[0003] Media encoding systems and processes are known in the art,
as shown in U.S. Pat. No. 4,025,851 (Haselwood et al.); U.S. Pat.
No. 4,367,488 (Leventer et al.); U.S. Pat. No. 4,547,804
(Greenberg); U.S. Pat. No. 4,574,304 (Watanabe et al.); U.S. Pat.
No. 4,639,779 (Greenberg); U.S. Pat. No. 4,647,974 (Butler et al.);
U.S. Pat. No. 4,805,020 (Greenberg); U.S. Pat. No. 4,931,871
(Kramer); U.S. Pat. No. 4,945,412 (Kramer et al.); U.S. Pat. No.
4,967,273 (Greenberg); U.S. Pat. No. 4,994,916 (Pshtissky et al.);
U.S. Pat. No. 5,280,479 (Mary); U.S. Pat. No. 5,319,453 (Copriviza
et al.); U.S. Pat. No. 5,325,127 (Dinsel); U.S. Pat. No. 5,327,237
(Gerdes, et al.); U.S. Pat. No. 5,386,240 (Hori); U.S. Pat. No.
5,387,941 (Montgomery et al.); U.S. Pat. No. 5,425,100 (Thomas et
al.); U.S. Pat. No. 5,450,122 (Keene); and U.S. Pat. No. 5,737,026
(Lu et al.).
[0004] Systems or methods for determining to which frequency a
television is tuned are known in the art, as shown in U.S. Pat. No.
3,973,206 (Haselwood et al.); U.S. Pat. No. 4,048,562 (Haselwood et
al.); U.S. Pat. No. 4,425,578 (Haselwood et al.); U.S. Pat. No.
4,605,958 (Machnik et al.); U.S. Pat. No. 4,697,209 (Kiewit et
al.); U.S. Pat. No. 4,723,302 (Fulmer et al.); U.S. Pat. No.
4,764,808 (Solar); U.S. Pat. No. 4,876,736 (Kiewit); and U.S. Pat.
No. 4,972,503 (Zurlinden).
[0005] Systems or methods for identifying and verifying broadcasted
programs are known in the art, as shown in U.S. Pat. No. 4,450,531
(Kenyon et al.); U.S. Pat. No. 4,511,917 (Kohler et al.); U.S. Pat.
No. 4,547,804 (Greenberg); U.S. Pat. No. 4,574,304 (Watanabe et
al.); U.S. Pat. No. 4,639,779 (Greenberg); U.S. Pat. No. 4,647,974
(Butler et al.); U.S. Pat. No. 4,677,466 (Lert, Jr. et al.); U.S.
Pat. No. 4,739,398 (Thomas et al.); U.S. Pat. No. 4,805,020
(Greenberg); U.S. Pat. No. 4,931,871 (Kramer); U.S. Pat. No.
4,945,412 (Kramer); U.S. Pat. No. 4,967,273 (Greenberg); and U.S.
Pat. No. 5,594,934 (Lu et al.).
[0006] Systems or methods for determining television audience
behavior are known, as shown in U.S. Pat. No. 2,833,859 (Rahmel et
al.); U.S. Pat. No. 3,919,479 (Moon et al.); U.S. Pat. No.
4,025,851 (Haselwood et al.); U.S. Pat. No. 4,230,990 (Lert, Jr. et
al.); U.S. Pat. No. 4,245,245 (Matsumoto et al.); U.S. Pat. No.
4,450,531 (Kenyon et al.); U.S. Pat. No. 4,511,917 (Kohler et al.);
U.S. Pat. No. 4,677,466 (Lert, Jr. et al.); U.S. Pat. No. 4,931,871
(Kramer); U.S. Pat. No. 4,945,412 (Kramer); U.S. Pat. No. 4,739,398
(Thomas et al.); U.S. Pat. No. 4,647,974 (Butler et al.); U.S. Pat.
No. 4,943,963 (Waechter et al.); U.S. Pat. No. 5,200,822 (Bronfin
et al.); U.S. Pat. No. 5,243,423 (DeJean et al.); U.S. Pat. No.
5,425,100 (Thomas et al.); U.S. Pat. No. 5,450,122 (Keene); U.S.
Pat. No. 5,752,159 (Faust et al.) and U.S. Pat. No. 5,778,182
(Cathey et al.).
[0007] However, many of the cable systems/methods only poll a
plurality of consumer set top boxes, i.e., these systems/methods
ask "what is everyone doing at this moment?" Thus, none of these
references teach or suggest a system or method for continuously
monitoring every consumer set top box in near-real time using
existing cable television infrastructure and providing for the
aggregation, collection and dissemination of relevant information
for near-real time publication.
OBJECTS OF THE INVENTION
[0008] Accordingly, it is the general object of this invention to
provide an invention that overcomes the disadvantages of the prior
art.
[0009] It is an object of the present invention to provide a system
and method for monitoring interesting events at a plurality of user
television set top boxes.
[0010] It is still yet a further object of the present invention to
provide a system and method for the near-real time collection of
information from a plurality of user television set top boxes.
[0011] It is still yet another object of the present invention to
provide a system and method for handling and processing, in
near-real time, information collected from a plurality of user
television set top boxes.
[0012] It is yet another object of the present invention to provide
a system and method that utilizes ongoing transmission from remote
locations (set top boxes) to central facilities (head-ends).
[0013] It is yet even a further object of the present invention to
provide a system and method whereby information is transmitted to a
central facility through the existing cable television
infrastructure from a remote location without requiring a "modem"
mechanism.
[0014] It is still yet even a further object of the present
invention to provide a system and method for near-real time capture
and reporting of consumer behavior as regards television use.
[0015] It is still even yet a further object of the present
invention to provide a system and method for near-real time capture
and reporting of consumer behavior as regards other peripheral
devices (e.g., video cassette recorder, video game, printer, and
other auxiliary inputs) coupled to the set top box.
SUMMARY OF THE INVENTION
[0016] These and other objects of the instant invention are
achieved by providing a set top box for use in a cable television
system wherein the set top box is in communication with a
television and wherein the set top box transmits information about
events (e.g., television on/off, mute on/off, set top box on/off,
etc.) of the television to the cable television system whenever
television events occur.
[0017] These and other objects of the instant invention are also
achieved by providing a system for near-real time capturing and
reporting of viewers' cable television use for televisions coupled
to a cable television network including at least one head end. The
system comprises: (1) a first subsystem for generating encoded
media assets for transmission through the cable network and whereby
the preparation subsystem includes means for assigning a range of
codes to be associated with the media assets and with entities that
own the media assets to form assigned asset data; (2) a second
subsystem, coupled to the first subsystem, comprising at least one
set top box coupled to an associated television for receiving the
encoded media assets and for obtaining data of television events as
they occur, and whereby the at least one set top box generates a
message corresponding to each one of the data of television events
as they occur; at least one set top box event dispatching means for
receiving each of the messages and for routing the messages to
collection means within the second subsystem; the second subsystem
also includes means for generating statistics from the television
event data coupled to the at least one set top box event
dispatching means; means for extracting the code from the encoded
media assets and creating asset tag timestamps therefrom; and (3) a
third subsystem, coupled to the first subsystem and to the second
subsystem whereby the third subsystem comprises means for merging
the asset tag timestamps with (a) the statistics generated in the
second subsystem; (b) information related to published broadcast
schedules and to head-end channel line-ups; and (c) the assigned
asset data to generate, in near-real time, viewership consolidated
data.
[0018] These and other objects of the instant invention are also
achieved by providing a method for tracking television events of at
least one television in a cable system. The method comprises the
steps of: providing a cable set top box that is in communication
with the cable system and the at least one television; monitoring
television events using the cable set top box; and transmitting
from said cable set top box a signal indicative of the television
events to the cable system as the events occur.
[0019] These and other objects of the instant invention are also
achieved by providing a method for near-real time capturing and
reporting of viewers' cable television use for televisions coupled
to a cable television network including at least one head end. The
method comprises the steps of: (a) generating encoded media assets
for transmission through the cable network; (b) assigning a range
of codes to be associated with the media assets and with entities
that own the media assets to form assigned asset data; (c) coupling
at least one set top box to an associated television for receiving
the encoded media assets and for obtaining data about television
events as they occur; (d) generating a message, by the at least one
set top box, corresponding to each one of the data of the
television events as they occur and transmitting them into the
cable television network; (e) routing each of the messages to
collection means; (f) generating statistics from the television
event data; (g) extracting the code from the encoded media assets
and creating asset tag timestamps therefrom; (h) merging asset tag
timestamps with: the statistics; information related to published
broadcast schedules and to head-end channel line-ups; and the
assigned asset data to generate, in near-real time, viewership
consolidated data.
DESCRIPTION OF THE DRAWINGS
[0020] Other objects and many of the attendant advantages of this
invention will be readily appreciated as the same becomes better
understood by reference to the following detailed description when
considered in connection with the accompanying drawings
wherein:
[0021] FIG. 1 is a figure layout for FIGS. 1A-1B;
[0022] FIGS. 1A and 1B, together, constitute a block diagram of the
television programming analysis system;
[0023] FIG. 2 is a flowchart for a conventional encoding station
process used in the television programming analysis system;
[0024] FIG. 3 is a flowchart for a cable head end transmission
monitor used in the television programming analysis system;
[0025] FIGS. 4A and 4B, together, constitute a flowchart for a set
top box event dispatcher used in the television programming
analysis system;
[0026] FIG. 5 is a flowchart for a set top box event audience
tracking sampler used in the television programming analysis
system;
[0027] FIGS. 6A and 6B, together, constitute a flowchart for a set
top box service request router used in the television programming
analysis system;
[0028] FIG. 7 is a flowchart for a set top box event aggregator
used in the television programming analysis system;
[0029] FIG. 8 is a flowchart for an asset viewership consolidator
used in the television programming analysis system; and
[0030] FIG. 9 are database definitions used in the television
programming analysis system.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0031] Referring now in detail to the various figures of the
drawing wherein like reference characters refer to like parts,
there is shown at 20 in FIGS. 1A-1B, a system for the
near-real-time capture and reporting of large population consumer
behaviors concerning television use, more concisely known as the
television programming analysis system (hereinafter "TPAS"),
embodiment of the present invention. This system 20 represents a
complete system for identifying television programming, identifying
and capturing consumer behavior as regards such programming, and
providing a nearly real-time reporting of that information to
interested parties. In addition, it can be used to prove actual
delivery of advertising and/or program content. A key component of
the TPAS 20 is that each consumer set top box (STB) 207, discussed
in detail later, permits the near-real time transfer of every
interesting event that involves the television operation or the
operation of any other peripheral in communication with the STB
207, to a storage system through the existing cable system, as will
also be discussed in detail below.
[0032] The TPAS 20 comprises three major subsystems, each of which
is comprised of several components. There is a preparation
subsystem, a delivery/capture subsystem and a
consolidation/reporting subsystem. The individual components within
these subsystems are shown in FIGS. 1A and 1B. These components are
either considered "data" (indicated by three-digit reference
numbers beginning with a "1"), a "process" (indicated by
three-digit reference numbers beginning with a "2"), or "other
item" (indicated by three-digit reference numbers beginning with a
"3").
[0033] Preparation Subsystem
[0034] In order to track consumer behavior regarding television
use, the content distributed to consumers (media asset 101, e.g., a
video tape) must first be identified in such a way that viewer
behavior can be correlated to a specific piece of content. Thus,
the preparation subsystem prepares this content for such tracking.
In particular, asset codes are assigned to requesting companies and
organizations in ranges by a single entity asset code assigner 203.
This assignment is then recorded in an assigned asset code master
list 103. The companies can then embed their codes into individual
assets using the codes from within their assigned range.
[0035] The encoding process, i.e., encoding station 201 and live
performance encoding station 204, are commercially available today.
In particular, the encoding station 201 is, in effect, a
duplication station which places the asset code at an appropriate
detectable place in the asset in such a way that further
duplications of the asset possess the asset code. There will be a
number of these encoding stations 201, specifically at least one
for each medium to be encoded. The output of the encoding station
201 is one or more duplicate analog or digital assets 102 which
contain the embedded asset code. FIG. 2 depicts a flow diagram for
the embedding process of the asset code into the frame in the
audio/video signal. This technology is currently available from
companies such as NorPak Corporation of Ontario, Canada. The live
performance encoding station 204 provides a mechanism for embedding
asset codes into a live video or audio stream 101 in such a way
that they create no perceptible disruption to the signal from the
consumer perspective. Devices for this purpose are also
commercially available from companies such as NorPak
Corporation.
[0036] The asset code server 202 is a computer system (e.g., a
general purpose computer hardware including computer software
designed or tailored for this specific function). The server 202
assigns a range of codes to an entity, such as a company or
organization. The range assigned is recorded with entity data such
as name, address, contact information, and industry or type of
business in the assigned asset master list 103. It should be
understood that particular codes within each range are known only
to the entity.
[0037] The single entity asset code assigner 203 is the process
which a company or organization uses to record the association of a
specific asset code from their assigned range (per 202) with a
media asset. This process may be as sophisticated as a software
application running on a general purpose computer hardware, or as
simple as recording the association by hand in a notebook.
[0038] It should be understood that although the exemplary media
asset 101 in this application is a tape, any item which may be
broadcast or transmitted can serve as media asset 101. This media
asset 101 is then sent to the encoding station 201 to have the
asset code inserted into the medium.
[0039] The assets 101 containing the asset code may be duplicated
and/or distributed to broadcast networks, network affiliates,
independent broadcasters, cable networks and/or cable systems, all
of which are designated 205 in FIG. 1B, for broadcast delivery to a
cable head end 301. The cable head end 301 is a facility containing
the equipment and staff required to deliver media streams to a
localized collection of homes and businesses. This is a common
facility in the cable television industry.
[0040] Once the encoding is complete, those assets are placed into
normal distribution channels 205 for delivery to consumer
televisions.
[0041] Delivery/Capture Subsystem
[0042] With the assets 101 containing the proper asset codes, such
programming is broadcast from the cable system head end 301 and
sent via a two-way cable distribution system 302 to a consumer set
top box (STB) 207 and ultimately to the consumer's television 303.
The two-way cable distribution system 302 is the physical network
through which a cable television distributor delivers signals to,
and captures signals from, individual customers. Other information,
such as current time, is sent to the STB 207 from the cable head
end 301 as well. The STB 207 contains an application that
"observes" events with the STB 207 and reports those events deemed
"interesting." These events can be reported for any device attached
to, or otherwise in communication with, the STB 207. The term
"event" includes interactions involving some action of the
television 303 or other peripheral devices 304, which the STB 207
is capable of detecting when it occurs. Examples of such devices
304 are: handheld remote controls, keyboards, VCRs, printers, and
telephony equipment. The STB 207 reports any interesting action
which is considered "significant" (e.g., any change of channel
which is not followed by another channel change within ten seconds,
failure to communicate with a printer, television on/off, VCR
on/off, access data (e.g., WWW, e-mail, etc.)) back through the
two-way cable distribution system 302 through the cable head end
301 to an STB event dispatcher 209 which routes information to the
appropriate collection mechanism such as an STB event audience
tracking sampler 210, an STB service request router 211, or an STB
event aggregator 213, all of which are discussed below.
[0043] Simultaneously, broadcast transmissions are monitored at the
cable head end 301 to determine the precise time of broadcast for
certain asset tags previously embedded.
[0044] A cable head end transmission monitor 206 records the
occurrence and time of any asset codes which are broadcast to
consumers. An analogy of the cable head end transmission monitor
206 might be considered a room full of people, each watching a
single television channel and logging in a notebook the title and
time of each commercial as it is broadcast. In implementation,
there may be several of these automated cable head end transmission
monitors 206 per head end. The cable head end transmission monitor
206 is a system consisting of a general purpose computer hardware
along with computer software designed or tailored for this specific
function. FIG. 3 provides a flow chart for the operation of the
cable head end transmission monitor 206. This process extracts the
asset code from the frame in the audio/video signal and passes it
to a record asset code data process. This process accepts the asset
code data from the decode audio/video signal process and inserts a
record in an asset tag timestamps file 110. This technology is also
commercially available today from companies such as NorPak
Corporation.
[0045] A consumer set top box (STB) is a device which allows the
consumer to tune his/her television while being connected to a
cable TV network. These devices are commercially available from
companies such as General Instrument Corporation of Horsham, Pa.,
and Scientific-Atlanta, Inc., of Norcross, Ga. As used in this
patent application, the STB 207 is similar to these conventional
STBs except that the internal software has been modified to observe
interesting events, as will be discussed in detail below.
Furthermore, the STB 207 includes provisions for permitting other
peripheral devices 304 to be in communication therewith.
[0046] In particular, a STB comprises three components necessary
for delivering its basic function. Those three components include
the hardware, the operating system, and the `resident`
application.
[0047] The hardware is generally a special purpose computer
designed to support communications across the cable network and to
provide an environment for varying degrees of limited internal
processing. Usually, individual hardware components can be
interrogated as to their state, and the contents of their registers
or storage buffers. This is often accomplished via software
programs written in languages which support this level of access.
The hardware provides Application Program Interfaces (APIs) which
allow an application to query and direct the hardware to perform
specific functions.
[0048] The operating system (such as Windows.RTM. CE by Microsoft
of Redmond, Wash., or PowerTV of PowerTV, Inc. of Cupertino,
Calif.) manages processes which run on that hardware, including
resource scheduling and providing simplified interfaces for
tasking/querying hardware components. The operating system may also
support APIs and facilities for third parties (i.e., other than the
STB manufacturers or operating system manufacturers) to run other
software programs on the STBs. Each operating system supplies its
own individual set of APIs which define those events that are
visible from within that operating system. Examples of events which
an operating system might make visible include channel change
events, STB on/off events, mute events, etc.
[0049] The resident application runs in the environment created by
the hardware and the operating system. It is the software program
which provides the `functions` which the consumer uses such as
channel changes, mute, program guide, etc, i.e., the resident
application manages the control interaction. A given resident
application may or may not provide APIs to third party programs
which would allow visibility to events taking place within the
resident program. Resident applications which do provide APIs to
third party programs, allowing visibility to events taking place in
the operating system, differ from implementation to implementation.
As each resident application supplies its own individual set of
APIs, those events which are visible from within each resident
application varies based on the resident application design.
Examples of events which a resident application might make visible
include: channel change events, STB on/off events, mute events,
etc.
[0050] Due to the availability and extent of APIs, third-party
applications requiring access to event data have to query the
resident application APIs, operating system APIs, hardware
components, or some combination of all three in order to completely
fulfill its data requirements. Depending on the design of the
operating system/resident application, the manner in which the
third-party application utilizes the API is different.
[0051] With regard to the present invention, the STB 207 is an
event-driven STB whereby the third-party application makes an API
call for a specific event or class of events and waits. The APIs
pass the event data to the third-party application when and if that
event occurs. In particular, the third-party application (which is
loadable across the cable system network) is stored in the STB
memory. The third-party application defines which events it is
interested in via software coding/API calls in the software
language supported by the particular STB.
[0052] This is in contradistinction to `procedural` environments,
whereby the third-party application executes a `loop` of
instructions repeatedly requesting data concerning an event or
class of events; the API, in this `procedural` environment, then
returns either the event data (if that event has just happened) or
it returns a `nothing to report` response if no event has
occurred.
[0053] Once the third-party application has received a response
from the hardware APIs, the operating system APIs or the resident
program APIs, or a combination thereof, concerning an event of
interest, it creates a message which includes data elements that
identify the event, the time, the particular STB (i.e., based on an
STB identification number), etc., and transmits the message to the
STB event dispatcher 209 via the cable network.
[0054] An example of the message structure is:
[0055] STB ID
[0056] Time of message
[0057] Current channel
[0058] Event
[0059] Time Event Occurred
[0060] Time Event Last Occurred
[0061] Current Sound Volume
[0062] Cluster Code
[0063] Other related data.
[0064] Here are some examples of the types of events the third
party application could transmit messages for:
[0065] STB On/Off
[0066] TV On/Off
[0067] VCR On/Off
[0068] Channel Change
[0069] Mute On/Off
[0070] Program Guide On/Off
[0071] Audio Source Change (SAP, etc.)
[0072] AUX Input Source Change (Video Games, etc.)
[0073] Peripheral Device (printer, etc.) On/Off
[0074] Non Headend Requests across the cable network (e-mail via a
user interface permitting the user to enter text, etc.).
[0075] Special Purpose STB Remote Control Button (e.g., "buy",
"select", "complete", etc.) request
[0076] It is important to establish a database regarding STBs and
cluster codes. Cluster codes are mathematical groupings of the
viewing population such that there is a demographic segmentation of
the viewing population based on socioeconomic factors. To that end,
the TPAS 20 includes a box-to-cluster-code data base 104 which is
produced by merging the possible clustering codes 105 with
customers' actual addresses from a cable customer data base 106 and
cross-referencing that to a set top box ID data base 107. This
action is performed by an STB clustering server 208. The STB
clustering server 208 is a system consisting of general purpose
computer hardware along with computer software designed or tailored
for this specific function. Additionally, the cluster server 208
provides and updates a cluster code for each STB 207. The STB 207
maintains this cluster code in its memory. Depending on the
capabilities of the STB 207, this setting or refreshing of the
cluster code could be in response to a request made by the STB 207
to the clustering server 208, or it could be initiated by the
clustering server 208 by sending an unsolicited message to the STB
207.
[0077] The STB event dispatcher 209 (FIGS. 4A-4B) is a system
consisting of a general purpose computer hardware along with
computer software designed or tailored for this specific function.
Its function is to successfully receive messages from the STB 207
from the two-way cable distribution system 302, via the cable head
end 301, and to pass those messages along to the appropriate
process: an STB event audience tracking sampler 210, an STB service
request router 211 or an STB event aggregator 213. In
implementation, there may be several of these STB event dispatchers
209 per head end 301.
[0078] The STB event audience tracking sampler 210 is used to track
the sequence of events (of the television or other peripheral
devices) of particularly-selected STBs. The STB event aggregator
213 is used to track how many STBs experienced particular event(s)
(of the television or other peripheral devices).
[0079] The following discussion concerns each message received by
the STB event dispatcher 209 from the two-way cable distribution
system 302, via the cable head end 301.
[0080] As shown in FIG. 4A, the "Get Next Message" process waits
for a message from the two-way cable distribution system 302 to
arrive. When a message is received, the message type is
interrogated. If the message type is unrecognized, the message is
discarded. If the message type is recognized, it passes to the
tracking sample filter process. This process determines if this
message qualifies for the sample selection criteria (i.e., the
process determines if this message originated from an STB 207 whose
identification number is listed as participating in the sampling).
If so, the message is enqueued for the STB event audience tracking
sample process 210. Regardless of whether the message qualifies for
the tracking sample filter, it is enqueued to be passed to the STB
event aggregrator 213. If the message is a service request message,
the message is enqueued for the STB service request router 211.
[0081] The following discussion concerns each message received by
the STB event dispatcher 209 from the STB service request router
211.
[0082] As shown in FIG. 4B, this process waits for a message form
the STB service request router 211. When a message is received, it
sends it onto the specified STB 207 via the cable head end 301 and
through the two-way cable distribution system 302.
[0083] The STB event audience tracking sampler 210 (FIG. 5) records
the events for a statistically significant sample of the households
in the head end 301. The objective of this data is to provide
sufficient transaction data to demonstrate that the data collected
by the STB event aggregator 213 is valid. The STB event audience
tracking sampler 210 is a system consisting of a general purpose
computer hardware along with the computer software designed or
tailored for this specific function.
[0084] As shown in FIG. 5, there process "Write Message to
Database" waits for a message from the STB event dispatcher 209.
When a message is received, it writes the message to an audience
sample data file 108.
[0085] The STB service request router 211 directs messages to the
correct external service for fulfilling the request. The router 211
then directs the response back to the STB 207.
[0086] FIGS. 6A and 6B depict the flowchart for the STB service
request router 211. In the enqueue for specific service (FIG. 6A),
the process reads an STB message from the STB event dispatcher 209
and passes it to the correct external service. In the enqueue for
STB event dispatcher (FIG. 6B), the process reads a message from
the service request processes 212 and passes it to the correct STB
207. The service request processes 212 are functions external to
this application which may be requested via interaction with the
STB 207. These functions may include services such as interactive
entertainment, commerce (ordering goods and services, financial
account management, etc., ), email, and information retrieval.
[0087] The STB event aggregator 213 receives STB messages from the
STB event dispatcher 209 and aggregates them by time, channel,
cluster code and head end. Because the STB event message represents
a transition from one state to another, the counts for each channel
combination at any point can be considered valid until a transition
occurs resulting in a counter being incremented or decremented.
[0088] The STB message indicates both the time the last state
(channel, etc.) was switched and the time the new states (channel,
etc.) was reached. This data allows this device to distinguish
between the count of STBs tuned to any particular channel and the
count of those STBs transitioning between channels (effectively
watching none). This presents a successive approximation phenomena
to counts. As messages arrive, the state transition period between
the last state time and the current state time is used to decrement
the intervening time intervals, giving an increasingly accurate
count to those periods.
[0089] The STB message provides for events concerning program guide
and mute to reach the STB event aggregator 213. This allows for
"tri-modal" counting within a channel combination. Tri-Modal counts
provide the distinction among those STBs receiving combined audio
and video programming, those receiving video programming with audio
suppressed, and those receiving audio programming with video,
either partially or fully overlaid by program guide, etc.
[0090] The thousands of "real-time events" as captured by the STB
event dispatcher 209 are combined by the STB event aggregator 209
to relatively few events. Examples of this consolidation might be
by second by cluster code. It is important to note that in this
combination and reduction of information, the possibility of
tracking at the level of individual household may be lost and
anonymity may be ensured by the system if desired. The STB event
aggregator is a general purpose computer along with computer
software designed or tailored for this specific function. Thus, due
the high volume of data being transmitted from every STB 207, the
STB event aggregator 213 loads up its queue to hold all of the
incoming data to avoid bottle-necking the system as it is
transferring all of the data to the third subsystem.
[0091] As shown in FIG. 7, the dequeue STB message step reads a
message from the STB event dispatcher 209. Next, the process uses
the time that the current state (channel, mute, program guide,
On/Off, etc.) was reached to increment the appropriate counters for
that time interval in the STB aggregate data 109. Next, the process
uses the time that the current state (channel, mute, program guide,
On/Off, etc.) was reached and the time that the prior state was
switched to determine the range of time intervals which must be
decremented. Once that time range is established, the appropriate
counters in the STB aggregate data 109 for each time interval in
the range are reduced by one to reflect the transition period
between the prior state and the current state.
[0092] An STB event count propagation process 217 sets the counter
values for the next time interval by propagating counter values for
the current time interval forward.
[0093] Consolidation/Reporting Subsystem
[0094] In this third subsystem, the collected set-top box
statistics and asset tags are merged with additional information
related to published broadcast schedules and channel line-ups and
posted via an asset viewership consolidator 214 to a viewership
consolidated data base 114. Reporting via all means (e.g., print,
electronic, etc.) is produced from the viewership consolidated
database 114 and distributed.
[0095] In particular, the asset viewership consolidator 214
combines the asset tag timestamp records 110 for the head end 301
with the STB aggregate data 109 to determine the consumer behavior
with regards to individual assets. That behavior data is combined
with the assigned asset code master list 103 to identify the owner
of individual assets which have been presented. Head end channel
lineups 111 and a corresponding published schedule database 112 are
used with the programming schedule that the consumer behavior is
associated with. All that information is consolidated into
reporting records which are entered into the viewership
consolidated database 114. The asset viewership consolidator 214 is
a system consisting of general purpose computer hardware along with
computer software designed or tailored for this specific
function.
[0096] The flowchart for the asset viewership consolidator process
214 is shown in FIG. 8. In particular, in the "Get Next STB
record", the process retrieves the next record from the STB
aggregate data file 109. Next, the process determines if a record
exists for the head end 301/virtual channel number/timestamp in the
viewership consolidated database 114. If no record is found, a
skeleton record is inserted into the database 114. If a record is
found, the counts value is updated for that record. It should be
noted that the virtual channel number is the digital channel in the
consumer STB 207 although the actual channel being viewed by the
consumer is different.
[0097] The process (FIG. 8) continues by using the head end 301 ID
and the virtual channel number to match a record in a head end
channel line up table 111. Using data from that record, the network
affiliation and the station fields in the viewership consolidated
database 114 is updated.
[0098] Next, the process uses the head end ID and the virtual
channel number to match a record in the published schedule data
base 112. Using data from that record, the program name field in
the viewership consolidated database 114 is updated.
[0099] The process (FIG. 8) then uses the head end ID and the
virtual channel number to match a record in the asset tag timestamp
110. Using data from that record, the asset code field in the
viewership consolidated database 114 is updated.
[0100] The TPAS 20 also includes a process which provides a
mechanism to update the published schedule database 112 to reflect
last minute changes. The schedule corrections application 215 is a
system consisting of general purpose computer hardware along with
computer software designed or tailored for this specific function.
The published schedule data base 112 is a combination of licensed
schedule information 113 and schedule corrections transactions 215
which are modifications and additions to published schedules. The
published schedule database 112 is a commercially available product
from companies such as Preview Networks, Inc. of Tulsa, Okla., and
Starsight Telecast, Inc. of Fremont, Calif.
[0101] A reporter 216 then scans the viewership consolidated
database 114 to produce predetermined or ad-hoc 115 reports for
people accessing the system.
[0102] FIG. 9 sets forth the database definitions for the
following: assigned asset code master list 103, box to cluster code
database 104, clustering database 105, cable customer database 106,
STB ID database 107, STB aggregate data 109, asset tag timestamps
110, head end channel line up 111, published schedule database 112
and the viewership consolidated database 114.
[0103] Therefore, through the real-time consolidation and
availability of information via the TPAS 20, it is envisioned that
the latency of available data on millions of observations is
measured in seconds, and is thus vastly superior to any collection
and reporting system for similar events which has been deployed to
date.
[0104] The term "near-real time" as used in this patent application
means within seconds or units of minutes of a significant
event.
[0105] Without further elaboration, the foregoing will so fully
illustrate our invention that others may, by applying current or
future knowledge, readily adopt the same for use under various
conditions of service.
* * * * *