Metadata delivery system for rendering supplementary content

Information

  • Patent Grant
  • 12212791
  • Patent Number
    12,212,791
  • Date Filed
    Saturday, October 22, 2016
    8 years ago
  • Date Issued
    Tuesday, January 28, 2025
    11 days ago
Abstract
A computer system (e.g., such as provided for a network service) operates to determine an inventory of time slots for a given airing. The computer system assigns a supplemental content item to a time slot of the given airing when the given airing is rendered on at least some of a plurality of playback devices. The computer system may structure a tag element to include data that is specific to a third-party, and then communicate a plurality of tags that include the tag elements to playback devices that are (or will) render the primary content of the airing.
Description
TECHNICAL FIELD

Examples described herein relate to a metadata delivery system for rendering supplementary content.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an example system for providing time-based metadata, according to one or more embodiments.



FIG. 2 illustrates an example client system for use with a playback device, according to an embodiment.



FIG. 3 illustrates an example method for providing time-based metadata to a playback device, in connection with the playback device playing back primary content.



FIG. 4 illustrates an example method for selecting and providing supplemental content for live television in near-real time.



FIG. 5 is a block diagram that illustrates a computer system upon which embodiments described herein may be implemented.



FIG. 6 illustrates an example system for selecting supplemental metadata content, according to one or more embodiments.



FIG. 7 illustrates an example method for providing supplemental content with airings of programming media.





DETAILED DESCRIPTION

Some examples include a system and method for providing supplemental content with airings of programming media. In such examples, a computer system (e.g., such as provided for a network service) operates to determine an inventory of time slots for a given airing. The computer system assigns a supplemental content item to a time slot of the given airing when the given airing is rendered on at least some of a plurality of playback devices. The computer system may structure a tag element to include data that is specific to a third-party, and then communicate a plurality of tags that include the tag elements to playback devices that are (or will) render the primary content of the airing.


Some examples include a computer system and method for operating a network service to provide content. The computer system operates to determine a media resource that a playback device has requested for playback. The playback device may be provided with a set of time-based metadata that is associated with the media resource, where the set of time-based metadata are correlative to a timeline of events in a playback of the media resource, including start time when the playback initiates, the set of time-based metadata identifying a predetermined available time slot during the playback of the media resource. The playback device may be provided with a programmatic resource for retrieving a supplemental content resource and rendering a corresponding supplemental content during the predetermined available time slot.


One or more aspects described herein provide that methods, techniques and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically means through the use of code, or computer-executable instructions. A programmatically performed step may or may not be automatic.


One or more aspects described herein may be implemented using programmatic modules or components. A programmatic module or component may include a program, a subroutine, a portion of a program, a software component, or a hardware component capable of performing one or more stated tasks or functions. In addition, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.


Furthermore, one or more aspects described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable media on which instructions for implementing some aspects can be carried and/or executed. In particular, the numerous machines shown in some examples include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable media include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage media include portable storage units, such as CD or DVD units, flash or solid state memory (such as carried on many cell phones and consumer electronic devices) and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable media.


The term “media resource” may include any data source from which a primary content can be generated as audio and visual content. According to some examples, a media resource can be accessed from a corresponding media file, media stream or media transmission (e.g., broadcast).


A “primary content” includes, for example, a work (e.g., a television program, a movie, etc.) or a live broadcast. The primary content can be identified by a content identifier, which can identify the content of the work independent of a channel or distribution medium. Other identifiers may also be associated with the primary content, such as a channel or distribution identifier, one or multiple types of group identifiers and one or more multiple types of publication identifiers (e.g., time of publication, publication source, geographic region, distribution channel, etc.). For example, a work may be associated with a series identifier, a season identifier, and an episode identifier. When a work is broadcast, the work may also be associated with an airing identifier, identifying a time, location and organization of the distribution.


System Overview


FIG. 1 illustrates an example system for providing time-based metadata, according to one or more embodiments. According to an example of FIG. 1, a metadata delivery system (“MDDS 100”) is provided as a network service that can communicate with any one of a plurality of playback devices, represented by a playback device 40, in order to provide time-based metadata that is synchronized to the playback of primary media content on the device. The time-based metadata can include content and/or programmatic resources for triggering a playback device to retrieve and include supplemental content at preselected times in a duration in which the primary content is played back.


In an implementation of FIG. 1, the MDDS 100 is implemented as a network service. For example, the MDDS 100 may be implemented on one or more servers that communicate with playback devices utilized by a population of users. According to some examples, the MDDS 100 operates to provide individual playback devices with a time-based metadata set 105 that is specific to a particular airing of a media resource. The time-based metadata set 105 can include metadata that is renderable on a given playback device to display supplemental or ancillary content during or concurrently with playback of a primary content. Additionally, in some implementations, the metadata set 105 includes data to enable the playback device 40 to retrieve metadata content that can be rendered as supplemental or ancillary content. In some variations, the metadata set 105 may also include executable data, such as instructions or parametric data, for triggering playback devices to perform operations that include retrieval of supplemental content from network services. The metadata set 105 may be provided from the MDDS 100 in connection with corresponding airings of media resources originating from different media sources, including media sources that are transmitted to the MDDS 100 and/or playback device 40 over different transmission mediums (e.g., broadcast television, cable television via set-top box, streaming subscription service via web-based application) and/or different content delivery platforms (e.g., broadcasts transmitted through head-end services for set-top boxes, broadcasts streamed over Internet connections, on-demand selections, transmissions of requested content over browser or applications operated by users, etc.).


According to some examples, the MDDS 100 includes one or multiple system APIs 110, a metadata manager 130, and one or multiple content source interfaces 140. The MDDS 100 can provide one or more multiple system APIs 110, so that specific computing platforms and environments are compatible with the MDDS 100. Thus, in an example of FIG. 1, the playback device 40 can operate under any one of multiple possible platforms, in order to receive data from the MDDS 100. Additionally, the system API 110 can be specific to a particular transmission medium and/or content delivery platform. Thus, for example, the MDDS 100 may construct and make available system API(s) 110 to provide time-based metadata in connection with an airing transmitted through any of (i) a head-end to a user's set-top box (e.g., television programs), (ii) an over-the-air broadcast, (iii) a content provider (e.g., streaming service) via a network connection to a user's web-based media player, or (iv) a remote source or network site (e.g., video service site accessible via browser). In some variations, the MDDS 100 provides a metadata set 105 in connection with stored media files which the user elects to playback on the playback device 40. The playback device 40 may correspond to one of multiple possible types, distinguished by, for example, a transmission medium, content delivery system and/or platform used to receive and render media resources.


In some examples, the constituent data sets of the metadata set 105 may include a set of time slot parameters 119, content parameters 121, and one or more payload data set 125. The time slot parameters 119 can reference specific moments during the playback of the corresponding media resource (also termed the “primary content”) which provide a point for synchronization as between a timer for the metadata set 105 and a timeline of the primary content. In some variations, the time slot parameters 119 can also define time slots (sometimes referred to as “avails”) which are predetermined durations in the timeline of the primary content during which supplemental content can be displayed.


Accordingly, in some examples, the time slot parameters 119 identify pre-determined moments relative to a timeline of the corresponding primary content (“primary content timeline” or “PCT 119B”). The time slot parameters 119 may also be used to define pre-determined time slots. Still further, the time slot parameters 119 can define time slots which are individual associated with a corresponding identifier 129 (e.g., unique identifier or UID). In some variations, the time slot parameters 119 can also reference predetermined segments of the primary content where breaks for commercials or other supplemental content may occur. In this way, the timing parameters 1PCT 119B) can be used to identify predefined slots and/or events of interest in the playback of primary content (e.g., “avails”). For example, an airing of the record 99 may be pre-divided into work segments to define specific locations where supplemental content (e.g., advertisements) can be inserted. The work segments can define, for example, a duration of time between designated break points (e.g., where commercial breaks are shown). In this context, the time slot parameters 119 can be used to identify for example, a start and end time of a particular time slot, as well as a payload data set 125 for use in the time slot.


The content parameters 121 can reference events within the rendering of the primary content which are associated with the primary content. By way of example, the content parameters 121 can reference events such as the appearance of an individual or object in the airing of the primary content. Accordingly, the content parameters 121 can also reference markers in time, as defined by one or more time slot parameters 119.


The payload data set 125 can include pre-selected content items which are to be displayed concurrently (e.g., as an overlay) and/or sequentially (e.g., as a commercial between segments of an airing). In some examples, the payload data set 125 can be linked to the time slot parameters 119, which dictate relative moments or durations in the timeline 119B of the primary content during which the payload data set 125 is to be rendered or used. In some examples, the payload data set 125 can be retrieved during playback of a given media resource, so that the payload data set 125 is selected and rendered at a playback time that is defined by the time slot parameters 119. Still further, in some examples, the payload data set 125 can be linked with the content parameters 121 of the primary content, such as individuals, locations, objects or other events which occur during the playback of the primary content. The payload data set 125 may be selective, so as to appear when certain conditions occur (e.g., user input).


The payload data set 125 can be provided in a variety of forms or data structures. For example, the payload data set 125 can be structured as an overlay that appears concurrently with the playback of the airing. Alternatively, the payload data set 125 can appear in the form of a commercial which appear sequentially once a segment of the primary content is rendered.


In some examples, the metadata set 105 may also include synchronization data 127. The synchronization data 127 can define or otherwise provide a time reference or resource for enabling the playback device 40 to playback the playback the primary content while synchronizing the rendering of supplemental content provided with or through the metadata set 105. In an example of FIG. 1, the MDDS 100 utilizes the one or more content source interfaces 140 to receive scheduling data 141 from one or more content sources. By way of example, the content sources can include content providers (e.g., television stations) who broadcast television programming to set-top boxes or other types of receivers. As an addition or alternative, the content providers can correspond to streaming services, which can broadcast or otherwise make various types of programming available over a network connection (e.g., using an IP protocol). Such content sources can publish schedules when certain airings are being played back.


In some examples, the metadata set 105 provided by the MDDS 100 may include programmatic elements, shown as tags 111, which trigger the playback device 40 to perform operations for retrieving and utilizing supplemental content with a corresponding primary content. In one implementation, the playback device 40 makes the request 44 to receive the metadata set 105, from which the playback device 40 can extract identifiers (e.g., time slot identifiers 119), and the tags 111. Thus, the metadata set 105 may include or package tags 111 as part of the metadata set 105.


In variations, the playback device 40 makes multiple requests from the system API 110 during playback of the primary content, and at least some of the responses 54 may include tags 111. In some examples, the service API 110 can include, or may be coupled with, tag interface logic 114. The tag interface logic 114 may manage inclusion of tags 111 in responses 54 to the playback device 40. The tag interface logic 114 may be responsive to requests 44 received through the system API 110 in providing the playback device 40 with one or more tags 111, either before or during the playback of the primary content on the playback device 40. As described in greater detail, the playback device 40 may utilize each tag 111 to retrieve supplemental content from a network source.


In variations, the tag interface logic 114 may operate as a separate component, rather than as an integrated component of the system API 110. Still further, the tag interface logic 114, tag selection logic 120 and tag store database 555 may reside as a separate and/or independent entity from the MDDS 100. In some variations, the MDDS 100 may provide identifiers (e.g., time slot identifiers 119) which the playback device 40 can use to retrieve tags 111 from a separate or independent service.


The tag selection logic 120 provides logic to select tags 111 for the playback device 40. The tag selection logic 120 can select tags from a tag data store 135. The tags 111 can be individually structured to trigger the playback device 40 to perform operations to retrieve supplemental content data 137 from a network service or other third-party content service 82. By way of example, individual tags 111 can be structured as a link or Uniform Resource Locator (URL) to cause a playback component to access a network site. According to some examples, the MDDS 100 can leverage existing ad networks and services by including, with the metadata set 105, tags 111 that trigger the playback device 40 to request and receive the supplemental content data 137 from an ad network or service. As described with some examples, the use of tags 111 enable the MDDS 100 to customize or personalize the selection of supplemental content 137 for users or playback devices, based on a variety of factors such as geographic location, type of device or platform in use, preference of the user and/or other user profile information. The selection of tags 111 can also be based on other considerations and/or objectives of the MDDS 100, such as attributes or characteristics of the media resource or airing, as well as contextual information about the user, playback device or airing.


The metadata manager 130 maintains a meta-database metadata store 116 to store metadata for numerous media resources and/or respective airings of media resources. In one implementation, the metadata store 116 maintains individual media records 99, and each media record links metadata set 105 with a media resource and/or airing of the media resource. According to some examples, the individual media records 99 each link an airing identifier 101 and/or media resource identifier 103 to constituents data sets of the metadata set 105.


In an embodiment, the playback device 40 can be operated by a user to playback a particular airing of a media resource of the user selection. While some examples may provide for the media resource of the airing to be transmitted from the MDDS 100 to the playback device 40, other examples provide for metadata set 105 to be transmitted from a network service (e.g., the MDDS 100 operating as an independent network service) that is separate from the source that provides the playback device 40 with the airing. In one implementation, the playback device 40 can interface with a primary content source in order to request an airing of primary content 85 for playback on the playback device 40. By way of example, the playback device 40 can select the particular primary content source 80, and signal a channel selection or on-demand selection to a set-top box. As an addition or variation, the playback device 40 can make a media file selection from a network streaming source.


In some examples, the metadata manager 130 includes an editor interface 132 which receives input 133 from a publisher class user or customer. The input 133 can specify an object or event that is to be marked by a content parameter 121 for the record 99 of that airing. The content parameter 121 can be specific to, for example, a frame of the airing and/or a particular visible event (e.g., person appearing in primary content, object). The content parameter 121 may also be linked with a timing parameter 119 that identifies when the event specified by the user occurs with respect to the timeline 119B of the primary content. In some variations, the input 133 can also enable, for example, a content publisher (e.g., producer for program) or publisher class user to specify control over the type of supplemental content which can be provided in connection with the primary content.


In some examples, the playback device 40 can signal a request 44 to the MDDS 100 for the metadata set 105 that is to accompany a particular airing. In one example, the playback device 40 can signal an airing identifier 101. In some examples, the airing identifier 101 can be in the form of an airing key 103. The system API 110 can receive the request 44 from the playback device 40, with the specified airing ID 101. The request 44 can be signaled contemporaneously or concurrently with the playback device 40 requesting and/or receiving data for playing back a primary content from a primary content source 82.


The metadata manager 130 may respond to the request 44 by identifying the particular media record 99 that matches the airing identifier 101. In variations, the request 44 may specify a media resource identifier 103, along with other contextual information about content source, time of request, transmission medium and/or content delivery system. Based on the information provided with the request 44, the metadata manager 130 returns a metadata set 105, from which the metadata manager 130 is able to identify a corresponding media record 99. Depending on implementation, the metadata data set 105 may have alternative forms, structures and/or content type, while including or providing time-based metadata that is specific to the particular media resource (as provided by the media resource identifier 103) or airing (as provided by the airing identifier 101).


The system API 110 may return a response 54 that includes metadata set 105 for the airing identifier 101. The metadata set 105 may include information from the media record 99 associated with, for example, the airing identifier 101. In particular, the metadata set 105 can include the time slot parameters 119, content parameters 121 and/or payload data set 125. In some implementations, the response 54 may also include tags 111, which can be retrieved by the service API 110 via the tag interface logic 114.


In some examples, the time slot parameters 119 include the time slot identifiers 129. In one implementation, each time slot identifier 129 is unique, so that a corresponding time slot is uniquely identified from all other pre-determined time slots of the airings and media resources managed through the metadata manager 130. The playback device 40 may receive the metadata set 105, extract the time slot identifiers 129 and communicate the time slot identifiers 129 back to the API interface 110 and/or tag interface 114. In some variations, the playback device 40 communicates additional data, including the airing identifier 101 and/or media resource identifier 103. As an addition or alternative, the playback device 40 may communicate a user or device identifier.


The tag interface 114, when operating either as part of the service API or as a separate component (or as part of a separate system) may access or use tag selection logic 120 to select the set of tags 111 for playback device 40. Thus, the tags 111 may be selected as part of the response 54, in response to the request 44. Alternatively, the tags 111 may be selected a part of a supplemental response 56 that is communicated to the playback device 40, via the service API 110 or through the tag interface 114. As described with other examples, the tags 111 may be used by the playback component 40 to obtain a supplemental data set 137 from one or more third-party sources 82 (e.g., ad networks). In some examples the tags 111 may differ from the metadata set 105 because individual tags may reference a third-party source from which the playback device 40 is to retrieve a corresponding supplemental data set 137 when a corresponding airing is viewed. Still further, in some examples, the tags 111 may exist independent of a metadata set or media resource. For example, the tags 111 may include parameters that are not specific to the media resource or airing, but may be more descriptive of, for example, a classification of the user and/or type of supplemental content that is to be rendered with the primary content.


The tag selection logic 120 can select tags 111 for the playback device 40 using one or multiple selection criteria 145. By way of example, the selection criteria 145 may include (i) the media resource identifier 103 and/or airing identifier 101 being requested by the playback device 40, and/or (ii) user or device specific information, such as user profile information 109 and/or contextual information. Depending on implementation, the selection criteria 145 may originate from the playback device 40 at the time of request 44, or the information may be stored as part of the MDDS 100 (e.g., profile information 109).


As an alternative or variation, the playback device 40 may include a component that stores a data set that identifies profile or contextual information about the playback device 40 and/or user. The profile information 109 can indicate information about preferences of the user. Contextual information can identify information about a setting or condition that was present during the playback. The profile information 109 and the contextual information may be used by the tag selection logic 120 to determine tag selection criteria for the user. By way of example, the playback device 40 may record and/or store profile information 109 about prior activities of the user, and the playback device 40 may communicate parameters that are indicative of the profile and/or contextual information as part of the request 44, or as part of a sequence of communications from which playback the tags 111 are retrieved.


In some variations, the MDDS 100 may include a user profile store 115 to maintain profiles for the playback device 40 and/or its users, including prior activities of a user. The prior activities can, for example, specify a genre of preference, a favorite television series, or other attributes. In other examples, the prior activities of the user can include the user interaction with, for example, event data 121 rendered by the playback device 40 during playback. For example, the supplemental content that is rendered on the user screen can be made selectable, through user interaction with the content rendering on the playback device 40. Still further, as another example, the profile information can include a user profile 151 with information obtained from the user or from a third party source, such as the user's age group, gender and/or interests. The profile information can also include a device profile 153 for playback device 40, which can store information such as the type of device, supported features, software versions, etc. The profile information can further include a session profile 155 for the user's current session with the MDDS 100, which can be used for state-based information, security authentication, etc.


According to some examples, each tag 111 can cause the playback device 40 to retrieve a supplemental content data set 137 from a remote source 82. An individual tag 111 can, for example, identify to the playback device 40 (e.g., to the retrieval component of the playback device 40) an advertisement source from multiple possible sources. In some variations, the tag 111 can also identify a selection criteria which can be communicated from the playback device 40 to the identified advertisement source. In this way, the playback device 40 can use the tags 111 to retrieve supplemental content data sets 137 (e.g., media data for advertisements and promotions) from an advertising network for display with the content of the airing. By way of example, the selection of tags 111 for the playback device 40 may specify an advertisement network, and one or more parameters that are specific to the advertisement network. As an addition or alternative, the tags 111 can identify a campaign or content source which the playback device 40 is to use when obtaining supplemental content.


With further reference to an example of FIG. 1, each tag 111 may provide or enable a trigger mechanism that causes the playback device 40 to retrieve a supplemental content item for inclusion in the playback of the media resource identified with the airing identifier 101. In some implementations, the tag 111 includes a time marker 112 and a programmatic trigger element 113. The time marker 112 may synchronize to the time of the primary content, so as to correspond to a time in the playback of the primary content when a trigger event is to occur. The trigger element 113 can identify a location and/or resource for the trigger event. In some examples, the trigger event can correspond to one or more of (i) the playback device 40 retrieving a supplemental content data set 137, and/or (ii) the playback device 40 rendering and/or providing content and/or functionality using the supplemental content data set 137. Accordingly, the location identified by the trigger element 113 can include a remote source (e.g., located with a network address), local source (e.g., local memory address) or local network source (e.g., peripheral device). In some examples, the location identified by the trigger element is for an ad network or service. The resource can specify data that enables selection of the supplemental data set 137. For example, the resource can identify information associated with a corresponding tag 111, or otherwise provided from the MDDS 100, to enable a remote service to select an appropriate supplemental data set 137 for the playback device 40.


In some variations, the playback device 40 may render content from the supplemental content data set 137 that includes a structure of an overlay, or other content structure that can be concurrently displayed with playback of the primary content. In variations, the supplemental content data set 137 can identify commercials or content that inserts between, for example, the segments of the airing.


In order to ensure the supplemental content data set 137 is rendered at the correct playback time, the playback device 40 synchronizes a timeline of the metadata set 105 with a timeline 119B of the selected media resource (for primary content). For example, the playback device 40 may initiate a timer that is synchronized with a particular event detected from the playback of the media resource, and/or with an external timing reference such as provided by the broadcast schedule. When the timeline of the metadata set 105 is synchronized with the playback time, the playback device 40 can use the metadata set 105 to perform operations for rendering the supplemental content at the appropriate times of the playback. Depending on the implementation, the tags 111 can be received when the media resource or airing is requested by the playback device 40, or when the media resource or airing is being played back by the playback device 40. In some variations, the playback device 40 can make just-in-time requests for supplemental content using the tags 111. Still further, in some variations, the tags 111 can be retrieved and stored during a prior session, then read from memory to cause the playback device 40 to perform a corresponding retrieval action.


Some variations may include functionality to render time-sensitive supplemental content in connection with, for example, “live television” (e.g., sporting event, political event, etc.). In such context, the supplemental content may be commercial (e.g., advertisement) or an enhancement to the primary content. Additionally, as with other examples, the supplemental content may be interactive. For example, during a sporting event, the supplemental content may be displayed as an overlay of the primary content, and in the form of interactive content in which viewers are invited to vote on an event that just occurred (e.g., “Which player was the best performer?”). As described with other examples, the MDDS may deliver tags 111 for enabling the playback device 40 to retrieve supplemental content that is selected for delivery to the playback device 40 in real-time (or near real time). For example, tags 111 may be delivered to the playback device 40 for purpose of enabling the playback device 40 to render supplemental content that is selected or responsive to events of the live broadcast.


In some examples, the tag interface 114 includes or communicates with a tag creation tool 162 and a delivery trigger 164. An operator, such as a provider of the primary content, can interact with the tag creation tool 162 to create one or more fast-delivery tags 111B. In one implementation, the tag creation tool 162 and the delivery trigger 164 may be included with, or coupled with the editor interface 132, so that editors whom specify metadata content 105 may also specify creation of fast tags 111B.


According to some examples, the operator specifies input for the fast-delivery tag 111B that corresponds to a network location (e.g., URL). In some variations, the input for the tag creation tool 162 includes supplemental content (e.g., overlay content), which can be packaged with the tag. The operator can signal the delivery trigger 164, via the tool 162, to deliver the tag 111B to playback devices 40 which are connected to the MDDS 100. In variations, the tag creation tool 162 can interact with a programmatic entity that is able to provide input and/or trigger the delivery trigger 164.


The delivery trigger 164 may, for example, initiate a communication to each playback device 40 that is deemed to be rendering the desired primary content. In one implementation, the delivery tool 164 may cause each of the identified playback devices 40 to make a new request 54 of the system API 110 for the tag 111B. Alternatively, the delivery tool 164 may cause the system API 110 to push the tag 111B to each of the playback devices 40. The MDDS 100 may maintain, for example, a list of connected playback devices and the airing or media resource identifier 101, 103 most recently communicated by each playback device 40. In this way, the tag 111B may be instantly communicated, in near-real time from when the delivery tool 164 is invoked, to those devices which are viewing the desired live content. In some variation, the system API 110 can exchange communications with connected playback devices before transmitting the fast tag 111B.


In some examples, an advertiser interface 660 may be integrated with the MDDS 100 in order to populate and distribute tags 111 in accordance with advertisement campaigns that are purchased and managed through an advertisement system 600 (see FIG. 6). As described with other examples, the advertisement system 600 can provide weights 629 for tag selection logic, and tag data 641 to enable distribution of content specified by campaigns.



FIG. 2 illustrates an example client system for use with a playback device, according to an embodiment. According to some examples, the client system 200, as shown with an example of FIG. 2, represents software and/or logic to enable a computing device to operate as a playback device 40, and further to receive and utilize metadata and services provided through the MDDS 100.


In some examples, the playback device 40 can correspond to a multifunctional computing device capable of a variety of tasks, such as Internet browsing, messaging, voice or telephony operations, or web-based applications and functionality. For example, the playback device 40 can correspond to a tablet, smartphone, laptop, or desktop computer which can utilize the service application to connect to a streaming content provider (e.g., Netflix, who, HBO etc.). In variations, the playback device 40 can correspond to a set-top box, smart television, peripheral connected streamer (e.g., ROKU device manufactured by ROKU, INC., APPLE TV manufactured by APPLE INC.), or other device capable of receiving broadcast programming, such as provided through cable systems, satellite broadcast, over the air broadcast or other broadcasting application meetings.


Still further, some examples provide that the client system 200 can be implemented in part by a service application, such as an “app” downloaded from an “app store.” As a service application, the client system 200 may connect to a network service over the Internet in order to exchange data and receive services. The client system 200 may also perform other tasks, such as communicating a user or account identifier to a network service, maintaining and communicating profile or activity date to the network service, and/or integrating or communicating with a media player in order to render content. In variations, the client system 200 can be implemented through multiple applications or application processes. For example, the playback device 40 can be implemented as an application and plug-in, or by a browser and in-browser application.


In an example of FIG. 2, the client system 200 includes a user interface 210, a media library interface 220, a media player 230, a system interface 240, a metadata manager 250 and a network content interface 260. The user interface 210 represents an abstraction of user-facing features which can receive user input. The user interface 210 can enable the user to interact with a media library or media source 82 and/or metadata based content delivery system 100 such as shown with an example of FIG. 1. In an example of FIG. 2, a user interacts with a user interface 210 to make a selection 201 of a media resource, and the selection 201 can trigger the client system 200 to retrieve metadata content from the MDDS 100. In one implementation, the media library interface 220 can interface with a media source 80 to receive media library information 203, and the media library information 203 can be displayed or rendered to the user via the user interface 210. A user can view the media library information 203 and provide input to make a selection 201 of a media resource and/or navigate through a media library or selection interface. Depending on the implementation, the interaction may be through, for example, a keyboard or peripherally connected device, a dedicated input mechanism (e.g., remote control device), a touchscreen and/or a gesture/motion detection mechanism integrated with the playback device 40.


In an example of FIG. 2, the client system 200 implements a primary process to playback primary content synchronously with an ancillary process that renders supplemental content from one or multiple sources. In the primary process, the media resource of the selection 201 may be played back on the client system 200 in accordance with a user input, user-specified schedule or broadcast schedule. In some examples, the media library interface 220 may interface with a remote media source 80 in order to receive the media resource of a particular airing. When the media resource is selected for playback, an ancillary process is initiated by the client system 200 to retrieve metadata from the MDDS 100 and to display supplementary content with the playback of the media resource. In one implementation, MDDS interface 240 generates the request 44, which can identify the media resource of the selection 201. In examples such as described with FIG. 1, the request 44 can specify a media resource identifier 101, airing identifier 103 or other identifier that is correlative to the selection 201. As described with an example of FIG. 1, the MDDS 100 may match an identifier of the request 44 to a media record 99, in order to identify the metadata set 105 that is to be returned to the client system 200.


In one implementation, the media library interface 220 and/or media player 230 may receive playback data 233 from the content source 82. The media player 230 can receive the playback data 235, and then initiate playback of the media resource, so as to generate output content for user consumption (e.g., via the user interface 210).


In the ancillary process, the metadata manager 250 may process the metadata set 105 that is received from the MDDS 100 via the system interface 240. Among other functionality, the metadata manager 250 may buffer the metadata set 105, process the metadata set 105 to identify time-based metadata content that is to be provided with playback of the primary content, extract time slot identifiers 119 from the metadata set 105, and extract or retrieve tags 111. Additionally, the metadata manager 250 can use the tags 111 to retrieve supplemental content items 225 from one or more remote or independent network services. The retrieved supplemental content items 225 may be rendered during predetermined time slots of the primary content, as specified by time slot parameters 119 of the metadata set 105.


The metadata manager 250 may implement processes to retrieve and render the supplemental content items 225 in a manner that is synchronized to a predetermined timeline of the primary content. In some examples, the metadata manager 250 is integrated, or in communication with the media player 230 (i) to obtain or receive playback data 235 from the media player 230, and (ii) to transmit or otherwise provide the supplemental content data 237 to the media player 230. The playback data 235 can include individual frames that are used to render the primary content. As an addition or alternative, the playback data 235 can include information about the playback time of the primary content. Still further, the primary content can include metadata to identify events or aspects of the primary content during playback.


In some examples, the metadata manager 250 includes a synchronization component 252 and a content retrieval component 254. The synchronization component 252 may implement logic to synchronize the insertion of supplemental content data 237 by the media player 230, including overlays (e.g., images or video displayed concurrently with primary content) and sequential content (e.g., video such as commercials which temporarily replace the primary content).


In one implementation, the synchronization component 252 initiates a timer that is synchronized to a timeline of a primary content that is being (or will be) rendered through the media player 230. The synchronization component 252 may synchronize the timer to one or multiple synchronization markers 233 of the primary content. In some examples, the markers 233 are determined by the synchronization component 232 processing an output 239 of the media player 230. The output 239 may include, for example, an audio output, video output, or metadata generated from the media player 230. By way of example, the metadata generated can include a playback clock which the media player displays as runtime of a given playback. In variations, the media player 230 and/or the metadata manager 250 implements logic to process the output 239 for reference moments, which are known to map to a particular point in the timeline of the primary content. For example, the output 239 can correspond to the audio output of the primary content, and the synchronization component can include audio recognition logic to process the audio signal to detect a particular sequence (e.g., opening score, specific name or event that is descriptive of audio event or signature). Similarly, the output 239 can correspond to video from the primary content, and the synchronization component 252 can perform image recognition to identify a particular event, such as the frame for an opening credit. In this way, the synchronization component 252 can process the primary content to determine markers 233, which can reference the points of insertion for supplemental content data 237. The markers 233 determined from the output 239 may also determine when the metadata manager 250 implements operations for retrieving supplemental content for the media player 230 to render. In this way, the output 239 of the primary content can provide a synchronization reference or marker by which the supplemental content data 237 can be inserted into the primary content timeline in accordance with a desired time slot 119, and independent of delivery platform.


In some examples, the synchronization component 252 extracts one or more reference content markers from the metadata set 105. Each content marker may correspond to an image pattern and/or audio pattern for an event that occurs during the playback of the primary content (e.g., rendering of a hash in a corner of a frame, appearance of a character or object, occurrence of an audible, etc.), and each content marker can be paired with a reference moment in the timeline of the primary content, so as to a relative time during the playback of the primary content. The synchronization component 252 can implement content analysis logic to recognize or otherwise detect markers in the primary content. In some examples, the synchronization component 252 can detect markers to initiate a timer for a timeline during which supplemental content of one or multiple types may be rendered. In variations, the synchronization component 252 uses the markers to detect a window of time during which a supplemental content item is to be rendered.


As an alternative or variation, the markers 233 can be determined from external sources, such as scheduling data 141 (e.g., a broadcast schedule, see FIG. 1), provided by, for example, the broadcaster (or publisher or distributer) of the media resource that is being played back. For example, a publisher or distributor can publish a schedule that identifies a time when an airing is be transmitted, and the synchronization component 252 can synchronize the rendering of the supplemental content based on the reference time. As an addition or alternative, the reference time may identify “commercial breaks” such as instances when the primary content breaks to permit playback of a commercial, or when playback of the primary content is to resume after completion of a commercial break.


The content retrieval component 254 can implement processes to retrieve supplemental content data 225 from one or more remote sources 88. In some examples, the content retrieval component 254 retrieves supplemental content data 225 from remote sources 88, such as third-party advertisement networks. In some examples, the content retrieval component 254 may utilize one or more multiple connectors to advertisement networks in order to retrieve supplemental content data 225 for a particular airing. According to some examples, the retrieval component 254 retrieves the supplemental content data 225 using individual tags 111, which may be provided from the MDDS 100 as part of the ancillary process. In some examples, the tags 111 specify the remote source (e.g., the particular advertisement network) what is to be used in order to retrieve the supplemental content data 225.


In some variations, the content retrieval component 254 generates a request 255 for supplemental content, using the tags 111. The request 255 may include one or more criterion 211 for enabling the remote source 88 to select supplemental content data 225. The criterion 211 can correspond to, for example, any one or more of a keyword, classification or identifier, from which the remote source 88 can make selection of supplemental content data 225. In some examples, the criterion 211 can be provided by or determined from the metadata set 105. In variations, criterion can be determined from profile or contextual data stored on the playback device 40.



FIG. 3 provides an example method for providing time-based metadata to a playback device, in connection with the playback device playing back a primary content. FIG. 4 illustrates an example method for selecting and providing supplemental content for live television in near-real time. In describing examples of FIG. 3 and FIG. 4, reference may be made to elements of FIG. 1 or FIG. 2 for purpose of illustrating a suitable component or element for performing a step or sub-step being described.


With reference to an example of FIG. 3, the MDDS 100 determines a media resource that the playback device 40 has requested to playback (310). In some variations, the MDDS 100 may identify a media resource that is being played back on the playback device 40. In some examples, the MDDS 100 operates as a service, separate from a source of the media resource, from which primary content is rendered on the playback device 40. The playback device 40 may, for example, make a request 44 over the Internet to a service which implements the MDDS 100. The request 44 may include one or more identifiers for the media resource, such as, for example, a media resource identifier 103 and/or an airing identifier 101. The identifier(s) of the request can, for example, identify the particular work, the medium or device used to render the work (e.g., cable television or streaming network service) and/or context (e.g., broadcast or on-demand). The work may be episodic, so as to include, for example, each of a series identifier, a season identifier and an episode identifier.


In some examples, the MDDS 100 operates separately or independently from a source of the media resource, and the identifier(s) of the media resource are communicated to the MDDS 100 programmatically. For example, the playback device 40 can include logic to determine one or more applicable identifiers for an airing that is requested by a user. Alternatively, the playback device 40 can include logic to determine one or more applicable identifiers of the media resource based on a channel or media source selection of the user.


In response to receiving the request, the MDDS 100 can provide the playback device 40 with a set of time-based metadata that is associated with the media resource (320). As described with other examples, the set of time-based metadata may be correlative to a primary timeline of events in a playback of the media resource. In some examples, the MDDS 100 provides time-based metadata that includes timing parameters (or time slots) 119. The time slot parameters 119 may, for example, identify one or more available time slots (or durations of time), relative to a timeline of the primary content.


The MDDS 100 may provide the playback device 40 with one or more tags 111 that enable the playback device 40 to retrieve supplemental content from a remote source (330). In some examples, the playback device 40 receives time slot parameters 119 with the metadata set 105, and then uses the time slot parameters 119 to request the tags 111. In a variation, the MDDS 100 provides time slot identifiers 119 with the metadata set 105, and the playback device 40 uses the time slot identifiers 119 to request the tags 111.


In some examples, the MDDS 100 includes tag selection logic 120 to select tags 111 individually for a given request 44 of a playback device 40. The tag selection logic 120 may use, for example, profile information that is maintained or received from the playback device 40, as well as contextual information (e.g., location or IP address of the playback device) and information about the primary content to select tags 111. The tags may identify a remote source for supplemental content data 137. As an addition or variation, the tags 111 may specify terms and identifier for enabling selection of supplemental content for the user or playback device by the remote source. For example, the MDDS 100 may return individual tags 111 which are in the form of a link, structured to include keywords or terms as selected by logic of the MDDS 100.


With reference to an example of FIG. 4, an operator or programmatic entity interacts with the MDDS 100 to create a fast-delivery tag 111B (410) that can cause playback devices of a given population to instantly display a content item. The fast-delivery tag 111B may correspond to a data structure that includes or links to a content item. In one implementation, the data structure integrated a text or image item with a structure that can be pushed to individual media playback devices.


The MDDS 100 can maintain a list of playback devices which are viewing a particular media resource (e.g., live broadcast) (420). An operator may generate a fast link for the media resource using the tag creation tool 162.


Once the fast-delivery tag 111B is created, the delivery trigger 164 can send the link instantly to the playback devices (430). The tags 111B may be encoded to trigger the corresponding playback devices 40 to output the content associated with the tag 111B. In one implementation, the media playback devices 40 access the content item from a network location specified in the tag 111B. For example, the tag 111B can reference the network location corresponding to the operator website. In a variation, the tag 111B can link the playback component to a memory or network location provided by the MDDS 100, where the content item is stored. Still further, the 111B may integrate the content item with the data structure, so that the playback device 40 is triggered to render a supplemental content item using the tag 111B as the common transport vehicle.



FIG. 5 is a block diagram that illustrates a computer system upon which embodiments described herein may be implemented. For example, in the context of FIG. 1, MDDS 100, or portions thereof, may be implemented using a computer system such as described by FIG. 5. The MDDS may communicate with playback devices, paired devices and/or distribution sources of media content and/or associated metadata using a network such as the Internet.


In an embodiment, computer system 500 includes processor 504, main memory 506, ROM 508, storage device 510, and communication interface 516. Computer system 500 includes at least one processor 504 for processing information. Computer system 500 also includes a main memory 506, such as a random access memory (RAM) or other dynamic storage device, for storing information and instructions to be executed by processor 504. Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504. Computer system 500 may also include a read only memory (ROM) 508 or other static storage device for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk or optical disk, is provided for storing information and instructions. The communication interface 516 may enable the computer system 500 to communicate with one or more networks through use of the network link 520.


Computer system 500 can include display 512, such as a cathode ray tube (CRT), a LCD monitor, and a television set, for displaying information to a user. An input device 514, including alphanumeric and other keys, is coupled to computer system 500 for communicating information and command selections to processor 504. Other non-limiting, illustrative examples of input device 514 include a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512. While only one input device 514 is depicted in FIG. 5, embodiments may include any number of input devices 514 coupled to computer system 500.


Embodiments described herein are related to the use of computer system 500 for implementing the techniques described herein. According to one embodiment, those techniques are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another machine-readable medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement embodiments described herein. Thus, embodiments described are not limited to any specific combination of hardware circuitry and software.



FIG. 6 illustrates an example content selection system, according to one or more embodiments. A content selection system 600 such as described with an example of FIG. 6 may be implemented as a network service. In some examples, the content selection system 600 can be provided with or as part of MDDS 100. In variations, the content selection system 600 is provided as a separate network service from the MDDS 100.


With reference to an example of FIG. 6, the content selection system 600 includes inventory manager 610, advertiser interface 620, distribution logic 630 and tag distribution logic 640. The inventory manager 610 may maintain a data store of inventory 602. The inventory 602 may maintain records of available opportunities during which an advertiser can insert advertisement in connection with the rendering of an airing on playback devices in a given audience. In some implementations, the advertisement can be supplementary content that is of a form that renders concurrently with the primary content.


In context of MDDS 100, an inventory 602 can be generated and/or integrated with the metadata store 116. In some implementations, an aggregation component 604 can extract relevant information from the metadata store 116 for specific airings (or for the respective record 99) in order to determine inventory attributes for individual airings. By way of example, the inventory attributes can include time slot identifiers 601, airing identifiers 603, category (or classification) tags 605, and/or keywords 607. The inventory attributes can be determined from, for example, a content publisher, content creator or other party that has rights to control the rendering of supplemental content in connection with the particular airing. Some inventory attributes, such as category tags 605 or keywords 607, can be based on content-based characteristics of the airing, such as a theme, ambience, or event. The content attributes can be determined programmatically, or provided by manual input. For example, a theme or ambience of the hearing can be identified by performing an analysis of (i) the musical soundtrack accompanying the airing, (ii) the lighting of the scene accompany the airing, and/or (iii) other audiovisual signatures of a theme, setting or ambience of the primary content.


In some examples, the time slot identifiers 601 and/or airings 603 can be associated with whitelist or blacklists 611A, 611B. The respective lists can identify supplemental content items by a type, genre, or source (e.g., retailer manufacturer, Brand, etc.), to permit (whitelist) or deny (blacklist) in connection with the rendering of a corresponding primary content. For example, if the time slot identifier 601 pertains to a portion of an airing depicting a placed brand product in a scene of a storyline, the blacklist associated with the time slot identifier may exclude competing products to that of things to be the placed brand. Likewise, if a theme of the particular portion of the airing is for a desired demographic of viewers, the blacklist associated with the time slots of the particular airing may exclude advertisements that are by type, genre or source, deemed to be offensive and/or ineffectual to that desired demographic. The use of the time slot identifiers 601 allows the content distributor or publisher to specify, for example, a preference or designation for certain types of supplemental content (e.g., by theme, source, brand, etc.), as well as preference or designations against certain types of supplemental content. The preference or designation for or against certain types of supplemental content can be made specific to specific slices of the primary content.


The inventory manager 610 may include an inventory estimator 612 to determine how much inventory is available for particular airing. The inventory estimator 612 may be based on the number of time slots which the particular airing can carry. Each time slot identifier 601 can represent an inventory that corresponds to the number of viewings the corresponding portion of primary content is expected to receive. Additionally, each airing may have a set number of time slot identifiers 601, which collectively represent the inventory for the airing. For example, a 20 minute program may carry four time slots which are spaced five minutes apart, while a one hour program may double the number of time slots. The inventory estimator 612 may also determine and correlate inventory to profile characteristics of the playback devices 40 (e.g., computing platform of playback device 40, transmission medium in which the airing is received by respective playback devices 40, etc.). In particular, the available inventory determination can segment the available inventory to profile characteristics of the viewing population (e.g., age and gender of viewer). Therefore, the availability estimator 612 can estimate inventory for (i) individual time slots of an airing, (ii) collectively for all time slots of an airing, and (iii) further with respect to particular segments of the viewing population.


The inventory valuation 614 can implement an algorithm, logic or component to determine a valuation 615 of a particular time slot. In some examples, a bidding process may be used to determine the valuation 615. In some variations, the valuation 615 can be made specific to profile characteristics of the viewing audience. For example, popular shows may have higher valuation for use of the respective time slots, but smaller or less desirable demographics for the particular popular program can also be made subject of inventory and offered for less.


The inventory manager 610 may generate inventory information 613 for the advertiser interface. The inventory information 613 may include, for example, quantitative representations of available inventory for specific time slots of different airings. Additionally, the inventory information 613 may include the valuations 615 of the time slots for the respective airings. The advertiser interface 620 may receive advertiser requests 611, and match criteria specified in the respective advertiser requests to inventory information 613. Thus, the inventory information 613 can include data sets associated with the time slot identifiers 601.


In some implementations, the advertiser interface 620 includes matching logic 622 that matches advertiser criteria, specified with advertiser requests 621, to time slots 601. The matching may be based on, for example, attributes of categories and/or keywords. In matching advertiser requests, the matching logic 622 may also determine whether the valuation 615, as determined for specific time slots 601, conforms to valuation parameters specified by the advertiser requests. The matching logic 622 may also implement matching rules 623, which can include implementation rules or weights to implement one or both of the whitelists 611A and/or blacklists 611B.


When the advertiser requests 621 are matched to time slot identifiers 601, an advertiser data set 625 can be linked to the time slot identifier. The advertiser data set 625 can include, for example, a network location (e.g., URL) where a supplemental content item is provided. In variations, the advertiser data set 625 includes a content element (e.g., image). In other variations the advertiser data set 625 identifies an advertisement service and an identifier or criteria to enable programmatic identification of a content item provided by the advertiser.


According to some examples, the advertiser interface 620 communicates the advertiser data set 625 to the MDDS 100, and distribution data 627 to the distribution logic 630. The distribution data 627 may, for example, specify a parameter that determines a quantity or frequency of the number of instances in which the supplemental content of the advertiser data set 625 is to be rendered with the matched portion of an airing corresponding to a particular time slot identifier 601. In some variations, the advertiser's requests can specify a campaign and campaign value (how much an advertiser will pay for the particular campaign). The distribution data 627 may also specify profile parameters that are specific to the matched advertiser request 621. For example, the distribution data may specify a weight or quantity for each gender.


In some examples, the advertiser data set 625 can be communicated to a tag population logic 630, and the tag population logic 630 can populate a tag element 641 or structure with the advertiser data set 625. The tag element 641 can be assimilated, or otherwise structured into tags 111 which the MDDS 100 communicates to playback devices 40. In this way, the tag population logic 630 enables the MDDS 100 to communicate, as the response 54 to a requesting playback device 40, individual tags 111 which include identifiers for enabling the playback device to retrieve or receive a specific supplemental content item when the primary content is being viewed.


In some implementations, the tag elements 641 include identifiers that can identify corresponding supplemental content items by network location (e.g., URL or network address). In variations, the tag elements 641 include identifiers that can identify a third-party advertiser (e.g., ad network), as well as a campaign or content identifier as provided by the advertiser network. Still further, the tag elements 641 can include a content element, such as a word or wording that can be displayed as the supplemental content. The tag element 641 can also provide data that identifies one or more profile parameters for which the tag or tag selection is to be provided. In some variations, the tag element 641 can be assimilated into tags 111 that carry one or more distribution parameters (e.g., weights, frequency in which a tag is to select a particular campaign or supplemental content item), and the distribution parameters can be made specific to a particular profile parameter or set of profile parameters.


The distribution logic 640 can determine weights 629 for implementing each campaign. The weights 629 can be communicated to the tag selection logic 120 via the interface 650, and the tag selection logic 120 may use the weights to select tags (or tag elements) to communicate in responses 54 to requesting playback devices 40. In some variations, the weights 629 are specific to profile parameters of playback devices 40, where the profile parameters may be determined by profile information 109 of individual devices. The weights 629 may determine a proportionate count in the number of times which the supplemental content for a given advertiser is rendered relative to a total number of viewing devices. As an alternative or variation, the weights 629 may identify a frequency in which the supplemental content of a particular advertiser is displayed to individual playback devices 40 through use of metadata provided by the MSSD 100.


In some implementations, the weights can be stored as part of the tag or tag elements in the tag store 135. The tag selection logic 120 can select tags based on the recorded and stored weights. In variations, the tag selection logic 120 receives and uses the weights 629.


In some examples, the advertisement system 600 can include an interface 650 to interface with MDDS 100. Thus, for example, the tag store 135 can be programmatically updated and maintained in accordance with campaigns which are purchased and managed through the advertisement system 600.



FIG. 7 illustrates an example method for providing supplemental content with airings of programming media. An example method such as described with FIG. 7 may be implemented using an example system such as described with FIG. 6 and FIG. 1. In some examples, content selection system 600 operates to identify supplemental content items, and a metadata delivery platform operates to generate and transmit tags to select playback devices of a population of playback devices. Accordingly, reference may be made to elements of FIG. 1 and/or FIG. 6 for purpose of illustrating functionality for performing a step or sub-step being described.


With reference to FIG. 7, a determination is made as to an inventory of time slots for a given airing (710). In some examples, the media record 99 for the airing may identify one or more multiple time slots during which supplemental content items may be concurrently rendered on media playback devices along with the primary content of the airing. The supplemental content items can include images, text images and/or video. In some examples, the supplemental content items can be interactive to detect selection input or other interaction from playback devices that receive user input during the rendering of the respective airing.


The inventory can include quantitative aspects which include a number of time slots that define segments of an airing. In some variations, the quantitative aspects include an expected number of playback devices that may receive a supplemental content item for each of the defined time slots of the airing. Still further, in some variations, the number of playback devices may be further categorized in accordance with profile parameters which may be associated or determine to be relevant for individual playback devices.


The content selection system 600 may operate to assign a supplemental content item of a third-party to a time slot of the given airing when the given airing is rendered by individual playback devices in a group of playback devices (720). According to some variations, the assignment of supplemental content is specific to selection parameters that include one or more of profile characteristics of playback devices that render the primary content. By way of example, the profile characteristics include one or more of a geographic region where the playback device is likely located, a computing platform of individual playback devices, and/or a transmission medium of individual playback devices to receive and render the media resource of the airing. In some variations, the profile characteristics include characteristics of users of individual playback devices (e.g., gender, age and/or viewing preferences).


In some variations, the content selection system 600 determines a weight or priority value that can control the number of times and/or frequency in which a particular supplemental content item is to be rendered in connection with an airing. In variations, the tag selection logic 120 associates a weight or priority value with profile selection parameter, corresponding to profile attributes of playback devices and/or user profiles.


The content selection system 600 may structure tag elements to incorporate data for enabling individual playback devices 40 to retrieve or otherwise receive the assigned supplemental content item during the corresponding pre-defined time slot (730). In some examples, tag population logic 640 structures a tag element to include an identifier and/or content element for a selected supplemental content item. The identifiers of respective supplemental content items may each correspond to one of (i) a network location of an advertiser or advertiser network, or (ii) an identifier to enable a third-party advertiser network to identify the particular supplemental content items.


The MDDS 100 or content selection system 600 may operate to communicate tags 111 that include the structured tag element to each of multiple client devices that are used to view the corresponding airing (740). As described with other examples, the playback devices that receive the tags 111 are triggered to access remote sources where the supplemental content item is provided. For example, the playback devices 40 may be triggered to access third-party advertiser networks, or network locations where supplemental content items are stored.


Although illustrative embodiments have been described in detail herein with reference to the accompanying drawings, variations to specific embodiments and details are encompassed by this disclosure. It is intended that the scope of embodiments described herein be defined by claims and their equivalents. Furthermore, it is contemplated that a particular feature described, either individually or as part of an embodiment, can be combined with other individually described features, or parts of other embodiments. Thus, absence of describing combinations should not preclude the inventor(s) from claiming rights to such combinations.

Claims
  • 1. A method comprising: receiving a request associated with an output device, wherein the request indicates content;sending, to the output device, a set of time-based metadata associated with a timeline of events in the content, wherein a start time associated with output of the content facilitates synchronization of the set of time-based metadata with the timeline of events in the content, and wherein the set of time-based metadata indicates an available time slot during the output of the content; andsending, to the output device, an indication of a content resource that facilitates access to supplemental content for output at the available time slot, wherein the supplemental content is selected based on campaign data indicating one or more timing parameters for outputting the supplemental content.
  • 2. The method of claim 1, wherein receiving the request for the content comprises determining the content based on an identifier, wherein the identifier is embedded within the content or received from a source of the content.
  • 3. The method of claim 2, wherein the identifier embedded within the content corresponds to a channel identifier, and wherein determining the content comprises determining a broadcast schedule for a channel associated with the channel identifier.
  • 4. The method of claim 1, wherein receiving the request for the content comprises: recognizing content of the content, anddetermining an identifier of the content based on a fingerprint of the recognized content.
  • 5. The method of claim 1, wherein receiving the request for the content comprises determining a media identifier of a content asset and an airing of the content asset on a distribution medium.
  • 6. The method of claim 1, wherein the set of time-based metadata comprises a start time of the available time slot, an end time of the available time slot, and a duration of the available time slot.
  • 7. The method of claim 1, further comprising causing the output device to: send a request for one or more tags that are specific to the available time slot;access a remote source to request the supplemental content using the one or more tags; andoutput, during the available time slot, at least a portion of the supplemental content.
  • 8. The method of claim 7, wherein causing the output device to output the supplemental content comprises causing the output device to output the supplemental content as an overlay.
  • 9. The method of claim 1, wherein sending the indication of the content resource comprises sending, to the output device, an indication to retrieve at least one supplemental content item from a remote source.
  • 10. The method of claim 1, wherein the supplemental content is further based on a profile associated with a user of the output device.
  • 11. The method of claim 10, further comprising causing the output device to communicate the profile associated with the user of the output device to a network service configured to select the supplemental content.
  • 12. The method of claim 11, further comprising selecting, based on data from the network service, the indication, and sending the indication to the output device to cause the output device to access an advertisement from an advertisement service associated with an advertiser.
  • 13. The method of claim 10, wherein the profile is based at least in part on at least one of: content that the user previously viewed or content that has previously been viewed on the output device,prior supplemental content that the user previously interacted with on a prior viewing of prior content, ora type of the output device.
  • 14. The method of claim 10, wherein the profile is based at least in part on demographic information associated with the user of the output device.
  • 15. The method of claim 1, wherein the supplemental content comprises an advertisement or interactive supplemental content.
  • 16. The method of claim 1, further comprising sending the content to the output device for output, wherein sending the indication of the content resource that facilitates access to the supplemental content comprises sending, based on sending the content to the output device, the indication of the content resource that facilitates access to the supplemental content.
  • 17. The method of claim 1, wherein the campaign data comprises at least one of: data from an advertiser associated with the supplemental content,data from an advertising service,data associated with an advertiser request, ordata configured by an advertiser.
  • 18. The method of claim 1, wherein the one or more timing parameters indicates a quantity or frequency.
  • 19. A method comprising: receiving a request associated with an output device, wherein the request indicates content;sending, to the output device, metadata comprising a timeline of events in the content and an indication of an available time slot during output of the content, wherein a start time associated with the output of the content facilitates synchronization of the metadata with the timeline of events in the content; andsending, to the output device, an indication of a content resource that facilitates access to supplemental content for output at the available time slot, wherein the supplemental content is selected based on campaign data indicating one or more timing parameters for outputting the supplemental content.
  • 20. The method of claim 19, wherein receiving the request indicating the content comprises determining the content based on an identifier associated with the content.
  • 21. The method of claim 20, wherein the identifier comprises a channel identifier, and wherein determining the content comprises determining the content based on a broadcast schedule associated with the channel identifier.
  • 22. The method of claim 19, wherein receiving the request indicating the content comprises determining a correspondence of the content to a fingerprint characteristic.
  • 23. The method of claim 19, wherein the metadata comprises a start time of the available time slot, an end time of the available time slot, and a duration of the available time slot.
  • 24. The method of claim 19 wherein the content resource causes the output device to: send a request for one or more tags that are specific to the available time slot;send, to a remote source, a request for the supplemental content using the one or more tags; andoutput, during the available time slot, at least a portion of the supplemental content.
  • 25. The method of claim 19, wherein the supplemental content is further based on a profile associated with a user of the output device.
  • 26. The method of claim 19, wherein the campaign data comprises at least one of: data from an advertiser associated with the supplemental content,data from an advertising service,data associated with an advertiser request, ordata configured by an advertiser.
  • 27. The method of claim 19, wherein the one or more timing parameters indicates a quantity or frequency.
  • 28. A device comprising: one or more processors; andmemory storing instructions that, when executed by the one or more processors, cause the device to:receive a request associated with an output device, wherein the request indicates content;send, to the output device, metadata comprising a timeline of events in the content and an indication of an available time slot during output of the content, wherein a start time associated with the output of the content facilitates synchronization of the metadata with the timeline of events in the content; andsend, to the output device, an indication of a content resource that facilitates access to supplemental content for output at the available time slot, wherein the supplemental content is selected based on campaign data indicating one or more timing parameters for outputting the supplemental content.
  • 29. The device of claim 28, wherein the metadata comprises a start time of the available time slot, an end time of the available time slot, and a duration of the available time slot.
  • 30. The device of claim 28, wherein the content resource causes the output device to: send a request for one or more tags that are specific to the available time slot;send, to a remote source, a request for the supplemental content using the one or more tags; andoutput, during the available time slot, at least a portion of the supplemental content.
  • 31. The device of claim 28, wherein the instructions that, when executed by the one or more processors, cause the device to receive the request for the content comprise instructions that, when executed by the one or more processors, cause the device to determine a correspondence of the content to a fingerprint characteristic.
  • 32. The device of claim 28, wherein the supplemental content is further based on a profile associated with a user of the output device.
  • 33. The device of claim 28, wherein the campaign data comprises at least one of: data received from an advertiser associated with the supplemental content,data from an advertising service,data associated with an advertiser request, ordata configured by an advertiser.
  • 34. The device of claim 28, wherein the one or more timing parameters indicates a quantity or frequency.
RELATED APPLICATIONS

This application claims benefit of priority to (i) Provisional U.S. Patent Application No. 62/362,587; filed Jul. 14, 2016; and (ii) Provisional U.S. Patent Application No. 62/366,540; filed Jul. 25, 2016; each of the aforementioned priority provisional applications being incorporated by reference in their respective entirety. This application is a continuation-in-part of U.S. patent application Ser. No. 13/738,551, filed Jan. 10, 2013, which claims benefit of priority to Provisional U.S. Patent Application 61/631,814, filed Jan. 10, 2012; the aforementioned priority application being incorporated by reference in its entirety. This application is a continuation-in-part of U.S. patent application Ser. No. 13/523,829, filed Jun. 14, 2012; which claims benefit of Provisional U.S. Patent Application No. 61/497,023, filed Jun. 14, 2011; the aforementioned priority application being hereby incorporated by reference for all purposes.

US Referenced Citations (294)
Number Name Date Kind
6018768 Ullman et al. Jan 2000 A
6188398 Collins-Rector Feb 2001 B1
6317784 Mackintosh Nov 2001 B1
6357042 Srinivasan Mar 2002 B2
6411949 Schaffer Jun 2002 B1
6415326 Gupta et al. Jul 2002 B1
6741977 Nagaya May 2004 B1
6874126 Lapidous Mar 2005 B1
7096271 Omoigui Aug 2006 B1
7136871 Ozer et al. Nov 2006 B2
7302490 Gupta et al. Nov 2007 B1
7379661 Lamkin et al. May 2008 B2
7415529 Saunders et al. Aug 2008 B2
7421729 Zenoni Sep 2008 B2
7428696 Shin Sep 2008 B2
7472198 Gupta Dec 2008 B2
7757254 Shoff et al. Jul 2010 B2
7788262 Shirwadkar Aug 2010 B1
7913157 Stoakley et al. Mar 2011 B1
8042132 Carney et al. Oct 2011 B2
8220018 De et al. Jul 2012 B2
8230343 Logan Jul 2012 B2
8359399 Landow et al. Jan 2013 B2
8381259 Khosla Feb 2013 B1
8385633 Gokturk et al. Feb 2013 B2
8413205 Carney Apr 2013 B2
8448208 Moreau et al. May 2013 B2
8549575 Amento Oct 2013 B2
8595781 Neumeier et al. Nov 2013 B2
8635649 Ward, III Jan 2014 B2
8681822 Bradley et al. Mar 2014 B2
8699862 Sharifi Apr 2014 B1
8701005 Bedingfield Apr 2014 B2
8719869 Kudelski May 2014 B2
8737813 Berkowitz et al. May 2014 B2
8763060 Jerremy Jun 2014 B2
8775945 Jones et al. Jul 2014 B2
8776108 Barsook Jul 2014 B2
8782691 Noble et al. Jul 2014 B1
8793256 McIntire et al. Jul 2014 B2
8850495 Pan Sep 2014 B2
8898698 Fleischman Nov 2014 B2
8943533 De et al. Jan 2015 B2
9154852 Huber Oct 2015 B2
9191722 Alexander Nov 2015 B2
9294727 Steelberg Mar 2016 B2
9432721 Fleischman Aug 2016 B2
9554093 Hua et al. Jan 2017 B2
9594957 Tanaka et al. Mar 2017 B2
9674562 Spracklen Jun 2017 B1
9762967 Clarke Sep 2017 B2
9814977 Stafford et al. Nov 2017 B2
9832532 Agabob et al. Nov 2017 B1
9911126 Morten et al. Mar 2018 B2
9922334 Rothman Mar 2018 B1
10061742 Lang et al. Aug 2018 B2
10528631 Nordhagen Jan 2020 B1
10579215 Leatham Mar 2020 B2
10664138 Carney May 2020 B2
10708336 Bowen Jul 2020 B2
20010001160 Shoff et al. May 2001 A1
20020042920 Thomas Apr 2002 A1
20020053078 Holtz May 2002 A1
20020064149 Elliott May 2002 A1
20020073424 Ward, III Jun 2002 A1
20020088009 Dukiewicz et al. Jul 2002 A1
20020104101 Yamato Aug 2002 A1
20020112249 Hendricks et al. Aug 2002 A1
20020120925 Logan Aug 2002 A1
20020120933 Knudson et al. Aug 2002 A1
20020131511 Zenoni Sep 2002 A1
20020162117 Pearson Oct 2002 A1
20020188628 Cooper et al. Dec 2002 A1
20030001880 Holtz et al. Jan 2003 A1
20030012548 Levy Jan 2003 A1
20030018609 Phillips et al. Jan 2003 A1
20030033157 Dempski et al. Feb 2003 A1
20030056224 Stone Mar 2003 A1
20030067554 Klarfeld Apr 2003 A1
20030093790 Logan May 2003 A1
20030093792 Labeeb May 2003 A1
20030101454 Ozer et al. May 2003 A1
20030126200 Wolff Jul 2003 A1
20030229900 Reisman Dec 2003 A1
20040003400 Carney et al. Jan 2004 A1
20040024898 Wan Feb 2004 A1
20040031058 Reisman Feb 2004 A1
20040220926 Lamkin et al. Nov 2004 A1
20040226051 Carney Nov 2004 A1
20040244057 Wallace et al. Dec 2004 A1
20040260682 Herley et al. Dec 2004 A1
20040267738 Shin Dec 2004 A1
20050015815 Shoff et al. Jan 2005 A1
20050022226 Ackley et al. Jan 2005 A1
20050038794 Piersol Feb 2005 A1
20050050218 Sheldon Mar 2005 A1
20050060741 Tsutsui et al. Mar 2005 A1
20050125428 Kang et al. Jun 2005 A1
20050188402 De et al. Aug 2005 A1
20050235318 Grauch et al. Oct 2005 A1
20060015908 Vermola Jan 2006 A1
20060174310 Lee Aug 2006 A1
20060190336 Pisaris-Henderson Aug 2006 A1
20070011050 Klopf Jan 2007 A1
20070061838 Grubbs Mar 2007 A1
20070088609 Reller Apr 2007 A1
20070124756 Covell May 2007 A1
20070124789 Sachson et al. May 2007 A1
20070127720 White Jun 2007 A1
20070239558 Miles Oct 2007 A1
20070250761 Bradley et al. Oct 2007 A1
20070250901 McIntire et al. Oct 2007 A1
20070274676 Diomelli et al. Nov 2007 A1
20080017722 Snyder et al. Jan 2008 A1
20080036917 Pascarella Feb 2008 A1
20080066100 Brodersen Mar 2008 A1
20080066110 Brodersen et al. Mar 2008 A1
20080068500 Krause Mar 2008 A1
20080071920 Gupta Mar 2008 A1
20080092047 Fealkoff et al. Apr 2008 A1
20080092168 Logan Apr 2008 A1
20080113789 Canessa et al. May 2008 A1
20080168133 Osborne Jul 2008 A1
20080195746 Bowra et al. Aug 2008 A1
20080209485 Emura Aug 2008 A1
20080228935 Nam Sep 2008 A1
20080249853 Dekel et al. Oct 2008 A1
20080255904 Park et al. Oct 2008 A1
20080267588 Iwase Oct 2008 A1
20080294663 Heinley et al. Nov 2008 A1
20080301727 Cristofalo Dec 2008 A1
20080307454 Ahanger et al. Dec 2008 A1
20080313229 Taswell Dec 2008 A1
20090006191 Arankalle et al. Jan 2009 A1
20090041418 Candelore Feb 2009 A1
20090044246 Sheehan Feb 2009 A1
20090113468 Steelberg Apr 2009 A1
20090125812 Blinnikka May 2009 A1
20090132371 Strietzel May 2009 A1
20090150215 Kalb et al. Jun 2009 A1
20090150947 Soderstrom Jun 2009 A1
20090171948 Solomon et al. Jul 2009 A1
20090204481 Navar et al. Aug 2009 A1
20090216745 Allard Aug 2009 A1
20090226152 Hanes Sep 2009 A1
20090234815 Boerries et al. Sep 2009 A1
20090235298 Carlberg et al. Sep 2009 A1
20090240564 Boerries et al. Sep 2009 A1
20090240734 Lloyd-Jones Sep 2009 A1
20090245058 Goto et al. Oct 2009 A1
20090254962 Hendricks et al. Oct 2009 A1
20090276821 Amento Nov 2009 A1
20090285550 Yamada et al. Nov 2009 A1
20090295993 Chhokra Dec 2009 A1
20090307227 Prestenback et al. Dec 2009 A1
20090328113 van de Klashorst Dec 2009 A1
20100011392 Bronstein et al. Jan 2010 A1
20100023968 Wannamaker Jan 2010 A1
20100031299 Harrang Feb 2010 A1
20100064311 Cooper Mar 2010 A1
20100070643 Puranik Mar 2010 A1
20100083306 Dempski et al. Apr 2010 A1
20100088716 Ellanti Apr 2010 A1
20100106798 Barreto et al. Apr 2010 A1
20100118206 Gao May 2010 A1
20100135637 McDermott et al. Jun 2010 A1
20100142915 McDermott et al. Jun 2010 A1
20100146542 Weihs et al. Jun 2010 A1
20100158099 Kalva et al. Jun 2010 A1
20100161825 Ronca et al. Jun 2010 A1
20100162286 Berry Jun 2010 A1
20100169303 Biderman et al. Jul 2010 A1
20100169460 Angell et al. Jul 2010 A1
20100169910 Collins et al. Jul 2010 A1
20100180289 Barsook Jul 2010 A1
20100205049 Long Aug 2010 A1
20100228693 Dawson et al. Sep 2010 A1
20100235472 Sood Sep 2010 A1
20100241961 Peterson et al. Sep 2010 A1
20100241962 Peterson Sep 2010 A1
20100246666 Miazzo et al. Sep 2010 A1
20100274667 Lanham et al. Oct 2010 A1
20100287580 Harding et al. Nov 2010 A1
20100299199 Kang Nov 2010 A1
20100299687 Bertino-Clarke Nov 2010 A1
20100333152 Redmann et al. Dec 2010 A1
20110044601 Lee et al. Feb 2011 A1
20110058675 Brueck et al. Mar 2011 A1
20110061001 Jones et al. Mar 2011 A1
20110078623 Liu et al. Mar 2011 A1
20110099225 Osborne Apr 2011 A1
20110134321 Berry et al. Jun 2011 A1
20110145880 Wang Jun 2011 A1
20110154200 Davis et al. Jun 2011 A1
20110178854 Sofer Jul 2011 A1
20110196747 Karidi et al. Aug 2011 A1
20110218851 O'Hanlon Sep 2011 A1
20110238495 Kang Sep 2011 A1
20110238507 Ben-Rubi Sep 2011 A1
20110246622 Pantos et al. Oct 2011 A1
20110246885 Pantos et al. Oct 2011 A1
20110258529 Doig et al. Oct 2011 A1
20110258545 Hunter Oct 2011 A1
20110273455 Powar Nov 2011 A1
20110276372 Spivack et al. Nov 2011 A1
20110319160 Arn et al. Dec 2011 A1
20110321096 Landow et al. Dec 2011 A1
20120011550 Holland Jan 2012 A1
20120102042 Flick Apr 2012 A1
20120109755 Birch May 2012 A1
20120110627 Reitmeier May 2012 A1
20120116883 Asam et al. May 2012 A1
20120144417 Khader Jun 2012 A1
20120158472 Singh et al. Jun 2012 A1
20120167146 Incorvia Jun 2012 A1
20120179536 Kalb et al. Jul 2012 A1
20120192220 Wyatt Jul 2012 A1
20120192225 Harwell Jul 2012 A1
20120192227 Fleischman et al. Jul 2012 A1
20120197419 Dhruv Aug 2012 A1
20120203589 Eggena et al. Aug 2012 A1
20120233646 Coniglio et al. Sep 2012 A1
20120243850 Basra et al. Sep 2012 A1
20120256762 Greenberger Oct 2012 A1
20120290644 Gabin et al. Nov 2012 A1
20120310750 Schutzbank et al. Dec 2012 A1
20130011120 Tanaka Jan 2013 A1
20130014155 Clarke et al. Jan 2013 A1
20130024906 Carney Jan 2013 A9
20130036007 Lau Feb 2013 A1
20130070152 Berkowitz Mar 2013 A1
20130071090 Berkowitz Mar 2013 A1
20130074141 Hwang et al. Mar 2013 A1
20130077876 Tanaka Mar 2013 A1
20130091518 Trainor Apr 2013 A1
20130095864 Marovets Apr 2013 A1
20130097190 Shah Apr 2013 A1
20130104179 Shah Apr 2013 A1
20130132818 Anders et al. May 2013 A1
20130132854 Raleigh May 2013 A1
20130170753 Tanaka Jul 2013 A1
20130170813 Woods Jul 2013 A1
20130176493 Khosla Jul 2013 A1
20130183021 Osman Jul 2013 A1
20130191745 Vella Jul 2013 A1
20130198642 Carney Aug 2013 A1
20130204698 Bryant Aug 2013 A1
20130254340 Lang et al. Sep 2013 A1
20130262997 Markworth et al. Oct 2013 A1
20130293677 Lee Nov 2013 A1
20130332839 Frazier et al. Dec 2013 A1
20130347018 Limp Dec 2013 A1
20140009680 Moon Jan 2014 A1
20140046775 Harb Feb 2014 A1
20140089967 Mandalia et al. Mar 2014 A1
20140149918 Asokan May 2014 A1
20140157307 Cox Jun 2014 A1
20140180829 Umeda Jun 2014 A1
20140181868 O'Callaghan Jun 2014 A1
20140310243 McGee et al. Oct 2014 A1
20140327677 Walker Nov 2014 A1
20140337127 Morel Nov 2014 A1
20140365302 Walker Dec 2014 A1
20150003798 Walker Jan 2015 A1
20150019644 Walker Jan 2015 A1
20150020096 Walker Jan 2015 A1
20150134673 Golan May 2015 A1
20150135206 Reisman May 2015 A1
20150135214 Reisman May 2015 A1
20150199968 Singhal et al. Jul 2015 A1
20150237386 Sheehan Aug 2015 A1
20150237389 Grouf et al. Aug 2015 A1
20150245111 Berry et al. Aug 2015 A1
20150281763 Bertrand Oct 2015 A1
20150289030 Roberts et al. Oct 2015 A1
20160127776 Zilberstein May 2016 A1
20160182923 Higgs Jun 2016 A1
20160191957 Teixeira Jun 2016 A1
20160234295 Ziring et al. Aug 2016 A1
20160322081 Schileru Nov 2016 A1
20170013314 Mallinson Jan 2017 A1
20170041644 Dalrymple Feb 2017 A1
20170041648 Dalrymple Feb 2017 A1
20170041649 Dalrymple Feb 2017 A1
20170201850 Raleigh Jul 2017 A1
20170295386 Owen et al. Oct 2017 A1
20170339462 Clarke Nov 2017 A1
20170344439 Howe Nov 2017 A1
20180014077 Hou Jan 2018 A1
20190107906 Berry et al. Apr 2019 A1
20190146742 Li et al. May 2019 A1
20190349619 Hou Nov 2019 A1
20200068256 Gordon Feb 2020 A1
20210068335 Noivirt-Brik et al. Mar 2021 A1
Foreign Referenced Citations (5)
Number Date Country
2973717 Jan 2018 CA
3270600 Jan 2018 EP
WO 2012094432 Jul 2012 WO
WO 2012094539 Jul 2012 WO
WO 2012174301 Dec 2012 WO
Non-Patent Literature Citations (9)
Entry
US Patent Application filed on Jan. 10, 2012, entitled “Interface for Displaying Supplemental Dynamic Timeline Content”, U.S. Appl. No. 61/631,814.
US Patent Application filed on Jul. 25, 2016, entitled “System to Select Supplemental Content for Playback Devices”, U.S. Appl. No. 62/366,540.
US Patent Application filed on Jul. 14, 2016, entitled “Metadata Delivery System for Rendering Supplementary Content”, U.S. Appl. No. 62/362,587.
US Patent Application filed on Jun. 14, 2011, entitled “System and Method for Presenting Content with Time Based Metadata”, U.S. Appl. No. 61/497,023.
US Patent Application filed on Oct. 22, 2016, entitled “Supplemental Content Playback System”, U.S. Appl. No. 15/331,815.
International Search Report and Written Opinion, International Application No. PCT/US2012/020239, Date of Mailing Apr. 24, 2012, 9 Pages.
International Search Report and Written Opinion, International Application No. PCT/US2012/020387, Date of Mailing Jul. 10, 2012, 11 Pages.
International Search Report and Written Opinion, International Application No. PCT/US2012/042541, Date of Mailing Aug. 31, 2012, 9 Pages.
US Patent Application filed on Apr. 23, 2020, entitled “Interface for Displaying Supplemental Dynamic Timeline Content”, U.S. Appl. No. 15/929,300.
Related Publications (1)
Number Date Country
20170041644 A1 Feb 2017 US
Provisional Applications (4)
Number Date Country
62366540 Jul 2016 US
62362587 Jul 2016 US
61631814 Jan 2012 US
61497023 Jun 2011 US
Continuation in Parts (2)
Number Date Country
Parent 13738551 Jan 2013 US
Child 15331811 US
Parent 13523829 Jun 2012 US
Child 15331811 US