U.S. patent application number 11/877433 was filed with the patent office on 2008-06-12 for methods and apparatus to monitor consumer behavior associated with location-based web services.
Invention is credited to Brian Scott Mello, Arun Ramaswamy, David H. Wright.
Application Number | 20080140479 11/877433 |
Document ID | / |
Family ID | 38846581 |
Filed Date | 2008-06-12 |
United States Patent
Application |
20080140479 |
Kind Code |
A1 |
Mello; Brian Scott ; et
al. |
June 12, 2008 |
METHODS AND APPARATUS TO MONITOR CONSUMER BEHAVIOR ASSOCIATED WITH
LOCATION-BASED WEB SERVICES
Abstract
Example methods, apparatus, systems, and articles of manufacture
to monitor consumer behavior associated with location-based web
services are disclosed. A disclosed example method involves
receiving a query from a mobile device including a query criterion
and a first location identifier. A second location identifier is
retrieved from a database that associates the second location
identifier with an advertisement identifier indicative of an
advertisement at a fixed location. The advertisement indicated by
the advertisement identifier is credited as having been exposed to
a user of the mobile device in response to the first location
identifier matching the second location identifier or the first
location identifier indicating a first location within a distance
of a second location indicated by the second location
identifier.
Inventors: |
Mello; Brian Scott;
(Oldsmar, FL) ; Ramaswamy; Arun; (Tampa, FL)
; Wright; David H.; (Safety Harbor, FL) |
Correspondence
Address: |
HANLEY, FLIGHT & ZIMMERMAN, LLC
150 S. WACKER DRIVE, SUITE 2100
CHICAGO
IL
60606
US
|
Family ID: |
38846581 |
Appl. No.: |
11/877433 |
Filed: |
October 23, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
PCT/US2007/072544 |
Jun 29, 2007 |
|
|
|
11877433 |
|
|
|
|
60817610 |
Jun 29, 2006 |
|
|
|
Current U.S.
Class: |
705/14.54 |
Current CPC
Class: |
G06Q 30/0261 20130101;
G06Q 30/0267 20130101; G06Q 30/0256 20130101; G06Q 30/02 20130101;
G06Q 30/0201 20130101 |
Class at
Publication: |
705/7 |
International
Class: |
G06Q 10/00 20060101
G06Q010/00 |
Claims
1. A method comprising: receiving a query from a mobile device
including a query criterion and a first location identifier;
retrieving a second location identifier from a database that
associates the second location identifier with an advertisement
identifier indicative of an advertisement at a fixed location; and
crediting the advertisement indicated by the advertisement
identifier as having been exposed to a user of the mobile device in
response to the first location identifier matching the second
location identifier or the first location identifier indicating a
first location within a distance of a second location indicated by
the second location identifier.
2. A method as defined in claim 1, wherein the query criterion
includes at least one of barcode information, a product search
term, or a retail establishment search term.
3. A method as defined in claim 1, further comprising storing the
query criterion and the first location identifier in a second
database.
4. A method as defined in claim 1, wherein the mobile device is at
least one of a cellular telephone, a portable meter, or a portable
digital communicator.
5. A method as defined in claim 1, wherein the advertisement
identifier is indicative of at least one of a billboard
advertisement, a poster advertisement, an audio advertisement
presented via a stationary audio advertiser, or a video
advertisement presented via a stationary video advertiser.
6. A method as defined in claim 1, further comprising receiving a
retail establishment identifier indicative of a retail
establishment visited by the user and crediting the advertisement
as having influenced the user to visit the retail establishment in
response to the advertisement being associated with the retail
establishment.
7. A method as defined in claim 6, wherein the advertisement is
associated with the retail establishment when the advertisement
advertises at least one of the retail establishment or a product
offered by the retail establishment.
8. A method as defined in claim 1, further comprising associating
user behavior information to at least one of an advertisement type
of the advertisement, a size of the advertisement, or repetition of
exposure to the advertisement.
9. A method as defined in claim 8, wherein the user behavior
information includes at least one of purchase information, path of
travel information, or query information.
10. A method as defined in claim 8, wherein the advertisement type
includes at least one of a billboard type, a poster type, an audio
type, or a video type.
11. A method as defined in claim 1, further comprising crediting a
search result associated with the query as having influenced a user
action in response to the search result being related to the user
action.
12. A method as defined in claim 11, wherein the user action is at
least one of making a purchase or visiting a retail
establishment.
13. An apparatus comprising: a receiver to receive a query from a
mobile device including a query criterion and a first location
identifier; a database to associate a second location identifier
with an advertisement identifier indicative of an advertisement at
a fixed location; and an analyzer to credit the advertisement
indicated by the advertisement identifier as having been exposed to
a user of the mobile device in response to the first location
identifier matching the second location identifier or the first
location identifier being indicative of a first location within a
distance of a second location indicated by the second location
identifier.
14. An apparatus as defined in claim 13, wherein the receiver is
further to receive a retail establishment identifier indicative of
a retail establishment visited by the user and crediting the
advertisement as having influenced the user to visit the retail
establishment in response to the advertisement being associated
with the retail establishment.
15. An apparatus as defined in claim 13, wherein the analyzer is
further to associate user behavior information to at least one of
an advertisement type of the advertisement, a size of the
advertisement, or repetition of exposure to the advertisement.
16. An apparatus as defined in claim 13, wherein the analyzer is
further to credit a search result associated with the query as
having influenced a user action in response to the search result
being related to the user action.
17. A machine accessible medium having instructions stored thereon
that, when executed, cause a machine to: receive a query from a
mobile device including a query criterion and a first location
identifier; retrieve a second location identifier from a database
that associates the second location identifier with an
advertisement identifier indicative of an advertisement at a fixed
location; and credit the advertisement indicated by the
advertisement identifier as having been exposed to a user of the
mobile device in response to the first location identifier matching
the second location identifier or the first location identifier
being indicative of a first location within a distance of a second
location indicated by the second location identifier.
18. A machine accessible medium as defined in claim 17 having
instructions stored thereon that, when executed, cause the machine
to receive a retail establishment identifier indicative of a retail
establishment visited by the user and crediting the advertisement
as having influenced the user to visit the retail establishment in
response to the advertisement being associated with the retail
establishment.
19. A machine accessible medium as defined in claim 17 having
instructions stored thereon that, when executed, cause the machine
to associate user behavior information to at least one of an
advertisement type of the advertisement, a size of the
advertisement, or repetition of exposure to the advertisement.
20. A machine accessible medium as defined in claim 17 having
instructions stored thereon that, when executed, cause the machine
to credit a search result associated with the query as having
influenced a user action in response to the search result being
related to the user action.
21. A system comprising: a first database to store a query
criterion in association with a first location identifier; a second
database to store a second location identifier with an
advertisement identifier indicative of an advertisement at a fixed
location; and an analyzer to determine whether the query criterion
is associated with the advertisement indicated by the advertisement
identifier.
22. A system as defined in claim 21, wherein the first location
identifier is indicative of a location at which a user submitted
the query criterion.
23. A system as defined in claim 21 further comprising a receiver
to receive the query criterion and the first location information
from a mobile device.
24. A system as defined in claim 21, wherein the analyzer is
further to credit the advertisement indicated by the advertisement
identifier as having been exposed to a user in response to the
first location identifier matching the second location identifier
or the first location being indicative of a first location within a
distance of a second location indicated by the second location
identifier.
25. A system as defined in claim 21, wherein the query criterion
includes at least one of barcode information, a product search
term, or a retail establishment search term.
Description
RELATED APPLICATIONS
[0001] This patent is a continuation of International Patent
Application Serial No. PCT/US2007/72544, filed on Jun. 29, 2007,
which claims the benefit of U.S. Provisional Patent Application No.
60/817,610, filed Jun. 29, 2006, both of which are hereby
incorporated herein by reference in their entireties.
FIELD OF THE DISCLOSURE
[0002] The present disclosure relates generally to media monitoring
and, more particularly, to methods and apparatus to monitor
consumer behavior associated with location-based web services.
BACKGROUND
[0003] Advertisers, retail establishments, product manufacturers,
service providers, and other types of businesses are often
interested in the behaviors of consumers related to their exposure
to advertising and/or other informational media to better market
their products or services. Business often use advertising or other
information or promotional material to draw attention and interest
to their products or services. Web-based technology also offers
businesses the ability to make information about their products or
services available on the Internet. People wishing to learn more
about particular products or services can retrieve information via
the Internet using, for example, search engines, or other
Internet-enabled query-based applications.
[0004] Although businesses know that advertisements and other
promotional information has the effect of influencing people to
make purchasing decisions, the influential power of such
advertisements and promotional information cannot be readily
assessed by merely publicizing the advertisements and/or other
information. A traditional technique for determining the
effectiveness of an advertising campaign involves monitoring the
sales quantities of the advertised product or service before and/or
during the implementation of the advertising campaign. Another
traditional technique for determining the effectiveness of an
advertising campaign involves selecting a panel of consumers to
observe various advertisements within a controlled environment and
subsequently asking the consumers whether the advertisements would
have influenced them to make purchases.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 illustrates an example system for collecting location
data and providing web services to a monitored individual to
monitor consumer behavior and measure effectiveness of advertising
media and other information related to products, services, and/or
retail establishments.
[0006] FIG. 2 is a block diagram of an example personal portable
meter (PPM) device of FIG. 1.
[0007] FIG. 3 is a more detailed block diagram of a portion of the
example PPM of FIGS. 1 and 2.
[0008] FIG. 4 is a block diagram of an example data analysis
apparatus that may be used to analyze data collected by the example
PPM of FIGS. 1-3.
[0009] FIGS. 5A and 5B depict a flow diagram representative of
example machine readable instructions that may be executed to
collect data using the example PPM of FIGS. 1-3.
[0010] FIG. 6 is a flow diagram representative of example machine
readable instructions that may be executed to analyze data
collected by the example PPM of FIGS. 1-3.
[0011] FIG. 7 is a flow diagram representative of example machine
readable instructions that may be executed to determine
advertisements to which monitored persons were exposed based on
data collected by the PPM of FIGS. 1-3.
[0012] FIG. 8 is a flow diagram representative of example machine
readable instructions that may be executed to correlate
advertisement exposure and/or visitations to retail establishments
with events related to queries submitted by a monitored person via
the PPM of FIGS. 1-3.
[0013] FIG. 9 is a flow diagram representative of example machine
readable instructions that may be executed to implement a location
data validation process to determine the validity of location data
collected by the PPM of FIGS. 1-3.
[0014] FIG. 10A is a flow diagram representative of example machine
readable instructions that may be executed to generate and store
heartbeat information that may subsequently be used to determine
the validity of data collected by the PPM of FIGS. 1-3.
[0015] FIG. 10B is a flow diagram representative of example machine
readable instructions that may be executed to determine the
validity of data collected by the PPM based on the heartbeat
information generated using the example process of FIG. 10A.
[0016] FIG. 11A is a flow diagram representative of example machine
readable instructions that may be executed to generate and store
sequential event counts in connection with respective data
collected by the PPM of FIGS. 1-3 and that can subsequently be used
to determine the validity of the collected data.
[0017] FIG. 11B is a flow diagram representative of example machine
readable instructions that may be executed to determine the
validity of the data collected by the PPM of FIGS. 1-3 based on the
event counts generated using the example process of FIG. 11A.
[0018] FIG. 12 is a flow diagram representative of example machine
readable instructions that may be executed to determine the
validity of location data collected by the PPM of FIGS. 1-3.
[0019] FIG. 13 is a flow diagram representative of example machine
readable instructions that may be executed to determine whether
there is sufficient movement to indicate that the PPM of FIGS. 1-3
was moved from one location to another.
[0020] FIG. 14 is a flow diagram representative of example machine
readable instructions that may be executed to detect missing
location event entries in location data collected by the PPM of
FIGS. 1-3.
[0021] FIG. 15 is a flow diagram representative of example machine
readable instructions that may be executed to answer database
requests from advertisers or business users related to behaviors of
monitored persons associated with advertisements and query search
results.
[0022] FIG. 16 is a flow diagram representative of example machine
readable instructions that may be executed to determine the
advertisements to which monitored persons were exposed based on
data collected by the PPM of FIGS. 1-3.
[0023] FIG. 17 is a block diagram of an example processor system
that may be used to implement portions of the system of FIG. 1.
DETAILED DESCRIPTION
[0024] Although the following discloses example methods, apparatus,
and systems including, among other components, software executed on
hardware, it should be noted that such methods, apparatus, and
systems are merely illustrative and should not be considered as
limiting. For example, it is contemplated that any or all of the
hardware and software components described herein could be embodied
exclusively in hardware, exclusively in software, exclusively in
firmware, or in any combination of hardware, firmware, and/or
software. Accordingly, while the following describes example
methods, apparatus, and systems, persons having ordinary skill in
the art will readily appreciate that the examples provided are not
the only way to implement such methods, apparatus, and/or
systems.
[0025] Turning to FIG. 1, for purposes of discussion the example
methods and apparatus are described herein with respect to an
example geographic area 10 including indoor and outdoor regions.
However, the example methods and apparatus described herein may be
used in any area or environment.
[0026] Information about a monitored individual's behavior may be
determined/estimated using location information and/or motion
information measured using a personal portable meter (PPM).
Location information may include, for example, geographic area
coordinates, global position coordinates, local area position
coordinates, relative position coordinates, or any other type of
location indication information that, when analyzed, may be used to
determine the location of a person (e.g., a monitored individual)
and/or the movements of a person from one location to another.
Location information may also include distances between a person
and a media source, such as, for example, a billboard, a print
display (e.g., a poster), a video presentation device, an audio
presentation device, etc. As described in greater detail below,
location information may be collected, obtained, generated, etc.
using any suitable location detection device(s), location detection
system(s), and/or location detection technique(s). Specifically,
the location detection devices described below may be worn or
otherwise carried by a person or monitored person and/or may be
part of the PPM.
[0027] Media monitoring information may include any information
associated with media that is exposed to and/or consumed (e.g.,
viewed, listened to, interacted with, etc.) by a monitored person.
Media presentations may include, for example, a television program,
a radio program, movies, songs, advertisements, Internet
information, and/or any other video information, audio information,
still image information, and/or computer information to which a
person may be exposed. Media monitoring information may be
generated based on, for example, audio codes, signatures (e.g., a
representation of any characteristic of monitored audio such as,
for example, a characteristic of a program signal), radio frequency
(RF) codes, and/or any other codes, information, or identifiers
that may be extracted from and/or otherwise associated with a media
presentation to which a monitored person is exposed. As described
in greater detail below, media monitoring information may be
collected, generated, obtained, etc. using any suitable media
consumption detection device and/or any suitable media consumption
detection technique.
[0028] The example geographic area 10, in which the example methods
and apparatus described herein may be implemented, includes an
example business 12, which may sell products and/or services. The
example geographic area 10 also includes various media that may be
used to present advertisements or other information (e.g.,
product/services information, entertainment audio/video, etc.). In
particular, the example geographic area 10 includes a billboard 14,
an audio device 16, which may play or present audio advertising,
and a video device 18, which may present video advertising. In the
illustrated example, the audio device 16 may be implemented using a
stationary audio device or system (e.g., a stationary stereo, a
stationary audio playback device, a kiosk, etc.) configured to
present audio advertisements and/or other types of audio
information, and the video device 18 may be implemented using a
stationary video device or system (e.g., a stationary television, a
stationary video monitor, a kiosk, etc.) to present video
advertisements and/or other types of video information. In the
illustrated example, the media 14, 16, and 18 are used to present
advertisements or product/services information external to the
PPM's 30, 34, and 36 at fixed geographic locations so that any
person that moves or walks within proximity of the media 14, 16,
and 18 may be exposed to the advertisements or information.
[0029] In the illustrated example, a billboard 20 is provided with
a radio frequency (RF) transmitter/receiver 22 to detect a PPM
and/or be detected by a PPM. The RF transmitter 22 may be
configured to emit location information indicative of the location
of the billboard 20 and/or an advertisement identifier indicative
of an advertisement presented by the billboard 20. Additionally or
alternatively, the RF transmitter/receiver 22 can be configured to
receive location and/or identification information from a PPM. In
some example implementations, RF transceivers substantially similar
or identical to the RF transmitter/receiver 22 may be provided to
other media (e.g., the billboard 14, the audio device 16, and the
video device 18).
[0030] The example geographic area 10 of FIG. 1 also includes an
example PPM 30 worn and/or carried by a monitored person 32.
Additional example PPM's 34 and 36 are carried by other monitored
persons 38 and 40 in the geographic area 10 to increase the amount
of data collected such as, for example, data associated with
actions (e.g., queries, retail establishment visitations,
purchases, etc.) of users (e.g., the persons 32, 38, and 40)
related to exposure to media (e.g., the media 14, 16, 18, and 20).
The accuracy of the analyses described herein may be increased by
increasing the quantity of participating monitored persons assigned
to PPM's. In some example implementations, participating monitored
persons may be selected based on advertising and/or business
objectives such as, for example, a desire to meter people within a
particular demographic group or target market group. The example
PPM 30 may operate inside and/or outside structures such as the
business 12, and may employ one or more communication techniques
and/or communication systems including, but not limited to, systems
to communicate with a location system such as an RF transceiver
tower 42 and/or a positioning satellite 44.
[0031] As described below, the example PPM 30 includes a
location-based web service application that allows a monitored
person (e.g., the monitored person 32) to obtain web-based
information associated with their location. The PPM 30 receives
web-based data from a web server 50 via a network 52, which in this
example is the Internet. The web server 50 is coupled to a location
database 54 and an application server 56, which enables the web
server 50 to return locality specific information from the location
database 54 to inquiries or queries made to the location-based web
service application by the monitored person 32.
[0032] In the illustrated example, the PPM 30 is communicatively
coupled to a central facility 60 via a network 62 to allow data
transfer from the PPM 30. The network 62 may be implemented using
any suitable communication interface including, for example, a
telephone system, a cable system, a satellite system, a cellular
communication system, AC power lines, a network, the Internet, etc.
The central facility 60 of the illustrated example is
communicatively coupled to other monitored sites such as the
billboard 20 and/or broadcast sites that transmit programming
and/or advertising to the audio device 16 and/or the video device
18. The central facility 60 may obtain media exposure data,
consumption data, media monitoring data, location data, motion
data, and/or any other monitoring data that are collected by the
media monitoring devices such as, for example, the PPM 30. In the
illustrated example, the PPM 30 may transmit data to a local relay
device 64 which, in turn, transmits data to the central facility 60
to extend the range of the examined or monitored geographic area.
The example system 10 may be provided with multiple local relay
devices 64 that serve as access points for the PPM 30 and other
devices to the network 62 and the central facility 60.
[0033] In the illustrated example, the central facility 60 includes
a server 70 (i.e., a central processor system) and a database 72.
The server 70 may be implemented using, for example, a processor
system similar or identical to the example processor system 1712
depicted in FIG. 17 that is configured to store data collected from
the PPM's in the database 72 and/or to analyze the collected data.
The database 72 may be implemented using any suitable memory and/or
data storage apparatus and technique(s). The database 72 of the
illustrated example includes a PPM location file 80, which stores
data relating to locations tracked by the PPM's such as the PPM 30,
a media location file 82, and a web event use file 84. The media
location file 82 stores the geographic location of each media
presentation device or structure such as the billboards 16 and 20,
the audio device 16 and the video device 18 in association with
identifiers corresponding to those media presentation devices or
structures. The web event use file 84 records all uses by the
monitored persons 32, 38, and 40 of the location-based web service
applications on the PPM's 30, 34, and 36.
[0034] The central facility 60 of the illustrated example also
includes an analysis server 74 (e.g., an analyzer). The analysis
server 74 allows an interested party such as a media monitoring
entity or business to analyze collected data stored in the database
72. In the illustrated example, the analysis server 74 is
configured to perform analysis such as correlations (e.g.,
identifying relationships or associations) between monitored
persons, locations, advertisements, inquiries made via
location-based information applications, retail establishments
visited by the monitored persons, and/or purchases of the monitored
persons. The operations of the analysis server 74 are described
below.
[0035] Location information and/or motion information may be
continuously collected in indoor environments and/or outdoor
environments via, for example, the example PPM 30 that may be
carried or worn by a monitored person (e.g., the monitored person
32) as shown in FIG. 1. The example PPM 30, discussed in further
detail in connection with FIG. 2, may be implemented as a
standalone device and/or integrated or jointly configured with
another communication device such as, for example, a mobile
telephone (e.g., a cordless telephone or a cellular-type
telephone), a portable audio device (e.g., an IPOD.RTM. by Apple
Computer, Inc.), a portable digital communicator, and/or a personal
digital assistant (PDA).
[0036] FIG. 2 is a detailed block diagram of an example
implementation of the PPM 30 of FIG. 1. As discussed above, the PPM
30 may be used to monitor the use of a location-based web service
application by a monitored person (e.g., the monitored person 32 of
FIG. 1). It may also be used to collect location information and/or
motion information associated with the use of the location-based
web application. In general, the PPM 30 includes electronic
components configured to detect and/or collect media monitoring
information, location information, and/or motion information, and
to communicate the information to the central facility 60 of FIG. 1
for subsequent analyses. As shown in FIG. 2, the PPM 30 includes a
processor 100, a voice coder/decoder (CODEC) 102, a memory 104, a
communication interface 106, a plurality of media monitoring
sensors 108, a plurality of location and motion sensors 110, an
input interface 114, a visual interface 116 and a timer/counter
118, all of which are communicatively coupled as shown.
[0037] The processor 100 may be any processor suitable for
controlling the PPM 30. The processor 100 of the illustrated
example is responsible for managing and/or processing a
location-based web service application and/or collecting,
monitoring data related to detected media exposure, media
consumption, media presentations, meter location, and/or meter
motion. For example, the processor 100 may be implemented using a
general purpose processor, a digital signal processor, or any
combination thereof. The processor 100 may be configured to perform
and control one or more operations and/or features of the PPM 30
such as, for example, setting the PPM 30 in different operating
modes, controlling a sampling frequency for collecting media
monitoring information, compressing collected information (e.g.,
collected tuning information, collected location information,
and/or collected motion information), managing communication
operations with other processor systems (e.g., the central facility
60 of FIG. 1), selecting location information systems (e.g., the RF
transceiver tower 42, the positioning satellite 44, and/or the
relay devices 64), and executing location-based web service
applications.
[0038] The memory 104 may be used to store collected media
monitoring information, program instructions (e.g., software,
firmware, etc.), program data (e.g., location information, motion
information, etc.), and/or any other data or information required
to operate the PPM 30 and/or to implement the example methods and
apparatus described herein. For example, after acquiring location
information, motion information, and/or media monitoring
information, the processor 100 may timestamp the acquired
information and store the timestamped information in the memory
104. The processor 100 may also store information indicative of use
of a location-based web service application, timestamp the acquired
information, and store the timestamped information in the memory
104. The memory 104 may be implemented using any suitable volatile
and/or non-volatile memory such as, for example, a random access
memory (RAM), a read-only memory (ROM), a flash memory device, a
hard drive, an optical storage medium, etc. In addition, the memory
104 may be any removable or non-removable storage medium.
[0039] The communication interface 106 may be used to communicate
information between the PPM 30 and other systems including, for
example, the central facility 60, and/or the web location server 50
of FIG. 1. The communication interface 106 may be implemented using
any type of suitable wired or wireless transmitter, receiver, or
transceiver such as, for example, a Bluetooth.RTM. compliant
transceiver, an IEEE 802.11 (i.e., Wi-Fi.RTM.) compliant
transceiver, a cellular communications transceiver, an optical
communications transceiver, a network port, a universal serial bus
(USB) port, etc.
[0040] The media monitoring sensors 108 of the illustrated example
include an audio sensor 130, an optical transceiver 132, an RF
transceiver 134, and a bar code reader 136. The example PPM 30, via
the audio sensor 130, the optical sensor 132, the RF transceiver
134 and/or the bar code reader 136 may be configured to observe or
monitor the environment in which the monitored person 32 is located
to detect advertisements, products, media presentations, and/or
signals associated with the advertisements, the products, and/or
the media presentations. When one of the sensors 108 detects an
advertisement, a product, or a media presentation, the example PPM
30 logs or stores a representation (e.g., a signature, a code,
etc.) of the detected advertisement, product, or media presentation
and/or an identifier (e.g., a code) thereof in the memory 104,
along with a timestamp indicative of the time at which the
information was detected.
[0041] The audio sensor or transducer 130 may be, for example, a
condenser microphone, a piezoelectric microphone or any other
suitable transducer capable of converting audio information into
electrical information. The optical transceiver 132 may be, for
example, a transmitter and receiver combination including a light
sensor (e.g., a light sensitive diode, an IR sensor, a
complimentary metal oxide semiconductor (CMOS) sensor array, a
charge-coupled diode (CCD) sensor array, etc.) and a light emitter
(e.g., a light emitting diode (LED), etc.). The RF transceiver 134
may be, for example, a Bluetooth.RTM. compliant transceiver, an
IEEE 802.11 compliant transceiver, an ultrawideband RF receiver,
and/or any other RF receiver and/or transceiver that detects
signals from an example RF transceiver such as the RF transceiver
22 of the billboard 20 of FIG. 1. While the example PPM 30 of FIG.
1 includes the audio sensor 130, the optical transceiver 132, the
RF transceiver 134, and the bar code reader 136, the example PPM 30
need not include all of the sensors 130, 132, 134, and 136. In some
example implementations, the audio sensor 130 may be sufficient to
detect audio and/or video information (e.g. audio and/or video
advertisements) to generate and/or collect identification
characteristics and/or identifiers, such as signatures and/or, if
they are present, audio measurement codes which may be inserted for
the purpose of audience measurement. Additionally, in some example
implementations, the optical transceiver 132 may be sufficient to
detect still picture and/or video information to generate and/or
collect identification characteristics, such as signatures and/or,
if present, video codes. However, because video monitoring
generally requires a line of sight between the PPM 30 and the
detected media, the example PPM 30 may be provided with the audio
sensor 130 and the optical transceiver 132.
[0042] To detect location-related information and/or motion-related
information, the processor 100 of the illustrated example is
communicatively coupled to the location and motion sensors 110. The
location and motion sensors 110 may include an ultrasonic
transceiver 142, a motion sensor 144, a satellite positioning
system (SPS) receiver 146, an RF location interface 148, and/or a
compass 150. In some example implementations, the audio sensor 130
may also be configured to function as a location sensor by
receiving ultrasonic signals from an ultrasonic source, such as an
ultrasonic transmitter on the relay devices 64, on other portable
units, and/or on other stationary units located throughout one or
more areas.
[0043] Some of the location and motion sensors 110 may be
configured to receive location-related information (e.g., encoded
information, pluralities of fragmented information, etc.) and to
perform any processing necessary to convert the received
information to location information that indicates the location of
the PPM 30. For example, the PPM 330 may generate location
information using triangulation techniques by receiving RF signals
from three or more RF transmitters (e.g., three or more of the
relay devices 64 or the RF transceiver tower 42 of FIG. 1), and
triangulating or processing the combination of RF signals. Some of
the location and motion sensors 110 may be configured to process
received location-related signals to generate location information,
and others of the location and motion sensors 110 may be configured
to communicate the location-related signals to the processor 100,
and the processor 100 may be configured to process the received
location-related signals using, for example, software and/or
hardware processes to generate location information. In some
example implementations, the location and motion sensors 110 may
process the received information in combination with the processor
100 to generate the location information.
[0044] The ultrasonic transducer 142 may be used to enable the PPM
30 and/or the relay devices 64 to determine a location of the PPM
30. In some example implementations, the ultrasonic transducer 142
may be configured to work in combination with the RF location
interface 148, the RF transceiver 134, and/or the optical
transceiver 132 to determine a distance between the PPM 30 and a
particular stationary unit such as the transceiver tower 42. For
example, the PPM 30 may transmit an ultrasonic chirp and RF signal
simultaneously. Because the ultrasonic chirp propagates to the
transceiver tower 42 at the speed of sound, and the simultaneously
transmitted RF chirp propagates at the speed of light, the signals
reach the same transceiver tower 42 at different times (i.e., the
RF chirp arrives before the ultrasonic chirp). The distance between
the PPM 30 and the transceiver tower 42 may be calculated based on
the distinct times of arrival, as described in further detail
below.
[0045] The motion sensor 144 may be used to detect relatively small
body movements of a monitored person (e.g., the monitored person
32). The motion sensor 144 may also generate motion information
related to the body movements, and communicate the motion
information to the processor 100. The motion sensor 144 may be
implemented using any suitable motion detection device such as, for
example, a mercury switch, a trembler, a piezo-gyroscope integrated
circuit (IC), an accelerometer IC, etc.
[0046] The SPS receiver (SPSR) 146 may be implemented using, for
example, a GPS receiver and may be configured to generate location
information based on encoded GPS signals received from GPS
satellites such as the positioning satellite 44 in FIG. 1. In
general, the SPS receiver 146 may be used by the PPM 30 to collect
location information in outdoor environments. The GPS data can be
stored as latitude and longitudinal coordinates.
[0047] The RF location interface 148 may be implemented using a
receiver and/or a transceiver and may be used to receive
location-related signals and/or information from a location
information system such as, for example, the RF transceiver tower
42 and/or the relay devices 64. For example, the RF location
interface 148 may use transmission towers such as the RF
transceiver towers 42 to determine the location of the PPM 30 using
a method such as, for example, angle of arrival (AOA), time
difference of arrival (TDOA), and/or enhanced observed time
difference of arrival (EOTD). Additionally or alternatively,
methods including, for example, advanced forward link trilateration
(AFLT) or Enhanced Forward Link Trilateration (EFLT) may be used to
determine the locations of the PPM 30.
[0048] The RF location interface 148 may also be configured to
broadcast location-related information such as, for example,
time-stamped PPM identification codes. The time-stamped PPM
identification codes may be received by, for example, three or more
of the relay devices such as the relay device 64, which may process
the codes cooperatively using triangulation techniques to determine
the location of the PPM 30. The relay devices 64 may communicate
the received time-stamped PPM identification codes to the central
facility 60 along with information relating to the times at which
the codes were received by each of the relay devices 64. The
central facility 60 may then determine the location of the PPM 30
based on this information.
[0049] The RF location interface 148 may be implemented using any
suitable RF communication device such as, for example, a cellular
communication transceiver, a Bluetooth.RTM. transceiver, an 802.11
transceiver, an ultra-wideband RF transceiver, etc. In addition,
the RF location interface 148 may be implemented using only an RF
receiver or only an RF transmitter. Examples of known
location-based technologies that may be implemented in connection
with the RF location interface 228 include an Ekahau Positioning
Engine.TM. by Ekahau, Inc. of Saratoga, Calif. and an ultrawideband
positioning system by Ubisense, Ltd. of Cambridge, United
Kingdom.
[0050] Another example technique that may be used to determine the
location of the PPM 30 using the ultrasonic sensor 142 and the RF
location interface 148 in FIG. 2 involves communications between
the relay device 64 and the PPM 30. In particular, the relay device
64 is separated by a distance "x" from the PPM 30. The relay device
64 initiates a location determination process (distance
determination) by emitting a chirp, which includes a simultaneous
radio frequency (RF) chirp with an ultrasonic chirp. The relay
device 64 may transmit the RF chirp with an RF location transceiver
and transmit the ultrasonic chirp with an ultrasonic transducer.
The RF chirp transmitted by the relay device 64 may further include
an embedded relay device identifier associated with the relay
device 64. RF signals (electromagnetic radiation) propagate at
186,282 miles per second, whereas the speed of sound propagates at
a substantially slower speed of about 0.2057 miles per second.
Because the RF chirp propagation time travels at the speed of
light, the PPM 30 receives the RF chirp first and initiates the
timer/counter 218. Accordingly, the PPM 30 is "armed" and waiting
to detect the ultrasonic chirp via the ultrasonic sensor 142. Upon
receipt of the ultrasonic chirp by the PPM 30, the PPM 30 stops the
timer/counter 218 and calculates the distance between the relay
device 64 and the PPM 30 as a function of the elapsed time and the
known propagation rate of sound. Audio sampling rates of computers,
PDA's, and other audio hardware typically exceeds 8000 samples per
second. Such a sample rate yields a resolution of 0.125
milliseconds per sample, which is sufficient for purposes of
monitored person distance determination.
[0051] The relay device 64 and PPM 30 may, additionally or
alternatively, repeat the distance determination process any number
of times to verify an accurate measurement. For example, five
iterations of the distance determination process may be performed
in which the PPM 30 calculates an average distance from the five
samples. The average distance value is then transmitted to the
relay unit 64 via an encoded RF signal. Still further, the PPM 30
may send the raw elapsed time data back to the relay device 64
rather than perform such calculations on the processor 100.
Processing the raw data at the relay device 64 rather than at the
PPM 30 allows the PPM 30 to consume less power for calculations
and/or reduce the size requirements of the memory 104. The relay
device 64 can then communicate the determined location information
to the PPM 30.
[0052] If necessary, or if different degrees of accuracy are
desired, adjustments to the calculation may be implemented to
accommodate for variations in air temperature, ambient pressure,
and/or atmospheric density. Such calculations are stored in the
memory 104 of the PPM 30 and executed by the processor 100 to yield
the distance "x." The PPM 30 can then generate location information
based on the calculated distance and store the location information
in the memory 104 for later communication to the central facility
60.
[0053] The compass 150 may be implemented using a magnetic field
sensor, an electronic compass integrated circuit (IC), and/or any
other suitable electronic circuit. In general, the compass 150 may
be used to generate direction information, which may be useful in
determining the direction in which a monitored person (e.g., the
monitored person 32) is facing. The direction information may also
be used to determine if a person is facing, for example, the
billboard 20 so that when the PPM 30 receives an RF identification
signal from the transceiver 22, corresponding to the billboard 20
in FIG. 1 and location information indicating that the monitored
person 32 is in front of the billboard 20, the direction
information from the compass 150 may be used to determine if the
monitored person 32 is facing the billboard 20 and, thus, is
exposed to the media. In this manner, the content of the billboard
20 may be credited appropriately for being viewed by or exposed to
a monitored person.
[0054] An example positioning technology that may be used in
combination with the compass 150, the motion sensor 144, and the
SPS receiver 146 is the Dead-Reckoning Module (DRM.RTM.) produced
and sold by Point Research Corporation of Santa Ana, Calif. The
DRM.RTM. is configured to enable generation and/or collection of
location information within buildings (e.g., a household, the
business 12) and in outdoor environments. In general, when used
outdoors, the DRM.RTM. may be configured to enable the SPSR 146 to
use GPS technology to collect and/or generate location information.
When used indoors, the DRM.RTM. uses, among other components, a
compass (e.g., the compass 150) and an accelerometer (e.g., the
motion sensor 144) to generate location information.
[0055] The PPM 30 may further include the visual interface 116,
which may be used in combination with the input interface 114 to
enter and retrieve information from the PPM 30. For example, the
visual interface 116 may be implemented using a liquid crystal
display (LCD) that, for example, displays detailed status
information, location information, configuration information,
calibration information, etc. The visual interface 116 may display
an interface for the local web-based information application and
allow the monitored person to view search results from queries
submitted via the application.
[0056] The timer/counter 118 may be used to generate timer events
that are communicated to the processor 100. Timer events may be
used to, for example, wake-up the PPM 30 from a shut-down state,
powered-down state, a power-saving mode state, etc. The
timer/counter 118 may be configured to generate a timing event
after a particular amount of time has elapsed or at a particular
time of day. The amount of time or time of day may be set by, for
example, configuring registers in the timer/counter 118. The
timer/counter 118 may include a real-time clock or other
time-tracking mechanism to generate timestamps that can be stored
in association with location tracking data and query events
indicative of queries submitted by users via the location-based web
service application as discussed below.
[0057] The PPM 30 may be integrated with other functions such as a
wireless phone that uses the voice coder/decoder 102 to code and
decode voice signals and the RF transceiver 134 to send the voice
signals over a wireless network for phone calls. Likewise, the
processor 100 may run an Internet browser or other applications for
use by the monitored person using the input interface 114 and the
visual interface 116. It is to be understood that the components in
FIG. 2 may be hardware, software and/or firmware and could, for
example, be loaded or otherwise integrated into existing PDA's or
wireless phones with existing components to perform the
above-described functions.
[0058] The media monitoring information collected by the PPM's in
the geographic area 10 (e.g., by the PPM 30) may be processed by
the central facility 60 at a later time. The central facility 60
stores location data from the PPM's, as well as usage data from the
location-based web application on the PPM 30. As discussed earlier,
the central facility 60 may also monitor and store broadcast
information, such as audio codes/signatures from radio and/or
television programs.
[0059] The PPM 30 may be configured to substantially continuously
generate, obtain, and/or collect media monitoring information,
location information, and motion information. As described above,
the PPM 30 may include one or more media monitoring sensors 108
used to detect media and to generate or collect media monitoring
information or media-related data based on, for example, audio
signals, visual signals, RF signals, infrared (IR) signals,
ultrasonic signals, etc. In addition, the PPM 30 may include one or
more location or positioning devices that enable the PPM 30 to
collect location or position information from one or more location
and motions sensors 110 and corresponding systems, and/or to send
the collected location information to one or more location
information systems. The example geographic area 10 includes one or
more location information systems that may be used to
communicate/receive location information to/from the PPM 30.
[0060] The PPM 30 may collect/generate and store media monitoring
information (e.g., audience measurement codes (e.g., codes inserted
to identify media, sometimes referred to as "ancillary codes"),
signatures, etc.) associated with any media (e.g., video, audio,
movies, music, still pictures, advertising, etc.) to which the
monitored person 32 is exposed. For example, the PPM 30 may be
configured to obtain codes (e.g., audio codes), generate or collect
signatures, etc. that may be used to identify video programs (e.g.,
DVD movies, television programming, etc.), audio programs (e.g., CD
audio, radio programming, etc.), and/or any other media. Using one
or more media detection devices described above in connection with
FIG. 2, the PPM 30 may collect media monitoring information
associated with presented or delivered media to which the monitored
person 32 may be exposed.
[0061] Additionally, the PPM 30 may be configured to receive codes
(e.g., audio codes and/or RF codes) associated with other forms of
media such as, for example, billboards or any other form of
publicly viewable advertising or media. For example, each billboard
(e.g., the billboard 20) may include an audio broadcasting device
and/or an RF broadcasting device such as, for example, the
transceiver 22 of FIG. 1, configured to emit a billboard code that
uniquely identifies that billboard. If the PPM 30 is proximate to a
billboard, the PPM 30 may obtain the billboard code as media
monitoring information, thereby indicating that the monitored
person 32 was exposed to the billboard. In addition, the PPM 30 may
be configured to obtain direction information via, for example, the
compass 150, and log the direction in which the monitored person 32
is facing or traveling so that subsequent data analyses may
determine if the monitored person 32 was likely facing the
billboard.
[0062] The RF transceiver tower 42 may be used in combination with
any RF communication technology such as, for example, a cellular or
mobile communication technology (e.g., GSM, CDMA, TDMA, AMPS,
etc.). In some example configurations, the RF transceiver tower 42
may be configured to transmit or broadcast position information
and/or any type of signal that may be used by the PPM 30 to
generate location information. For example, the RF transceiver
tower 42 may transmit information having geographic location
information and time codes. More specifically, the RF transceiver
tower 42 may be associated with a particular or unique set of
geographic location coordinates (i.e., geographic location
information), that define or indicate the location of the RF
transceiver tower 42 within a global positioning grid. The time
codes may be associated with a time at which a particular signal is
transmitted by the RF transceiver tower 42.
[0063] The geographic location information and the time codes
received from a plurality of RF transceiver towers may be used by
the PPM 30 to perform triangulation processes to determine the
location(s) of the PPM 30. Although the RF transceiver tower 42 is
depicted as being located in an outdoor environment, the PPM 30 may
include location technologies that communicate with the RF
transceiver tower 42 when the PPM 30 is located within indoor
environments (e.g., within the business 12) and/or outdoor
environments.
[0064] The positioning satellite 44 may also be used to communicate
location information to the PPM 30. For example, the positioning
satellite 44 may be used to implement any satellite positioning
system (SPS) such as, for example, the global positioning system
(GPS) that continuously broadcasts position-related information. In
this manner, the PPM 30 may receive the position-related
information from the satellite 44 to determine movement information
associated with the location(s) of the PPM 30.
[0065] FIG. 3 is a block diagram of an example apparatus 160 to
implement the location data collection and web event data
collection of the example PPM 30 of FIGS. 1 and 2. The apparatus
160 may be implemented using, for example, logic and/or other
circuitry in communication or integral with the media monitoring
sensors 108 and location and motion sensors 110 described above in
connection with FIG. 2, and/or may be implemented using software
and/or firmware executed by the processor 100 of FIG. 2. The
apparatus 160 includes a web-based information application
controller 162, a location data collector 164, a web event data
collector 166, a media capture data collector 168, and a consumer
purchase data collector 170. The web-based information application
controller 162 is coupled to the input interface 114, the visual
interface 116, and the communication interface 106. In this
illustrated example, the web-based application controller 162 and
the location data collector 164 are used to implement a
location-based web services application. A location-based web
services application enables a user of the PPM 30 to submit queries
requesting information about products, services, retail
establishments, etc., and the application communicates the requests
along with corresponding location information indicative of the
location at which the PPM 30 (and, thus, the monitored person 32)
was located when the monitored person 32 submitted the query.
[0066] In the illustrated example, the web-based information
application controller 162 presents a search window on the visual
interface 116 that allows the monitored person 32 to enter search
requests or queries including one or more query criteria (e.g.,
product search term(s), services search term(s), retail
establishment search term(s), etc.) and/or location information
such as an address, GPS coordinates, a zip code, area code, etc.
The web-based information application controller 162 may be used to
request information about a product or service including
descriptive information or retail establishment names and/or
addresses thereof of where the product or service is sold.
Additionally, the web-based information application controller 162
may be used to request addresses of particular retail
establishments nearest a location of the monitored person 32. In
some example implementations, search terms or criteria provided by
the monitored person may include bar code identification codes or
RFID identification codes scanned by the monitored person 32 using
the bar code reader 136 or the RF transceiver 134 of FIG. 2. For
example, the person 32 may see a product and scan its bar code ID
or RFID to request information.
[0067] The web-based information application controller 162
transmits requests or queries via the communication interface 106
to the web server 50 of FIG. 1. The web server 50 returns
information responsive to the search request in, for example, a
hypertext markup language (html) file and/or an extensible markup
language (XML) file to the communication interface 106. In the
illustrated example, the web-based information application
controller 162 tailors answers to search requests based on the
monitored person's current location. For example, if the monitored
person 32 makes a query for restaurants, the web-based information
application controller 162 prioritizes results in the immediate
geographic area of the monitored person 32. The local web-based
information application controller 162 may then display the results
via the visual interface 116. Additionally or alternatively, the
web server 50 may filter, arrange, and/or return search results
based on the location of the monitored person 32.
[0068] The location data collector 164 is coupled to the location
and motion sensors 110, the timer/counter 118, and the memory 104.
The memory 104 stores a location data log file 180. The location
data collector 164 collects/generates location information and
stores an identification code for the PPM 30 and the location
information along with corresponding timestamps in the location
data log file 180.
[0069] The web event data collector 166 is coupled to the web-based
information application controller 162 and the timer/counter 118.
The web event data collector 166 records or tracks the use of the
location-based web services application as well as results obtained
through searches. The web event data collector 166 stores an
identification code for the PPM 30, the web event data, and a
corresponding timestamp from the timer/counter 118 in a web event
data log file 182 stored in the memory 104. In the illustrated
example, the location data collector 164 retrieves the data stored
in the location data log file 180, the web event data collector 166
retrieves the data stored in the web event data log file 182, and
the data collectors 164 and 166 periodically or aperiodically
communicate the data via the communication interface 106 to the
central facility 60.
[0070] In the illustrated example, the media data collector 168 is
coupled to the media monitoring sensors 108, the location and
motion sensors 110, the timer/counter 118, and the memory 104. The
memory 104 stores a media data log file 184. In the illustrated
example, after one or more of the media monitoring sensors 108
detects a media signal, the media data collector 168 can generate a
signature and/or extract a code from the detected media signal. The
media data collector 168 can then store the media code and/or
signature in the media data log file 184. The media data collector
168 can be configured to periodically or aperiodically communicate
the data in the media data log file 184 via the communication
interface 106 to the central facility 60.
[0071] In the illustrated example, the consumer purchase data
collector 170 is coupled to the location and motion sensors 110,
the timer/counter 118, and the memory 104. The memory 104 stores a
purchase data log file 186. In the illustrated example, the RF
transceiver 134 and/or the bar code reader 136 can be configured to
read product identifiers, service identifiers, and/or retail
establishment identifier(s) and communicate the identifier(s) to
the consumer purchase data collector 170. The consumer purchase
data collector 170 can then store the identifier(s) in the purchase
data log file 186 in association with corresponding timestamp(s)
indicative of when purchase(s) were made and corresponding location
information indicative of the location(s) at which the purchase(s)
were made.
[0072] FIG. 4 is a block diagram of an example apparatus 200 that
may be used to collect location and media data (e.g., advertising
data) from the PPM 30, other data devices, and the server 70 of
FIG. 1 and analyze the collected data. The apparatus 200 may be
implemented using, for example, logic and/or other circuitry in
communication with or integral to the server 70, or may be
implemented using software and/or firmware executed by the server
70. The apparatus 200 is communicatively coupled to the database 72
and the analysis server 74 described above in connection with FIG.
1. In some example implementations, the analysis server 74 may be
the same server as the server 70.
[0073] In the illustrated example, the example apparatus 200
includes a receiver 202, a data fault detector 204, a data file
interface 206, a data analyzer 208, a geo-coded advertisement
database 210, and a reference media codes/signatures database 211.
The receiver 202 is coupled to a communications interface of the
server 70 to receive data from log files (e.g., the data log files
180, 182, 184, and 186 of FIG. 3) of PPM's (e.g., the PPM 30). The
receiver 202 is configured to perform initial processing on the
received data and to make the data available to the data fault
detector 204. The data fault detector 204 performs one or more
processes described below to determine the validity of the data
entries from the data log files 180, 182, 184, and 186. The data
file interface 206 creates files and stores/retrieves data in the
files to facilitate data analysis by the data analyzer 208.
[0074] In the illustrated example, the data analyzer 208 is coupled
to the geo-coded advertisement database 210, which is configured to
store advertisement identifiers in association with respective
location identifiers. The advertisement identifiers are indicative
of or identify advertisements placed at geographic locations, and
the location identifiers are indicative of the locations at which
those advertisements are placed. The data analyzer 208 is
configured to determine associations or correlations between
queries or search requests, advertisements, retail establishments,
and purchase data based on respective location information and
timestamps. For example, the data analyzer 208 may retrieve a
location identifier associated with a query from a data file
created by the data file interface 206 and also retrieve
advertisement and location identifiers from the geo-coded
advertisement database 210 associated with advertisements to
determine the advertisements to which a user (e.g., the monitored
person 32 of FIG. 1) was proximately located when the monitored
person 32 submitted the query or sometime before the monitored
person 32 submitted the query. The analyzer 208 can also determine,
based on search terms of the query, which advertisements are
associated with the query and credit those advertisements as having
been exposed to the monitored person 32 and/or credit the
advertisements to indicate their effectiveness in influencing the
user to request information about the advertised products,
services, retail establishments, etc. In addition, the analyzer 208
can analyze path of travel information associated with the
monitored person 32 based on received location information to
determine whether the monitored person 32 visited any retail
establishments, and to credit certain advertisements and/or
query/search results as having effectively influenced the monitored
person 32 to visit such retail establishments related to those
advertisements and/or query/search results. In some example
implementations, an advertisement and/or a query/search result is
deemed to be related to a visited retail establishment if the
advertisement or query/search result advertises or provides
information about the retail establishment or a product offered by
the retail establishment and, in some instances, if the advertised
establishment was subsequently visited.
[0075] To determine associations or correlations between purchases
and advertisement exposures and/or query/search results, the data
analyzer 208 can analyze received purchase data indicative of
purchases within a particular time frame of a user-submitted query
or search request. If the data analyzer 208 determines that a
particular purchase is related to an exposure to an advertisement
or a query/search result, the data analyzer 208 credits the
advertisement and/or the query/search result as having effectively
influenced the monitored person 32 to make the purchase.
[0076] The reference media codes/signatures database 211 is
configured to store advertisement identifiers in association with
respective media representation information such as codes or
signatures that are known to be associated with, correspond to, or
that otherwise identify those advertisements. For example, the
reference media codes/signatures database 211 can store reference
audio codes or signatures that identify respective audio
advertisements, reference video codes, or signatures that identify
respective video advertisements, and/or RF codes or signatures that
identify respective advertisements (e.g., the billboard 20 of FIG.
1) having RF transmitters (e.g., the RF transmitter 22 of FIG. 1)
that emit codes or unique RF signals. The data analyzer 208 can
compare codes or signatures collected by the PPM's 30, 34, and 36
(FIG. 1) to the known codes or signatures in the reference media
codes/signatures database 211 to determine audio, video, or other
stationary advertisements to which the monitored persons 32, 38,
and 40 were exposed. In addition, the data analyzer 208 can use the
advertisement identifier information in the reference media
codes/signatures database 211 in connection with the geo-coded
advertisement database 210 to determine the locations at which the
advertisements were presented.
[0077] In the illustrated example, the data analyzer 208 can
retrieve information from the database 72 to perform analyses and
can store analysis results in the database 72 for subsequent
retrieval by a metering entity or a business interested in
receiving the analysis results. In the illustrated example, the
database 72 includes a storefront and product geo-coded
knowledgebase 212 and a consumer behavior knowledgebase 214. The
storefront and product geo-coded knowledgebase 212 stores retail
establishment identifiers and product/service identifiers in
association with respective location identifiers indicative of the
locations of those retail establishments and products/services. In
some example implementations, the data analyzer 208 can retrieve
the associated identifiers from the storefront and product
geo-coded knowledgebase 212 to determine whether a user visited a
particular retail establishment and/or purchased a product or
service at a particular retail establishment. The storefront and
product geo-coded knowledgebase 212 can be setup and configured by
a metering entity (e.g., a metering business implementing the
example methods and apparatus described herein) upon initial system
setup to associate location identifiers with respective retail
establishments and/or products/services. The knowledgebase 212 is
maintained thereafter to keep location identifier associations up
to date. In some example implementations, the storefront and
product geo-coded knowledgebase 212 is updated based on data
collected by the PPM 30. For example, purchase data stored by the
PPM 30 in association with location information may include a
retail establishment name or identifier that the storefront and
product geo-coded knowledgebase 212 can use to update location
identifier associations and/or add new location identifier
associations.
[0078] During or after some or all types of analyses, the data
analyzer 208 can store behavior-related analysis results in the
consumer behavior knowledgebase 214 to create data representative
of persons' behaviors related to advertisements and query results.
The behavior-related data stored in the consumer behavior
knowledgebase 214 can be used to extrapolate buying trends,
purchasing psychology, assess how influential certain query search
results are on people, etc. Product manufacturers, retail
establishments, service providers, advertisers or any other
interested entity can use the consumer behavior knowledgebase 214
to determine how to better reach their target markets or implement
more effective advertising campaigns.
[0079] FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B, and 12-16 are flow
diagrams representative of example processes that may be executed
to implement the example methods, apparatus, and systems described
herein. In some example implementations, the example methods of
FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B, and 12-16 may be wholly or
partially implemented using machine readable instructions
comprising a program for execution by a processor (e.g., the
processor 100 of FIG. 2 and/or the processor 1712 of FIG. 17). The
programs may be embodied in software stored on a tangible medium
such as a CD-ROM, a floppy disk, a hard drive, a digital versatile
disk (DVD), or a memory associated with the processor 100 and/or
the processor 1712 and/or embodied in firmware and/or dedicated
hardware in a well-known manner. Further, although the example
programs are described with reference to the flow diagrams
illustrated in FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B, and 12-16,
persons of ordinary skill in the art will readily appreciate that
many other methods of implementing the example methods, apparatus,
and systems described herein may alternatively be used. For
example, the order of execution of the blocks may be changed,
and/or some of the blocks described may be changed, eliminated, or
combined.
[0080] FIGS. 5A and 5B depict a flow diagram of an example process
that may be performed by the PPM 30 of FIGS. 1-3 to collect data
using the example apparatus 160 of FIG. 3. Initially, the example
apparatus 160 generates and stores the data log files 180, 182,
184, and 186 of FIG. 3 (block 502) in the memory 104. The location
data collector 164 (FIG. 3) then determines whether a location
identifier (e.g., location coordinates or other location
information indicative of a location) has been received (block 504)
from, for example, the location and motion sensors 110. If a
location identifier has been received (block 504), the location
data collector 164 stores the location identifier in association
with a corresponding timestamp in a log entry or record in the
location data log file 180 of FIG. 3 (block 506). In the
illustrated example, the location data collector 164 may create a
timestamp using a time value read from the timer/counter 118 of
FIG. 2.
[0081] After the location data collector 164 stores the location
identifier (block 506) or if the location data collector 164 has
not received a location identifier (block 504), the web event data
collector 166 (FIG. 3) determines whether any queries or search
requests have been submitted by the monitored person 32 via the
location-based web services application (block 508). If a query has
been submitted (block 508), the web event data collector 166 stores
the query string search criteria (e.g., the user-provided search
terms) in association with the search results of the query
(received from the web server 50 and the web information
application controller 162), a corresponding timestamp, and a
corresponding location identifier (block 510).
[0082] After the web event data collector 166 stores the query
string search criteria and associated information (block 510) or if
the web event data collector 166 determines that a query has not
been submitted (block 508), the media capture data collector 168
(FIG. 3) determines whether a media signal (e.g., an audio signal,
a video signal, an RF signal, etc.) has been captured (block 512).
For example, the media signal may be an audio signal associated
with an advertisement presented by the audio device 16 or the video
device 18 (FIG. 1), a video signal presented by the video device 18
(FIG. 1), or an RF signal emitted by the RF transceiver 22 of the
billboard 20 (FIG. 1).
[0083] The media capture data collector 168 then determines whether
the captured media signal includes a code (block 514). If the
captured media signal includes a code, the media capture data
collector 168 extracts (or creates a copy of) the code (block 516).
If the captured media signal does not include a code (block 514),
the media capture data collector 168 generates a signature of the
captured media signal (block 518). Alternatively, a signature can
always be collected regardless of whether a code was collected.
After the media capture data collector 168 extracts a code (block
516) and/or generates a signature (block 518), the media capture
data collector 168 stores the media representation information
(e.g., the code and/or the signature) (block 520) in the media data
log file 184 (FIG. 3).
[0084] After the media capture data collector 168 stores the media
representation information (block 520) or if the media capture data
collector 168 determines that a media signal has not been captured
(block 512), the consumer purchase data collector 170 determines
whether any input data relating to potential purchases have been
received (block 522) (FIG. 5B). In the illustrated example, the
potential purchase data is data indicative of a product or a
service such as, for example, bar code information read using the
bar code reader 136 (FIG. 2) or RFID information received via the
RF transceiver 134 (FIG. 2) in response to the monitored person 32
scanning a product or a service document. If the consumer purchase
data collector 170 determines that potential purchase data has been
received (block 522), the consumer purchase data collector 170
determines whether the monitored person 32 purchased the product or
service corresponding to the received potential purchase data
(block 524). For example, the consumer purchase data collector 170
may receive subsequent information or the potential purchase
information received at block 522 may have a corresponding purchase
confirmation flag indicating that the monitored person 32 purchased
the related product or service. If the consumer purchase data
collector 170 determines that the monitored person 32 made the
purchase (block 524), the consumer purchase data collector 170
stores the purchase information (block 526) in association with a
corresponding timestamp and location identifier in the purchase
data log file 186 (FIG. 3).
[0085] The example apparatus 160 then determines whether it should
communicate the data from the data log files 180, 182, 184 and/or
186 to the central facility 60 of FIG. 1 (block 528). If the
example apparatus 160 determines that it should communicate the
data to the central facility 60, the location data collector 164,
the web event data collector 166, the media capture data collector
168, and/or the purchase data collector 170 transmit the data from
their respective log files 180, 182, 184, and/or 186 to the central
facility 60 (block 530). After the example apparatus 160
communicates the data to the central facility 60 (block 530) or if
the example apparatus 160 determines that it should not communicate
the data to the central facility 60 (block 528), the example
apparatus 160 determines whether it should continue to the monitor
(block 532) for additional received information. If the example
apparatus 160 determines that it should continue to monitor (block
532), control returns to block 502 (FIG. 5A). Otherwise, the
process of FIGS. 5A and 5B ends.
[0086] In some example implementation, the PPM 30 is configured
(e.g., provided with diagnostic software routines or diagnostic
hardware) to periodically and/or aperiodically perform hardware
and/or software diagnostic routines to ensure that the hardware
(e.g., the media monitoring sensors 108, the location and motion
sensors 110, the timer/counter 118, the voice codec 102, the memory
104, etc. of FIG. 2) and/or software of the PPM 30 are operating
properly and/or within acceptable tolerances. If resulting
diagnostic information indicates that the PPM 30 is not working
properly or within acceptable tolerances, the PPM 30 may
communicate the results to the central office 60 (FIG. 1), and/or
the PPM 30 and/or the central office 60 may inform the monitored
person 32 to return the PPM 30 for repair or exchange.
[0087] The PPM 30 may also be configured to calibrate itself. For
example, the PPM 30 may be configured to calibrate individual
and/or all components of the PPM 30 (e.g., perform sensor
calibrations on some or all of the media monitoring sensors 108
and/or the location and motion sensors 110 of FIG. 2). In this
manner, the PPM 30 may perform a calibration routine prior to being
given to a monitored person (e.g., the monitored person 32 of FIG.
1). Additionally or alternatively, the PPM 30 may perform the
calibration routine in response to any suspect diagnostic
information resulting from the periodic diagnostic routines. If
calibration routines fail to make the PPM 30 operate properly or
within acceptable tolerances, the PPM 30 may communicate a message
to the central facility 60 indicating the failure, and/or the PPM
30 and/or the central office 60 may inform the monitored person 32
to return the PPM 30 for repair or exchange.
[0088] FIG. 6 is a flow diagram of an example analysis process that
may be performed by the servers 70 and 74 (FIGS. 1 and 4) and/or
the example apparatus 200 (FIG. 4) to analyze data collected by the
example PPM 30 of FIGS. 1-3. Initially, the server 70 establishes
communications with the PPM 30 (block 602), which may be initiated
by the PPM 30 via, for example, an alert message that the server 70
can use to obtain and store the identification of the PPM 30. For
example, the alert message may be sent by the PPM 30 at block 530
of FIG. 5B. The receiver 202 (FIG. 4) then receives the
PPM-collected data from the PPM 30 (block 604). In the illustrated
example, the PPM-collected data includes data from the location
data log file 180, the web event data log file 182, the media data
log file 184, and/or the consumer purchase data log file 186. The
data fault detector 204 (FIG. 4) then performs a validation
analysis of the received data (block 606) to determine whether any
of the received data is invalid or whether any data is missing.
Example validation processes that may be used to implement the
validation analysis of block 606 are described below in connection
with FIGS. 9, 10B, 11B, 12, 13, and 14. The data file interface 206
(FIG. 4) then stores indicators or tags or other information in
association with the received data to indicate valid data and any
faults in the data (block 608). In the illustrated example, the
data file interface 206 stores the valid data in a valid meter log
data structure 610 (e.g., a file, a database, a table, etc.) that
is used to subsequently perform an advertisement exposure analysis
612, a query correlation analysis 614, and a purchase correlation
analysis 616. The valid meter log data structure 610 may be stored
in the database 72 of FIGS. 1 and 4.
[0089] During the advertisement exposure analysis 612, the data
analyzer 208 (FIG. 4) determines whether the valid meter log data
structure 610 includes any audio/video/RF media representation
information (block 618) such as, for example, audio/video/RF codes
or signatures collected in connection with blocks 512, 514, 516,
518, and 520 of FIG. 5A. If the data analyzer 208 determines that
the valid log data structure 610 includes one or more
audio/video/RF media representation information (block 618), the
data analyzer 208 analyzes the advertisement exposure based on the
audio/video/RF representation information (block 620). An example
implementation of the advertisement exposure analysis of the
audio/video/RF media representation information is described below
in connection with the example process of FIG. 7.
[0090] After the data analyzer 208 analyzes the advertisement
exposure based on audio/video/RF representation information (block
620) or if the data analyzer 208 determined that the valid meter
log data structure 610 does not include any audio/video/RF media
representation information (block 618), the data analyzer 208
analyzes advertisement exposure based on location information
(block 622) in the valid meter log data structure 610 indicative of
the locations at which the PPM 30, and thus, the monitored person
32, were located. For example, for each valid location identifier,
the data analyzer 208 can determine if that location is
sufficiently proximate to an advertisement at a fixed or stationary
location such that the monitored person 32 would have been exposed
to the advertisement so that the monitored person 32 could be
influenced by the advertisement to perform some action (e.g.,
request information, purchase a product/service, visit an
advertised retail establishment, etc.) related to the
advertisement. An example implementation of the advertisement
exposure analysis based on location information is described below
in connection with the example process of FIG. 7. In the
illustrated example, the data file interface 206 stores information
indicative of advertisements to which the monitored person 32 was
exposed in an advertisement exposure data structure 624 (e.g., a
file, a database, a table, etc.).
[0091] During the query correlation analysis 614, the data analyzer
208 correlates or associates instances of advertisement exposure
indicated in the advertisement exposure data structure 624 and/or
visits to retail establishments with query-related information
(e.g., user-submitted queries and/or query results) (block 626). In
the illustrated example, the query-related information includes the
user-submitted query information (e.g., query search strings,
search terms, search criteria, etc.) and the query results stored
by the web event data collector 166 (FIG. 3) at block 510 of FIG.
5A. The data analyzer 208 may retrieve the query-related
information from the valid meter log data structure 610. At block
626, the data analyzer 208 may associate an instance of an
advertisement exposure and/or a user's visit to a retail
establishment with one or more user-submitted queries and the query
search results when the queries and the query results are related
to or associated with the product or service advertised in the
advertisement. In the illustrated example, the data file interface
206 stores flags, indicators, or other information indicating the
association between instances of advertisement exposures,
queries/query results, and retail establishment visits in an
advertisement exposure, queries, and store visits mapping data
structure 628. An example process that may be used to implement the
query correlation analysis 614 is described below in connection
with FIG. 8.
[0092] During the purchase correlation analysis 616, the data
analyzer 208 determines which of the query results are related to
purchases (block 628) made by, for example, the monitored person 32
(FIG. 1). For example, the data analyzer 208 may determine that one
or more query results are related to one or more purchases if the
query results contain information related to or associated with one
or more product or service purchases. The data analyzer 208 can
then credit each query result identified in block 628 as having
influenced one or more purchase decisions (block 630) made by, for
example, the monitored person 32. In the illustrated example, the
data analyzer 208 can store the information generated at block 630
in the consumer behavior knowledgebase 214 (FIG. 4) to create
behavior information indicative of how consumers react to
particular information (e.g., query search results) and/or
advertisements. The example process of FIG. 6 then ends.
[0093] FIG. 7 depicts a flow diagram of an example process that may
be used to implement the advertisement exposure analyses of blocks
620 and 622 of FIG. 6. In the below-description, the location-based
advertisement exposure analysis 622 is described first followed by
a description of the audio/video/RF-based advertisement exposure
analysis 620. Initially, the receiver 202 (FIG. 4) retrieves the
PPM-collected location data (block 702) from, for example, the
valid log meter data structure 610 (FIG. 6). The data analyzer 208
then retrieves a location event record (block 704) and determines a
nearest advertisement geo-fence (block 706) based on advertisement
location identifiers stored in geo-coded advertisement database 210
(FIG. 4). In the illustrated example, a geo-fence (i.e., a
geographical boundary) is defined by a maximum distance partially
or wholly surrounding an advertisement at which a person (e.g., the
monitored person 32) is deemed to be able to perceive or be exposed
to an advertisement such that the advertisement can have some
influence on the person to perform some action (e.g., request
information, purchase a product/service, visit an advertised retail
establishment, etc.) related to the advertisement. To determine a
geo-fence for an advertisement, the data analyzer 208 may determine
an area (e.g., a radial area, a pie shaped area fanning out from
the advertisement location, or any other shaped area) surrounding,
partially surrounding, and/or adjacent to the location of each
advertisement. In some example implementations, the data analyzer
208 may determine that a person was exposed to an advertisement if
the person was within a particular distance from the advertisement
and facing a particular direction or within a range of directions
(e.g., the data analyzer 208 may use direction information
generated by the PPM 30 using the compass 150 of FIG. 2).
[0094] The data analyzer 208 then determines whether the location
event information retrieved at block 704 is indicative of a
location inside the geo-fence (block 708). If the location is
inside the geo-fence (block 708), the data analyzer 208 credits the
advertisement corresponding to the geo-fence as having been exposed
to the monitored person 32 (block 710). In the illustrated example,
the data analyzer 208 credits the advertisement by storing a flag,
an indicator, or some other information indicative of exposure
credit in the advertisement exposure data structure 624 (FIG. 6) in
association with the advertisement identifier. After the data
analyzer 208 credits the advertisement (block 710) or if the data
analyzer 208 determines that the location event information is not
indicative of a location within the geo-fence (block 708), the data
analyzer 208 determines whether another location event record
remains to be analyzed (block 712). If at least another location
event record remains to be analyzed (block 712), control returns to
block 704.
[0095] If no other location event records remain to be analyzed
(block 712), the receiver 202 retrieves PPM-collected media
representation information (e.g., audio/video/RF codes or
signatures) (block 714) from, for example, the valid meter log data
structure 610 (FIG. 6). The data analyzer 208 then retrieves a
media code or signature (block 716) from the retrieved
PPM-collected media representation information to perform the
audio/video/RF-based advertisement exposure analysis 620. The data
analyzer 208 then determines whether any reference media codes or
signatures match the retrieved media code or signature (block 718).
For example, the data analyzer 208 may compare the retrieved media
code or signature with reference media codes or signatures stored
in the reference media codes/signatures database 211 of FIG. 4.
[0096] If the data analyzer 208 determines that a reference media
code or signature matches the retrieved media code or signature
(block 718), the data analyzer credits the advertisement associated
with the reference media code or signature as having been exposed
to the monitored person 32 (block 720). In the illustrated example,
the data analyzer 208 credits the advertisement by storing a flag,
an indicator, or some other information indicative of exposure
credit in the advertisement exposure data structure 624 (FIG. 6) in
association with the advertisement identifier. After the data
analyzer 208 credits the advertisement (block 720) or if the data
analyzer 208 determines that no reference media codes or signatures
match the retrieved media code or signature (block 718), the data
analyzer 208 determines whether another media code or signature
remains to be analyzed (block 722). If at least another media code
or signature remains to be analyzed (block 722), control returns to
block 716. Otherwise, the example process of FIG. 7 ends.
[0097] FIG. 8 depicts a flow diagram of an example process that may
be used to implement the query correlation analysis 612 of FIG. 6.
Initially, the receiver 202 (FIG. 4) retrieves the PPM-collected
location data (block 802) from, for example, the valid log meter
data structure 610 (FIG. 6). The data analyzer 208 then retrieves a
location event record timestamped within the previous (N) days
(block 804). In the illustrated example, the previous (N) days
specifies a recent history within which exposure to web event data
(e.g., query search results) and/or advertisements could have some
causal effect on a person's actions such as, for example,
purchasing a product, purchasing a service, visiting a retail
establishment, etc. For example, the previous (N) days can specify
the maximum time that can lapse between a monitored person
submitting a query or being exposed to an advertisement and the
person performing some action (e.g., visit a retail establishment,
purchase a product/service, etc.) related to the query search
results or that advertisement so that the query search results or
advertisement can be credited as having influenced the monitored
person to perform the action. The number of days (N) can be
determined by a metering entity implementing the example methods
and apparatus described herein. For example, the number of days (N)
can be determined based on a person's typical memory retention time
of previously observed objects. In some example implementations,
the amount of lapsed time may be a number of hours instead of a
number of days.
[0098] The data analyzer 208 then determines whether the retrieved
location event information specifies a location indicative of the
monitored person 32 having visited a retail establishment (block
806). In the illustrated example, the data analyzer 208 can compare
the retrieved location event information to location information
stored in the storefront and product geo-coded knowledgebase 212 of
FIG. 4 to determine whether the retrieved location event
information corresponds to a location of a retail establishment. If
the retrieved location event information is indicative of a
visitation to a retail establishment, the data analyzer 208 stores
a tag, a flag, or some other information in connection with the
retail establishment identifier to indicate that the retail
establishment was visited by the monitored person 32 (block 808).
In the illustrated example, the data analyzer 208 stores the tagged
or flagged retail establishment identifier in a visited retail
establishment data structure 810 and/or the advertisement exposure,
queries, and retail establishment visits mapping data structure 628
of FIG. 6. After tagging or flagging the retail establishment
identifier (block 808) or if the data analyzer 208 determines that
the retrieved location identifier is not indicative of a retail
establishment visitation (block 806), the data analyzer 208
determines whether another location event record timestamped within
the previous (N) days remains to be analyzed (block 812). If
another location event record remains (block 812), control is
passed back to block 804.
[0099] If the data analyzer 208 determines that no other location
event record remains to be analyzed (block 812), the data analyzer
208 retrieves advertisement identifiers of advertisements to which
the monitored person 32 was exposed within the previous (N) days
(block 814) and query results received by the PPM 30 within the
previous (N) days (block 816). In the illustrated example, the data
analyzer 208 retrieves the exposed to advertisement identifiers and
the query results from the valid meter log data structure 610 (FIG.
6). The data analyzer 208 then retrieves a query result record
(block 818) from the query results retrieved at block 816 and
determines whether the query result is associated with one or more
advertisement exposures (block 820). For example, the data analyzer
208 may compare the query result information with advertisements
indicated in the advertisement exposure data 624 of FIG. 6 to
determine whether the query result information is related to or
associated with (e.g., the query result includes information about
a product, service, or retail establishment advertised by the
advertisement) any of the advertisements to which the monitored
person was exposed. If the data analyzer 208 determines that the
retrieved query result is associated with one or more advertisement
exposures, the data analyzer 208 stores a tag, a flag, or some
other information in association with the advertisement exposure
information to indicate that the identified advertisements
influenced the monitored person 32 to submit the query associated
with the query results (block 822). In some example,
implementations, the data analyzer 208 may alternatively or
additionally compare query search terms or search criteria
submitted by the monitored person 32 to the advertisements
indicated in the advertisement exposure data 624 to determine
whether any of the advertisements influenced the monitored person
32 to submit the query.
[0100] After the data analyzer 208 stores a tag, a flag, or some
other information in association with the advertisement exposure
information (block 822) or if the data analyzer 208 determines that
the retrieved query result is not related to or associated with any
advertisement exposures (block 820), the data analyzer 208
determines whether the query result information is associated with
or related to one or more retail establishments visited by the
monitored person 32 (block 824). For example, the data analyzer 208
can compare the query result information with visited retail
establishment information stored in the visited retail
establishment data structure 810 to determine whether any
information associated with the retail establishments (e.g., name,
street address, products offered, services offered, etc.) match or
substantially match the query result information. If the data
analyzer 208 determines that the query result information is
associated with or related to one or more visited retail
establishments (block 824), the data analyzer 208 stores a tag, a
flag, or some other information in association with the query
result to indicate that the query result influenced the monitored
person 32 to visit a retail establishment (block 826). In the
illustrated example, the data analyzer 208 can store the tag, flag,
or other information in association with the query result in the
advertisement exposure, queries, and retail establishment visits
mapping data structure 628 of FIG. 6.
[0101] After the data analyzer 208 stores a tag, a flag, or some
other information in association with the query result (block 826)
or if the data analyzer 208 determines that the retrieved query
result is not related to or associated with any visited retail
establishments (block 824), the data analyzer 208 determines
whether another query result received by the user within the
previous (N) days remains to be analyzed (block 828). If the data
analyzer 208 determines that at least another query result remains
to be analyzed (block 828), control is passed back to block 818.
Otherwise, the example process of FIG. 8 is ended.
[0102] FIG. 9 is a flow diagram of an example location information
validation process that may be performed by the example apparatus
200 (FIG. 4). The example process of FIG. 9 may be used to
implement the example validation analysis of block 606 of FIG. 6.
Initially, the data receiver 202 (FIG. 4) retrieves a location
event record from the data received from the location data log file
180 of the PPM 30 (block 902), and the fault detector 204 (FIG. 4)
determines whether the latitude coordinate is valid by determining
whether the latitude coordinate is within a range between -90
degrees and 90 degrees (block 904). If the fault detector 204
determines that the latitude coordinate is valid (block 904), the
fault detector 204 determines whether the longitude coordinate is
valid by determining whether the longitude coordinate is within
-180 degrees and 180 degrees (block 906). In other example
implementations, other geographical coordinate systems having
different ranges and/or units may be used. If the fault detector
204 determines that the longitude coordinate is valid (block 906),
the data fault detector 204 returns a valid indicator to indicate
that the retrieved location event record is valid (block 908).
[0103] If the fault detector 204 determines that the longitude
coordinate is valid (block 906) or that the latitude coordinate is
not valid (block 904), the fault detector 204 returns an invalid
indicator to indicate that the retrieved location event record is
not valid (block 910). The data file interface 206 then stores a
location information error indicator (block 912) in, for example,
the valid meter log data structure 610 of FIG. 6 to indicate that
the location coordinates were not valid. The fault detector 204 or
the data file interface 206 then discards the invalid location
event record from the location data (block 914).
[0104] After discarding the invalid location event record from the
location data (block 914) or after returning a valid indicator
(block 908), the fault detector 204 determines whether another
location event record remains to be analyzed (block 916). If at
least another location event record remains to be analyzed (block
916), control is passed back to block 902. Otherwise, the example
process of FIG. 9 is ended.
[0105] FIG. 10A is a flow diagram for an example heartbeat process
that may be performed by the processor 100 of the PPM 30 to
generate heartbeat information that may subsequently be used to
determine the validity of metering data collected by the PPM 30.
Initially, the processor 100 (FIG. 2) of the PPM 30 instantiates
metering software (block 1002) used to collect the web event (e.g.,
query event), location event, media signal capture event, and/or
purchase event information. The processor 100 then waits for a
heartbeat timeout (block 1004). The heartbeat timeout is determined
by the periodic time at which the PPM 30 generates a heartbeat
message to confirm the presence or operation of the PPM 30 in the
geographic area 10. In an example implementation, the PPM 30 may
transmit heartbeat messages indicative of the heartbeat timeouts to
the central facility 60 (FIG. 1) substantially in real time, and
the central facility 60 may analyze the heartbeat messages
substantially in real time or during a post process to confirm that
the PPM 30 is operational and/or within the geographic area 10.
Alternatively or additionally, the PPM 30 may store the heartbeat
messages in the memory 104 (FIG. 2) of the PPM 30. For example, the
PPM 30 may store the heartbeat messages in the location data log
file 180 (FIG. 3) (or in any of the other data log files 182, 184,
and 186), and the central facility 60 may analyze the heartbeat
messages in connection with the location data log file 180 during a
post process.
[0106] When the timeout is reached (block 1004), the processor 100
determines whether it should communicate a heartbeat message
indicative of the heartbeat timeout to the central facility 60
(block 1006). For example, the processor 100 may check a
configuration setting (e.g., a transmit heartbeat message
configuration bit) in the memory 104 to determine whether it should
transmit the heartbeat message. If the processor 100 determines
that it should communicate the heartbeat message to the central
facility 60 (block 1006), the processor 100 transmits the heartbeat
message to the central facility 60 via the communications interface
106 (block 1008). Otherwise, the processor 100 stores the heartbeat
message locally (block 1010) in, for example, the location data log
file 180 (FIG. 3) in the memory 104. After transmitting the
heartbeat message to the central facility 60 (block 1008) or after
storing the heartbeat message locally (block 1010), the processor
100 determines whether it should wait for another heartbeat timeout
(block 1012). For example, if the metering software is still
instantiated, the processor 100 may determine that it should wait
for another heartbeat timeout (block 1012) and control is passed
back to block 1004. Otherwise, the example process of FIG. 10A is
ended.
[0107] FIG. 10B is a flow diagram of an example heartbeat analysis
process that may be performed by the example apparatus 200 (FIG. 4)
to examine data log files received from a PPM (e.g., the PPM 30) to
determine whether data collected by the PPM is valid. The example
process of FIG. 10B may be used to implement the example validation
analysis of block 606 of FIG. 6. Initially, the data receiver 202
reads a stored event record in the data received from PPM 30 (block
1020). For example, the data receiver 202 can read the event record
from data received from the location data log file 180 of FIG. 3.
The data fault detector 204 then reads heartbeat information (e.g.,
a heartbeat message) stored in the retrieved event record (block
1022) and determines whether the corresponding heartbeat occurred
within a threshold period of a previous heartbeat (block 1024). The
threshold period specifies an allowable time within which a
heartbeat must occur to indicate that the PPM 30 is functioning
properly. If the heartbeat did not occur within the threshold
period (block 1024), the data fault detector 204 stores a missing
heartbeat error event (block 1026) in an error file created by the
data file interface 206 (FIG. 4). Otherwise, if the heartbeat
occurred within the threshold period (block 1024), the data fault
detector 204 determines whether another event record remains to be
analyzed (block 1028) and, if so, control is passed back to block
1020. Otherwise, the example process of FIG. 10B is ended.
[0108] FIG. 11A is a flow diagram of an example event sequence
generation process that may be performed by the data collectors
164, 166, 168, and 170 (FIG. 3) of the PPM 30 to store sequential
event counts in connection with respective event information that
can subsequently be used to determine the validity of data
collected by the PPM 30. Initially, the data collector determines
whether an event has occurred (block 1102). For example, in the
case of the location data collector 164, an event is the periodic
reading or reception of location data such as longitude and
latitude coordinates from the location and motion sensors 110. In
the case of the web data collector 166, the event is any action by
the monitored person or results returned from the location-based
web services application.
[0109] If an event has not occurred, the data collector continues
to wait for an event (block 1102). Otherwise, if an event has
occurred, the data collector stores the event information (block
1104) in, for example, a respective one of the log files 180, 182,
184, and 186. The data collector then increments an event count
(block 1106) and stores the event count in association with the
event information (block 1108). If the data collector is to wait
for another event (block 1110), control is passed back to block
1102. Otherwise, the example process of FIG. 11A is ended.
[0110] FIG. 11B is a flow diagram of an example sequential event
count confirmation process that may be performed by the example
apparatus 200 (FIG. 4) when a data is received from a PPM (e.g.,
the PPM 30). The example process of FIG. 11B may be used to
implement the example validation analysis of block 606 of FIG. 6.
In the illustrated example, the example sequence confirmation
process of FIG. 11B is used to monitor data integrity of
information stored in data log files (e.g., the data log files 180,
182, 184, and 186 of FIG. 3) and to identify any data integrity
problems associated with the data log files. For example, the
example sequence confirmation process of FIG. 11B may be used to
detect missing data in a data log file (e.g., consecutively stored
data records missing a data record therebetween), non-sequential
data (e.g., consecutively stored data records that are out of
sequence), storage medium errors (e.g., storage disk surface
damages), write errors, file system errors, etc.
[0111] As shown in FIG. 11B, the data receiver 202 initially
retrieves an initial event record (block 1112) and then reads a
next event record (block 1114) from the data received from the PPM
30 corresponding to a data log file. The data fault detector 204
then determines whether the next event record retrieved at block
1114 is in proper sequence (block 1116) relative to the initial
event record retrieved at block 1112 based on the event counts of
the event records. For example, the data fault detector 204 can
compare the event counts stored in connection with block 1108 of
FIG. 11A in the event records to determine whether they are
sequential. If the events are not in proper sequence (block 1116),
the data fault detector 204 stores a sequence error indicator
(block 1118) in an error log file via the data file interface 206.
After storing the sequence error indicator (block 1118) or if the
data fault detector 204 determines that the events are sequential
(block 1116), the data fault detector 204 determines whether there
is another event record to be analyzed (block 1120). If there is
another event record to be analyzed, control is passed back to
block 1114. Otherwise, the example process of FIG. 11B is
ended.
[0112] FIG. 12 is a flow diagram of an example speed detection and
checking process which may be performed by the example apparatus
200 (FIG. 4) to determine the validity of location data collected
by the PPM (e.g., the PPM 30). The example process of FIG. 12 may
be used to implement the example validation analysis of block 606
of FIG. 6. Initially, the data receiver 202 increments a read
counter by one (block 1202). The data receiver 202 then reads two
successive location event records from data received from the PPM
30 (block 1204) corresponding to, for example, the location data
log file 180 of FIG. 3. The data fault detector 204 then determines
the speed of travel between the two location events (block 1206)
by, for example, calculating the distance between the two locations
and dividing by the time interval that elapsed between the
collection of the two location events. The data fault detector 204
then determines whether the speed exceeds a threshold value (block
1208). If the speed exceeds the threshold value, an error is
possible because the monitored person 32 is indicated as having
traveled at an unexpected speed and the data fault detector 204
stores an error indicator (block 1210) in an error file via the
data file interface 206. After storing the error indicator (block
1210) or if the speed does not exceed the threshold value (block
1208), the data fault detector 204 determines whether there is
another event record remaining to be analyzed (block 1212) and, if
so, control is passed back to block 1202. Otherwise, the example
process of FIG. 12 is ended.
[0113] FIG. 13 is a flow diagram of an example process that may be
performed by the PPM 30 to determine whether there is sufficient
movement to indicate that the PPM 30 was moved from one location to
another. The example process of FIG. 13 may be implemented in real
time by the PPM 30 or as a post process by the example apparatus
200 of FIG. 4. For purposes of discussion, the example process is
described below as a post process performed by the example
apparatus 200. Initially, the data receiver 202 reads current
location information (block 1302) received from, for example, the
location data log file 180 of FIG. 3. The data fault detector 204
then determines whether the current location is the same as a
previous location read (block 1304). If the locations are the same
(block 1304), which indicates no movement, the data fault detector
204 adds the elapsed duration between the entries to a no-movement
duration value (block 1306). The data fault detector 204 then
compares the no-movement duration value to a duration threshold to
determine whether the no-movement duration is greater than the
duration threshold (block 1308). If the no-movement duration is
greater than the duration threshold, it is likely that the PPM 30
has not been moved for an excessive amount of time, which may
indicate an error condition such as the monitored person 32 leaving
the PPM 30 somewhere or the PPM is not functioning properly. If the
no-movement duration value exceeds the time threshold (block 1308),
the data fault detector 204 stores a no-movement event (block 1310)
in an error file via the data file interface 206. After storing the
no-movement event (block 1310) or if the data fault detector 204
determines that the previous and current locations are not the same
(block 1304), the data fault detector 204 resets the no-movement
duration value (block 1312) and determines whether it should
continue processing the location information (block 1314). If the
data fault detector 204 is to continue processing the location
information (block 1314) or if the data fault detector 204
determines that the no-movement threshold is not greater than the
time threshold (block 1308), control is passed back to block 1302.
Otherwise, if the data fault detector 204 is not to continue
processing, the example process of FIG. 13 is ended.
[0114] FIG. 14 is a flow diagram of an example process that may be
performed by the example apparatus 200 (FIG. 4) to detect missing
location event entries in location data log files received by the
central facility 60 from a PPM such as the location data log file
180 of the PPM 30. The example process of FIG. 12 may be used to
implement the example validation analysis of block 606 of FIG. 6.
Initially, the data fault detector 204 initializes a data variable
relating to the duration since the last location event by setting
the data variable to zero (block 1402). The data receiver 202 then
reads a next event record (block 1404) from data received from the
PPM 30. The fault detector 204 then determines whether the
retrieved event record is a location event record (block 1406). If
the retrieved event record is a location event record (block 1406),
the fault detector 204 determines the duration between the previous
event and the event record retrieved at block 1404 (block 1408).
The fault detector 204 then adds the duration to the duration since
the last location event variable (block 1410). The fault detector
204 then determines whether the duration since the last location
event exceeds a threshold duration (block 1412). If the duration
exceeds the threshold (block 1412), the fault detector 204 stores a
missing location information event indicator in an error log file
via the data file interface 206 (block 1414). After storing the
missing location event indicator (block 1414) or if the duration
does not exceed the threshold (block 1412), the fault detector 204
resets the duration since last location event variable (block 1416)
and determines whether another event record remains to be processed
(block 1418). If another event record remains to be processed
(block 1418) or if the fault detector 204 determines that the event
record is not a location event (block 1406), control is passed back
to block 1404. Otherwise, the example process of FIG. 14 is
ended.
[0115] FIG. 15 shows an example process that may be implemented by
the central facility 60 to answer database requests from
advertisers or business users related to behaviors of monitored
persons (e.g., the monitored persons 32, 38, and 40) associated
with advertisements and/or query search results. Initially, the
central facility 60 receives a report request from a business user
(block 1502). In the illustrated example, the inquiry requests
information about the exposure to an advertisement or
advertisements by a monitored person or persons and includes one or
more criteria indicative of those advertisements. The request and
criteria are then communicated to the analysis server 74 (FIGS. 1
and 4) (block 1504). The analysis server 74 then runs the query and
determines whether any of the criteria in the received request
relate to any queries submitted by a monitored person or persons
and advertisements to which those monitored persons were exposed
(block 1506). For example, the analysis server 74 may compare the
received criteria with data in the advertisement exposure, queries,
and retail establishment visits mapping data structure 628. The
analysis server 74 retrieves all relevant advertisement exposure
events and corresponding timestamps (block 1508) for each query
made by a monitored person while within the radius of the
advertisement or sometime after the monitored person was within the
radius of the advertisement. The analysis server 74 then correlates
behavior of the monitored person to the advertisement type,
advertisement size, repetitions of exposures to the advertisement,
and/or any other desired factors (block 1512). The analysis server
74 then generates a report (block 1512) using the identified data
in response to the report request received from the business
user.
[0116] FIG. 16 is an example flow diagram of a location and
advertisement exposure correlation process that may be performed by
the PPM 30 in the geographical area 10 of FIG. 1 and the example
apparatus 200 (FIG. 4) to determine the advertisements to which the
monitored person 32 was exposed. Initially, the PPM 30 determines
whether the monitored person 32 is wearing the PPM 30 (block 1602).
If the monitored person 32 is not wearing the PPM 30, the example
process waits at block 1602 until the PPM 30 detects that the
monitored person 32 is wearing the PPM 30. When the monitored
person 32 is wearing the PPM 30 (block 1602), the PPM 30 determines
whether a duration elapsed since the last location acquisition is
greater than a scheduled interval (block 1604). If the elapsed
duration is not greater than a scheduled interval (block 1604),
control is passed back to block 1602. Otherwise, the location data
collector 164 (FIG. 3) acquires location information (block 1606)
from, for example, the location/motion sensors 110 (FIGS. 2 and 3).
The location data collector 164 then stores the location
information (block 1608) in, for example, the location data log
file 180 (FIG. 3). The location data collector 164 then
communicates the location event data from the location data log
file 180 to the central facility 60 (block 1610) where it is stored
in a consumer location history database 1614. The location history
database 1614 may be implemented using the PPM location file 80 or
may be used to store various PPM location files 80.
[0117] The example apparatus 200 can then correlate the locations
of the monitored person 32 with advertisements identified in the
geo-coded advertisement database 210 (block 1612) to which the
monitored person 32 was likely exposed (block 1612). The process of
block 1612 can be implemented using one or more of the processes
described above to determine the advertisements to which the
monitored person 32 was exposed. In the illustrated example, the
process of block 1612 can store the correlation results in an
advertisement exposure database 1616. For example, the example
apparatus can store the advertisement exposure data structure 624
(FIG. 6) and/or the advertisement exposure, queries, and retail
establishment visits mapping data structure 628 (FIG. 6) in the
advertisement exposure database 1616.
[0118] It is to be understood that the example machine accessible
instructions of the flow diagrams of FIGS. 5A, 5B, 6-9, 10A, 10B,
11A, 11B, and 12-16 may be executed by a processor, a controller
and/or any other suitable processing device. For example, the
example machine accessible instructions of FIGS. 5A, 5B, 6-9, 10A,
10B, 11A, 11B, and 12-16 may be embodied in coded instructions
stored on a tangible medium such as a flash memory, or random
access memory (RAM) associated with a processor. Alternatively,
some or all of the example flow diagrams of FIGS. 5A, 5B, 6-9, 10A,
10B, 11A, 11B, and 12-16 may be implemented using an application
specific integrated circuit (ASIC), a programmable logic device
(PLD), a field programmable logic device (FPLD), discrete logic,
hardware, firmware, etc. Also, some or all of the example flow
diagrams of FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B, and 12-16 may be
implemented manually or as combinations of any of the foregoing
techniques including, for example, a combination of firmware,
software and/or hardware. Further, although the example machine
accessible instructions of FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B,
and 12-16 are described with reference to the flow diagrams of
FIGS. 5A, 5B, 6-9, 10A, 10B, 11A, 11B, and 12-16, persons of
ordinary skill in the art will readily appreciate that many other
techniques of implementing the example methods, apparatus, and
systems described herein may be employed. For example, the order of
execution of the blocks may be changed, and/or some of the blocks
described may be changed, eliminated, sub-divided, or combined.
Additionally, persons of ordinary skill in the art will appreciate
that the example machine accessible instructions of FIGS. 5A, 5B,
6-9, 10A, 10B, 11A, 11B, and 12-16 may be carried out sequentially
and/or carried out in parallel by, for example, separate processing
threads, processors, devices, circuits, etc.
[0119] FIG. 17 is a block diagram of an example processor system
1710 that may be used to implement the methods, apparatus, and
systems described herein including. As shown in FIG. 17, the
processor system 1710 includes a processor 1712 that is coupled to
an interconnection bus 1714. The processor 1712 includes a register
set or register space 1716, which is depicted in FIG. 17 as being
entirely on-chip, but which could alternatively be located entirely
or partially off-chip and directly coupled to the processor 1712
via dedicated electrical connections and/or via the interconnection
bus 1714. The processor 1712 may be any suitable processor,
processing unit or microprocessor. Although not shown in FIG. 17,
the system 1710 may be a multi-processor system and, thus, may
include one or more additional processors that are identical or
similar to the processor 1712 and that are communicatively coupled
to the interconnection bus 1714.
[0120] The processor 1712 of FIG. 17 is coupled to a chipset 1718,
which includes a memory controller 1720 and an input/output (I/O)
controller 1722. As is well known, a chipset typically provides I/O
and memory management functions as well as a plurality of general
purpose and/or special purpose registers, timers, etc. that are
accessible or used by one or more processors coupled to the chipset
1718. The memory controller 1720 performs functions that enable the
processor 1712 (or processors if there are multiple processors) to
access a system memory 1724 and a mass storage memory 1725.
[0121] The system memory 1724 may include any desired type of
volatile and/or non-volatile memory such as, for example, static
random access memory (SRAM), dynamic random access memory (DRAM),
flash memory, read-only memory (ROM), etc. The mass storage memory
1725 may include any desired type of mass storage device including
hard disk drives, optical drives, tape storage devices, etc.
[0122] The I/O controller 1722 performs functions that enable the
processor 1712 to communicate with peripheral input/output (I/O)
devices 1726 and 1728 and a network interface 1730 via an I/O bus
1732. The I/O devices 1726 and 1728 may be any desired type of I/O
device such as, for example, a keyboard, a video display or
monitor, a mouse, etc. The network interface 1730 is
communicatively coupled to the network 62 and may be, for example,
an Ethernet device, an asynchronous transfer mode (ATM) device, an
802.11 device, a DSL modem, a cable modem, a cellular modem, etc.
that enables the processor system 1710 to communicate with another
processor system.
[0123] While the memory controller 1720 and the I/O controller 1722
are depicted in FIG. 17 as separate functional blocks within the
chipset 1718, the functions performed by these blocks may be
integrated within a single semiconductor circuit or may be
implemented using two or more separate integrated circuits.
[0124] Although certain methods, apparatus, systems, and articles
of manufacture have been described herein, the scope of coverage of
this patent is not limited thereto. To the contrary, this patent
covers all methods, apparatus, and articles of manufacture fairly
falling within the scope of the appended claims either literally or
under the doctrine of equivalents.
* * * * *