Abstract:
Methods of reporting Audience Measurement System (AMS) viewership events on a client device and systems implementing the method are disclosed. The method comprises the steps of receiving at least one event message on a client device, wherein each event message is a data signal indicating an occurrence of an event, processing the at least one event message on the client device to create an AMS viewership report, and transmitting the AMS viewership report.

Description:
REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to U.S. provisional Application Ser. No. 61/490259, filed May 26, 2011, entitled “Highly Scalable Audience Measurement System with Client Event Pre-Processing,” which is hereby specifically and entirely incorporated by reference. 
     
    
     BACKGROUND 
       [0002]    1. Field of the Invention 
         [0003]    The invention is directed to television advertisements. Specifically, the invention is directed to measuring television (TV) advertisement (ad or commercial) viewership. 
         [0004]    2. Background of the Invention 
         [0005]    To generate accurate ad viewership information for all ad types, a client device based Audience Measurement System (AMS), which logs events on a client device, has collect, transport, store, retrieve, and process an amount of data that can easily exceed the capabilities of existing cost-effective systems. For example, for the PayTV industry in the United States (where there are approximately 60 million digital TV subscribers), if each subscriber generates, on average, approximately one hundred events per day, a typical AMS will need to generate, transport, and store approximately six billion events per day. To generate a program or ad rating report, such a system, will have to process the six billion records per day of data for each report. Such an amount of data makes existing AMS systems impractical for monitoring every viewer. 
         [0006]    Moreover, considering that a typical linear channel lineup in the US has approximately 300 channels and each hour of broadcasted programming has up to 22 minutes allocated for ad spots (which are typically 30 seconds or less), in all, there are up to 316,800 ad units per day which need to be mapped to about 1,000 socioeconomic, demographic, purchasing, housing, and other profiles. 
         [0007]    To date, none of the existing AMS have been created for the PayTV industry, within a reasonable budget, because they have not overcome the limitations caused by the set-top-box return path (i.e. the set-top-box&#39;s upstream bandwidth to the head-end), the speed of data retrieval from centralized storage, the cost of CPU data processing to generate the necessary reports, and the time necessary to complete the requested reports (with 316,800 ad units, six billion US records per user per day, and 0.01 millisecond per one comparison, report generation can take up to 602 years to process on a modern computer). 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention overcomes the problems and disadvantages associated with current strategies and designs and provides new tools and methods of measuring viewership. 
         [0009]    One embodiment is directed to a method of reporting Audience Measurement System (AMS) viewership events on a client device. The method comprises the steps of receiving at least one event message on a client device, processing the at least one event message on the client device to create an AMS viewership report, and transmitting the AMS viewership report. Each event message is a data signal indicates an occurrence of an event. 
         [0010]    Preferably, each event is at least one of streaming a video, a remote control key press, an application messages, an indication of a first I-frame decoded, analog or digital tuning completed, and an RTSP (Real Time Streaming Protocol) streaming failure. In the preferred embodiment, an event is a remote control key press and the step of processing the least one event message on the client device comprises determining if an I-Frame is decoded. 
         [0011]    The client device is preferably one of a TV viewing system, a personal computer, a tablet computer, a smartphone, a game console, a radio receiver, an MP3 player, a streaming media device, or set top box. Preferably, the client device is a home appliance. The step of processing the least one event message on the client device preferably comprises analyzing the sequence or timing of received messages in accordance with built-in algorithms and generating accurate AMS viewership event data. 
         [0012]    The method preferably further comprises collecting additional data from the client device and estimating the event that took place on a device in communication with the client device. The method preferably further comprises analyzing sequence and timing of event messages with algorithms. The report is preferably transmitted to a backend. 
         [0013]    Another embodiment of the invention is directed to a system for reporting Audience Measurement System (AMS) viewership events on a client device. The system comprises a client device processor, an input/output device in communication with the client device processor, a transceiver in communication with the client device processor, and software executing on the client device processor. The software receives at least one event message on a client device, wherein each event message is a data signal indicating an occurrence of an event, processes the at least one event message on the client device to create an AMS viewership report, and transmits the AMS viewership report. 
         [0014]    In the preferred embodiment, each event is at least one of a tuning event, a video streaming events, a remote control key press, an applications messages, first I frame decoded, analog tuning completed, and RTSP (Real Time Streaming Protocol) streaming failure. Preferably, an event is a remote control key press and the software further determines if an I-Frame is decoded. 
         [0015]    The client device is preferably one of a TV viewing system, a personal computer, a tablet computer, a smartphone, a game console, a radio receiver, an MP3 player, a streaming media device or set top box. The client device can be a home appliance. The software preferably analyzes the sequence or timing of received messages in accordance with built-in algorithms and generates accurate AMS viewership event data. 
         [0016]    The software preferably further collects additional data from the client device and determining the event that took place on a device in communication with the client device. The software preferably analyzes sequence and timing of event messages with algorithms. The AMS viewership events report is preferably transmitted to a backend. 
         [0017]    Other embodiments and advantages of the invention are set forth in part in the description, which follows, and in part, may be obvious from this description, or may be learned from the practice of the invention. 
     
    
     
       DESCRIPTION OF THE DRAWING 
         [0018]    The invention is described in greater detail by way of example only and with reference to the attached drawing, in which: 
           [0019]      FIG. 1  depicts an embodiment of AMS-A architecture and communication signal data flow. 
       
    
    
     DESCRIPTION OF THE INVENTION 
       [0020]    As embodied and broadly described herein, the disclosures herein provide detailed embodiments of the invention. However, the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. Therefore, there is no intent that specific structural and functional details should be limiting, but rather the intention is that they provide a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention 
         [0021]    A problem in the art capable of being solved by the embodiments of the present invention is measuring TV viewership. Typically, TV viewership is measured by logging events generated by software modules in real-time running on a client device and then sending them to a processing unit (backend) for offline processing. The processing unit analyzes client device logging events offline and generates AMS viewership events which are then incorporated into AMS reports. Examples of AMS viewership events are: the time interval a viewer started and finished watching a particular advertisement, and the time interval a viewer started and finished watching a particular program. While AMS viewership events represent viewership of a particular viewer, typical AMS report represents viewership of a group of viewers. The group of viewers can be selected using one of several criteria which can include: demographic profile, socio-economic profile, purchasing history profile and others. 
         [0022]    It has been surprisingly discovered that AMS viewership events can be generated on a client device in real-time by logging and analyzing events generated by software modules. By generating AMS viewership events on a client device, AMS software client module has an opportunity to request and receive in real-time additional information needed from other software modules running on a client device to make an accurate determination of a viewership event. Existing AMS systems, which generate AMS viewership events offline, cannot request and receive additional information needed to make an accurate determination of a viewership event. This results in lower accuracy of AMS viewership events generated by existing systems. The present invention, by pre-processing event data on the client device, results in significant reduction in upstream traffic from a client device to backend processing unit, and significant reduction in processing power needed by a backend to generate AMS viewership events and generate AMS viewership reports. 
         [0023]    The present invention allows AMS to collect data and create cost-effective, census level accuracy AMS viewership reports. In the preferred embodiment the AMS is comprised of several tiers of distributed computing components residing at different typological network points within the content distribution system to enable cost-effective processing of large amount of collected data. Tier 1 is comprised of AMS-A, Tier 2 of AMS-L, Tier 3 AMS-C. AMS-A is an AMS client application which resides in video playback device, e.g TV set, set top box, video streaming adapter. AMS-L is a backend server based sub-system which acts as a first collecting and pre-processing point for the data generated by AMS-A components. After data pre-processing is completed, AMS-L sends data to AMS-C. AMS-C is a backend server based sub-system which acts as a last data processing prior to data being archived and exported to ad agencies. Depending on content distribution network topology and scale, locations and total number of AMS-L components would vary. For example, small content distribution system would only have AMS-A and AMS-L components and utilize AMS-C component located outside of that particular content distribution network. 
         [0024]    Each AMS-A (client device level) is preferably responsible for receiving configuration messages from the AMS-L and executing the logging, processing, and report of events in accordance with the received configuration messages. Each AMS-A is preferably a software module residing on a client&#39;s set top box, TV, computer, tablet, smartphone, streaming media device, or other media playing device. 
         [0025]    Each AMS-L (local node level) is preferably responsible for receiving panel definitions, subscriber profile information, and program and ad schedules from the AMS-C, a TV Traffic System, an Electronic Program Guide Server, and/or a Video-on-Demand server. The AMS-L is also preferably responsible for sending configuration messages to each AMS-A and performing upstream bandwidth optimization. The AMS-L is also preferably responsible for receiving reports from each AMS-A, merging panel reports, and sending requested reports to the AMS-C for further merging. Each AMS-L is preferably maintained by a media service provider such as a cable company, a satellite TV company, a streaming media company, or an internet service provider. 
         [0026]    The AMS-C (central level) is preferably responsible for receiving panel definitions from ad agencies, subscriber demographics and socioeconomic metadata from source agencies, programming metadata from national broadcasters, and ad schedules from ad agencies or broadcasters. The AMC-C is preferably responsible for merging requested information and mapping the information into available AMS-L subscriber bases. The AMS-C can receive and merge reports from multiple AMS-Ls. An AMS-C is preferably maintained by a media company such as a broadcaster, a cable TV channel, or an internet web-page. 
         [0027]      FIG. 1  depicts an embodiment of AMS-A architecture and communication signal and data flow. Client device  803  preferably contains AMS-A components module  804 . AMS-A module  804  may consist of the following components: AMS-L messages receiver module  809 , AMS report upload module  810 , AMS logging level configuration module  812 , AMS reporting schedule configuration module  813 , AMS events encoder  814 , AMS data compressor  815 , AMS data caching module  816 , and AMS client kernel  817 . AMS-L receive module gets panel configuration message downstream from CATV modulator  801  from an AMS-L subsystem. The client device preferably includes a central processing unit, memory, and software stack comprised of operating system  828 , firmware  827 , middleware  826 , 3 rd  party applications  823 , VOD application  824 , and EPG application  825 . All these software modules generate events and messages  822  which may consist of the following categories: digital/analog tuning events, video streaming events  818 , remote control key pressing events  819 , applications events/messages  820 , or other events/message  821 . Events in category  818  preferably consists of the following sub-category events: first I frame decoded event  805 , analog tuning completed event  806 , RTSP (Real Time Streaming Protocol) streaming failure event  807 , and other tuning related events  808 . 
         [0028]    AMS-A module  811  collects the various types of events and can generate, log-in, and transmit an event, with a high degree of accuracy, which preferably represents the viewer experience in consuming various types of content, including, but not limited to: linear programming, ad spots, interactive TV applications, video-on-demand (VOD) content, pay-per-view events, and digital video recorder (DVR) events (e.g. fast forward, 30 second skip, and 7 second rewind). 
         [0029]    For example, when a viewer pressed the channel UP key on the remote control multiple times while that viewer is browsing digital channels, the AMS-A system will only log events when the first “I-frame” is actually decoded. In existing AMS, on the other hand, log all channel UP key presses, which often leads to misleading reports since, in many cases, a viewer does not see any video from a “quickly” skipped channel 
         [0030]    Module  811  receives event messages created by the modules outside of module  804 . Module  811  then analyzes sequence and timing of received messages in accordance with built-in algorithms to generate accurate and actual events which correspond to the viewer experience on a TV screen. In the event Module  811  does not have sufficient information to accurately determine AMS viewership event, Module  811  can request and receive additional information from other client device modules. Module  811  stores the generated AMS viewership events in AMS data caching module  816  for further transport through AMS client kernel  817  to AMS reports upload module  810  for transmission to CATV demodulator  802 . 
         [0031]    Module  811  preferably collects all possible information from within client device  803  to generate with negligible margins of error AMS viewership events that took place on a TV set connected to the client device. 
         [0032]    While the examples provided herein are for TV viewing systems, the invention is also applicable to other video and audio applications involving an audience, including, but not limited to, video viewing on PCs, tablets, smart phones, game consoles, radio receivers, MP3 players, and other streaming and linear programming devices. Furthermore, the invention is equally applicable to the monitoring of other electronic devices in the environment of an audience member, such as other home appliances. 
         [0033]    Although the exemplary environment described herein employs a hard disk database, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs), read only memory (ROM), a cable or wireless signal containing a bit stream and the like, may also be used in the exemplary operating environment. 
         [0034]    For clarity of explanation, the illustrative system embodiment is presented as comprising individual functional blocks (including functional blocks labeled as a “processor”). The functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software. For example the functions of one or more processors presented in  FIG. 1  may be provided by a single shared processor or multiple processors. (Use of the term “processor” should not be construed to refer exclusively to hardware capable of executing software.) Illustrative embodiments may comprise microprocessor and/or digital signal processor (DSP) hardware, read-only memory (ROM) for storing software performing the operations discussed below, and random access memory (RAM) for storing results. Very large scale integration (VLSI) hardware embodiments, as well as custom VLSI circuitry in combination with a general purpose DSP circuit, may also be provided. 
         [0035]    Embodiments within the scope of the present invention may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media. 
         [0036]    Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps. 
         [0037]    Those of skill in the art will appreciate that other embodiments of the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Networks may include the Internet, one or more Local Area Networks (“LANs”), one or more Metropolitan Area Networks (“MANs”), one or more Wide Area Networks (“WANs”), one or more Intranets, etc. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
         [0038]    Other embodiments and uses of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. All references cited herein, including all publications, U.S. and foreign patents and patent applications, are specifically and entirely incorporated by reference. It is intended that the specification and examples be considered exemplary only with the true scope and spirit of the invention indicated by the following claims. Furthermore, the term “comprising of” includes the terms “consisting of” and “consisting essentially of.”