The present disclosure relates generally to media content delivery and, more specifically, to delivering and tracking targeted content for weakly connected devices.
Tailoring media content in a system according to user preference is a desirable feature. Through targeted advertisements, a headend delivers targeted content such as recommended videos and/or advertisements to users in which the users are most likely interested. 2-way client devices (also referred to as fully connected devices) typically receive media content from the headend and report user actions (i.e., impressions) back to the headend. As such, there are many ways to calculate in the backend what content is suitable for users at 2-way client devices based on the user information received from the 2-way client devices. In contrast, for users connecting through weakly connected devices, e.g., 1-way client devices or 2-way client devices that do not share or share limited client data with the backend, it is difficult to target content. For various reasons, e.g., 1-way connectivity, privacy settings, and/or guest or trial usage, etc., weakly connected devices typically receive content from the headend but do not report user action data or report limited user action and viewing history data to the headend. Without such client data, it is difficult for operators to associate area-of-interest attributes to users, thus significantly limiting the value of addressable advertisements.
Currently, targeted advertisements for weakly connected devices are limited to a small set of predefined user attributes (e.g., location, age, income, etc.), which broadcasters know how to assign to each household and/or a segment (i.e., a set of users or viewers with certain attribute(s)) in a given slot. For example, the broadcaster knows the end user's geolocation and/or income and sets the proper value corresponding to the location and/or income attribute for targeted content. The small set of predefined attributes gives the advertisers some capabilities to target advertisements based on segments and provides the advertisers with simple deterministic amounts of advertisements viewed, e.g., when correlating the known segments with panel data.
Panel data are often used by business entities to predict consumer trends for the entire population based on data collected from samples of users. For example, one can use the panel data such as the number of devices tuned to a channel at a given time for estimating the actual number of impressions for each advertisement. In another example, upon identifying segment A corresponding to (North, 24-35) and segment B corresponding to (South, 24-35), a broadcaster can air two different advertisements, e.g., advertisement X for segment A and advertisement Y for segment B. Based on the small set of predefined user attributes, the broadcaster knows the number of households in each segment for the general population. Together with the panel data, the broadcaster can calculate the number of impressions X and Y have statistically been seen.
Similar to the small set of predefined attributes, the panel data also have a limited number of attributes. For example, the panel data provide information related to the number of views for each channel at a given time or the number of views for each event but does not provide statistical data of views for each segment. As such, broadcasters cannot dynamically estimate the number of times each advertisement has been viewed by various segments because previously existing systems cannot derive dynamic segment data based on viewing patterns from the panel data and/or the small set of predefined attributes.
So that the present disclosure can be understood by those of ordinary skill in the art, a more detailed description may be had by reference to aspects of some illustrative embodiments, some of which are shown in the accompanying drawings.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may not depict all of the components of a given system, method, or device. Finally, like reference numerals may be used to denote like features throughout the specification and figures.
Numerous details are described in order to provide a thorough understanding of the example embodiments shown in the drawings. However, the drawings merely show some example aspects of the present disclosure and are therefore not to be considered limiting. Those of ordinary skill in the art will appreciate that other effective aspects and/or variants do not include all of the specific details described herein. Moreover, well-known systems, methods, components, devices, and circuits have not been described in exhaustive detail so as not to obscure more pertinent aspects of the example embodiments described herein.
Targeted content delivery methods, devices, and systems described herein address the aforementioned limited availability of attributes for weakly connected devices by creating dynamic and personal area-of-interest attributes based on viewing patterns. In some embodiments, a learning mechanism on the server side associates content with attributes, e.g., generating metadata and/or tagging assets with associated attributes. On the client side, client engines track viewing patterns; and based on the metadata from the server side and the local viewing patterns, the client engines dynamically select the most appropriate advertisements associated with the attributes. In some embodiments, an engine on the server side mimics or emulates the client engines and combines the client data from weakly connected devices with available data (e.g., the panel data and/or data from fully connected devices) to predict or report the estimated number of times the advertisements have been viewed at weakly connected devices.
In accordance with various embodiments, a content tagging method is performed at a headend that includes one or more processors and a non-transitory memory. The method includes tagging media content items with one or more attributes and corresponding content attribute scores. The method further includes transmitting the tagged media content items to a weakly connected device, where the one or more content attribute scores are used by the weakly connected devices to determine levels of interest for the one or more attributes based on viewed content at the weakly connected device. The method also includes transmitting to the weakly connected device a set of targeted content items having a set of attributes. The method additionally includes causing the weakly connected device to select a targeted content item from the set of targeted content items based at least in part on the set of attributes and the levels of interest.
In accordance with various embodiments, a targeted content selection method is performed at a client device that includes a processor and a non-transitory memory. The method includes receiving from a server, media content items tagged with content attribute scores associated with attributes generated by the server based on similarities between the attributes and the media content items. The method also includes calculating, for viewed content items at the client device, user attribute scores for the attributes based at least in part on the content attribute scores, where a respective user attribute score indicates a level of interest in a respective attribute at the client device. The method additionally includes receiving, from the server, targeted content items tagged with a set of attribute identifiers. The method further includes selecting a targeted content item from the targeted content items based at least in part on the user attribute scores and the set of attribute identifiers.
Methods, devices, and systems in accordance with various embodiments described herein expand panel data or other predefined attributes and generate statistical data for dynamic segments. In some embodiments, a broadcaster defines attributes so that clients at weakly connected devices can select one or more attributes based on local viewing patterns, even though the broadcaster is unaware of or has limited information about the viewing patterns on the weakly connected devices. In some embodiments, the server broadcasts additional area-of-interest attributes with content, and the attributes are used by the clients to build profiles of interest. Further, in some embodiments, the additional attributes allow the clients to dynamically update weights assigned to the area-of-interest attributes. In such embodiments, the new area-of-interest attributes created on the client side allow clients to process viewing history, dynamically update the area-of-interest attributes, and select the most relevant advertisements. Accordingly, through the weights and attributes established on the server side, broadcasters can control client engines and the selection of relevant advertisements for users at weakly connected devices. Moreover, in some embodiments, by analyzing the similarities between the attributes and viewed content at weakly connected devices, the methods, devices, and systems described herein can generate dynamic measurements of the number of impressions at the weakly connected devices.
Reference is now made to
In
In some embodiments, the metadata associated with a media content item include a synopsis, a trailer, image(s), etc. In some embodiments, the metadata about a targeted content item include key words, free text, and/or images taken from targeted content item(s), etc. In some embodiments, advertisers define and provide attributes 115. In some embodiments, attributes provided by advertisers define segments of a targeted audience. For example, an attribute “travel” defines users that like to travel and are likely interested in viewing advertisements related to booking trips. A media content item (e.g., a TV program) or a targeted content item (e.g., an advertisement) can be associated with different attributes and different segments. In other words, one targeted content item can be associated with multiple attributes and targeting multiple segments. Conversely, one segment can be targeted by more than one advertisement. As will be described in further detail below, the server 110 analyzes similarities among the media content items, the targeted content items, and the attributes to derive content attribute scores representing the associations among them. Further, in some embodiments, the server 110 stores the content attribute scores in the metadata storage 114 along with the attributes.
In some embodiments, the server 110 includes a content analyzer 116 that uses the metadata in the metadata storage unit 114 as well as the multimedia content items stored in the content storage unit 112 to prepare for targeted content processing and measurement of the number of views of the targeted content. In some embodiments, the server 110 also includes an encoder and packager 118 for encoding multimedia content from the content storage 112 (e.g., live or video-on-demand (VOD) content) and packaging the encoded content to a suitable format for streaming to the client devices 140 and 150. In some embodiments, attributes, e.g., at least a subset of the metadata from the metadata storage 114, are encoded and/or packaged by the encoder and packager 118 so that the attributes can be transmitted as well with the media content items and/or the targeted content items to the client devices 140 and 150.
As used herein, “multimedia content” (also referred to hereinafter as “media content”, “content”, “media asset”, “asset”, or “content items”) is provided by the server 110 and received by the client devices 140 and 150 and can include any multimedia data, such as visual data, audio data, and/or text, etc. Further, the content prepared by the server 110 and received by the client devices 140 and 150 can have a variety of encoding and/or packaging formats. For example, the encoder and packager 118 can encode the content from the content storage 112 into any suitable format, including, but not limited to, advanced video encoding (AVC), versatile video coding (VVC), high efficiency video coding (HEVC), AOMedia video 1 (AV1), VP9, MPEG-2, MPEG-4, MP3, AC-3, etc. In another example, the encoder and packager 118 can package the encoded content according to Dynamic Adaptive Streaming over HTTP (DASH), HTTP Live Streaming (HLS), Smooth Streaming, or HTTP Dynamic Streaming (HDS) format and construct manifest in accordance with HLS or DASH.
Also as used herein, “targeted content” (also referred to hereinafter as “a targeted content item”) is one type of media content created and tailored for the targeted audience with the goal of driving a specific response from the targeted audience. Advertisements are one type of targeted content. When an advertisement is shown to a group of users that is identified as the targeted audience of the advertisement, the group of users would most likely find the advertisement appealing and the advertisement is likely to prompt the group of users to take actions such as making a purchase, completing a subscription, and/or making the users aware of a brand. In order to select the most relevant targeted content items for the targeted audience, media content items viewed by the targeted audience are analyzed. As such, “media content items” as used herein refers to content such as TV programs and/or advertisements that are analyzed by the server 110 for deriving the associations between the TV programs and certain attributes that define a segment of the targeted audience, e.g., analyzing the types of movies and/or advertisements viewed by a user to derive the user interest in attributes such as “travel” or “cooking”. Accordingly, as used herein, “a media content item” can be a targeted content item or a non-targeted content item.
In some embodiments, the encoder and packager 118 includes a tagger 120 that tags the targeted content items and the media content items with content attribute scores determined by the content analyzer 116. In some embodiments, the content analyzer 116 identifies similarities among the attributes, the media content items, and the targeted content, and generates content attribute (CA) scores. For example, a movie, as a media content item, showing multiple global locations can result in meaningful values for an attribute “travel”, thus the CA score associated with the attribute “travel” and the video is high. In another example, by analyzing the metadata associated with a global travel booking advertisement video, e.g., the keyword in the defined attributes 115 provided by an advertiser, the content analyzer 116 determines a high CA score associated with the attribute “travel” and the global travel booking advertisement video.
In some embodiments, the content analyzer 116 and/or the tagger 120 associate the content attribute scores for a subset of the content items. In some embodiments, the content analyzer 116 and/or the tagger 120 specify for a content item whether it would be part of the content attribute score calculation. For example, for some content items that the server 110 determines being in one or more predefined categories, e.g., mainstream content, the content analyzer 116 and/or the tagger 120 forgo calculating and/or tagging such content items, since they do not contribute to analyzing user interests. For example, news may show content from a superhero movie, sports, and/or travel destinations, etc. that are associated with many different attributes. As such, a user watching the news is not an indication of the user being interested in attributes such as superhero, sports, and/or travel, etc.
Still referring to
On the receiving end, in some embodiments, the exemplary weakly connected device 1 140-1 includes a receiving unit 142 for receiving tagged media content from the server 110 (e.g., via the CDN 130 or via broadcasting), a targeted content selector 144 for selecting targeted content (e.g., based on the attributes, the content attribute scores, and/or viewed content items at the client device, etc.), and a targeted content store 146 for storing targeted content in preparation for playing the selected targeted content. The weakly connected devices 140, as described above, often do not share or share limited client data with the server 110 due to 1-way connectivity limitation, privacy settings, and/or guest or trial usages, etc. In some embodiments, at least some of the weakly connected devices 140 report client data to the server 110 when another system(s) and/or device(s) facilitate the transmission of the information to the server 110. For example, another computing device 160 as an independent source, e.g., a mobile device coupled with the exemplary weakly connected device N 140-N, can act as a reporting device to scan a QR code provided by the respective weakly connected device 140, e.g., the QR code representing client data such as one or more user attribute scores, and report the client data at the weakly connected device N 140-N to the measurement unit 122. In another example, the reporting device 160 can be a part of an audience measurement system (AMS), which obtains client data from the exemplary weakly connected device N 140-N via samples, surveys, audience engagement tools, video analytics, audience metering techniques, etc., and passes the client data to the measurement unit 122. The measurement unit 122 then uses such client data for estimating the proportion in the population of attributes that define segments in accordance with some embodiments. The measurement unit 122 thus can be an engine on the server side to mimic or emulate the client engines to predict or report the estimated number of times targeted content has been viewed at weakly connected devices 140.
In addition to receiving the client data from some of the weakly connected devices 140, as shown in
As described above, business entities often use the panel data 123 to predict consumer trends for the entire population based on data collected from samples of users. Also as described above, the panel data 123 have limited number of attributes such as the information related to the number of views for each channel at a given time or the number of views for each event. For example, the broadcaster at the headend knows the number of people associated with segment A and the number of people associated with segment B. From these numbers, the broadcaster knows the proportion of segment A and the proportion of segment B in the general population. As such, using the panel data, the broadcaster can calculate the number of impressions based on the number of views and the proportion, e.g., number of impressions=number of views * proportion.
The limitations of the existing panel data are problematic since the assumption is that the same proportion is valid for each channel and time. Further, with the limited number of attributes, e.g., geolocations and/or income, the current panel data are deterministic by the limited set of attributes and are not dynamic by viewing patterns. To address the aforementioned limitations in the existing panel data, in some embodiments, the measurement unit 122 extends the panel data 123 to generate dynamic segment data, e.g., generating the population numbers for each attribute. Additionally as described above, the fully connected devices 150 utilize the 2-way connections to receive media content from the server 110 and report user actions to the server 110. In some embodiments, based on the user data from the fully connected devices 150 and the approximation that reflects the statistical data for the general population, the measurement unit 122 estimates the proportions in the population of attributes that define segments viewing each target media content item at the weakly connected devices 140. Various embodiments of measuring the number of impressions are described in further detail below with reference to
It should be noted that one or more components and/or functions of the server 110 and/or the weakly connected device 140 may be distributed and/or re-arranged. For example, each of the content storage 112, the metadata storage 114, the content analyzer 116, the encoder and packager 118, and/or the measurement unit 122 can be on a different and distinct server. As such, the server 110 and/or the weakly connected device 140 in the exemplary content delivery system 100 can include more, less, and/or different elements than shown in
Having determined the content attribute scores, in some embodiments, the server 110 (e.g., the tagger 120 within the encoder and packager 118) tags the media content items with the attributes and the content attribute scores before broadcasting the tagged media content items to the weakly connected device 140 in step 220. In some embodiments, the tagger adds relevant attributes (e.g., selected when the content attribute score associated with the attribute is above a threshold) and the corresponding content attribute scores to the metadata to be broadcasted with the media content, e.g., broadcasted along with each of the media content item or as a table for the media content item. For example, according to the digital video broadcasting (DVB) in the digital video broadcasting-service information (DVB-SI) standard, tables such as program association tables (PATs), program map tables (PMTs), event information tables (EITs), service description tables (SDTs), and/or network information tables (NITs) can be used to facilitate the broadcast of the attributes and/or content attribute scores.
On the receiving end, the weakly connected device 140, e.g., the receiving unit 142, receives the broadcasted data, extracts the media content for display and obtains the associated attributes and the content attribute scores from the broadcasted data. In step 230, the weakly connected device 140 includes a client engine, e.g., the targeted content selector 144, that tracks the viewing history of the client at the weakly connected device 140 and calculates user attribute (UA) scores for the attributes based on the actual views by the client. In some embodiments, the user attribute scores are numerical values. In some other embodiments, the user attribute scores are tolerance values, e.g., with a value or without a value. For example, a user attribute score for “travel” can be a numerical value between 1-100 or an indication of the user having interest in “travel”, e.g., setting “Yes” as the score. Various embodiments of the calculation of the user attribute scores are described in further detail below with reference to
In some embodiment, as part of step 230, the weakly connected device 140 enables the modification of the user attribute values at the weakly connected device 140. For example, the weakly connected device 140 can provide a list of attributes for the client to select from. In case of the client feeling that the server-provided scores do not reflect the real area-of-interest, the weakly connected device 140 receives a user input indicating the client interest. For example, the client can select an attribute corresponding to “travel” from a list of attributes. Upon receiving the user input, the user attribute value for the attribute “travel” can be updated or set to reflect the client interest. In some embodiments, the capability of modifying the user attribute value is enabled when the weakly connected device 140 share the selection data back to the server 110, e.g., via the reporting device 160 (
Still referring to
In some embodiments, along with the targeted content items (or in a separate table as described above with reference to step 220), the server 110 also sends the attribute identifiers and optionally a priority score (PS) for each targeted content item. In some embodiments, the server 110 (e.g., the content analyzer 116,
In step 250, the weakly connected device 140 (e.g., the targeted content selector 144,
Following the sequence shown in
In some embodiments, instead of re-calculating for each content, the server 110 re-calculates the content attribute scores for content prepared for future events and for content from a period in the past and transmits the updated content attribute scores along with the content identifier and the newly added attributes. For example, when new attributes such as “fitness” and “pet care” are added to the system, the content analyzer 116 re-calculates the content attribute scores for future events and for each content broadcasted last day or week in step 220. On the client side, the targeted content selector 144 calculates the user attribute scores based on past views at the weakly connected device 140 and applies the new attributes to the targeted content in step 250.
As shown in
In step 320, for each content item, the content analyzer further processes each attribute in order to calculate the content attribute score representing the similarity between a respective content item and a respective attribute in step 330. The process 300A ends upon processing each content item and each attribute. As described above with reference to
In some embodiments, the content analyzer uses a natural language processing (NLP) model to facilitate similarity determination. In such embodiments, an attribute can be a phrase that describes a segment of the targeted audience, e.g., “young pet owner”. As such, a media content item can have similar content attribute values for multiple attributes, e.g., a media content item having similar content attribute values for attributes such as “young” and “pet owner”. In such embodiments, a first media content item related to “young” attribute is relevant to the segment of the targeted audience; so is a second media content item related to “pet owner” attribute; and even more so is a third media content item related to both “young” and “pet owner” attributes. In another example, a movie having scenes showing restaurants at multiple international locations can have one content attribute score associated with an attribute “travel” that is similar to another content attribute score associated with an attribute “dining”. Alternatively, a new combined attribute “travel AND restaurant” can be defined and provided to the NLP model for content attribute score calculation.
In some embodiments, to identify the similarity, the content analyzer projects attributes as well as the content items onto a latent vector space based on characteristics of the content items from the metadata storage 114 (
In
In the exemplary latent vector space, media content items p1, p2, p3, p4, and p5 and the targeted content item t0 are close in distance, e.g., each within a threshold distance from another, indicating these content items are likely to have similar content, e.g., p1 through p5 corresponding to multiple sports events and t0 corresponding to a sports equipment advertisement. Further, the attribute a1 is close in distance with media content items p1, p2, p3, p4, and p5 and the targeted content item t0, e.g., p1, p2, p3, p4, p5, and t0 within a threshold distance from a1, e.g., a1 representing an attribute “sports”. As such, by analyzing the latency vector space, the content analyzer obtains content attribute scores by measuring the distance between a data point representing a respective content item and another data point representing a respective attribute.
In
In some embodiments, the targeted content selector aggregates the content attribute scores for each viewed content and obtains a user attribute score for each attribute based at least in part on the aggregated content attribute scores. For example, aggregating the viewed content items c1 and c3, the targeted content selector obtains a user attribute score for attribute 1 based at least in part on the user attribute scores CA1 and CA1′, e.g., obtaining UA1 by applying a function to CA1 and CA1′, etc. In another example, the targeted content selector identifies attribute x as being associated with content item c1 and obtains a user attribute score for attribute x based at least in part on the user attribute score CAx, e.g., obtaining UAx by applying a function to CAx, etc. In yet another example, the targeted content selector identifies attribute y being associated with content item c2 and obtains a user attribute score for attribute y based at least in part on the user attribute score CAy, e.g., obtaining UAy by applying a function to CAy, etc. In some embodiments, the user attribute score for an attribute is a weighted average of the content attribute scores associated with the attribute from the viewed content, e.g., setting or assigning a higher weight for recent content. In some embodiments, the weights used in the user attribute score calculation are determined by the viewing duration of the content, e.g., setting a higher weight value for content watched for a longer duration. As shown in
As described with reference to
Upon receiving the set of targeted content items and the attributes, in some embodiments, the targeted content selector locates the user attribute scores for the attributes, e.g., locating UA1, UAx, and UAy, and calculates a score for each targeted content item. For example, because the targeted content item t0 is tagged with a_1 and a_x, which correspond to attribute 1 and attribute x, respectively, the targeted content selector calculates for the targeted content item t0 a score Score0 by applying a function to UA1 and UAx, which are user attribute scores for attribute 1 and attribute x, respectively. In another example, because the targeted content item t1 is tagged with a_y, which corresponds to attribute y, the targeted content selector calculates for the targeted content item t1 a score Score1 by applying a function to UAy, which is the user attribute score for attribute y.
In some embodiments, the targeted content selector further transforms the scores calculated for each targeted content item to a distribution and chooses one targeted content item for display based on the probabilities. For example, to transform Score0, Score1, . . . to a distribution, the targeted content selector can apply the following Softmax function to the scores to generate a list of probabilities that sum to 1.
In some embodiments, when transforming the scores to probabilities, instead of applying a Softmax function, the targeted content selector normalizes the scores. For example, the targeted content selector can apply the following function to normalize the scores.
In some embodiments, to select the targeted content item, the targeted content selector selects the targeted content item with the highest score for display. In some other embodiments, the targeted content selector chooses the targeted content item using a weighted sampling method based on the calculated probabilities, e.g., when the scores have been transformed to probabilities.
In some embodiments, priority scores are also used for determining the most relevant targeted content item for display. In some embodiments, the server transmits priority scores when sending the set of targeted content items, e.g., tagging priority score PS0 for the targeted content item t0 and tagging priority score PSI for the targeted content item t1, etc., and the weakly connected device uses the priority scores in conjunction with the calculated probabilities (e.g., when using the weighted sampling method) or the highest score to determine the most relevant targeted content item for display. Using the weighted sampling method, the server can configure a high priority score for a valuable advertisement to increase the chances of the valuable advertisement being displayed at weakly connected devices. The priority scores thus enable the operator to signal the importance of targeted content items.
Currently, panel data provides the number of views at any given time (e.g., how many people watch a specific show). To determine the population distribution of values for dynamic attributes, as shown in
In some embodiments, the proportion can be obtained by extending the national panel data. For example, the panel data provide information about the content actually viewed by certain users. Cross referencing the panel data and using the information from the users, the content, and the attributes, the measurement unit can generate the population numbers for each attribute, e.g., cross referencing the panel data with the similarities between content and attributes, time of events being broadcasted, time of campaigns being broadcasted, time of TV programs, etc.
For example, the panel data reflect viewing data associated with approximately 1000 users. For each channel at a given time, the panel data represent how many of these 1000 users watched the respective channel. For instance, in the case of the number being 200, e.g., 200 users of these 1000 users watched a particular channel at a given time, one can calculate the estimated number of viewers in the population of 100000 by calculating 100000*(200/1000). Since the panel data also include information about the 1000 users from the measurement, e.g., the panel data include the actual shows each viewer watched, to expand the panel data in some embodiments, the measurement unit performs the same calculation as the client devices to mimic the client devices, e.g., calculating the user attribute scores for each of the users. For instance, assuming according to the calculation of the user attribute scores, 100 people among the 1000 users are associated with the attribute “travel”, the measurement unit can report that the proportion of users who are interested in “travel” in the population is 10%, e.g., 100/1000. Moreover, for the 100 people that are interested in “travel”, the measurement unit can simulate the targeted content selector on the client devices to determine which targeted content item each user is interested in watching. For example, assuming based on the simulation, 50 people among 1000 users are about to watch a particular advertisement, the measurement unit can report that there are approximately 5000 people in the general population of 100000 would watch the advertisement, e.g., (50/1000)*100000 people.
In some embodiments, the proportion can be obtained by using the client data from fully connected devices to reflect the statistical data for the general population. For example, the server can train models using client data from the fully connected devices and the models can be used to analyze and/or classify the weakly connected devices to derive the statistical data of impressions at the weakly connected devices, e.g., classifying based on profiles, capacities, configurations, and/or activities of the weakly connected devices, and/or profiles of the users at the weakly connected devices.
In some other embodiments, using a report back system or device as shown in
In some embodiments, the communication buses 804 include circuitry that interconnects and controls communications between system components. The memory 806 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and, in some embodiments, include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. The memory 806 optionally includes one or more storage devices remotely located from the CPU(s) 802. The memory 806 comprises a non-transitory computer readable storage medium. Moreover, in some embodiments, the memory 806 or the non-transitory computer readable storage medium of the memory 806 stores the following programs, modules and data structures, or a subset thereof including an optional operating system 830, a storage module 835, a content analyzer 840, an encoder and packager unit 850, and a measurement unit 860. In some embodiments, one or more instructions are included in a combination of logic and non-transitory memory. The operating system 830 includes procedures for handling various basic system services and for performing hardware dependent tasks.
In some embodiments, the storage module 835 is configured to store and/or manage a content storage 837 (e.g., the content storage 112,
In some embodiments, the content analyzer 840 (e.g., the content analyzer 116,
In some embodiments, the encoder and packager unit 850 (e.g., the encoder and packager unit 118,
In some embodiments, the measurement unit 860 (e.g., the measurement unit 122,
Although the storage model 835, the content analyzer 840, the encoder and packager unit 850, and the measurement unit 860 are illustrated as residing on a single computing device 800, it should be understood that in other embodiments, any combination of the storage model 835, the content analyzer 840, the encoder and packager unit 850, and the measurement unit 860 can reside in separate computing devices in various embodiments. For example, in some embodiments, each of the storage model 835, the content analyzer 840, the encoder and packager unit 850, and the measurement unit 860 resides on a separate computing device.
Moreover,
In some embodiments, the communication buses 904 include circuitry that interconnects and controls communications between system components. The memory 906 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and, in some embodiments, include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. The memory 906 optionally includes one or more storage devices remotely located from the CPU(s) 902. The memory 906 comprises a non-transitory computer readable storage medium. Moreover, in some embodiments, the memory 906 or the non-transitory computer readable storage medium of the memory 906 stores the following programs, modules and data structures, or a subset thereof including an optional operating system 930, a storage module 935, a receiving unit 940, and a targeted content selector 950. In some embodiments, one or more instructions are included in a combination of logic and non-transitory memory. The operating system 930 includes procedures for handling various basic system services and for performing hardware dependent tasks.
In some embodiments, the storage module 935 is configured to store and/or manage a targeted content store 937 (e.g., the targeted content store 146,
In some embodiments, the receiving unit 940 (e.g., the receiving unit 142,
In some embodiments, the targeted content selector 950 (e.g., the targeted content selector 144,
Although the storage model 935, the receiving unit 940, and the targeted content selector 950 are illustrated as residing on a single computing device 900, it should be understood that in other embodiments, any combination of the storage model 935, the receiving unit 940, and the targeted content selector 950 can reside in separate computing devices in various embodiments. For example, in some embodiments, each of the storage model 935, the receiving unit 940, and the targeted content selector 950 resides on a separate computing device.
Moreover,
While various aspects of implementations within the scope of the appended claims are described above, it should be apparent that the various features of implementations described above may be embodied in a wide variety of forms and that any specific structure and/or function described above is merely illustrative. Based on the present disclosure one skilled in the art should appreciate that an aspect described herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented and/or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented and/or such a method may be practiced using other structure and/or functionality in addition to or other than one or more of the aspects set forth herein.
It will also be understood that, although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device, which changing the meaning of the description, so long as all occurrences of the “first device” are renamed consistently and all occurrences of the “second device” are renamed consistently. The first device and the second device are both devices, but they are not the same device.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the claims. As used in the description of the embodiments and the appended claims, the singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting”, that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.