# Patent

## Title
Systems and methods for in-home and on-the-go targeted content delivery

## Abstract

A method and apparatus for streaming content is disclosed. A streamer (155) detects a cue for a break in a segment of the program content, wherein the cue includes an identification of an advertising provider associated with the break. The streamer sends, to an advertisement server (115), a request for content associated with the advertising provider, and receives, from the advertisement server, an advertisement associated with the advertising provider. Further, the streamer transcodes the advertisement based on configuration information of an additional device (165) to generate formatted content viewable on the additional device. Moreover, the streamer streams the formatted content to the additional device via the local connection.

## Background
FIELD
This application generally relates to content delivery, and more particularly to platforms and techniques for streaming alternate advertisement content to a set of devices.
BACKGROUND
With the advent of digital televisions, set-top boxes (STBs), digital video recorders (DVRs), and media delivery systems such as Internet Protocol television (IPTV) and Video on Demand (VOD), a content consumer has various options to view multimedia content. For example, the consumer can view a program as it is broadcasted or can record the program for later viewing. In addition, some cable and telecom companies incorporate targeted content delivery into broadcast content. For example, the cable and telecom companies, along with their customers, can target different groups of consumers with different targeted content, such as different advertisements.
However, there are shortcomings in current techniques. In particular, cable and telecom companies employ targeted advertisements on a per STB (or similar component) basis, without considering that other users may be viewing the targeted advertisements. Further, the targeted advertisements themselves are sent to the STB (or similar component) directly from the back-end servers, thereby increasing network load. Moreover, when content is recorded and the recorded content is played back many times on a device, the same (or different) users are presented with the same advertisement many times.
Accordingly, there is an opportunity for more efficient and effective targeted advertising.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.
FIG. 1 is a block diagram of an exemplary content delivery environment in accordance with some embodiments.
FIG. 2 is a more-detailed block diagram of a communication module in accordance with some embodiments.
FIG. 3 is a diagram of an exemplary content delivery signaling diagram in accordance with some embodiments.
FIG. 4 is a flow diagram depicting targeted content delivery in accordance with some embodiments.
FIG. 5 is a block diagram depicting various advantages of an exemplary content delivery environment in accordance with some embodiments.



DETAILED DESCRIPTION
A method and apparatus for a communication device in a communication system provides individualized target content delivery in a local area network environment. A set-top box (STB) monitors program content for a cue for a splice point or advertisement opportunity and indicates the splice point, as well as an advertising provider associated with the cue, to the communication device. In addition, the method and apparatus requests content associated with the advertising provider from a head-end ad server, and the head-end ad server provides a relevant advertisement to the communication device. The method and apparatus transcodes the program content and the relevant advertisement based on configuration information of an additional device and streams the transcoded content from the communication device to the additional device. A user of the additional device can view the streaming content on the additional device.
The apparatus and method as discussed herein can offer many improvements to existing content delivery techniques. For example, advertisers can use advertisement slots more efficiently and effectively by individually targeting multiple users of a local area network, such as a wireless local area network (WLAN), within a household or work area. In particular, existing head-end servers employ targeted advertisements that assume there is only one user per STB or similar component. In contrast, according to the apparatus and method as discussed herein, when an STB of a household is showing particular content from an advertiser, a streamer device can be used to enable one or more users accessing locally-networked devices in the household to watch alternate, sometimes preferred, content on their devices. In addition, the streamer device can transcode multiple content streams (e.g., via interleaved processing) for multiple locally-networked devices (e.g., devices being used by different members of a household).
In addition, a streamer device at a user premises such as a household can transcode content to be streamed to mobile devices based on configuration and specification data of the mobile devices. In contrast, head-end servers of existing systems cannot transcode data for compatibility with mobile devices because the head-end servers are not aware of the capabilities of the mobile devices. Further, in existing systems, alternate advertisements need to be multiplexed as different components or channels in a cable signal, which requires significant bandwidth availability. In the systems and methods as discussed herein, the streamer can connect to a remote ad server and retrieve the advertisement content to transcode and stream to a mobile device, which saves bandwidth because alternate content need not be multiplexed during transport.
The apparatus and method as discussed herein can further offer flexibility as well as tailored content. In particular, the advertisements can be selected at the ad server based on user interest or preference, as well as based on the advertising provider itself, and the best matching content can be selected. Further, new content can be added by or sourced from partner websites or other entities without the need to add the new content to a channel map or component at the head-end server. Still further, the streamer device can store or otherwise queue additional or alternate advertisements for later consumption by users, such as when a user watches content recorded on a DVR or when a mobile device connects to the streamer device via a local connection. As such, the streamer device can provide different advertisements to different users while the users watch recorded content or when users are connected to the streamer device.
As used herein, a “cue for a splice point” can be understood to be any type of cue tone or insertion in content that can indicate a break in the content such as, for example, an advertisement. The cue can include metadata with any type of associated information, such as an advertising provider associated with the advertisement, a length of the advertisement, a product being advertised, and/or other information. In some cases, the splice point itself can also include the metadata, and can have associated “splice-in” and “splice-out” points. Further, as used herein, an “advertising provider” can be understood to be any type of entity having a product, service, cause, and/or the like to advertise or otherwise promote.
FIG. 1 illustrates a block diagram of an exemplary content delivery environment 100. It should be appreciated that each of the components of the environment 100 can have one or multiple entities. The environment 100 includes a head-end network 105 with a content server 110 and an ad server 115. For example, the head-end network 105 can be a multiple system operator (MSO) network configured to operate one or more television systems and provide digital wideband communication services through agreements with television stations and other entities.
The content server 110 can use any type of hardware, software, and combinations thereof configured to transmit or otherwise provide programming content to end users. Further, the ad server 115 can use any type of hardware, software, and combinations thereof configured to transmit or otherwise provide advertisement content to end users. For example, the content server 110 can provide content from network television programs to the end users, and the ad server 115 can provide advertisement content from advertising providers to the end users, to be inserted at various points in the broadcast of the network television programs.
The head-end network 105 and components thereof can be configured to splice advertisement content into a video content stream. More particularly, a splicing component of the head-end network 105 can monitor content from the content server 110 to detect a splice point that signifies a break in the content. When a splice point is detected, the splicing component can link pre-established packet identifiers (PIDs) corresponding to advertisement segments from the ad server 115 to the content. After the advertisement segments are linked, the head-end network 105 can provide an uninterrupted spliced stream of programming and advertisements to customers.
The environment 100 further includes a local Multimedia over Coax Alliance® (MoCA) network 120. In particular, the head-end network 105 can transmit programming content and advertisement content to devices in a customer's home network 154, such as a set-top box (STB) 130 and other devices, via the MoCA network 120. It should be appreciated that the local MoCA network 120 can be any type of local area network (LAN), wide area network (WAN), or other network operating pursuant to any communication protocol.
As shown in FIG. 1, the local MoCA network 120 and associated components can reside within the home network 154 and/or similar premises. In particular, the home network 154 can include the local MoCA network 120, the STB 130, and a streamer 155. In embodiments, the streamer 155 can be any device or component using hardware, software, and/or a combination thereof, and the streamer 155 can be separate from the STB 130 or can be a component within the STB 130. The MoCA network 120 can be configured to connect to the STB 130 and the streamer 155 via coaxial connection(s), wireless connection(s), or other connections, such as via a local area network.
The STB 130 can be configured to provide content to a television 160 or similar display device such as a monitor, and the streamer 155 can be configured to provide content to one or more mobile devices 165, 170, 175 via a local area network, such as a wireless local area network (WLAN) 162 or a wired local area network 163 or another type of network such as a wireless personal area network (e.g., a Bluetooth® network). It should be appreciated that the mobile device 165 can be any hardware device or component capable of connecting to the streamer 155 and outputting audio and/or video content. For example, the mobile device 170 can be a mobile phone, a tablet device, a notebook computer, and/or the like. In some cases, the mobile device 175 can be a gaming console, handheld gaming device, or similar components.
The STB 130 can be configured to communicate with the streamer 155, and vice-versa, via a set of tuners, ports, or other components. According to implementations, the streamer 155 can be configured to connect to the local MoCA network 120, the STB 130, and/or the head-end network 105 to deliver or otherwise facilitate the delivery of alternate or different content to the set of mobile devices 165, 170, 175. For example, the content that the streamer 155 provides each mobile device 165, 170, 175 can be different from the content that the STB 130 provides to the television 160. For further example, the streamer 155 can provide alternate or different content to each of the set of mobile devices 165, 170, 175. Moreover, the content can be advertisements that can originate from one or more advertising providers.
The streamer 155 can be configured to provide the alternate or different content at concurrent or varied times. Further, the streamer 155 can select the alternate or different content based on configuration or specification data associated with each mobile device 165, 170, 175, user preference data or user demographic data associated with each user of the mobile devices 165, 170, 175, other data, and/or combinations thereof. For example, the configuration data of the mobile devices 165, 170, 175 can include data relating to display screen size, communication protocols, compatible media formats or associated media applications, and/or other specifications. Examples of user preference data can include whether the user has indicated that he or she likes action movies (rather than romantic movies), motorcycles (rather than sedans), dining at restaurants (more than dining at home or grocery shopping), and the user's preferred language. User demographic data can include the user's indicated age range (e.g., under 13, 14-17, 18-22, 23-35, 36-50, over 51), the user's gender (male or female), the user's race or cultural heritage, etc.
In some cases, mobile devices 165, 170 can be “paired” or otherwise connected to the streamer 155 via, for example, the wireless local area network 162 or other networks such as a wireless personal area network (e.g., a Bluetooth® network), wherein the streamer 155 can receive the configuration or specification data associated with the mobile devices 165, 170 upon pairing.
The STB 130 can monitor for or otherwise detect a cue for a splice point in the content received from the head-end network 105. For example, the cue can signify the commencement of an upcoming advertisement from an advertising provider and can include metadata identifying the advertising provider. In some cases, the STB 130 can have an ad client or similar module installed thereon that can store or access user preferences and/or user demographics of users associated with the home network 154 and components thereof. For example, the user preferences and/or demographic information can be gathered or received via users operating the television 160 and/or the mobile devices 165, 170, 175. In embodiments, the cue for a splice point can be detected in content playback from a DVR. For example, a user can record a program on a DVR device incorporated in or separate from the STB 130, and the splice point can be detected by the STB 130 when the recorded program is later played back by the DVR.
Upon detection of the splice point, the STB 130 can provide an identification of the advertising provider to the streamer 155. For example, the STB 130 can provide the metadata including the advertising provider identification or just the advertising provider identification to the streamer 155. In some cases, the ad server 115 can provide, to the STB 130, packet identifier(s) (PID) such as uniform resource identifier (URI) component(s) corresponding to one or more advertisements, and the STB 130 can provide the received PIDs or URI components to the streamer 155. Further, in some cases, the STB 130 can provide a notification of the advertisement directly to a mobile device 165 if, for example, the mobile device 165 is paired directly to the STB 130. More particularly, the notification of the advertisement to the streamer 155 can be merely a notification, a notification with an identification of the advertising entity, or a notification with a PID, URI, or similar component.
After the streamer 155 receives the identification of the advertising entity, the streamer 155 can connect to the ad server 115 of the head-end network 105 to request advertisement content associated with the advertising provider. In some cases, the streamer 155 can provide the ad server 115 with configuration or specification information of the mobile devices 165, 170, 175, user preference data, user demographic data, and/or other data. In response to receiving the request from the streamer 155, the ad server 115 can select one or more relevant advertisements from the advertising provider that match the request. For example, if the advertising provider is a car manufacturer, then the ad server 115 can select an advertisement for a sedan for one mobile device 170 and an advertisement for a sport utility vehicle (SUV) for another mobile device 175. Meanwhile, the car manufacturer's default advertisement for a coupe will be shown on the television 160. The ad server 115 can be configured to provide indications or references (e.g., URIs or others) of the one or more selected advertisements to the streamer 155. In some embodiments, if the STB 130 provides the indication(s) or reference(s) (e.g., URIs or others) to the streamer 155 directly, then the streamer 155 need not request advertisement content from the ad server 115.
The streamer 155 can be configured to transcode or otherwise convert the received content or references based on the configuration and specification information of each of the mobile devices 165, 170, 175. For example, if the mobile device 165 has a 1024-by-768-pixel resolution at 132 pixels per inch (ppi), then the streamer 155 can transcode the content such that the transcoded content is compatible with or otherwise configured to display on the mobile device 165. It should be appreciated that multiple transcoding techniques are envisioned. In some embodiments, the streamer 155 can apply digital rights management (DRM) techniques, or other encoding techniques, to the data, prior to or subsequent to transcoding the data. For example, the DRM application can be based on rights or access privileges of one or more users of the components of the environment 100.
The streamer 155 can stream or otherwise provide the transcoded content to the appropriate mobile devices of the set of locally-networked mobile devices 165, 170, 175. For example, the set of mobile devices 165, 170, 175 can receive the transcoded content from the streamer 155 via the wireless local area network 162, or other network connections 163. In some situations, a mobile device 165 is running a media application that receives the transcoded program content and targeted content as a single, uninterrupted spliced stream of both programming and advertisements.
Alternately, in some cases, a user of a mobile device 170 can be already tuned to a program being output by the streamer 155, whereby the transcoded content can interrupt the program on the mobile device 170 when a default advertisement interrupts the program output from the STB 130. Thus, the mobile device 170 can receive targeted content from the streamer 155 (instead of the default advertisement) in one stream and program content from the streamer 155 in another stream and splice the two streams together prior to displaying the content.
In other cases, the user of the mobile device 175 can be accessing another application or module of the mobile device 175 and not receive any program content from the STB 130. For example, the user can be playing a game on the mobile device 175 when the streamer 155 is ready to provide the transcoded content to the mobile device 175. In embodiments, software associated with the mobile device 175, such as an operating system or another application, can prompt the user to either allow the transcoded content to be streamed or reject the transcoded content from being streamed. Thus, targeted content can also be sent to the mobile device 175 apart from the program content from the STB 130.
In embodiments, the streamer 155 can be configured to store or buffer the transcoded content if, for example, the appropriate mobile device 165, 170, 175 is not available, is not connected to the wireless local area network 162 or the wired local area network 163, or a user of the mobile device 165, 170, 175 has opted not to receive the transcoded content. Further, the streamer 155 can be configured to transcode and store and/or buffer additional advertisement content associated with the original advertising provider or an additional advertising provider. When the appropriate mobile device 165, 170, 175 is available, connects to the wireless local area network 162 or the wired local area network 163, or a user of the mobile device 165, 170, 175 has opted to receive the transcoded content, the streamer 155 can stream the stored content to the mobile device 165, 170, 175. In some cases, an additional mobile device (not shown) not already in the set of mobile devices 165, 170, 175 can connect to the streamer 155 via, for example, the wireless local area network 162, and the streamer 155 can stream any stored content to the additional mobile device. In some cases, the streamer 155 can obtain the configuration and specification data of the additional mobile device, transcode the stored content as appropriate, and stream the transcoded content to the additional mobile device.
In some cases, the streamer 155 is incorporated as a component of the STB 130, and the STB 130 (with streamer 155 component) can be configured to request advertisement content directly from the ad server 115. For example, the STB 130 can provide configuration and specification data for the mobile device 165 to the ad server 115, which can select and return an appropriate advertisement, and the STB 130 with streamer 155 component can stream the selected advertisement to the mobile device 165 for viewing.
In some cases, there may not be any alternative advertisements available in a given time slot of a particular transport stream or program broadcast. Accordingly, the STB 130, when it detects the cue for a splice point, can indicate the splice point and associated metadata to the streamer 155. If, at a later point in time, an alternative advertisement is available at the ad server 115, the ad server 115 can provide an indication of the alternative advertisement (e.g., a URI) to the streamer 155. For example, the indication can be for a specific alternative advertisement, or the indication can specify the streamer 155 itself and reference different advertisements for the streamer 155 to access at different times, whereby the streamer 155 can select alternative advertisements that match user preferences and/or demographics, that match the configuration and specification data of the set of mobile devices 165, and/or based on other factors. Thus, different targeted content can be inserted at splice points during playback of a recorded program.
FIG. 2 depicts an exemplary streamer 200 and components thereof. It should be appreciated that FIG. 2 represents a generalized schematic illustration and that other components and/or entities can be added or existing components and/or entities can be removed or modified.
As shown in FIG. 2, the streamer 200 can include a set of ports that can receive input signals or data from, or output signals or data to, other components of a content distribution environment, such as the STB 130, the head-end network 105, one or more mobile devices 165, 170, 175, and others, as discussed herein. More particularly, a streamer output port 202 can be configured to send transcoded data, such as transcoded advertisement and/or program content data, to a mobile device such as mobile device 165, 170, 175. Similarly, an optional streamer input port 209 can be configured to receive user preference and/or user demographic data, configuration or specification data for mobile devices, and/or other data. Further, a cable input port 204 can be configured to receive program content and data thereof (e.g., splice point data, advertising provider metadata, etc.) from an STB or other components, such as directly from the local MoCA network 120. Still further, an ad server output port 206 can be configured to send a request to an ad server, such as the ad server 115 as discussed with respect to FIG. 1, for advertising content. Moreover, an ad server input port 208 can be configured to receive, from an ad server, advertisement content to be transcoded and streamed to a mobile device.
The streamer 200 can further include a processor 210 communicating with a memory 220, such as electronic random access memory, or other forms of transitory or non-transitory computer readable storage mediums, operating under control of or in conjunction with an operating system 222. The operating system 222 can be any commercial, open-source, or proprietary operating system or platform. The processor 210 can communicate with a database 240, such as a database stored on a local hard drive. While illustrated as a local database in the streamer 200, the database 240 can be separate from the streamer 200.
The processor 210 can further communicate with a communication module 215, such as a wired or wireless data connection, which in turn communicates with a wide area network 245, such as various public or private networks. More particularly, the wide area network 245 can connect the streamer 200 to a head-end network and components thereof, and/or other components via the ports 206, 208 or the communication module 215. The communication module 215 can include radio transceivers that communicate with a wireless local area network 250 or other networks (e.g., a Bluetooth® wireless personal area network) and/or routers that communicate with a wired local area network. The communication module 215 can include a WLAN transceiver 216, a Bluetooth® WPAN transceiver 217, and a LAN modem 218 that can each connect to the local area network 250. Further, the communication module 215 can include a WWAN transceiver 219 (e.g. cellular or WiMAX) that can connect to the wide area network 245. In some cases, the communication module 215 can include other WWAN connections (not shown in figures) such as a DSL modem, cable modem, or the like, that can also connect to the wide area network 245.
The set of ports 202, 204, 206, 208, 209 of the streamer 200 can use the components of the communication module 215 to connect to one or more mobile devices 165, 170, 175. For example, the ad server input port 208 can receive advertisement content via the WWAN transceiver 219, and the streamer output port 202 can transmit transcoded advertisement content to the mobile device 165 via the WLAN transceiver 216. In some cases, one or more of the ports 202, 204, 206, 209, 209 can bypass the components of the communication module 215. For example, the streamer output port 202 can directly connect to the mobile device 175 via, for example, an RJ45 ethernet cable.
The processor 210 can also communicate with a tuner 225 that can be configured to process signals received by the input ports (e.g., the streamer input port 209 and the cable input port 204). Further, the processor 210 can communicate with a transcoder 230 that can be configured to interface with the tuner 225 and transcode data processed by the tuner 225. Still further, the processor 210 can also communicate with a set of applications 235 that can be configured to execute control logic and perform data processing to perform the functions and techniques as discussed herein. For example, the set of applications 235 can include an encryptor application that can be configured to apply DRM or other encryption techniques to data, and a streaming application that can be configured to stream data to other devices or entities. It should be appreciated that other applications 235 and functionalities are envisioned.
While FIG. 2 illustrates the streamer 200 as a standalone system using a combination of hardware and software, the components of the streamer 200 can also be implemented as a software application or program capable of being executed by a conventional computer platform. Likewise, the components of the streamer 200 can also be implemented as a software module or program module capable of being incorporated in other software applications and programs in, for example, an STB. In either case, the components of the streamer 200 can be implemented in any type of conventional proprietary or open-source computer language.
FIG. 3 is a signaling diagram illustrating some functionalities of the components of the content-streaming environment. As shown in FIG. 3, the environment can include a streamer 305, an additional device 310, an STB 315, an ad server 320, and a content server 325. It should be understood that the functionalities as illustrated in FIG. 3 are merely exemplary, and that other functionalities can be added or existing functionalities can be removed or modified.
As shown in FIG. 3, in optional step 330, the additional device 310 can provide user preferences and/or user demographics and configuration information to the streamer 305. For example, the user preferences and user demographics can relate to a user of the additional device 310 and the configuration information can detail specifications of the additional device 310. It should be appreciated that step 330 can occur at any point in time and the additional device can be a mobile device such as 165, 170, 175 from FIG. 1. In step 332, the content server 325 can provide program content to the STB 315. The program content can have indications for splice points, advertisement metadata, and/or other similar data. In step 335, the STB 315 can monitor for cues for splice points in the program content. For example, the cues can include metadata related to advertisement providers associated with the splice points.
In step 340, the STB 315 can indicate the splice point and the advertising provider to the streamer 305. Optionally, the STB 315 can send the indication directly to the additional device 310. In a case of splicing, the STB 315 can also provide a target ad component identifier, such as in the form of a PID, to the streamer 305. If the STB 315 provides the target ad component identifier, then in step 345, the streamer 305 can fetch the target ad component from the STB 315, which has been received or is being received by the STB 315. In step 350, the STB 315 can provide the target ad component to the streamer 305 in the form of, for example, a web link or other type of URI.
In the case of a remote advertisement request, in step 355, the streamer 305 can request, from the ad server 320, content associated with the advertising provider. More particularly, the streamer 305 can provide an indication of the advertising provider and can optionally provide any user preferences and/or user demographics associated with the additional device 310. In step 360, the ad server 320 can provide a target advertisement component for the associated advertising provider to the streamer 305 in the form of, for example, media data, or a web link or other type of URI.
In step 365, the streamer 305 can transcode the target advertisement component based on the configuration information of the additional device 310 to generate a transcoded advertisement that is viewable on the additional device 310. In step 370, the streamer 305 can stream the transcoded advertisement on the additional device 310. If the additional device 310 is not available, for example if the additional device 310 is not connected via a local network to the streamer 305, then in step 375, the streamer 305 can store the transcoded advertisement in storage, and stream the transcoded advertisement to the additional device 310 when the additional device 310 is available.
In some cases, the streamer 305 can store multiple advertisements to be streamed to multiple additional devices at a later time, based on user preferences and/or demographic information, configuration information, and/or other data. Further, the above processing and functionality can be implemented during playback of stored program content via, for example, a DVR player. In particular, the streamer 305 can be configured to monitor for cues for splice points during playback of the stored program content, fetch and transcode the target ad component, and stream the transcoded advertisement to the additional device 310, as discussed herein.
FIG. 4 is a flowchart of a method 400 for a streamer (such as the streamer 155 shown in FIG. 1) to stream an advertisement to an additional device. The method 400 begins with the streamer detecting 405 a break in a segment of program content, wherein the break includes an identification of an advertising provider associated with the break. In some cases, the break can be the initial content received from an STB or other component. For example, some television programs start with one or more advertisements. The streamer sends 410, to an advertisement server, a request for content associated with the advertising provider. The request can optionally include user preferences and/or demographics associated with one or more users of the additional device.
The streamer receives 415, from the advertisement server, an advertisement associated with the advertising provider. In some cases, the streamer can receive multiple advertisements that can be based on the user preferences, user demographics, availability, and/or other factors. The streamer optionally receives 420, from the additional device via a local connection, configuration information of the additional device. It should be understood that the configuration information receipt 420 can occur at any time in the method 400, including before the break in the segment of program content is detected. In some cases, the additional device can be configured to provide the configuration information to the streamer automatically upon connecting to the streamer via the local connection.
The streamer transcodes 425 the advertisement based on the configuration information to generate formatted content viewable on the additional device. For example, the formatted content can be based on a media display application of the additional device, a screen size of the additional device, and/or other configuration parameters. The streamer determines 430 whether the additional device is connected to the streamer, for example via the local connection. If the additional device is not connected to the streamer, then the streamer stores 450 the formatted content in memory. After storing the formatted content, in some cases, the streamer can monitor for the additional device connecting to the streamer. In contrast, if the additional device is connected to the streamer, then the streamer optionally notifies 435 a user of the additional device of an opportunity to receive a stream of the formatted content. For example, the streamer can prompt the additional device to display an alert or similar notification that queries the user as to whether the user would like to view the advertisement.
The streamer then optionally determines 440 whether the user has accepted to view the advertisement. If the user has not accepted to view the advertisement, then the streamer stores 450 the formatted content in memory. After storing the formatted content, in some cases, the streamer can monitor for the user subsequently accepting to view the advertisement. If the user accepts to view the advertisement, then the streamer streams 445 the formatted content to the additional device. For example, a media application on the mobile device can play the advertisement as the data is received from the streamer. In some cases, the media application can play exclusively the advertisement, or can play the advertisement along with the program content being output by an associated STB (either as a single spliced stream of program content and the advertisement or as two individual streams—one with program content and another with the advertisement).
FIG. 5 is a diagram illustrating various benefits of the systems and methods as discussed herein. In particular, 516 details components of existing content delivery environments. As shown in FIG. 5, a set of households 520 and devices thereof can connect to a head-end network 505, such as the head-end network 105 as described with respect to FIG. 1. Each of the set of households 520 can have an STB 522 that can receive program content from a content server 510 and advertising content from an ad server 515. Further, each of the set of households 520 can have one or more additional devices 524 that can also receive program content from the content server 510 and advertising content from the ad server 515. Still further, each of the set of households 520 can include a MoCA network and an IP network (not shown in figures). In particular, the head-end network 505 can transmit programming content and advertisement content to the respective STB 522 via the MoCA network, and the head-end network 105 can transmit programming content and advertisement content to the one or more additional devices 524 via the IP network.
There are shortcomings in the existing environment 516, however. In particular, multiple users of the same household 520 may access the same content on the STB 522 and/or the one or more additional devices 524. Therefore, the multiple users may be provided with the same set of advertisements with the content, even if the set of advertisements are not targeted or otherwise relevant to one or more of the multiple users. Further, the same user may view the same content multiple times on the STB 522 and/or the on one or more additional devices 524. Therefore, the same user will be provided with the same set of advertisements over multiple viewings.
Further, the existing environment 516 is scaled based on the number of devices. For instance, each STB 522 must connect to the head-end network 505 via the local MoCA network, and each additional device 524 must connect to the head-end network 505 via the IP network. If the content was tailored for each device in the household, the total traffic to the household would be equivalent to the number of devices (STBs 522 and additional devices 524) in the household multiplied by the program content traffic plus the targeted content traffic. Therefore, there exists a significant amount of data transmission via the MoCA networks and IP networks.
In contrast, in an environment 530 according to the systems and methods as described herein, the STB 522 in each of a set of households 532 can be configured to connect to a streamer 535 in each of the set of households 532. Further, each of a set of additional devices 536 can be configured to connect to the streamer 535 via a local connection such as a wireless local area network. By incorporating the streamer 535, the data transmission to and from the head-end network 505 is scaled based on the number of households 532. More particularly, instead of each of the set of additional devices 536 receiving program and/or advertising content directly from the head-end network 505, the streamer 535 in each of the set of households 532 distributes the program and/or advertising content to each of the set of additional devices 536. Thus, if the content was tailored for each device in the household, the total traffic to the household would be equivalent to the number of devices (STBs 522 and additional devices 524) in the household multiplied by the targeted content traffic and then added to the program content traffic (without multiplication of the program content traffic for each device). Therefore, the amount of data transmission to and from the head-end network 505 can be significantly reduced. Further, the content provided to the set of additional devices 536 can be tailored to the specifications of the set of additional devices 536 and/or the preferences of the individual users.
Thus, it should be clear from the preceding disclosure that the present invention provides a method and apparatus in a communication system to distribute targeted content to a set of devices. The method and apparatus advantageously allows an advertising provider to utilize an advertisement slot more effectively and efficiently. The method and apparatus further advantageously allows users to receive relevant advertisement content.
This disclosure is intended to explain how to fashion and use various embodiments in accordance with the invention rather than to limit the true, intended, and fair scope and spirit thereof. The foregoing description is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Modifications or variations are possible in light of the above teachings. The embodiment(s) was chosen and described to provide the best illustration of the principles of the invention and its practical application, and to enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims, as may be amended during the pendency of this application for patent, and all equivalents thereof, when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled.

## Claims

1. An electronic communication device comprising:
a streamer device configured to:
receive program content;
receive configuration information corresponding to a user device, wherein the configuration information comprises one or more properties of a screen of the user device and a communication protocol used by the user device;
detect a break in a segment of the program content, wherein the break comprises an identification of an advertising provider associated with the break;
send, to an advertisement server, a request that includes the configuration information and an indication of user preferences for an advertisement associated with the advertising provider in response to detecting the break, wherein the user preferences comprises one or more characteristics of a user associated with the user device;
receive, from the advertisement server, the advertisement associated with the advertising provider, wherein the advertisement was selected based at least in part on the user preferences;
transcode the advertisement based on the configuration information to generate a formatted advertisement;
determine that the user device is connected to the streamer device via a local connection; and
stream the formatted advertisement to the user device via the local connection in response to determining that the user device is connected to the streamer device via the local connection.

2. The electronic communication device of claim 1, wherein the streamer device, when detecting the break in the segment of the program content, is further configured to:
receive metadata from a set-top box, wherein the metadata comprises the identification of the advertising provider.

3. The electronic communication device of claim 1, wherein the streamer device, when streaming the formatted advertisement to the user device, is further configured to:
store the formatted advertisement in a memory;
receive an indication of the user device connecting to the streamer device via the local connection; and
stream the formatted advertisement to the user device in response to receiving the indication.

4. The electronic communication device of claim 1, wherein the request comprises at least one of: information associated with a user of the user device, and the configuration information of the user device.

5. The electronic communication device of claim 1, wherein the streamer device, when streaming the formatted advertisement to the user device, is further configured to:
notify a user of the user device of an opportunity to stream the formatted advertisement;
receive, from the user, an acknowledgement to stream the formatted advertisement; and
stream the formatted advertisement to the device in response to receiving the acknowledgement.

6. The electronic communication device of claim 1, wherein the streamer device, when transcoding the advertisement based on the configuration information of the user device, is further configured to:
transcode the advertisement and the program content based on the configuration information to generate formatted content.

7. A method in an electronic communication device, the method comprising:
receiving program content;
receiving configuration information corresponding to a user device, wherein the configuration information comprises one or more properties of a screen of the user device and a communication protocol used by the user device;
detecting a break in a segment of the received program content, wherein the break comprises an identification of an advertising provider associated with the break;
sending, to an advertisement server, a request that includes the configuration information and an indication of user preferences for an advertisement associated with the advertising provider in response to detecting the break, wherein the user preferences comprises one or more characteristics of a user associated with the user device;
receiving, from the advertisement server, the advertisement associated with the advertising provider, wherein the advertisement was selected based at least in part on the user preferences;
transcoding, by a processor, the advertisement based on the configuration information to generate a formatted advertisement;
determining that the user device is connected to the electronic communication device via a local connection; and
streaming the formatted advertisement to the user device via the local connection in response to determining that the user device is connected to the electronic communication device via the local connection.

8. The method of claim 7, wherein detecting the break in the segment of the received program content comprises:
receiving metadata from a set-top box, wherein the metadata comprises the identification of the advertising provider.

9. The method of claim 7, wherein streaming the formatted advertisement to the user device via the local connection comprises:
storing the formatted advertisement in memory;
receiving an indication of the user device connecting to the electronic communication device via the local connection; and
streaming the formatted advertisement to the user device in response to receiving the indication of the user device connecting to the electronic communication device.

10. The method of claim 7, wherein the request comprises at least one of:
information associated with a user of the user device, or the configuration information of the user device.

11. The method of claim 7, wherein streaming the formatted advertisement to the user device via the local connection comprises:
notifying a user of the user device of an opportunity to stream the formatted advertisement;
receiving, from the user, an acknowledgement to stream the formatted advertisement; and
streaming the formatted advertisement to the user device in response to receiving the acknowledgement.

12. The method of claim 7, wherein transcoding the advertisement based on the configuration information of the user device comprises:
transcoding the advertisement and the received program content based on the configuration information to generate formatted content.

13. A method in an electronic communication device, the method comprising:
receiving program content;
receiving configuration information corresponding to a user device, wherein the configuration information comprises one or more properties of a screen of the user device and a communication protocol used by the user device;
detecting a break in a segment of received program content, wherein the break comprises an identifier for content of an advertising provider associated with the break;
sending, to a set-top box, a request that includes the configuration information and an indication of user preferences for an advertisement associated with the advertising provider in response to detecting the break, wherein the user preferences comprises one or more characteristics of a user associated with the user device;
receiving the advertisement associated with the advertising provider, wherein the advertisement was selected based at least in part on the user preferences;
transcoding, by a processor, the advertisement based on the configuration information to generate a formatted advertisement;
determining that the user device is connected to the electronic communication device via a local connection; and
streaming the formatted advertisement to the user device via the local connection in response to determining that the user device is connected to the electronic communication device via the local connection.

14. The method of claim 13, wherein the identifier is a packet identifier corresponding to an advertisement segment of the advertising provider.

15. The method of claim 13, wherein the set-top box receives the advertisement associated with the advertising provider from an advertisement server.

16. The method of claim 13, wherein streaming the formatted advertisement to the user device via the local connection comprises:
storing the formatted advertisement in memory;
receiving an indication of the user device connecting to the electronic communication device via the local connection; and
streaming the formatted advertisement to the user device in response to receiving the indication of the user device connecting to the electronic communication device.

17. The method of claim 13, wherein streaming the formatted advertisement to the user device via the local connection comprises:
notifying a user of the user device of an opportunity to stream the formatted advertisement;
receiving, from the user, an acknowledgement to stream the formatted advertisement; and
streaming the formatted advertisement to the user device in response to receiving the acknowledgement.