Users often consume media, such a live or on demand TV broadcast or other media content, in an environment (e.g., a room in their home or office) in which one or more devices are available for their use. For example, a TV show may be playing in a room in which one or more viewers each has access to a mobile phone, tablet, or other mobile device; a personal computer (PC), laptop, or other computing device; a smart TV or other “smart” consumer electronic device; etc. In current approaches, typically a user's experience with respect to such other devices has been distinct from the media being consumed in the environment.
Techniques are known to provide online advertising and other electronic content based on context, e.g., location, time of day, the content of a page or other content within which the advertising or other content is to be displayed, etc., and based on information determined to be (more likely to be) of interest to a user, based on, for example, a user profile, pages or other content the user has viewed recently, items the user has viewed on shopping sites, topics the user has mentioned in social media posts, etc. However, typically the information used to select such content is based on prior activities of the user and/or context information intrinsic to and available directly from the device to which advertising or other content is being selected to be provided.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Selecting content, for example an ad, to be provided to a device based at least in part on a media content, such as a TV program or commercial, that has been determined using the device to be playing in an environment in which the device is located, is disclosed. In various embodiments, a main or other topic associated with the media content being played in the environment may be determined, e.g., through backend processing of the media stream, and used to select content to be provided to the device, such as an ad.
In some embodiments, advertisement codes (e.g., IAB codes, Mobile rich media ad interface, etc.) may be determined to be related to TV and Media topics, and that relationship used to associate advertisement codes with the content currently being played, e.g., in a local area in which the device is located, by a channel the content of which has been recognized to be playing in the audio environment in which the device is located. The advertisement codes may then be used, in some embodiments along with other information (e.g., user profile, past user behavior, etc.), to select ads or other content to be served to the device.
For example, a user may be determined, using techniques described herein, to be watching a particular cable or other TV channel and the main topic being discussed on the show currently being broadcast on that channel may have been determined through processing of the media stream currently being broadcast by that channel, to be Green Energy. In various embodiments, an ad or other content would be selected to be served to a device located in the environment in which the detected TV channel is being played, such as the device used to detect that the media channel is being played, based at least in part on the main topic being discussed on the TV program currently being broadcast on that channel. For example, in the case of program about Green Energy, an ad for an electric or other “green” car may be provided.
In the example shown in
In various embodiments, client device 104 is configured to sample the ambient environment to determine if conditions are present to enable media detection to be performed. For example, the client device 104 may determine whether an ambient sound level in proximity of the client device 104 is sufficiently high to perform media detection, whether characteristics possibly associated with media content are detected, etc. In some embodiments, client device 104 may be configured to attempt to perform media detection only at configured and/or configurable times, e.g., certain times of day, different times of day depending on the day of the week, on days/times learned over time to be times when the client device 104 may be in an environment in which media is being played (e.g., user often watches TV on weekday evenings but rarely during the workday, etc.), etc.
In the example shown in
Detection server 112 uses media content signatures in a media signatures database (or other data store) 114 to determine if data received from client device 114 matches known media content. For example, in some embodiments, media signatures 114 may include for each of a plurality of cable TV or other broadcast channels a corresponding set of “feature sets” each of which is associated with a media content and/or portion thereof that is being, was, and/or is expected to be broadcast (or otherwise provided, e.g., streamed, etc.), e.g., at an associated time of a given day. For example, a backend process not shown in
In various embodiments, detection server 112 may be configured to determine based on data received from the client device 104 and the media signatures 114 that a particular cable or other TV channel is being viewed at the location in which the client device 104 sampled the ambient audio environment. In some embodiments, the detected channel and/or information determined based at least in part thereon may be communicated to one or more of the client device 104 and the media device 102. For example, advertising or other content associate with a program being broadcast on a cable channel that has been detected in the ambient audio environment may be served to the client device 104. In the example shown, detection server 112 may be configured to update one or more profiles associated with a user, a device (e.g., media device 102 and/or client device 104), and/or a location (e.g., one associated with media device 102 and/or client device 104, and/or determined based on a GPS or other location service of client device 104) may be updated in a user/device profiles database 116.
In various embodiments, user, device, and/or location profiles stored in profiles database 116 may include one or more of user profile data that was provided explicitly by and/or inferred about a user; historical data indicating which media channels have been detected in a given environment and/or by a given client device and at which times and days of the week, etc.; records of content or other data provide to a user, location, and/or device based at least in part on media channel and/or content detection, etc.
In the example shown, a media content stream is received (302). For example, a media content stream may be received at the same time or a short time before the same stream is received at one or more distribution nodes used to broadcast or otherwise provide the stream to end user devices, such as a cable TV head end. Data comprising a text-based representation of the content of the media stream, e.g., closed captioning data, subtitles, dynamically generated audio-to-text data, etc., is extracted (304).
Language processing techniques are used to determine one or more topic(s) with which the media stream or at least the most recently received portion thereof is/are associated (306). In some embodiments, the stream of words extracted from the media stream is divided in overlapping continuous chunks of strings. Every single chunk includes enough words to be used to identify a correct temporary topic, e.g., using indexing algorithms with semantic analysis. The topics identified are ordered by importance and saved in a database with associated information, such as the TV or other channel ID with which the media stream is associated and a timestamp, e.g., indicating a location within the stream of a portion of the stream with which the topic has been determined to be associated. In some embodiments, a set of main topics is developed over time, as more and more of the media stream is received and processed, and additionally topics associated more particularly with specific portions of the media stream, e.g., the last minute or two, may be maintained. In this way, secondary content more specifically relevant to the portion of media content that has just been broadcast may be selected to be provided.
Topics determined to be associated with the media stream are mapped to one or more suitable ad codes (for example IAB codes) and/or other classification codes (308). In some embodiments, classification systems (e.g., deep neural networks) may be used to map the words of the topics and the advertising categorization codes (e.g., IAB Codes: IAB1: Entertainment, IAB17 Sports, IAB17-2: Baseball, etc.). Data associating the identified advertising (or other classification) codes with the corresponding media stream and/or portions thereof is saved (310) and made available to be used to select and provide secondary content, such as ads, to a device determined to be in a location in which the TV or other media stream is being played.
In the example shown in
The server identifies the channel, the program, and the relative timestamp (404). The identified information is stored in a database, e.g., in a user, device, and/or location profile or other data structure (406). Advertising or other classification codes corresponding to the media channel and program that have been detected as being played are retrieved according to the channel and the timestamp (408). For example, the process of
A relevant ad or other secondary content is selected based on the retrieved advertising or other classification code(s) and provided in real-time, such as immediately and/or in response to a next ad request, e.g., from an app running on the device used to recognize the media channel (410).
In various embodiments, data may be saved reflecting the observed viewing habits of a specific user (and/or device and/or location). Such data may be used in the future to select and serve content that may be more relevant for that user. For example, if a user who has been determined to be watching a football game currently was observed previously to be watching a Trivia Game Show on TV, the service may select and provide a trivia question about football, or the ads selected to be provided to fulfill ad requests from the trivia game app may be ads about football.
In the example shown, in the system 600 a media stream 602 is received by a stream capture module, system, and/or process 604 and provided to a text processing module 606. The text processing module may comprise a software code running on a server or other computer and/or special purpose hardware, such as an ASIC. In various embodiments, one or both of the stream capture module 604 and the text processing module 606 may extract text-based content from the media stream 602, e.g., closed captioning data, subtitles, and/or audio-to-text processing. The text-based content is processed to determine one or more topic(s) associated with the text-based content, e.g., from a set of topic(s) and associated language processing based parameters as stored in a topics database 608. The resulting determined topic(s) and data identifying the media stream (e.g., channel, program) and/or portions thereof (e.g., timestamp, offset) are provided as output 610 to an advertising (or other classification) code decoder 612. Decoder 612 maps the topics to ad codes and stored in ad code index/database 614 data associating the determined ad codes with the corresponding media stream and/or portion thereof.
In various embodiments, media stream 602 may be received substantially concurrently with the broadcast of the media stream by a given media channel. For example, media stream 602 may be received at or near the same time as the same media stream is being provided to distribution nodes for delivery to end users, e.g., via a cable TV head end or other distribution node.
A client device (not shown) located at a physical location 616 listens to the ambient audio environment, extracts audio features, and send the features 618 to channel identification module, system, component, and/or process 620, e.g., a process or module running on a detection server, such as detection server 112 of
In some embodiments, the ad code-based content server 624 may use user profile information store in profile database 622 to select an ad or other content. For example, in some embodiments, the feature set 618 may be received from an app on a client device located at location 616 and which is associated with an identifier that has been mapped to a particular user. In some embodiments, a user may use social network service credentials (e.g., Facebook, etc.) to sign in to the app that provided the feature set 618, enabling topics determined to be potentially of interest to the user, e.g., based on the social network posts, newsfeeds, pages visited and/or commented on, etc. to be considered, along with dynamically detected media and associated information, to select advertising or other content for viewer. For example, if a main topic of a detected media content is “green energy” and the user's profile indicates a recent interest in content associated with search to buy a new car, the ad server 624 may in some embodiments be more likely to serve an ad for an energy efficient car than an ad for a service that installs solar panels on homes, even though both may be associated with the same or related advertising codes associated with clean or “green” energy.
In various embodiments, techniques disclosed herein may be used to provide advertising or other content to users, e.g., via a client device, based at least in part on detection that a specific media channel and/or program is being played in an ambient environment in which the client device is located.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
This application is a continuation of U.S. patent application Ser. No. 14/695,811, filed Apr. 24, 2015 and claims priority to U.S. Provisional Patent Application No. 61/983,992, filed Apr. 24, 2014, both entitled SELECT CONTENT BASED ON MEDIA DETECTED IN ENVIRONMENT which is incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
61983992 | Apr 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14695811 | Apr 2015 | US |
Child | 15247397 | US |