Systems and methods for identifying users who watched a television advertisement
Claim Score by NHIP
Abstract
An audience measurement service may monitor broadcasts in a region, ingesting closed captioning data, metadata, displayed text or logos, performing facial recognition on people, and/or generating audio/video fingerprints of broadcast content to create a database of content and associated keywords, along with times at which the content was broadcast. The audience measurement service may receive user search queries from a search provider and detect “spiking” queries. The audience measurement service may determine whether the spiking queries are related, contextually and temporally, to an item of content identified in the database, and infer that users generating the queries likely viewed the item of content. In some implementations, the audience measurement service may also infer that the users likely viewed other items of content (e.g. advertisements) displayed during the prior or subsequent few minutes on the same broadcast channel as the query-triggering item.

Term
8.2 yearsto projected expiry
Projected expiry 1 December 2034, counted from filing; an application has no term until it is granted.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1A method for audience measurement, comprising:receiving, by an audience measurement server from a broadcast monitoring system, a plurality of identifications of broadcast items of content and corresponding broadcast times of each item of content;receiving, by the audience measurement server from a search service, a log of search queries received by the search service and corresponding device identifiers of devices transmitting each search query;determining, by the audience measurement server from the received log of search queries, that a first search query has a query volume above a baseline query volume for the first search query at a first time;retrieving, by the audience measurement server from the received plurality of identifications of broadcast items of content, an identification of a first item of content broadcast at the first time, the identification corresponding to the first search query;and associating, by the audience measurement server, an identifier of a device that transmitted the first search query with the first item of content.
- 12Broadest claimClaim Score 48, average(NHIP)A system for audience measurement, comprising:a broadcast receiver;an entity extractor connected to the broadcast receiver, configured to extract an entity associated with an item of broadcast content and record an identification of the entity, item of broadcast content, and a broadcast time to an entity log;and an audience measurement server, configured to: receive an identification of a search query having a query volume above a baseline query volume for the search query at a first time, and an identifier of a device that transmitted the search query at the first time, determine that the identified search query corresponds to the identified entity, retrieve the identification of the entity and broadcast time from the entity log, responsive to the determination, and add an association of the identifier of the device and item of broadcast content to a viewership database, responsive to the determination.
- 19A non-transitory computer-readable storage medium storing instructions that when executed by one or more data processors, cause the one or more data processors to perform operations including:receiving, from a broadcast monitoring system, a plurality of identifications of broadcast items of content and corresponding broadcast times of each item of content;receiving, from a search service, a log of search queries received by the search service and corresponding identifiers of devices transmitting each search query, the search queries related to each other and having an aggregated query volume above a baseline query volume for the search queries at a first time;retrieving, from the received plurality of identifications of broadcast items of content, an identification of a first item of content broadcast at the first time, the identification corresponding to the search queries;and associating the identifiers of the devices with the first item of content.
Independent claims3
102 paragraphs in 4 sections, as filed
BACKGROUND
0001Audiences for content blocks, such as broadcast media or online streamed media, including commercial advertising, are typically measured via single-source data panels consisting of individuals or households recording content exposure over time. In one typical system, panel members carry a portable pager-sized device with a microphone that listens for embedded subaudible codes or watermarks in audio of media programs and records the codes it hears, indicating that the panel member was present while the program was being shown or played. The device periodically transmits its logs to a measurement server, which aggregates logs from a plurality of the devices to determine a representative viewership for the program.
0002At best, panels are only statistically representative of a larger population, and may become very expensive to implement as the panel size is increased in order to reduce statistical error. Additionally, panel compliance is difficult to ensure, as members may fail to carry measurement devices or fill out logs. Finally, in many instances, panel measurement data may be ambiguous to a household, and fail to distinguish between different household members' preferences.
SUMMARY
0003Frequently upon viewing or listening to items of content in a broadcast, a user may be intrigued and decide to search on the Internet for additional information, such as searches for song lyrics, product information, celebrity sightings, current events, recipes, or any other such information. By correlating content and search queries, it may be possible for an audience measurement service to infer that searchers are likely audience members of the content, through both a contextual relationship (e.g. a search for information corresponding to the item of content) and through a temporal relationship (e.g. a search being made within a few minutes of the item of content being broadcast in the user's geographic region). Additionally, search query information sent by user-specific devices and/or logged-in accounts may be linked to specific individuals in a household. In some implementations, the correlation may not allow generation of raw viewership numbers, as viewership for highly interesting or engaging content may be over-represented (due to increased searches related to the content) while viewership for typical content may be under-represented (as viewers of less interesting content such as the weather or an unamusing sitcom may be less likely to initiate searches related to the content. Accordingly, in such implementations, the audience measurement service may be measuring the relative size of the engaged audience or relative “engaging-ness” or likelihood of a viewer of the content to become engaged and actively seek additional information.
0004In one implementation, an audience measurement service may monitor broadcasts in a region, ingesting subtitle or closed captioning data, metadata (if available), identifying displayed text or logos, performing facial recognition on people displayed in the broadcast, and/or generating audio/video fingerprints of broadcast content to create a database of content and associated keywords, along with times at which the content was broadcast. The audience measurement service may receive user search queries from a search provider and detect “spiking” or “surging” queries, or those that have a low baseline query volume but which have large and sudden increases in volume. The audience measurement service may determine whether the spiking queries are related, contextually and temporally, to an item of content identified in the database, and infer that users generating the queries likely viewed the item of content. In some implementations, the audience measurement service may also infer that the users likely viewed other items of content (e.g. advertisements) displayed during the prior or subsequent few minutes on the same broadcast channel as the query-triggering item.
0005One implementation disclosed herein is a method for audience measurement. The method includes receiving, by an audience measurement server from a broadcast monitoring system, a plurality of identifications of broadcast items of content and corresponding broadcast times of each item of content. The method also includes receiving, by the audience measurement server from a search service, a log of search queries received by the search service and corresponding device identifiers of devices transmitting each search query. The method further includes determining, by the audience measurement server from the received log of search queries, that a first search query has a query volume above a baseline query volume for the first search query at a first time. The method also includes retrieving, by the audience measurement server from the received plurality of identifications of broadcast items of content, an identification of a first item of content broadcast at the first time, the identification corresponding to the first search query; and associating, by the audience measurement server, a device identifier of a device that transmitted the first search query with the first item of content.
0006In some implementations, the method includes identifying a user of the device that transmitted the first search query as an audience member of the first item of content. In other implementations, each identification of a broadcast item of content comprises a caption transcript of the broadcast item of content, and the identification of the first item of content corresponds to the first search query responsive to the caption transcript including the first search query. In still other implementations, the method includes determining that the query volume at the first time exceeds an average query volume for the search query by at least a predetermined threshold.
0007In some implementations, the method includes retrieving an identification of a second item of content broadcast at a second time prior to the first time; and associating the device identifier of a device that transmitted the first search query with the second item of content. In a further implementation, the method includes scoring the association of the device identifier with the first item of content with a first confidence score, and scoring the association of the device identifier with the second item of content with a second confidence score, the second score lower than the first score in proportion to a time difference between the second time and first time. In a still further implementation, the method includes generating the first confidence score based on a difference between a peak query volume for the first search query and the baseline query volume for the first search query. In another still further implementation, the method includes receiving a request for an audience measurement for the first item of content, and including the device identifier in the audience measurement responsive to the first confidence score being above a threshold. In yet another still further implementation, the method includes receiving a request for an audience measurement for the second item of content, and excluding the device identifier from the audience measurement responsive to the second confidence score being below a threshold.
0008In some implementations, the method includes retrieving an entity related to the first search query in a semantic dictionary; and the identification of the first item of content broadcast at the first comprises the retrieved entity. In other implementations, the method includes selecting a second item of content for presentation to the device, responsive to the association of the device identifier of the device with the first item of content.
0009In another aspect, the present disclosure describes a system for audience measurement. The system includes a broadcast receiver. The system also includes an entity extractor connected to the broadcast receiver, configured to extract an entity associated with an item of broadcast content and record an identification of the entity, item of broadcast content, and a broadcast time to an entity log. The system further includes an audience measurement server, configured to receive an identification of a search query having a query volume above a baseline query volume for the search query at a first time, and a device identifier that transmitted the search query at the first time; and determine that the identified search query corresponds to the identified entity. The audience measurement server is also configured to retrieve the identification of the entity and broadcast time from the entity log, responsive to the determination; and add an association of the device identifier and item of broadcast content to a viewership database, responsive to the determination.
0010In some implementations, the entity extractor comprises a closed captioning decoder, and the audience measurement server is further configured to determine that the identified search query corresponds to the identified entity responsive to the search query being included in a closed captioning transcript of the item of broadcast content. In other implementations, the audience measurement server is further configured to determine that the query volume exceeds a threshold at the first time, the threshold comprising a multiple of the baseline query volume. In still other implementations, the audience measurement server is further configured to determine that the identified search query corresponds to the identified entity responsive to the entity and search query being associated in a semantic dictionary. In yet other implementations, the audience measurement server is further configured to generate a confidence score for the association of the device identifier and item of broadcast content and store the generated confidence score in the viewership database. In a further implementation, the audience measurement server is further configured to include the device identifier in an audience measurement for the item of broadcast content, responsive to the confidence score exceeding a threshold. In another further implementation, the audience measurement server is further configured to add an association of the device identifier and a second item of broadcast content broadcast starting at a second time immediately prior to the broadcast time to the viewership database; and to generate a second confidence score for the association of the device identifier to the second item of broadcast, the second confidence score reduced from the confidence score for the association of the device identifier and item of broadcast content by an amount proportional to the difference between the second time and the broadcast time.
0011In still another aspect, the present disclosure is directed to a computer-readable storage medium storing instructions that when executed by one or more data processors, cause the one or more data processors to perform operations including receiving, from a broadcast monitoring system, a plurality of identifications of broadcast items of content and corresponding broadcast times of each item of content; receiving, from a search service, a log of search queries received by the search service and corresponding device identifiers of devices transmitting each search query, the search queries related to each other and having an aggregated query volume above a baseline query volume for the search queries at a first time; retrieving, from the received plurality of identifications of broadcast items of content, an identification of a first item of content broadcast at the first time, the identification corresponding to the search queries; and associating the device identifiers with the first item of content. In some implementations, execution of the instructions further cause the one or more data processors to score the association of each device identifier with the first item of content with a confidence score, the confidence score based on a frequency of broadcast of the first item of content.
0012These implementations are mentioned not to limit or define the scope of the disclosure, but to provide an example of an implementation of the disclosure to aid in understanding thereof. Particular implementations may be developed to realize one or more of the following advantages.
BRIEF DESCRIPTION OF THE DRAWINGS
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosure will become apparent from the description, the drawings, and the claims, in which:
<figref idref="DRAWINGS">FIG. 1</figref> is an illustration of a relationship between a spiking search query, an item of content within a content stream, and a viewership confidence score, according to one implementation;
<figref idref="DRAWINGS">FIG. 2A</figref> is a block diagram of a system for audience measurement via spiking search queries, according to one implementation;
<figref idref="DRAWINGS">FIG. 2B</figref> is a block diagram of another system for audience measurement via spiking search queries, according to one implementation;
<figref idref="DRAWINGS">FIG. 2C</figref> is a block diagram of a broadcast provider system, according to one implementation;
<figref idref="DRAWINGS">FIG. 3A</figref> is a block diagram of a measurement service capture device, according to one implementation;
<figref idref="DRAWINGS">FIG. 3B</figref> is a block diagram of an audience measurement server, according to one implementation;
<figref idref="DRAWINGS">FIG. 4A</figref> is a flow diagram of the steps taken in one implementation of a process for identifying audience members of an item of content, according to one implementation; and
<figref idref="DRAWINGS">FIG. 4B</figref> is a flow diagram of the steps taken in one implementation of a process for measuring an audience of an item of content by an audience measurement server, according to one implementation.
0022Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
0023Measurement of an audience of content, such as television programming, movies, commercial advertising, or any other type and form of content, may be useful for measuring audience size or popularity of content for pricing and selling advertisement placements, planning content delivery schedules, or other such purposes. In traditional terrestrial or satellite broadcasting, a provider may not have direct knowledge of the number of receivers tuned in at any time, due to the lack of a back channel or communication pathway from the receiver to the provider. To overcome this limitation, some audience measurement systems have used panels of participating individuals who agree to fill out surveys or diaries of content they've seen or listened to. However, this system relies on self-reporting, which may have decreased accuracy. Another system requires panel participants to wear or carry a portable device that detects content played back in the vicinity via subaudible audio watermarks or codes, and records a log for subsequent transmission to the panel provider. However, this system requires watermarking encoders to be installed at every broadcast source to be measured as part of the signal chain, increasing expense and failure rates. Additionally, embedded codes may be distorted or corrupted when data compression is applied, such as in digital video recorders or other systems.
0024Search queries from users may be initiated by their viewership of broadcast content. By correlating content and search queries by both subject or contextual content and temporal relationship, it may be possible for an audience measurement service to infer that searchers are likely audience members of the content. <figref idref="DRAWINGS">FIG. 1</figref> includes three diagrams illustrating the relationship of spiking search queries to items of content within a content stream and a corresponding viewership confidence score. Referring first to the top diagram of <figref idref="DRAWINGS">FIG. 1</figref>, illustrated is a sample graph of search volume of a query <b>100</b> over time <b>102</b>. Search volume of the query <b>100</b> may be a rate of queries received by a search service, such as queries per minute, or by any other such rate or timeframe. Some query volumes may have a relatively low average baseline value <b>102</b>, particularly queries that are relatively rare. In response to some event, such as display of content related to the query via a broadcast medium, some portion of the viewing public may initiate an Internet search request for the query. This is particularly true with viewers having constant access to the Internet via portable and/or wearable network-connected computing devices. If a large number of viewers initiate search requests for the query within a short span of time after broadcast of the content, the search volume <b>100</b> of the query may rise above the baseline <b>102</b> for a period of time, identifying a search “spike” <b>108</b>, sometimes referred to as a search surge, flash mob of requests, trending query, or by other such terms. Spiking queries may be identified when a search volume <b>100</b> exceeds a threshold <b>104</b> for a period of time; when a search volume <b>100</b> reaches a peak <b>106</b> above a baseline <b>102</b>; and/or when the volume of searches increases drastically over a short time frame <b>110</b>. Thresholds, such as a threshold <b>104</b> or a threshold of volume change over time, may be set dynamically or may be configured by an administrator. In one implementation, a threshold <b>104</b> may be set to twice the average baseline <b>102</b> or any other such value; while in another implementation, a threshold <b>104</b> may be set to equal the average baseline <b>102</b> plus 50 queries per minute or any other such value.
0025Referring to the middle illustration of <figref idref="DRAWINGS">FIG. 1</figref>, a content stream <b>112</b>, such as a terrestrial, satellite, or cable broadcast channel or stream of content may include a plurality of content items <b>114</b>, <b>116</b> over time <b>102</b>. Content may include television programs, movies, advertisements, documentaries, news programming including breaking news items, music or music videos, talk shows, product descriptions, or a combination of these (e.g. a television show including music in a theme song, and displaying a product during a scene). Content <b>114</b>, <b>116</b> may be of any length, including 30 second commercials and two hour movies. Although only one content stream <b>112</b> is illustrated, a plurality of streams of content <b>112</b> may be broadcast to any number of recipients in a geographical area or by connection to a common network service, by a plurality of providers. As discussed above, responsive to viewing an item of content <b>114</b>, some viewers may initiate a search query for information corresponding to the item of content <b>114</b>, such as a keyword, a product name, an actor or actress name, a song lyric, a geographic location, or any other such information. In some implementations, search queries may be text strings, such as one or more keywords, while in other implementations, search queries may include images or audio recordings.
0026As shown in the relationship of the top illustration and middle illustration of <figref idref="DRAWINGS">FIG. 1</figref>, responsive to viewing an item of content <b>114</b> in a content stream <b>112</b>, a search service may receive an increased search volume <b>100</b> for a corresponding query or queries, and identify the increased volume as a spike <b>108</b>. As shown, spikes <b>108</b> will typically occur at some point after the item of content <b>114</b> is broadcast or after the broadcast of the item <b>114</b> begins, as it takes time for viewers to initiate a search request. However, spikes <b>108</b> that occur a significant time later may not be associated with broadcast of the item of content <b>114</b>. Accordingly, in many implementations, a spike <b>108</b> may only be associated with a corresponding item of content <b>114</b> that was broadcast within a predetermined time period before the spike <b>108</b>, such as within one minute, 10 minutes, half an hour, or any other such time. In some implementations, the time period may be set responsive to the search volume <b>100</b>. If a search query is very rare, such as one search per day or less, then a spike of queries <b>108</b> may be a rate of one search per hour. Such a spike <b>108</b> may be associated with an item of content <b>114</b> broadcast up to a day or more previously. However, if the search query is very common (e.g. ten searches per minute), then a spike of queries <b>108</b> (e.g. one hundred searches per minute), may be associated with an item of content <b>114</b> broadcast only up to a few minutes previously. Similarly, in some implementations, the time period may be set responsive to the frequency of display of the item of content. If an advertisement is broadcast once an hour on some stream <b>112</b> of a plurality of streams, then a corresponding spike <b>108</b> in search volume may only be associated with the most recent broadcast of the advertisement, or a broadcast of the advertisement within the past ten minutes or other such time period.
0027Likely viewers of an item of content <b>114</b> may be inferred via their initiation of a search query that is part of a spike <b>108</b> via a logged-in account on a device or via a user-specific device identifier. A confidence score <b>118</b> may be set for the association of the device identifier or user to the item of content <b>114</b>, as shown in the bottom illustration of <figref idref="DRAWINGS">FIG. 1</figref>. The confidence score for the association of the device identifier or user to the item of content <b>114</b> may be set based on the difference between the peak <b>106</b> and baseline <b>102</b> volumes for the search query, the spike <b>108</b> duration, the timing of the user's query within the spike <b>108</b>, the frequency of spikes <b>108</b> for the search query, the frequency of broadcast of the item of content <b>114</b>, or any combination of these or other such information. A very rare search query with a low baseline <b>102</b> that has a spike <b>108</b> with a very high peak <b>106</b>, corresponding to an item of content <b>114</b> that is broadcast only very infrequently, may result in a higher confidence score <b>118</b> than a very common search query with only a slight spike for an item of content broadcast frequency on one channel or another (e.g. a current top-40 song that may be played several times within minutes on different radio channels in a broadcast region).
0028Viewers of an item of content <b>114</b> will frequently stay tuned to the same channel or content stream <b>112</b> for a period of time before or after the broadcast of the item of content <b>114</b>, at a rate decreasing over time. As illustrated in the bottom graph of <figref idref="DRAWINGS">FIG. 1</figref>, viewership confidence scores <b>118</b> may be applied to associations of the device identifier with other content items <b>116</b> on the broadcast channel, based on the confidence score for the content <b>114</b> corresponding to the spiking search query, at decreasing rates over time. The confidence scores <b>118</b> for these other items of content <b>116</b> may be adjusted by a prior confidence adjustment rate <b>120</b> or subsequent confidence adjustment rate <b>122</b>, which may be identical or different. Although shown with the confidence score for each item <b>116</b> reduced to the lowest amount corresponding to the adjustments <b>120</b>, <b>122</b>, in some implementations, confidence scores may be reduced by an intermediate amount, such as to a score corresponding to half the duration of the item <b>116</b> at the confidence adjustment rate <b>120</b>, <b>122</b>.
0029<figref idref="DRAWINGS">FIG. 2A</figref> is a diagram of a system for audience measurement, according to one implementation. As shown, a broadcaster <b>208</b> may deliver content to client systems at a client location <b>200</b> via satellite or terrestrial radio frequency (RF) broadcasts, cable systems, or via Internet protocols (IP) such as streamed or downloaded content, VOD systems, or other such systems. Although shown as a single entity, in many instances, a broadcaster <b>208</b> may comprise a broadcast source such as a national broadcast network source, a regional or local network affiliate that receives and redistributes the network source (sometimes with additional local or regional-specific content), a cable broadcast provider, an Internet service provider (ISP), or other various affiliated and non-affiliated entities.
0030Content may be received by a client system at a receiver <b>202</b><i>a</i>, which may comprise an antenna or satellite dish and demodulator or decoder, a cable receiver, a digital television (DTV) decoder, a set top box, a DVR, a computing device, or any other type and form of device for receiving content with closed captioning data. The receiver <b>202</b><i>a </i>may be connected to a multimedia system <b>204</b>, such as a television, home theater system, or any other type and form of device for displaying audio and/or video content received and decoded by a receiver <b>202</b><i>a</i>. In some implementations, the receiver <b>202</b><i>a </i>and multimedia system <b>204</b> may be combined, as in many televisions with attached antennas or included cable demodulators, “smart” or Internet-attached televisions, or other such devices.
0031A user at a client location <b>200</b> may use a client device <b>206</b> to transmit a search query or request for information to a search system <b>212</b>, via a network <b>210</b>. Search queries may, in many instances, be transmitted responsive to the user viewing an item of content received by a receiver <b>202</b><i>a</i>, and accordingly, may correspond both contextually and temporally to an item of content. Client device <b>206</b> may be a desktop computer, laptop computer, tablet computer, smart phone, wearable computing device, entertainment or video game console, smart television, set top box, or any other type and form of device capable of transmitting a user generated search query via a network <b>210</b> to a search system <b>212</b>.
0032Network <b>210</b> may be any form of computer network or combinations of networks that relay information between one or more client devices <b>206</b>, and one or more search servers <b>214</b>, as well as other devices and systems not illustrated (e.g. web sites, Internet service providers, cable providers, etc.). Network <b>108</b> may include the Internet and/or other types of data networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, satellite network, or other types of data networks. Network <b>210</b> may also include any number of computing devices (e.g., computer, servers, routers, network switches, etc.) that are configured to receive and/or transmit data within network <b>210</b>. Network <b>210</b> may further include any number of hardwired and/or wireless connections, such that a client device <b>206</b> may communicate wirelessly (e.g., via WiFi, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via a fiber optic cable, a CAT5 cable, etc.) to other computing devices in network <b>210</b>. In some implementations, a network <b>210</b> may be a virtual network, such as a virtual network between a plurality of virtual machines executed by a single physical machine, or a abstract network such as an offline transfer of data via physically movable media (e.g. a Sneakernet, transferring data via tape media, CD-ROM, flash media, external hard drives, floppy disks, etc.).
0033Client devices <b>206</b> may transmit queries to a search system <b>212</b>, sometimes referred to as a search provider, Internet search provider, or by similar terms. Search system <b>212</b> may include one or more search servers <b>214</b>, which may be configured in a server farm, cloud, or other network configuration. Search system <b>212</b> may receive search queries from client devices <b>206</b> and respond with search results in any type or form, such as a website, list, index, or other format. Search queries may include alphanumeric strings or keywords, audio recordings, images, video recordings, or other such information. In many implementations, client devices <b>206</b> may transmit an identifier of the device to a search system <b>212</b> as part of a search query, or may include a cookie or other identifier received from the search system <b>212</b> in response to a prior search query, log in to a service provided by the search system <b>212</b> or an associated system, or otherwise obtained by the client device <b>206</b> to uniquely identify the client device <b>206</b> transmitting the search query and/or the user of the client device <b>206</b>. Thus, although referred to generally as device identifiers or identifiers of the device, in many implementations, the identifiers may identify a user of the device rather than the device itself. Identifiers may be an alphanumeric string, data string, serial number, media access control (MAC) address, internet protocol (IP) address, username or account name, globally unique identifier (GUID), cookie, random or pseudorandom number, or any other type and form of identifier, including combinations of these or other identifiers, to identify the client device <b>206</b>. In some implementations, the device identifier may be fixed to the device or preconfigured in the device, such as a manufacturer serial number or MAC address, while in other implementations, the device identifier may be dynamically set by the search service, by the audience measurement server, or other entity, such as via a cookie or username. In some implementations, a unique or new device identifier may be set for each communication to the search server, while in other implementations, the device identifier may not be changed, or may be changed periodically (e.g. hourly, daily, weekly, etc.) or at other intervals (e.g. on restart of the capture device, login to an internet service, etc.). A device identifier may be transmitted to the search server before, with, or subsequent to a transmission of a search query. In one embodiment, a client device may log in or establish an authenticated session with a search service using the device identifier. In another embodiment, the client device may transmit a search query in the body of a packet, with the device identifier included in the header of the packet. Queries may be transmitted via a representational state transfer (REST) protocol, hypertext transfer protocol (HTTP) request (e.g. a POST or GET request with query data as a parameter-value pair), or via any other such application, session, or presentation layer protocol. Search system <b>212</b> may store search requests and device identifiers in a search log database <b>216</b>. In some implementations, requests and device identifiers may be encrypted, hashed, or anonymized to protect privacy of individuals.
0034Measurement system <b>218</b>, sometimes referred to as an audience measurement provider, may also receive content streams from a broadcaster <b>208</b> or other such identifications of content. In some implementations, a measurement system may include a receiver <b>202</b><i>b</i>, which may be similar to a receiver <b>202</b><i>a </i>at a client location <b>200</b>. Receiver <b>202</b><i>b </i>may receive content from a broadcaster <b>208</b> via terrestrial or satellite broadcast, cable system, Internet, or any other such means, and may output video to a measurement service capture device <b>220</b>, a fingerprint generator <b>224</b>, or other such devices. In some implementations, a receiver <b>202</b><i>b </i>may be in the same geographical region as a receiver <b>202</b><i>a</i>. In one such implementation, at least one receiver <b>202</b><i>b </i>may be deployed in major cities or broadcast markets to capture the broadcasts from a local broadcaster <b>208</b>. In other implementations, a receiver <b>202</b><i>b </i>may be deployed elsewhere, and may receive a similar, but different broadcast. A receiver <b>202</b><i>b </i>may receive a national network broadcast via a cable system, while a receiver <b>202</b><i>a </i>may receive a terrestrial broadcast from a local affiliate of the national network broadcaster. Such local affiliate broadcasts may include similar content, but may have different interstitial advertising, local newscasts, or other inserted or modified content. Although only one receiver <b>202</b><i>b </i>is illustrated, in some implementations, a plurality of receivers <b>202</b><i>b </i>may be deployed at a location; e.g. one per broadcaster to be measured. In other implementations, a receiver <b>202</b><i>b </i>may have a plurality of tuners, demodulators, or sub-receivers and may be able to receive and output a plurality of broadcasts simultaneously to a corresponding plurality of measurement service capture devices <b>220</b> and/or fingerprint generators <b>224</b>.
0035Federal Communications Commission (FCC) regulations require all United States broadcasters to provide closed captioning for television programs. In analog television broadcasts compliant with National Television System Committee (NTSC) standards, closed captioning is encoded into line 21 of the vertical blanking interval in EIA-608 format, developed by the Electronic Industries Alliance (EIA), and frequently referred to as “line 21 captioning”. For digital television broadcasts compliant with Advanced Television System Committee (ATSC) standards, closed captioning is provided via three encoded streams, two of which provide backward compatibility with NTSC decoders, the third providing up to 63 additional captioning streams encoded in EIA-708 format (sometimes referred to as “CEA-708” format). As the closed captioning is content-specific, the encoded text may be used to identify specific programs being watched by a viewer, and accordingly may be used for audience measurement via the systems and methods disclosed herein. Because each broadcaster already is generating and embedding the captioning, these systems and methods do not require any additional encoders to be installed at stations or cable providers. Many other countries require similar embedding of close captioning or subtitle data, or closed captioning may be provided by a private entity, that may be used in a similar fashion (e.g. subtitle requirements promulgated by the Office of Communications (Ofcom) in the United Kingdom; Red Bee Media in Australia; etc.).
0036A capture device <b>220</b> may receive the NTSC/ATSC/DVB and/or ISDB video signal from a receiver <b>202</b><i>b </i>(e.g. cable or HDTV decoder, set top box, digital video recorder (DVR), receiver, television output, or other such source). The capture device <b>220</b> may decode the closed captioning signal (e.g. the encoded line 21 signal and/or embedded EIA-708 streams), for generation of a database of closed captioning text <b>222</b>. The database may be populated via one or more capture devices <b>220</b> receiving local or national broadcast signals, or with data separately provided by broadcasters (e.g. metadata, text files, ancillary data, or other such transmissions).
0037Although shown grouped in a measurement system, in some implementations, a receiver <b>202</b><i>b </i>need not be located in geographic proximity to a measurement service capture device <b>220</b> and/or an audience measurement server <b>228</b>. In such implementations, a receiver <b>202</b><i>b </i>may communicate with a measurement service capture device <b>220</b> via a network <b>210</b>, such as the Internet; and/or a measurement service capture device <b>220</b> may communicate via a network <b>210</b> with an audience measurement server <b>228</b>. In one implementation, a receiver <b>202</b><i>b </i>and/or measurement service capture device <b>220</b> may be deployed at a broadcast transmission site or studio and receive a pre-transmitter video feed or a feed from a monitoring receiver at the site or studio, and may transmit decoded closed captioning data or logs <b>222</b> to the audience measurement server <b>228</b> via a network <b>210</b>.
0038As discussed above, in some implementations, a measurement system may include a database or storage device <b>222</b> storing closed captioning data, referred to generally as a caption logs <b>222</b>. Closed captioning data for the database <b>222</b> may be received from the measurement service capture device <b>220</b>, or may be received directly from a broadcaster <b>208</b>. In one implementation, closed captioning data may be intercepted before encoding in the video signal and/or decoded via a monitoring output at a broadcast site or studio, and may be transmitted via a network <b>210</b> for storage in a closed captioning database <b>222</b>. In a similar implementation, closed captioning data may be provided in non-real-time from the broadcaster <b>208</b> for inclusion in a closed captioning database <b>222</b>. In one implementation, the broadcaster <b>208</b> may separately provide text or data files of closed captioning data to be embedded in a video signal during broadcast of a movie or television program, sometimes hours, days, or weeks in advance of broadcast. Similarly, the broadcaster <b>208</b> may provide text or data files of closed captioning data for one or more items of content in a VOD library.
0039Although shown separate from audience measurement server <b>228</b>, in many implementations, closed captioning data <b>222</b> may be part of the audience measurement server <b>228</b> or maintained by the audience measurement server <b>228</b>. Accordingly, in such implementations, the audience measurement server <b>228</b> may receive closed captioning data from broadcaster(s) <b>208</b> and/or measurement service capture device(s) <b>220</b> and may store the data in the closed captioning database <b>222</b>.
0040Closed captioning database <b>222</b> may comprise a relational database, flat file, data file, or any other type and form of database. In some implementations, closed captioning text may be stored in the database <b>222</b> as text. In other implementations, a portion of closed captioning text (e.g. a number of words or characters, such as 5 words, 8 words, 10 words, 50 words, or any other such value; an amount of data in a number of video fields, such as closed captioning data from one video field, 10 video fields, or any other such value; or an amount of data within a predetermined period of time, such as closed captioning data embedded within 5 seconds of video, 10 seconds of video, or any other such value) may be hashed or used as an input to a hashing algorithm, with the result entered into the database or used as an index to an entry in the database. Closed captioning database <b>222</b> may also include an identification of an item of content associated with the closed captioning data or portion of the closed captioning data. In implementations in which closed captioning data is received in non-real-time from a broadcaster, the data may be explicitly identified as associated with an item of content. In other implementations in which closed captioning data is received via a receiver <b>202</b><i>b </i>and decoded by a measurement service capture device <b>222</b>, the data may be associated with an item of content based on a broadcast schedule, embedded metadata, or other such information. In still other implementations, the data may be associated with a channel and broadcast time that the content was received by a receiver <b>202</b><i>b</i>, and may be subsequently associated with the item of content based on a broadcast schedule, such as during a subsequent step of audience measurement.
0041An audience measurement system <b>218</b> may also include one or more fingerprint generators <b>224</b>. Fingerprint generators <b>224</b> may include hardware and/or software for identifying items of content and/or advertising provided by a broadcaster <b>208</b> as part of a broadcast content stream. In some implementations, fingerprint generators <b>224</b> may generate audio and/or video fingerprints of content items by sampling audio and/or video data of the content items and calculating a hash of the resulting audio and/or video data, by decimating the audio and/or video data (e.g. by removing nine out of ten samples) and hashing the decimated data, by calculating a convolution of the audio data against the video data, or otherwise creating a unique identifier for an item of content. Fingerprints may be stored in a fingerprint database <b>226</b> and compared against other fingerprints, to identify if a content item was previously provided in the same or a different broadcast stream. The same advertisement may be provided by a broadcaster <b>208</b> on multiple channels at different times, or a popular song may be played on multiple radio stations in a market at different times. Fingerprinting the audio and/or video of such content may allow aggregated measurements of audience of the content, as well as disambiguating search spikes to different instances of broadcast of the content. In some implementations, fingerprints for content, such as advertisements, may be pre-generated or added to a fingerprint database <b>226</b>. The fingerprint generator <b>224</b> may receive incoming audio or video and compare a fingerprint generated for the audio or video to fingerprints in the database <b>226</b>. A match may allow the measurement system <b>218</b> to recognize that a specific item of known content, such as an advertisement, is being broadcast. The measurement system <b>218</b> may add an identification to a database <b>234</b> to indicate that the known content was broadcast on a specified channel at a specified time.
0042An audience measurement system may include one or more audience measurement servers <b>228</b>. Audience measurement servers <b>228</b> may include one or more computing devices, servers, desktop computers, rack mount computers, workstations, or other devices for receiving search logs <b>216</b> from search systems <b>212</b> (such as via a network <b>210</b>′, similar to or the same as network <b>210</b>), for identifying spiking queries within the search logs <b>216</b>, and for correlating spiking queries with items of content based on caption logs <b>222</b> and/or fingerprints <b>226</b>. In some embodiments, an audience measurement server <b>228</b> may be a virtual machine or machines executed by one or more physical machines, such as in a cloud service or server farm. Audience measurement servers <b>228</b> may be located in proximity to measurement service capture devices <b>220</b>, or may be remote from one or more measurement service capture devices <b>220</b> and may communicate with the devices over a network <b>210</b>.
0043The measurement server <b>228</b> may receive search logs <b>216</b> from a search system <b>212</b> via a network <b>210</b>′. As discussed above, search logs <b>216</b> may include identifications of searches and corresponding device identifiers or anonymized device identifiers. In some implementations, searches may be aggregated by a search system into a set of device identifiers that provided a particular query within a specified time period (e.g. all device identifiers that transmitted a search for “x” within a ten second time period). This may reduce the bandwidth and storage required for the search logs <b>216</b> for particularly popular search queries. Search logs or spiking query data may be provided on a push or request-response basis in various implementations.
0044In some implementations, the audience measurement server <b>228</b> may receive the entire search log <b>216</b> and identify or extract spiking queries, while in other implementations the search system <b>212</b> may identify spiking queries and transmit log data only for such queries to the audience measurement server <b>228</b>. In some implementations and as discussed above in connection with <figref idref="DRAWINGS">FIG. 1</figref>, spiking queries may be identified by identifying a baseline search rate for the query (e.g. one query per ten minutes), and identifying a time period (e.g. surge or spike) with an elevated search rate for the query or elevated rate of change of searches for the query. In some implementations, spiking queries may be identified responsive to a search rate for the query exceeding a threshold. The threshold may be set dynamically based on the baseline rate such as double or triple the baseline rate, or equal to the baseline rate plus a value over a specified time period. In other implementations, spiking queries may be identified based on the rate of change of the search rate or change in search volume over time (dV/dT) exceeding a threshold (e.g. a volume of 10 queries per second increasing by 1 query per second, per second).
0045In some implementations, a spiking query may include several different, but related search queries. The audience measurement server <b>228</b> and/or search system <b>212</b> may identify queries as related via a semantic dictionary or map of queries (e.g. keywords, images, sounds, etc.) to categories. In one such implementation, an image of an actor may be related in a semantic map to the actor's name, a set of movies or television shows that the actor has appeared in, a set of products the actor has advertised, etc. Responsive to display of an item of content (e.g. one such television show) including the actor, search requests for any the related queries may be identified as a spiking query for the semantic category. In another implementation, each word in a song lyric may be mapped to the song, allowing user searches for any subset of the lyrics to be counted for the purposes of detecting a spiking query for the song responsive to the song being played on a local radio station. Semantic mappings may also be applied to caption logs <b>222</b> and/or fingerprint database <b>226</b> such that the audience measurement server <b>228</b> may identify related items of content based on any correspondingly mapped query.
0046As discussed above, once a spiking query has been identified, the audience measurement server <b>228</b> may determine whether an item of content has been broadcast within a predetermined period of time before the spike. The measurement server <b>228</b> may search for queries (or semantically mapped categories and/or category-related queries) within caption logs <b>222</b> and/or fingerprint database <b>226</b>. In other implementations, as discussed above, the fingerprint database <b>226</b> may contain fingerprints and identifications of known items of content, such as advertisements or other such content. The measurement server <b>228</b> may compare signatures generated for incoming live audio or video to previously stored fingerprints to recognize that a specific item of known content, such as an advertisement, is being broadcast. The measurement system <b>218</b> may add an identification to an entity database <b>234</b>. Upon identifying a spiking query, the measurement system <b>218</b> may search the database to for corresponding entities (such as for keywords related to a specific advertisement) and may determine whether the advertisement was broadcast within a predetermined window or period of time (e.g. 3 minutes) prior to the time of the query spike. If so, the measurement server <b>228</b> may infer that devices that transmitted the corresponding queries had users that likely viewed the broadcast entity or content. In some implementations, the measurement server <b>228</b> may use a search algorithm for a text string in caption logs <b>222</b> including the received text. In implementations in which the captioning data is hashed or stored in hashed form in the database, as discussed above, the measurement server <b>228</b> may determine if an entry exists in the database at an index identified by the hash calculation value, such that existence of such entry (with an associated identification of a content) indicates that the spiking query matches data received from a measurement service capture device <b>220</b> or from a broadcaster <b>208</b>.
0047To further increase uniqueness of closed captioning strings associated with content, older content or closed captioning data may be removed from the database <b>222</b>. Many broadcast programs are presented daily or weekly (e.g. nightly newscasts or episodic sitcoms with identical introductions, etc.). Closed captioning data from these programs may be removed from the database <b>222</b> after a corresponding time period of a day or week, eliminating the possibility of spiking queries matching both a current presentation and a previous presentation of the same program. In other implementations, content or closed captioning data may be associated with a broadcast time, and spiking queries may be compared against entities in the database from within a predetermined period of time before the spike (e.g. up to 3 minutes). Use of short comparison windows may increase confidence that broadcast of the associated entity was the trigger for the spike. Older caption or content data may be retained for comparison to historical search logs.
0048If the measurement server <b>228</b> identifies a matching fingerprint or caption log entry, or identifies that an item of content corresponding to the fingerprint or caption was broadcast by a broadcaster <b>208</b> within a predetermined time period, then the measurement server <b>228</b> may determine that queries received during the spike were initiated by a user viewing the content item. Responsive to the determination, the measurement server may add device identifiers associated with the corresponding queries to an entry in a viewership database <b>230</b> for the item of content. As discussed above, in some implementations, the measurement server may add a confidence score or measure to the viewership database for each device identifier. The confidence score may be based on the peak volume of the search above a baseline volume, the frequency of searches for the query, the frequency of broadcast of the item of content, or any other such information or combination of information. In some implementations, the measurement server may also add the device identifiers to entries in the database <b>230</b> for other items of content broadcast on the same medium and channel immediately prior to and subsequent to the broadcast of the item of content associated with the spiking query. The measurement server may further add confidence scores for the other items of content for each device identifier, said confidence scores reduced based on a prior and subsequent confidence score adjustment factor, as discussed above in connection with <figref idref="DRAWINGS">FIG. 1</figref>.
0049In some implementations, prior to adding device identifiers to viewership database <b>230</b>, the measurement server <b>228</b> and/or the search system <b>212</b> may extract a subset of device identifiers of devices known to be in the geographic broadcast region of the broadcaster <b>208</b> that provided the item of content identified via caption logs <b>222</b> or fingerprint database <b>226</b>. This may allow disambiguation between users that initiated the query after viewing the item of content, and other users who are in a different broadcast region and coincidentally initiated a similar query at a similar time. In such implementations, the search system <b>212</b> may receive location information from a client device <b>206</b> either with the search request or during a previous interaction with the search system <b>212</b> (e.g. on log-in to an associated service, with a previous search request, etc.). In other implementations, device identifiers may be excluded from the subset to be added to viewership database <b>230</b> based on broadcast method (e.g. device identifiers of users who have informed the measurement system and/or search system that they do not own a television may not be included in database <b>230</b> entries associated with items of content that were broadcast, but may be included in database <b>230</b> entries associated with items of content that were streamed via the Internet).
0050Referring briefly to <figref idref="DRAWINGS">FIG. 2B</figref>, illustrated is a block diagram of an audience measurement system in a similar implementation to that of <figref idref="DRAWINGS">FIG. 2A</figref>. As shown, in addition to or in place of a measurement service capture device <b>220</b> that extracts closed captioning data, a measurement system may include an optical character recognition (OCR) detector <b>232</b>, a music detector <b>236</b>, and/or a person detector <b>238</b>, referred to generally as entity detectors. An OCR detector <b>232</b>, sometimes referred to as a screen scraper or text analyzer may identify text in a video signal and extract the words displayed. This may be helpful for extracting product, place, or business names from a broadcast image. Extracted text may be added to an entity database <b>234</b> and associated with a broadcast item of content (e.g. channel and time). In a similar embodiment, the OCR detector <b>232</b> or another screen scraper may identify product logos or trademarks, product images, or other such features, and may add corresponding identifications (e.g. received from an image searching system) to the entity database <b>234</b>. In another similar embodiment, the measurement system <b>218</b> may include a speech-to-text engine (not illustrated), which may automatically transcribe input audio including spoken words from a broadcast.
0051Similarly, a music detector <b>236</b> may monitor a broadcast for music (e.g. theme songs, audio of music videos, radio music broadcasts, etc.) and extract a signature of the music. The signature may be transmitted to a search system <b>212</b> and/or music matching service, which may respond with an identification of the song, artist, album, lyrics, or other such information. These identifications may be added to the entity database <b>234</b> and associated with the broadcast item of content.
0052Likewise, a person detector <b>238</b> may monitor a video broadcast and detect faces appearing in the video. The person detector <b>238</b> may generate a facial recognition signature for a detected face (e.g. via principal component analysis using eigenfaces, linear discriminate analysis, elastic bunch graph matching, or any other such recognition system), and may transmit a signature query to a search system <b>212</b> and/or facial recognition service, which may respond with an identification of the corresponding actor, actress, celebrity, or other such person. The identification may be added to the entity database <b>234</b> and associated with the broadcast item of content.
0053According, in some such implementations, text (e.g. displayed on screen or in closed captioning data), audio, facial images, logos, metadata, or other such information or identification entities may be added to database <b>234</b> and associated with the broadcast item of content, time, and/or channel, for matching with spiking queries as discussed above.
0054<figref idref="DRAWINGS">FIG. 2C</figref> is a block diagram of a broadcast provider system, according to one implementation. As shown, a broadcaster <b>208</b> may include one or more media sources <b>250</b>. Although only one media source is illustrated, it may be readily appreciated that typical broadcasters <b>208</b> may include multiple studios, media play out sources, satellite downlinks, or other equipment, which may be mixed or selected via a mixer, router, switch, or other interface and provided to a closed captioning encoder or embedder <b>256</b>, referred to generally as an encoder <b>256</b>.
0055As discussed above, encoders <b>256</b> may receive closed captioning data from one or more sources, such as a caption input interface <b>252</b> and/or a closed captioning data file <b>254</b>, and may encode or embed the data in EIA-608 and/or EIA-708 format or other similar formats. Closed captioning may be inserted for live programming, such as live sports or news broadcast events via input interfaces <b>252</b> (e.g. computing devices, keyboards, text-to-speech converters, etc.); or may be provided by program producers or third-party services for pre-recorded content, such as movies or television programs. Closed captioning data files <b>254</b> may be sent to an encoder <b>256</b> via automation or other systems for synchronized embedding during playback for on-air broadcasting.
0056In some implementations, output of an encoder <b>256</b> may be provided to a transmitter <b>258</b>, such as a satellite transmitter, terrestrial transmitter, microwave transmitter, or cable modulator; may be provided to a web server <b>260</b> for streamed broadcasting; and/or may be provided to a VOD server <b>262</b> for transfer to a client responsive to a request. In some implementations, media content from a source <b>250</b> and closed captioning data <b>254</b> may be provided separately to a VOD server <b>262</b>, without embedding, or for embedding via a client-side interface.
0057<figref idref="DRAWINGS">FIG. 3A</figref> is a block diagram of a closed captioning capture device, such as a measurement service capture device <b>220</b>, according to one implementation. A capture device <b>220</b> may include a video input <b>300</b>. Video input <b>300</b> may be any type and form of video input, including an analog composite or component video input, a baseband or RF video input, a digital video input, or any other type of input. In some implementations, a capture device <b>220</b> may include a video splitter <b>302</b> and a video output <b>304</b>. In one such implementation, the capture device <b>220</b> may be deployed as an intermediary device between a video output of a receiver and a video input of a television or other display or between a receiver and a fingerprint generator <b>224</b>. Accordingly, the capture device <b>220</b> may include a video input <b>300</b> for connection to the receiver, video splitter <b>302</b> for splitting the input signal for processing by a closed captioning decoder <b>306</b>, and video output <b>304</b> for connection other devices. In other implementations, the capture device may not include a video splitter <b>302</b> and video output <b>304</b>.
0058The output of video input <b>300</b> or video splitter <b>302</b> may be provided to a closed captioning decoder <b>306</b>, referred to generally as a decoder <b>306</b>. Decoder <b>306</b> may comprise hardware, software, or a combination of hardware and software. In one implementation, decoder <b>306</b> may comprise a CMOS integrated circuit (IC), such as a MC144144 series IC manufactured by Motorola Inc. of Schaumburg, Ill. or an equivalent IC; a programmable IC or field-programmable gate array (FPGA); or any other type and form of circuit or combination of circuits. In another implementation, the capture device <b>220</b> may include a processor <b>314</b> and memory device <b>316</b>, and may execute a software decoder <b>306</b>, which may read a digital input or output of an analog-to-digital converter connected to video input <b>300</b>.
0059Decoder <b>306</b> may output one or more strings of closed captioning data. EIA-608 allows for four channels of information. In some implementations, decoder <b>306</b> may output a plurality of these channels, while in other implementations, decoder <b>306</b> may output a single channel or be selectively set to output a single channel. Similarly, EIA-708 allows for 63 channels plus two backwards-compatible EIA-608 channels, and decoder <b>306</b> may be set to output one or more of the embedded channels.
0060In some implementations, capture device <b>220</b> may include a hash calculator <b>308</b>. Hash calculator <b>308</b> may comprise hardware, software, or a combination of hardware and software for performing a hashing calculation on a string of output data from closed captioning decoder <b>306</b>. Hash calculator <b>308</b> may comprise an IC, PIC, FPGA, or other hardware programmed to perform a cryptographic or non-cryptographic hashing function, such as a message-digest algorithm (MD) hash (e.g. MD2, MD4, MD5, MD6, etc.), secure hash algorithm (SHA) hash, or any other type and form of hashing function. In other implementations, a hash calculator <b>308</b> may comprise a software algorithm, stored in memory <b>316</b> and executed by a processor <b>314</b> on an output of a decoder <b>306</b>. As discussed above, a hash calculator <b>306</b> may perform a hashing calculation on any number of characters or words, and may utilize a sliding window to perform hashing calculations on overlapping data sets output from a decoder <b>306</b>.
0061In some implementations, an output of decoder <b>306</b> and/or hash calculator <b>308</b> may be buffered in a buffer <b>310</b>, such as a First-in/First-out (FIFO) buffer, ring buffer, or similar memory structure. As a single field of closed captioning data may be just a few words or characters, it may be more efficient to collect a few kilobytes or more of closed captioning data and/or hash calculation results before transmitting data over a network or writing data to a log or entity database. Accordingly, in such implementations, data may be buffered in buffer <b>310</b> for a predetermined period of time or a predetermined amount of data may be buffered for subsequent transmission.
0062In some implementations, an output of a buffer <b>310</b>, and/or decoder <b>306</b> or hash calculator <b>308</b>, may be transmitted or streamed via a network interface <b>312</b> to an audience measurement server and/or entity database <b>234</b> or caption log <b>222</b>. A network interface <b>312</b> may comprise any type and form of network interface, including a wired interface (e.g. Ethernet, including 10 Base T, 100 Base T, or 1000 Base T (“Gigabit”)), a wireless interface (e.g. 802.11a, 802.11b, 802.11g, 802.11n, 802.11.ac, Bluetooth, Bluetooth Low Energy, Near-field Communication (NFC)), a cellular interface, or any other type of interface for transmitting data over a network. In some implementations, network interface <b>312</b> may comprise a parallel or serial interface, such as a USB interface, an IEEE 1394 (Firewire) interface, an RS-232 interface, an RS-485 interface, or any other type and form of interface to another computing device. In many implementations, a second computing device may serve as an intermediary for communications to an audience measurement server. In one such implementation, a capture device may communicate via a USB interface with a desktop computer, which may transmit captured closed captioning data via an Ethernet interface to a network gateway or switch connected to the Internet for transmission to an audience measurement server. In such implementations, network interface <b>312</b> may be referred to as a communications interface. In some implementations, the capture device <b>220</b> may store decoded and/or hashed data in a memory <b>316</b>, for subsequent synchronization or transfer via a computing device connected to a network <b>210</b>.
0063As discussed above, in many implementations, a capture device <b>220</b> may include a processor <b>314</b>. Processor <b>314</b> may comprise any type and form of processing unit, including a microprocessor, application-specific integrated circuit (ASIC), FPGA, etc., or combinations of these or other processing units. In many implementations, processor <b>314</b> may be a multi-core processor or an array of processors. A capture device <b>220</b> may also include memory <b>316</b>, which may include, but is not limited to, electronic, optical, magnetic, or any other storage devices capable of providing processor <b>314</b> with program instructions. Memory <b>316</b> may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor <b>314</b> can read instructions and, in some implementations, to which processor <b>314</b> can write decoded or hashed closed captioning data for subsequent transmission via network interface <b>312</b>. The instructions may include code from any suitable computer programming language such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python and Visual Basic.
0064In some implementations, a capture device <b>220</b> may include a device identifier <b>318</b>. Device identifier <b>318</b> may be an alphanumeric string, data string, serial number, MAC address, IP address, username or account name, GUID, cookie, random or pseudorandom number, or any other type and form of identifier, including combinations of these or other identifiers, to identify the capture device <b>220</b>. In some implementations, the device identifier <b>318</b> may be fixed to the device or preconfigured in the device, such as a manufacturer serial number or MAC address, while in other implementations, the device identifier <b>318</b> may be dynamically set by a panel provider, by the audience measurement server, or other entity, such as via a cookie or username. In some implementations, a unique or new device identifier <b>318</b> may be set for each communication to the audience measurement server, while in other implementations, the device identifier <b>318</b> may not be changed, or may be changed periodically (e.g. hourly, daily, weekly, etc.) or at other intervals (e.g. on restart of the capture device, login to an internet service, etc.). Device identifier <b>318</b> may be transmitted to the audience measurement server before, with, or subsequent to a transfer of decoded and/or hashed closed captioning data, such that the data may be identified as having been captured by the device <b>220</b>. In one embodiment, a capture device <b>220</b> may log in or establish an authenticated session with an audience measurement server using the device identifier <b>318</b>. In another embodiment, the capture device <b>220</b> may transmit closed captioning data in the body of a packet, with the device identifier included in the header of the packet. Closed captioning data may be transmitted via a RESTful protocol, HTTP request (e.g. a POST or GET request with captioning data as a parameter-value pair), or via any other such application, session, or presentation layer protocol. In other implementations, closed captioning data may be transmitted via an options field of a transport layer protocol packet header, such as a TCP or UDP packet. In other implementations, closed captioning data may be provided as a serial bit stream.
0065In some implementations, a capture device <b>220</b> may include a power supply <b>320</b>. Power supply <b>320</b> may comprise a battery, AC power supply, DC power supply, USB power supply, Power-over-Ethernet (PoE) power supply, inductive power supply, or any other type and form of power supply. Although illustrated internal to a capture device <b>220</b>, in many implementations, a power supply <b>320</b> may be external from device <b>220</b>, such as an external AC-to-DC converter.
0066<figref idref="DRAWINGS">FIG. 3B</figref> is a block diagram of an audience measurement server <b>228</b>, according to one implementation. In many implementations as discussed above, audience measurement server <b>228</b> may comprise a plurality of devices connected via a network, such as a server farm or cluster or a cloud of devices. In other implementations, one or more audience measurement servers <b>228</b> may comprise a virtual machine executed by a physical machine. Accordingly, in such implementations, audience measurement server <b>228</b> may comprise one or more of each of interfaces, memory, and processors <b>350</b>-<b>356</b>.
0067An audience measurement server <b>228</b> may include one or more storage device or capture device interfaces <b>354</b>, and one or more network interfaces <b>356</b>. As discussed above, in many implementations, a capture device <b>220</b> may communicate with an audience measurement server <b>228</b> via a network <b>210</b> to a network interface <b>356</b>. Network interface <b>356</b> may comprise any type and form of network interface, such as a wired interface (e.g. Ethernet), a wireless interface (e.g. 802.11a, 802.11b, 802.11g, 802.11n, 802.11.ac, Bluetooth, Bluetooth Low Energy, NFC interface, etc.), a cellular interface, or any other type of interface for receiving data from capture devices <b>220</b>. Network interface <b>356</b> may also be used for communicating with a search service and/or for receiving search logs or logs for spiking queries from a search service. In some implementations, network interface <b>356</b> may also be used for providing music or facial recognition data to a music matching service or facial recognition database service and for receiving identifications of matching entities.
0068In many implementations, as discussed above, an audience measurement server <b>228</b> may be deployed locally to an audience measurement capture device <b>220</b>. In such implementations, the capture device may connect via a network interface <b>356</b>, or via a capture device interface <b>354</b>, including a parallel or serial interface, such as a USB interface, an IEEE 1394 (Firewire) interface, an RS-232 interface, an RS-485 interface, or any other type and form of interface. In many implementations, an audience measurement server <b>228</b> may connect to one or more storage devices, such as hard drives, flash drives, redundant arrays of independent disks (RAID arrays), network attached storage (NAS) devices, storage area network (SAN) devices, or any other type and form of storage. Such storage devices may store closed captioning data <b>222</b>, as discussed above, received from one or more broadcasters <b>208</b>, one or more audience measurement capture devices <b>220</b>, or other data. Storage devices may also store an entity database <b>234</b>, a fingerprint database, a viewership database <b>230</b>, and/or audience measurement data, discussed in more detail below.
0069An audience measurement server <b>228</b> may include one or more processors <b>350</b>, including one or more microprocessors, ASIC circuits, FPGAs, etc., or combinations of these or other processing units. In many implementations, processor <b>350</b> may be a multi-core processor or an array of processors. In other implementations, a processor <b>350</b> may comprise a virtual processor executed by a physical processor. Processor <b>350</b> may be configured for executing a measurement engine <b>358</b> and/or hash calculator <b>360</b>, as well as for communicating with capture devices <b>220</b> and/or storage devices via network interface <b>356</b> and capture device interface <b>354</b>.
0070An audience measurement server <b>228</b> may also include memory <b>352</b>, which may include, but is not limited to, electronic, optical, magnetic, or any other storage devices capable of providing processor <b>350</b> with program instructions. Memory <b>352</b> may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor <b>350</b> can read instructions and to which processor <b>350</b> can write data. As shown, in some implementations, a closed captioning database <b>220</b>, an entity database <b>234</b>, a fingerprint database, and/or a viewership database <b>230</b> may be stored in memory <b>352</b> rather than an external storage device.
0071Memory <b>264</b> may include a measurement engine <b>358</b>. Measurement engine <b>358</b> may comprise an application, service, server, daemon, routine, subroutine, or other executable logic for identifying spiking queries via identification of baseline query volumes and comparison of volumes to thresholds or comparison of volume change rates to thresholds and/or for comparing spiking queries to a closed captioning or entity database to identify items of broadcast content corresponding to the queries. As discussed above, in some implementations, a measurement engine <b>358</b> may determine thresholds dynamically based on baseline query volumes, content frequency, spike length, or any other such feature.
0072Measurement engine <b>358</b> may execute one or more matching or comparison functions, such as a search function, a lookup function, or any other such function. Measurement engine <b>358</b> may identify a spiking search query or receive an identification of a search query from a search service and search within an entity database or closed caption database for keywords or entities corresponding to the search query. As discussed above, in some implementations, a measurement engine <b>358</b> may search for semantically related keywords or entities that are different from the spiking query but related (e.g. in the same semantic category). Semantic categories and/or interrelationships between keywords or entities may be identified in a semantic dictionary. Once a keyword or entity is identified in the database corresponding to the spiking query, the measurement engine <b>358</b> may retrieve an identification of a broadcast time and channel or broadcast stream identification corresponding to the keyword or entity, and identify whether the time is within a particular time period of the search spike. In some implementations, an item of content may be identified as triggering the spike only if the item of content was broadcast within a specified time period (e.g. 5 minutes, 10 minutes, 15 minutes, one hour, or any other such time). The time period may be selected based on frequency of broadcast of the item of content, with shorter periods for more frequent broadcasts; may be selected based on length of the spike, with longer periods for longer search spikes; and/or any combination of these or other information.
0073In some implementations, a measurement engine <b>358</b> may maintain a viewership database <b>230</b>. Viewership database <b>230</b> may comprise any type and form of database, including a data file, flat file, relational database, structured database, etc. for storing identifications of content and/or broadcast channels and time periods and a corresponding set of device identifiers of client devices that initiated queries matched to corresponding data for the content captured by measurement capture device <b>220</b> or received from broadcasters <b>208</b>. Once an item of content is identified as triggering the search spike, device identifiers that transmitted corresponding search requests may be added to the viewership database <b>230</b> as associated with the item of content. A measurement engine <b>358</b> may count unique device identifiers associated in the database <b>230</b> with an item of content to determine an audience measurement for the content. A viewership database <b>230</b> may also store confidence scores of matches of each device identifier to an item of content. Confidence scores may be based on the difference between a spike peak level and a baseline search volume, with larger differences corresponding to higher confidence scores; and/or may be based on the frequency of search spikes with more frequent spikes corresponding to lower confidence scores. In some implementations, confidence scores may be based on a distance of a semantic correspondence or relationship between the spiking query and the query transmitted from the device or keyword or entity associated with the item of content. If a spiking query is for a particular football team and is associated with a broadcast of a game including that team, a device transmitting a query for the team name or an image of the team logo may have a higher confidence score compared to a device transmitting a query for “football” generally. As discussed above, in many implementations, an inference may be made that a viewer also viewed a prior or subsequent item of content, and the device identifier of the user's device may be added to the viewership database <b>230</b> for entries for said prior and subsequent items of content. Confidence scores for these other items of content may be reduced from the confidence score for the query-triggering item of content according to a prior confidence score adjustment rate and subsequent confidence score adjustment rate, which may be identical or different. The adjustment rate may lower a confidence score by a designated percentage per second or per minute, with a confidence score for an item of content based on the reduced confidence score at the beginning, middle, or end of the item of content. In some implementations, when generating an overall audience count for an item of content, device identifiers having low confidence scores may be removed or excluded from the audience measurement count.
0074In a similar implementation, the measurement engine may maintain a database or array of content associated with a device identifier, in addition to or instead of a database or array of device identifiers associated with an item of content. Rather than maintaining a list or array of devices identified as being part of the audience for a particular show, the measurement engine may maintain a list or array of shows identified as having been received by a particular device. In some such implementations, the measurement engine may subsequently search through a plurality of arrays associated with devices for a content identifier of an item of content, to determine how many devices were part of the audience. In a similar implementation, the arrays may be provided to a third party, such as a panel provider, for analysis and/or audience measurement.
0075<figref idref="DRAWINGS">FIG. 4A</figref> is a flow diagram of the steps taken in one implementation of a process <b>400</b> for identifying audience members of an item of content. In brief overview, at step <b>402</b>, an audience measurement server may receive a search log. At step <b>404</b>, in some implementations, the audience measurement server may determine if a search query volume is above a baseline volume for the query. If the search query volume is not above a baseline volume, step <b>402</b> may be repeated. If the search query volume is above a baseline volume, then in some implementations, the audience measurement server may determine if the search query volume is above a spike threshold at step <b>406</b>, or determine if the search query volume is increasing at a rate dV/dT greater than a threshold at step <b>408</b>. If the search query volume is neither above a spike threshold nor increasing at a rate greater than a threshold, step <b>402</b> may be repeated. If the search query volume or rate is above a threshold, then in some implementations, the audience measurement server may retrieve a corresponding entity or closed caption log entry at step <b>410</b>. At step <b>412</b>, the audience measurement server may determine if a broadcast time associated with the entity or caption was within a recent time period. If not, then the audience measurement server may determine whether other corresponding entities or log entries exist at step <b>414</b>. If other corresponding entities do exist, then steps <b>410</b>-<b>412</b> may be repeated.
0076If the broadcast time associated with the entity or caption was within a recent time period, then at step <b>416</b>, in some implementations, the audience measurement service may retrieve one or more content identifiers for the channel and time associated with the entity or caption (as well as prior and subsequent times). At step <b>418</b>, the audience measurement service may add the retrieved content identifiers and device identifiers in the search log to a viewership database. At <b>420</b>, in some implementations, the audience measurement service may add a confidence score to each device identifier entry for a content identifier. At step <b>422</b>, the audience measurement service may adjust confidence scores for the device identifier for prior or subsequent content items. In many implementations, one or more of steps <b>418</b>-<b>422</b> may be combined.
0077Still referring to <figref idref="DRAWINGS">FIG. 4A</figref> and in more detail, at step <b>402</b> of method <b>400</b>, an audience measurement server may receive a search log. In some implementations, the audience measurement server may request a search log from a search provider or service, and receive the log in response. In other implementations, the search provider or service may provide the log to the audience measurement server, periodically or continuously. In still other implementations, the search provider may identify spiking search queries and may transmit a log of only the spiking queries to the audience measurement server. In such implementations, steps <b>404</b>, <b>406</b>, and/or <b>408</b> may be performed by the search server prior to step <b>402</b>. The search log may be received via any type and form of transfer including a file transfer over a LAN, transfer via a WAN such as the Internet, or by reading the log from a shared storage location with a search service.
0078At step <b>404</b>, in some implementations, the audience measurement server may determine if a search query volume is above a baseline volume for the query. In other implementations as discussed above, the search server may determine if a search query volume is above a baseline volume for the query. Determining whether a query volume is above a baseline volume may comprise monitoring a number of search queries over a designated time period, such as a second, minute, ten minutes, or an hour. In implementations utilizing a semantic dictionary, determining whether a query volume is above a baseline volume may comprise monitoring a plurality of related search queries and aggregating the number of requests for any related query over the designated time period. If the search query volume is not above a baseline volume, step <b>402</b> may be repeated.
0079If the search query volume is above a baseline volume, then in some implementations, the audience measurement server (or search service) may determine if the search query volume is above a spike threshold at step <b>406</b>. As discussed above, a spike threshold may be set dynamically based on a baseline volume, such as twice the baseline volume, three times the baseline volume, ten times the baseline volume, the baseline volume plus one query per second, or any other such amount. Dynamically setting the spike threshold may allow use with both high baseline volume and low baseline volume queries.
0080If the search query volume is above a baseline volume, then in some implementations, the audience measurement server (or search service) may determine if the search query volume is increasing at a rate dV/dT greater than a threshold at step <b>408</b>. As discussed above, a spike may be determined based on the rate of increase of the search volume rather than by comparison to a specific volume threshold. Monitoring the rate of increase of a query volume may allow for faster identification of search spikes or identification of very short term spikes.
0081If the search query volume is neither above a spike threshold nor increasing at a rate greater than a threshold, step <b>402</b> may be repeated. If the search query volume or rate is above a threshold, then in some implementations, the audience measurement server may retrieve a corresponding entity or closed caption log entry at step <b>410</b>. Retrieving a corresponding entity or log entry may include searching an entity database or caption log for entries corresponding to the search query. In some implementations, retrieving a corresponding entity or log entry may include retrieving, from a semantic dictionary, an identification of a category corresponding to a search query and/or one or more additional search queries or entities that are related to the spiking query. The audience measurement service may search the entity database or caption log for any entry corresponding to the category or one or more additional search queries. In other implementations, as discussed above, steps <b>404</b>-<b>408</b> may be performed by search provider prior to step <b>402</b>, and the audience measurement server may receive a log of a spiking query and proceed directly to step <b>410</b>.
0082Each entity or caption in a database may be associated with a broadcast service and/or channel and a broadcast time. At step <b>412</b>, the audience measurement server may determine if the broadcast time associated with the retrieved entity or caption was within a recent time period (e.g. whether the entity was broadcast within a predetermined period of time relative to the search query spike). “Recent” may thus be relative to the search query spike, rather than a present time of execution of method <b>400</b> (such as when method <b>400</b> is performed on historical search logs). The time period may be determined dynamically based on frequency of broadcast of an item of content associated with the retrieved entity or caption, with more frequently broadcast items (e.g. specific advertisements, syndicated programs, popular songs, etc.) having a shorter time period. The time period may also be determined based on a spike frequency and/or spike length for the query with less frequent or longer spike lengths associated with longer time periods; or may be determined based on the baseline search volume or difference between a peak search volume and a baseline search volume, with larger differences or lower baseline volumes associated with longer time periods. Entities or captions not received within a recent time period may be purged from the database in some implementations. This may help avoid ambiguous results in which a search query matches multiple broadcasts of the same content. If the broadcast time associated with the retrieved entity or caption was not within a recent time period, then the audience measurement server may determine whether other corresponding entities or log entries exist at step <b>414</b>. If other corresponding entities do exist, then steps <b>410</b>-<b>412</b> may be repeated. In some implementations, the audience measurement server may retrieve the most recent matching entity or caption. Accordingly, if the most recent matching entity or caption is outside of the recent time period, then no other corresponding entities may exist. In some implementations, the time period may be expanded to include other entities or captions and corresponding broadcasts of content, but a confidence score of an association with a device transmitting a query and viewership of said content may be correspondingly reduced. In still other implementations, at step <b>410</b>, an entity may be retrieved via a search within a specified time window. This may allow the system to skip steps <b>412</b>-<b>414</b>.
0083If the broadcast time associated with the entity or caption was within a recent time period, then at step <b>416</b>, in some implementations, the audience measurement service may retrieve a content identifier for the channel and time associated with the retrieved entity or caption. The content identifier may identify a broadcast system (e.g. terrestrial network, satellite network, cable provider, Internet stream or source, etc.) and channel or content stream from the broadcaster, as well as a time at which the entity or caption was detected in the stream. Content identifiers may be retrieved from a programming guide received from a broadcaster or other service, may be determined via metadata, closed captioning, or other data provided with the beginning of an item of content (e.g. a television show intro, a caption identifying a news program, etc.). In some implementations, as discussed above, the audience measurement service may also retrieve content identifiers for the channel at times prior to the time associated with the retrieved entity or caption, and content identifiers for the channel at times subsequent to the time associated with the retrieved entity or caption. In many implementations, the audience measurement service may retrieve content identifiers for such prior or subsequent content that was broadcast within a specified time range of the query-triggering content (e.g. 5 minutes, 10 minutes, or any other such value).
0084At step <b>418</b>, the audience measurement service may add the retrieved content identifiers and device identifiers in the search log to a viewership database. As discussed above, in some implementations, a viewership database may include an entry for each item of content, and the audience measurement server may add device identifiers from the spiking query log to the entry. In other implementations, a viewership database may include an entry for each device identifier, and the audience measurement server may add entries for each item of content to the entries of device identifiers that transmitted a query corresponding to the spike.
0085At <b>420</b>, in some implementations, the audience measurement service may add a confidence score to each device identifier entry for a content identifier. At step <b>422</b>, the audience measurement service may adjust confidence scores for the device identifier for prior or subsequent content items. In many implementations, one or more of steps <b>418</b>-<b>422</b> may be combined. As discussed above, an association between a device identifier of a device that transmitted a spiking query and an item of content corresponding to the query may be given a confidence score. The confidence score may be a default score, or the confidence score may be based on one or more of: a frequency of spiking queries for the query, with more frequent spikes associated with a lower confidence score that the item of content, rather than a previous item of content, triggered the search query; a frequency of broadcast of the item of content, with frequently broadcast items of content associated with a lower confidence score that the viewer watched that particular broadcast of the item; a length of a search spike, with long spikes potentially indicating a trending topic or word-of-mouth spread of the topic rather than that users triggering queries watched the particular broadcast (e.g. lower confidence score); a difference between a baseline search volume and a peak spike volume with a large difference indicating that a viewer was more likely to have watched the broadcast (e.g. higher confidence score); a baseline search volume with a very low search volume indicating that users triggering searches during the spike were more likely to have watched the item of content; or any other such information. Confidence scores for prior and subsequent items of content may be reduced from the confidence score generated for the query-triggering item of content, in accordance with prior and subsequent confidence adjustment rates. In some implementations, subsequent adjustment rates may be larger (reducing the confidence score by a larger amount) than prior adjustment rates, as viewers may have stopped watching the broadcast stream in order to generate queries.
0086In some implementations, audience measurement may be performed in real time, incrementing a counter for each device identifier added to an audience array or entry for an item of content and decrementing the counter (and possibly removing a device identifier) responsive to a confidence measure for the device identifier falling below a threshold. In other implementations, audience measurement may be performed responsive to a request for an audience measurement, or responsive to the end of an item of content being broadcast. <figref idref="DRAWINGS">FIG. 4B</figref> is a flow diagram of the steps taken in one implementation of a process <b>450</b> for measuring an audience of an item of content by an audience measurement server, according to one implementation. At step <b>452</b>, the measurement engine may receive a request for an audience measurement for an item of content. The request may be received from a broadcaster, advertiser, producer, panel provider, marketer, analyst, or other entity. The request may identify one or more items of content, and, in some implementations, may include a confidence measure threshold to utilize for the measurement.
0087At step <b>454</b>, in some implementations, the measurement engine may determine if the item of content is still be broadcast or is over. If the content is still being broadcast, then in some implementations, the measurement engine may wait and repeat step <b>454</b> until the item of content is over. The measurement engine may determine that the item of content is still being broadcast based on a published broadcast schedule, responsive to metadata received from a broadcaster including program start and end times, or based on other similar information. In other implementations, step <b>454</b> may be skipped, for live audience measurements during a program.
0088At step <b>456</b>, the measurement engine may retrieve a first device identifier, and, in some implementations, a confidence score or measure associated with the device identifier, from an audience array or database for the item of content. At step <b>458</b>, in some implementations, the measurement engine may determine if the confidence score is above a threshold n, such as a predetermined threshold or a threshold received at step <b>452</b>. If the confidence score is greater than the threshold n, then at step <b>460</b>, an audience counter for the item of content may be incremented. If the confidence score is less than the threshold, then step <b>460</b> may be skipped. At step <b>462</b>, the audience measurement engine may repeat steps <b>456</b>-<b>462</b> for each additional device identifier in the audience array, until a total audience measurement for the item of content is generated. In implementations not utilizing a confidence score, step <b>458</b> may be skipped and the audience counter may be a direct count of the number of device identifiers in the audience array. At step <b>464</b>, the audience measurement may be output or provided as a response to the request for audience measurement.
0089Closed captioning databases, entity databases, fingerprint databases, and viewership databases or arrays may be periodically purged. Device identifiers and confidence scores may be removed from an audience array after a program is complete and a measurement is generated. In other implementations, the device identifiers and confidence scores may be removed from the array after an hour, a day, a week, or any other amount of time. This may allow for aggregation of audience measurements including live audiences as well as audience members who record and time-shift the program for later watching. Closed captioning databases, entity databases, and fingerprint databases may also be purged with entries removed after a predetermined amount of time, such as prior to a next episode of a program, or simply periodically.
0090In some implementations, users initiating queries may be provided with an opportunity to control whether or how to transmit measurement data to the audience measurement server. Thus, the user may have control over how information is collected about him or her and used by the audience measurement servers and content providers.
0091Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium may be tangible.
0092The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
0093The term “client or “server” include all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
0094A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
0095The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
0096Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magnetooptical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magnetooptical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
0097To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display), OLED (organic light emitting diode), TFT (thin-film transistor), plasma, other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc., by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending webpages to a web browser on a user's client device in response to requests received from the web browser.
0098Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
0099The features disclosed herein may be implemented on a smart television module (or connected television module, hybrid television module, etc.), which may include a processing circuit configured to integrate Internet connectivity with more traditional television programming sources (e.g., received via cable, satellite, over-the-air, or other signals). The smart television module may be physically incorporated into a television set or may include a separate device such as a set-top box, Blu-ray or other digital media player, game console, hotel television system, and other companion device. A smart television module may be configured to allow viewers to search and find videos, movies, photos and other content on the web, on a local cable TV channel, on a satellite TV channel, or stored on a local hard drive. A set-top box (STB) or set-top unit (STU) may include an information appliance device that may contain a tuner and connect to a television set and an external source of signal, turning the signal into content which is then displayed on the television screen or other display device. A smart television module may be configured to provide a home screen or top level screen including icons for a plurality of different applications, such as a web browser and a plurality of streaming media services, a connected cable or satellite media source, other web “channels”, etc. The smart television module may further be configured to provide an electronic programming guide to the user. A companion application to the smart television module may be operable on a mobile computing device to provide additional information about available programs to a user, to allow the user to control the smart television module, etc. In alternate embodiments, the features may be implemented on a laptop computer or other personal computer, a smartphone, other mobile phone, handheld computer, a tablet PC, or other computing device.
0100While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
0101Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
0102Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking or parallel processing may be utilized.
Contents4
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO2019190992A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2022159337A1 | Cited by | United States of America | Search report |
| US2022382819A1 | Cited by | United States of America | Pre-grant |
| US2024406499A1 | Cited by | United States of America | Search report |
| US2024282005A1 | Cited by | United States of America | Search report |
| US2019052930A1 | Cited by | United States of America | Search report |
| US10848578B1 | Cited by | United States of America | Search report |
| US12075117B2 | Cited by | United States of America | Search report |
| US12456176B2 | Cited by | United States of America | Search report |
| US11716507B2 | Cited by | United States of America | Search report |
| US2023344536A1 | Cited by | United States of America | Search report |
| US11250872B2 | Cited by | United States of America | Applicant |
| US12462429B2 | Cited by | United States of America | Search report |
| US12271449B2 | Cited by | United States of America | Applicant |
| US11388245B1 | Cited by | United States of America | Search report |
| US10735808B2 | Cited by | United States of America | Search report |
| US2023396838A1 | Cited by | United States of America | Search report |
| US10346474B1 | Cited by | United States of America | Search report |
| US2024420289A1 | Cited by | United States of America | Search report |
| US11048702B1 | Cited by | United States of America | Search report |
| US10075751B2 | Cited by | United States of America | Search report |
| US10614137B2 | Cited by | United States of America | Applicant |
| US2011099201A1 | Cites | United States of America | Pre-grant |
17 members in 5 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201414556317 | United States of America | A | |
| US201414556317 | – | – | – |
Members17
| Document | Office | Kind | |
|---|---|---|---|
| US2016156972A1 | United States of America | A1 | |
| WO2016089510A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CN107004210A | China | A | |
| GB201710513D0 | United Kingdom | D0 | |
| DE112015005408T5 | Germany | T5 | |
| GB2549639A | United Kingdom | A | |
| US9967619B2 | United States of America | B2 | |
| US2018242041A1 | United States of America | A1 | |
| GB2549639B | United Kingdom | B | |
| US10567839B2 | United States of America | B2 | |
| US2020213669A1 | United States of America | A1 | |
| CN107004210B | China | B | |
| CN112054864A | China | A | |
| US10999626B2 | United States of America | B2 | |
| US2021243496A1 | United States of America | A1 | |
| US11546659B2 | United States of America | B2 | |
| CN112054864B | China | B |
92 transactions on the USPTO file
Allowed after 3 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 3
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for Allowance | – | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| After Final Consideration Program Amendment too ExtensiveAFNE | AFNE | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Response after Final ActionA.NE | A.NE | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) Filed | – | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email Notification | – | |
| Email Notification | – | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSR | – | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) Filed | – | |
| IFW Scan & PACR Auto Security Review | – | |
| Entity status set to undiscounted (initial default setting or status change) | – | |
| Initial Exam Team nnIEXX | IEXX | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160156972
- Publication, DOCDB
- 2016156972
- Publication, EPODOC
- US2016156972
- Application
- 14556317
- Application, DOCDB
- 201414556317
- Application, EPODOC
- US201414556317
Titles
- English
- SYSTEMS AND METHODS FOR IDENTIFYING USERS WHO WATCHED A TELEVISION ADVERTISEMENT
Patent term adjustment
- A delay
- +59 daysthe office missed an examination deadline
- Applicant delay
- −101 days
- Net adjustment
- 0 days
Classification
- CPC, 9
- H04N21/44222
- G06Q30/0246
- H04N21/44224
- H04H60/45
- H04H60/33
- H04N21/812
- H04H60/63
- H04H60/66
- G06Q30/0242
- IPC, 3
- H04N21 442
- G06Q30 02
- H04N21 81
- USPC, 1
- 725014000