BR112014029971B1 - COMPUTER-IMPLEMENTED METHOD, SYSTEM AND NON-TRANSITORY COMPUTER READable STORAGE MEDIA FOR MANIFEST HANDLING - Google Patents

COMPUTER-IMPLEMENTED METHOD, SYSTEM AND NON-TRANSITORY COMPUTER READable STORAGE MEDIA FOR MANIFEST HANDLING Download PDF

Info

Publication number
BR112014029971B1
BR112014029971B1 BR112014029971-4A BR112014029971A BR112014029971B1 BR 112014029971 B1 BR112014029971 B1 BR 112014029971B1 BR 112014029971 A BR112014029971 A BR 112014029971A BR 112014029971 B1 BR112014029971 B1 BR 112014029971B1
Authority
BR
Brazil
Prior art keywords
manifest
advertisement
manifests
session
memory
Prior art date
Application number
BR112014029971-4A
Other languages
Portuguese (pt)
Other versions
BR112014029971A8 (en
BR112014029971A2 (en
Inventor
Jeffrey Sherwin
Bryan David Santangelo
Original Assignee
This Technology, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by This Technology, Inc filed Critical This Technology, Inc
Publication of BR112014029971A2 publication Critical patent/BR112014029971A2/en
Publication of BR112014029971A8 publication Critical patent/BR112014029971A8/en
Publication of BR112014029971B1 publication Critical patent/BR112014029971B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Graphics (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

MÉTODO E SISTEMA PARA MANIPULAÇÃO DE MANIFESTO. A invenção refere-se a um método e sistema para manipular um manifesto. Um servidor recebe de um aparelho inteligente uma solicitação para um manifesto correspondendo a um identificador de sessão. O servidor recupera a partir de um servidor de sessão um manifesto de sessão baseado no identificador de sessão. O servidor ajusta um deslocamento da sessão baseado em uma diferença em uma duração de sessão representada pelo manifesto de sessão de uma duração de sessão representada por um manifesto de sessão anterior correspondendo à sessão. Quando o manifesto de sessão compreende um endereço de um intervalo comercial, o servidor identifica em um cache pelo menos um anúncio para ser inserido na sessão e substitui pelo menos um endereço correspondendo ao pelo menos um segmento do pelo menos um anúncio no manifesto de sessão baseado na diferença. O servidor transmite o manifesto de sessão para o aparelho inteligente.METHOD AND SYSTEM FOR MANIFESTING MANIPULATION. The invention relates to a method and system for manipulating a manifest. A server receives a request for a manifest from a smart device corresponding to a session identifier. The server retrieves from a session server a session manifest based on the session identifier. The server adjusts a session offset based on a difference in a session duration represented by the session manifest from a session duration represented by a previous session manifest corresponding to the session. When the session manifest comprises an address from an ampersand, the server identifies in a cache at least one advertisement to be inserted into the session and substitutes at least one address corresponding to at least one segment of the at least one advertisement in the session manifest based on in the difference. The server passes the session manifest to the smart device.

Description

[001] A presente invenção refere-se em geral com redes de vídeo de provedor de serviço e mais particularmente, com um método e sistema para eficientemente manipular um manifesto de sessão quando uma duração de um intervalo comercial apontado pelo manifesto altera em comprimento.[001] The present invention relates generally to service provider video networks and more particularly to a method and system for efficiently handling a session manifest when a duration of a commercial interval pointed to by the manifest changes in length.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[002] Tradicionalmente, a programação de televisão e rádio de difusão e a cabo, incluindo conteúdo (isto é, o vídeo ou programa de áudio) e (a colocação de) anúncios em um fluxo de sinais de vídeo ou de áudio tem seguido um modelo linear. A programação pode ser linear no sentido de que um programa começa e é reproduzido continuamente e está em progresso quando um usuário escolhe assistir conteúdo de entretenimento. A Figura 1 ilustra um modelo linear ou de vídeo sob demanda (VOD) convencional para colocação de publicidade. O conteúdo de entretenimento 2, quando processado como um fluxo de dados digitais através de uma rede a cabo, pode ser dividido em vários intervalos de tempo. Os intervalos de tempo 4 incluem tempo reservado para um programa visualizado (conteúdo), tal como "Golden Girls". Os intervalos 6, 8, 9 representam seções de tempo reservadas para anúncios ou "benefícios". Estes "benefícios" podem ser vistos como oportunidades de colocação de anúncio. Como utilizado neste documento, uma "oportunidade de colocação" foi tradicionalmente chamada um benefício e algumas vezes é referida como um intervalo (dentro do qual um anúncio curto (por exemplo, uma propaganda ou conteúdo) é para ser inserido). Uma oportunidade de colocação (PO) é uma construção que representa uma oportunidade de inserir um anúncio ou con- teúdo de entretenimento e definir as regras para esta oportunidade, tal como sua duração, interatividade, propriedade e restrições técnicas.[002] Traditionally, broadcast and cable television and radio programming, including content (i.e., the video or audio program) and (the placement of) advertisements in a stream of video or audio signals, has followed a linear model. Programming can be linear in the sense that a program starts and plays continuously and is in progress when a user chooses to watch entertainment content. Figure 1 illustrates a conventional linear or video-on-demand (VOD) model for advertising placement. Entertainment content 2, when processed as a stream of digital data over a cable network, can be divided into multiple time slots. Time slots 4 include time reserved for a viewed program (content), such as "Golden Girls". Intervals 6, 8, 9 represent sections of time reserved for advertisements or "benefits". These "benefits" can be seen as ad placement opportunities. As used in this document, a "placement opportunity" has traditionally been called a benefit and is sometimes referred to as a range (within which a short advertisement (eg, an advertisement or content) is to be inserted). A placement opportunity (PO) is a construct that represents an opportunity to insert an advertisement or entertainment content and define the rules for this opportunity, such as its duration, interactivity, ownership, and technical restrictions.

[003] Como utilizado neste documento, o termo "vinculação" se refere a uma identificação de sinais e de conteúdo dentro de uma oportunidade de colocação (PO). As POs frequentemente são criadas para grandes quantidades de conteúdo que ainda não foram publicados (isto é, qualquer programa na rede TNT à noite). Quando o programa é transmitido e um sinal é detectado, o sinal é vinculado com as POs relevantes para este programa.[003] As used in this document, the term "linking" refers to an identification of signals and content within a placement opportunity (PO). POs are often created for large amounts of content that has not yet been published (ie, any show on the TNT network at night). When the program is transmitted and a signal is detected, the signal is linked with the POs relevant to this program.

[004] Como utilizado neste documento, o termo "impressão" se refere a uma apresentação de um anúncio para um único visualizador. Por exemplo, se um anúncio curto de 30 segundos for colocado em 50.000 fluxos de vídeo sob demanda (VOD) e for conhecido que 30.000 dos fluxos realmente reproduziram o anúncio, então 30.000 impressões deste anúncio foram geradas.[004] As used in this document, the term "impression" refers to the presentation of an advertisement to a single viewer. For example, if a 30-second short ad is placed in 50,000 video on demand (VOD) streams and it is known that 30,000 of the streams actually played the ad, then 30,000 impressions of that ad were generated.

[005] Como utilizado neste documento, uma "notificação de con dição" pode ser, mas não está limitada a uma chamada HTTP a partir de um servidor VOD com um ID único que foi criado quando uma decisão foi distribuída.[005] As used in this document, a "condition notification" can be, but is not limited to, an HTTP call from a VOD server with a unique ID that was created when a decision was distributed.

[006] Como utilizado neste documento, o temo "intervalo" se refe re a todo o espaço em um fluxo entre conteúdo de entretenimento. Por exemplo, um grupo de 4 comerciais curtos de 30 segundos consecutivos entre 2 segmentos de "Two and a Half Men" pode ser considerado como um único intervalo.[006] As used in this document, the term "gap" refers to the entire space in a flow between entertainment content. For example, a group of 4 consecutive 30-second short commercials between 2 segments of "Two and a Half Men" can be considered as a single break.

[007] Como utilizado neste documento, uma localização inicial estimada de um intervalo em um fluxo de sinais é referida como um ponto de sinal. No contexto de colocação de anúncio, estes pontos de sinal podem ser referidos como ponto de sinal de anúncio.[007] As used in this document, an estimated starting location of a gap in a signal stream is referred to as a signal point. In the context of ad placement, these signal points may be referred to as an ad signal point.

[008] Nos sistemas não lineares, tal como Vídeo Sob Demanda (VOD), os intervalos 6, 8, 9 podem assumir novos significados. O in- tervalo 6 é chamado de antes do conteúdo de vídeo, isto é, o espaço em um vídeo que ocorre imediatamente após um usuário clicar para iniciar um vídeo VOD. O intervalo 9 é conhecido como um após o conteúdo de vídeo, isto é, o espaço após todos os segmentos do vídeo VOD terem terminado a reprodução. Os intervalos 8 podem ser durante o conteúdo de vídeo, isto é, mini-intervalos no meio de um vídeo VOD, ou podem ser intersticiais, isto é, localizações do tipo cápsula entre segmentos consecutivos de vídeo VOD. As oportunidades de colocação de anúncio VOD podem aparecer baseadas no espaço, tempo, conteúdo e no contexto do usuário, e podem ser altamente não lineares (isto é, o usuário escolhe iniciar a reprodução do conteúdo, e em resposta, o conteúdo inicia). Todos os intervalos 6, 8, 9 em tais listas de execução estão prontos para a inserção de anúncios, isto é, oportunidades de colocação de anúncio.[008] In non-linear systems, such as Video On Demand (VOD), the intervals 6, 8, 9 can take on new meanings. Interval 6 is called the before video content, that is, the space in a video that occurs immediately after a user clicks to start a VOD video. Interval 9 is known as the one after the video content, that is, the space after all segments of the VOD video have finished playing. The gaps 8 may be during video content, i.e., mini-gaps in the middle of a VOD video, or they may be interstitial, i.e., capsule-like locations between consecutive segments of VOD video. VOD ad placement opportunities can appear based on space, time, content and the user's context, and can be highly non-linear (ie the user chooses to start playing the content, and in response, the content starts). All slots 6, 8, 9 in such playlists are ready for ad insertion, ie ad placement opportunities.

[009] A Figura 2 representa uma configuração de uma infraestru- tura convencional de televisão a cabo baseada em Internet 200 para executar decisões de colocação de anúncio em fluxos de sinais. Na TV, a rede de anúncios era antigamente a rede nacional, a rede a cabo, ou o operador de cabo. Entretanto, diferente da Internet, onde navegados acessam / exibem conteúdo e então são separadamente "referidos" como uma rede de anúncios compartilhados, a infraestrutura de televisão a cabo baseada em Internet 200 seleciona e monta junto tanto o anúncio como o conteúdo e distribui o resultado combinado para os "aparelhos inteligentes" dos clientes 202a até 202n (por exemplo, televisões prontas para Internet, rádios, smartphones, tablets, PCs, etc.).[009] Figure 2 represents a configuration of a conventional Internet-based cable television infrastructure 200 to execute ad placement decisions on signal streams. In TV, the ad network was formerly the national network, the cable network, or the cable operator. However, unlike the Internet, where browsers access/display content and are then separately "referred to" as an ad-sharing network, the Internet-based cable television infrastructure 200 selects and assembles both the ad and content together and distributes the result. combination for "smart appliances" from 202a to 202n customers (e.g. Internet-ready televisions, radios, smartphones, tablets, PCs, etc.).

[0010] Recentemente, o aparelho inteligente 202a até 202n, tais como televisões prontas para Internet, têm se tornado capaz de receber conteúdo a partir de serviços de reprodução contínua da Internet, tais como filmes da Netflix, rádio em fluxo contínuo Pandora, etc., atra- vés de conexões WiFi ou Ethernet direta. Quando um usuário clica em um ícone para um "aplicativo" que aparece no aparelho de televisão correspondendo a um destes serviços, o conteúdo é reproduzido con-tinuamente para o aparelho inteligente 202a até 202n a partir de uma rede de distribuição de conteúdo (CDN) 204 diretamente para o aplicativo executando no aparelho inteligente 202a até 202n sem a necessidade de uma caixa decodificadora de sinais.[0010] Recently, smart appliances 202a to 202n, such as Internet-ready televisions, have become capable of receiving content from Internet streaming services, such as Netflix movies, Pandora streaming radio, etc. , via WiFi or direct Ethernet connections. When a user clicks an icon for an "application" appearing on the television set corresponding to one of these services, the content is streamed continuously to the smart set 202a through 202n from a content delivery network (CDN) 204 directly to the application running on smart device 202a up to 202n without the need for a set top box.

[0011] Uma caixa decodificadora de sinais pode ser configurada para decodificar uma representação analógica de dois estados de um sinal digital, como é conhecido na técnica, que é continuamente reproduzido e transferido para a caixa decodificadora de sinais através de uma instalação de difusão através de um cabo coaxial ou de fibra ótica e a caixa decodificadora de sinais sintoniza com este canal e exibe o conteúdo. Quando um usuário assiste conteúdo de programa distribuído pela Internet, um navegador dentro do aparelho inteligente 202a até 202n busca vídeo em blocos de tempo predeterminados --- geralmente blocos de dois, algumas vezes três, algumas vezes dez segundos. Os blocos de vídeo buscados são diretamente unidos de forma dinâmica no software aplicativo do aparelho inteligente 202a até 202n e então exibidos de modo a aparecer como um vídeo homogêneo no aparelho inteligente 202a até 202n.[0011] A set-top box can be configured to decode a two-state analog representation of a digital signal, as is known in the art, that is continuously reproduced and transferred to the set-top box through a broadcast facility. a coaxial or fiber optic cable and the set top box tunes to this channel and displays the content. When a user watches program content distributed over the Internet, a browser within the smart device 202a through 202n searches for video in predetermined blocks of time --- usually blocks of two, sometimes three, sometimes ten seconds. The searched video blocks are directly dynamically joined in the smart device application software 202a through 202n and then displayed so as to appear as a homogeneous video on the smart device 202a through 202n.

[0012] Um Operador de Múltiplos Sistemas / Serviços (MSO - uma organização de TV a cabo que possui mais do que um sistema a cabo e pode proporcionar serviço Internet de banda larga) pode desejar retransmitir fluxos de vídeo em aparelhos inteligentes. Infelizmente, cada dispositivo conectado, incluindo aparelhos inteligentes, precisa obter vídeo no formato que ele pode consumir. Apple, Microsoft, Adobe, etc., possuem formatos muito específicos e incompatíveis. Para superar este problema, cada uma destas companhias construiu instalações chamadas de redes de distribuição de conteúdo (VDN) 204 onde uma "caixa decodificadora de sinais" para cada canal é configurada para receber difusão a partir de satélites. Um sinal recebido por uma "caixa decodificadora de sinal" a partir de dispositivos à montante 206 é alimentado para um transcodificador 208 para colocar o sinal em um formato desejado e para fragmentar o sinal formatado em segmentos de dados predeterminados (por exemplo, 2 segundos). Estes segmentos são então armazenados na CDN 204 em fazendas de servidores localizados fisicamente próximos de onde o conteúdo é para ser distribuído.[0012] A Multiple Systems/Service Operator (MSO - a cable TV organization that has more than one cable system and can provide broadband Internet service) may wish to relay video streams on smart appliances. Unfortunately, every connected device, including smart appliances, needs to get video in the format it can consume. Apple, Microsoft, Adobe, etc., have very specific and incompatible formats. To overcome this problem, each of these companies has built facilities called content delivery networks (VDN) 204 where a "snap box" for each channel is configured to receive broadcast from satellites. A signal received by a "scrambler box" from upstream devices 206 is fed to a transcoder 208 to place the signal into a desired format and to fragment the formatted signal into predetermined data segments (e.g. 2 seconds) . These segments are then stored on the CDN 204 on server farms located physically close to where the content is to be distributed.

[0013] Para identificar um fluxo de dados de um canal ou "sessão", incluindo momentos quando um programa terminou e antes do próximo programa começar, isto é, uma oportunidade de colocação, um tom de deixa é inserido no fluxo de dados do canal em um tempo predeterminado antes do próximo programa começar. O tom de deixa pode ser uma instância de um pacote SCTE-35. Um observador 210, o qual pode ser o transcodificador 208, informa ao serviço de informação de oportunidade de colocação (POIS) 211 sobre a chegada do tom de deixa para colocação subsequente de um ou mais anúncios dentro do fluxo de dados do canal por um serviço de anúncio (ADS) 212. Se o ADS 212 for conhecido pelo POIS 211, então o POIS 211 notifica ao ADS 212 sobre a notificação de tom de deixa. O serviço de anúncio 212, por sua vez, está aguardando pela chegada subsequente de solicitações a partir de uma CDN 204 para colocar anúncios dentro dos intervalos (isto é, um ou mais dos segmentos) no fluxo de dados do canal (sessão).[0013] To identify a channel data stream or "session", including times when a program has ended and before the next program starts, i.e. a placement opportunity, a cue tone is inserted into the channel data stream at a predetermined time before the next program starts. The cue tone can be an instance of a SCTE-35 packet. An observer 210, which may be the transcoder 208, informs the placement opportunity information service (POIS) 211 of the arrival of the cue tone for subsequent placement of one or more advertisements within the channel data stream by a service. (ADS) 212. If the ADS 212 is known to the POIS 211, then the POIS 211 notifies the ADS 212 of the cue tone notification. The advertisement service 212, in turn, is waiting for subsequent requests to arrive from a CDN 204 to place advertisements within the slots (i.e., one or more of the segments) in the channel (session) data stream.

[0014] Os MSOs, redes nacionais e locais, preferem saber se um anúncio foi reproduzido e assistido por um assinante. Os fabricantes de equipamento tradicionalmente têm proporcionado este aspecto em um dentre dois modos: por construir inteligência dentro de cada aparelho inteligente (por exemplo, 202a), ou por construir inteligência dentro de uma rede de reportagem, por exemplo, uma rede de computação em nuvem, enquanto não alterando os aparelhos inteligentes existentes 202a até 202n. Ambas as técnicas podem empregar o que é conhecido como arquivo de manifesto. Como utilizado neste documento, um arquivo de manifesto, um manifesto, ou um manifesto de sessão, se refere a uma listagem ou índice do que está contido em cada um dos segmentos de uma sessão mantida pela CDN 204. Mais particularmente, o manifesto de sessão pode incluir uma lista de URLs que apontam para cada um dos segmentos ou blocos e menciona o tipo de segmento: conteúdo ou anúncio.[0014] MSOs, national and local networks prefer to know if an ad has been played and watched by a subscriber. Equipment manufacturers have traditionally provided this aspect in one of two ways: by building intelligence into each smart device (e.g. 202a), or by building intelligence into a reporting network, for example a cloud computing network. , while not changing existing smart appliances 202a through 202n. Both techniques can employ what is known as a manifest file. As used in this document, a manifest file, manifest, or session manifest refers to a listing or index of what is contained in each of the segments of a session maintained by CDN 204. More particularly, the session manifest can include a list of URLs that point to each of the segments or blocks and mention the type of segment: content or ad.

[0015] Quando a inteligência é integrada a um aparelho inteligente (por exemplo, 202a), o aparelho inteligente 202a pode (1) manter uma cópia do manifesto de sessão, (2) executar a função de juntar um anúncio em uma oportunidade de colocação, (3) marcar o manifesto de sessão para cada segmento reproduzido, e (4) reportar uma proporção de uma sessão (por exemplo, o número de segmentos) reproduzida para o MSO ou rede.[0015] When intelligence is integrated into a smart device (e.g., 202a), the smart device 202a can (1) maintain a copy of the session manifest, (2) perform the function of attaching an advertisement to a placement opportunity , (3) tag the session manifest for each segment played, and (4) report a proportion of a session (eg, the number of segments) played back to the MSO or network.

[0016] Os MSOs e redes, entretanto, podem preferir empregar um aparelho inteligente (por exemplo, 202a) de qualquer fabricante. Tanto o MSO como as redes tem se direcionado a proporcionar sua própria experiência de visualização por proporcionar somente aplicativos "apps" para o equipamento de um assinante sem alterar o equipamento.[0016] MSOs and networks, however, may prefer to employ a smart device (eg 202a) from any manufacturer. Both MSO and networks have been driven to provide their own viewing experience by providing only "apps" applications to a subscriber's equipment without changing the equipment.

[0017] Quando a inteligência é integrada na rede, então, as redes de reportagem precisam manter um manifesto separado para cada sessão do visualizador. Convencionalmente, um manipulador de manifesto pode ser empregado para proporcionar manifestos para aparelhos inteligentes ou MSOs. Uma deficiência de manipuladores de manifesto convencionais é que pode ser necessário que um manipulador de manifesto mantenha um número muito grande de manifestos que precisam ser atualizados periodicamente (por exemplo, 10 até 30 segundos) para cada assinante. Para alguns MSOs, o número de aparelhos inteligentes 202a até 202n pode estar na casa de milhares até centenas de milhares. Em algumas situações, alguns ou todos os aparelhos inteligentes 202a até 202n podem solicitar manifestos substancialmente simultaneamente. Felizmente, fatores de alívio incluem o número de pessoas assistindo um dado canal simultaneamente e divididos em zonas.[0017] When intelligence is integrated into the network, then reporting networks need to maintain a separate manifest for each viewer session. Conventionally, a manifest handler can be employed to provide manifests for smart appliances or MSOs. A shortcoming of conventional manifest handlers is that it may be necessary for a manifest handler to maintain a very large number of manifests that need to be refreshed periodically (eg 10 to 30 seconds) for each subscriber. For some MSOs, the number of smart appliances 202a through 202n can be in the thousands to hundreds of thousands. In some situations, some or all of the smart appliances 202a through 202n may request manifests substantially simultaneously. Fortunately, relief factors include the number of people watching a given channel simultaneously and divided into zones.

[0018] A probabilidade de 100.000 aparelhos inteligentes 202a até 202n todos iniciando um VOD é muito, muito baixa, de modo que a carga para o anúncio VOD é bastante suave devido a nem todos os aparelhos inteligentes 202a até 202n estarem tipicamente sincronizados. Infelizmente, um MSO pode precisar processar decisões de anúncio para cada sessão ativa durante a inicialização da sessão quando um visualizador clica em um controle remoto para assistir o VOD, mesmo se puder existir um anúncio que possa ser colocado uma hora e meia dentro de um fluxo de dados correspondendo a uma sessão ativa. Se um programa transmitido em um canal for muito popular (por exemplo, Super Bowl), o problema de manipular milhares de manifestos volta à tona.[0018] The probability of 100,000 smart appliances 202a through 202n all starting a VOD is very, very low, so the load for the VOD advertisement is quite smooth due to not all the smart appliances 202a through 202n being typically synchronized. Unfortunately, an MSO may need to process ad decisions for each active session during session startup when a viewer clicks a remote control to watch VOD, even if an ad may exist that can be placed an hour and a half into a stream. of data corresponding to an active session. If a program broadcast on a channel is very popular (eg, Super Bowl), the problem of handling thousands of manifests comes back to the fore.

[0019] Para aliviar este problema, um MSO pode dividir uma área geográfica em várias zonas geográficas de serviço menores (por exemplo, 50 zonas). Um manipulador de manifesto pode ser colocado em cada uma destas zonas para reduzir o número de manifestos que um manipulador de manifesto precisa gerenciar. Sob circunstâncias normais, mesmo um menor número de decisões de anúncio precisa ser executado por canal (por exemplo, 50).[0019] To alleviate this problem, an MSO can divide a geographic area into several smaller geographic service zones (eg 50 zones). A manifest handler can be placed in each of these zones to reduce the number of manifests a manifest handler needs to manage. Under normal circumstances, even fewer ad decisions need to be executed per placement (eg 50).

[0020] Infelizmente, mesmo para um pequeno número de manifes tos a ser manipulado por canal, pode existir necessidade de manter vários manifestos para a mesma sessão. Manifestos servidos para di- ferentes aparelhos inteligentes 202a até 202n dentro de uma zona podem ser tornar "dessincronizados". Como discutido acima, um manifesto, o qual representa uma lista de execução, pode compreender uma lista de URLs apontando para um número predeterminado de segmentos de dados de reprodução contínua correspondendo a um intervalo de tempo fixo (por exemplo, "blocos" de quinze (15), dois (2) segundos para um manifesto com um total de 30 segundos). Agora, se referindo à Figura 3, um primeiro manifesto 302 representando um total de 30 segundos de anúncio (ad1) pode compreender, por exemplo, 15 URLs 304a até 304o (URL1 até URL15). Em uma zona particular, um MSO pode varrer o único anúncio (ad1) de 30 segundos para dois (2) anúncios de 15 segundos como apresentado em um segundo manifesto 306 (ad2, ad3). Devido aos segmentos 308a até 308p (URL1 até URL16) serem alinhados em limites de dois segundos, o número de URLs aumenta em um para dezesseis (URL16). Com o passar do tempo, o alinhamento do manifesto pode ser deslocar quando anúncios são continuamente permutados alterando a duração de tempo total de um intervalo para anúncio em uma direção negativa ou em uma direção positiva como representado pelo manifesto.[0020] Unfortunately, even for a small number of manifests to be handled per channel, there may be a need to maintain multiple manifests for the same session. Manifests served to different smart appliances 202a through 202n within a zone can be made "out of sync". As discussed above, a manifest, which represents a playlist, may comprise a list of URLs pointing to a predetermined number of continuously playing data segments corresponding to a fixed time interval (e.g., "blocks" of fifteen ( 15), two (2) seconds for a manifest with a total of 30 seconds). Now, referring to Figure 3, a first manifest 302 representing a total of 30 seconds of ad (ad1) may comprise, for example, 15 URLs 304a through 304o (URL1 through URL15). In a particular zone, an MSO can sweep the single 30-second advertisement (ad1) into two (2) 15-second advertisements as presented in a second 306 manifest (ad2, ad3). Because segments 308a through 308p (URL1 through URL16) are aligned on two-second boundaries, the number of URLs increases by one to sixteen (URL16). Over time, manifest alignment can shift when ads are continually interchanged by changing the total time duration of an ad break in a negative direction or in a positive direction as represented by the manifest.

[0021] Portanto, existe uma necessidade de manter a integridade da numeração de URLs em um manifesto, e é necessário determinar onde colocar e tirar URLs de um manifesto quando a duração de um ou mais anúncios altera. Os manipuladores de manifesto convencionais aliviam este problema por manter um deslocamento a partir de um manifesto inicial proporcionado pelo transcodificador 208 para cada sessão ativa e para cada canal. Uma tarefa de execução separada compreendendo uma instância distinta de um manifesto é criada e mantida para cada valor de deslocamento, para todas as sessões ativas, e para todos os canais ativos. Infelizmente, isto pode requerer capacidade de processamento na ordem de centenas até milhares de tarefas de execução, se traduzindo em uma necessidade de manter e operar um grande número de computadores multitarefa. Por consequência, o que seria desejável, mas ainda não foi proporcionado, é um método e sistema para, de forma eficiente, manipular um manifesto de sessão quando a duração de um intervalo comercial apontado pelo manifesto altera em tamanho.[0021] Therefore, there is a need to maintain the integrity of the numbering of URLs in a manifest, and it is necessary to determine where to place and remove URLs from a manifest when the duration of one or more ads changes. Conventional manifest handlers alleviate this problem by maintaining an offset from an initial manifest provided by transcoder 208 for each active session and for each channel. A separate execution task comprising a distinct instance of a manifest is created and maintained for each offset value, for all active sessions, and for all active channels. Unfortunately, this can require processing power on the order of hundreds to thousands of tasks to run, translating into a need to maintain and operate a large number of multitasking computers. Consequently, what would be desirable, but not yet provided, is a method and system to efficiently handle a session manifest when the duration of an ad break pointed to by the manifest changes in size.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[0022] Os problemas descritos acima são endereçados e uma so lução técnica é obtida na técnica pelo aprovisionamento de um método e sistema para manipular um manifesto. Um manipulador de manifesto de um servidor receber a partir de um aparelho inteligente uma solicitação para um manifesto correspondendo a um identificador de sessão. O manipulador de manifesto recupera a partir de um servidor de sessão um manifesto de sessão baseado no identificador de sessão. O manipulador de manifesto ajusta um deslocamento da sessão baseado em uma diferença em uma duração da sessão representada pelo manifesto da sessão a partir de uma duração da sessão representada por um manifesto de sessão anterior correspondendo à sessão. Quando o manifesto da sessão compreende um endereço de um intervalo comercial, o manipulador de manifesto identifica em um cache pelo menos um anúncio a ser inserido dentro da sessão e substitui pelo menos um endereço correspondendo a pelo menos um segmento do pelo menos um anúncio no manifesto da sessão baseado na diferença. O manipulador de manifesto transmite o manifesto da sessão para o aparelho inteligente.[0022] The problems described above are addressed and a technical solution is obtained in the art by providing a method and system for handling a manifest. A server manifest handler receives from a smart device a request for a manifest corresponding to a session identifier. The manifest handler retrieves a session manifest based on the session identifier from a session server. The manifest handler adjusts a session offset based on a difference in a session duration represented by the session manifest from a session duration represented by a previous session manifest corresponding to the session. When the session manifest comprises an address from an ad break, the manifest handler identifies in a cache at least one advertisement to be inserted within the session and substitutes at least one address corresponding to at least one segment of the at least one advertisement in the manifest of the session based on the difference. The manifest handler passes the session manifest to the smart device.

[0023] Em uma concretização, quando o manifesto de sessão compreende um endereço de um intervalo comercial, o manipulador de manifesto instrui um cliente associado com um serviço de decisão de anúncio para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão baseado no pelo menos um endereço substi- tuído do manifesto de sessão.[0023] In one embodiment, when the session manifest comprises an ad break address, the manifest handler instructs a client associated with an ad decision service to match the at least one ad to the ad break address in the session based at least one substituted address from the session manifest.

[0024] Em uma concretização, instruir um serviço de anúncio para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender o servidor transmitindo, para o serviço de decisão de anúncio, pelo menos uma chamada de anúncio para o endereço do intervalo comercial correspondendo ao identificador de sessão, receber, a partir do serviço de decisão de anuncio, pelo menos um anúncio, e armazenar o pelo menos um anúncio no pelo menos um cache. Instruir um serviço de anúncio para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender antes da dita união, instruir o serviço de decisão de anúncio para recuperar o pelo menos um anúncio a partir do cache.[0024] In one embodiment, instructing an advertisement service to attach the at least one advertisement to the address of the commercial break in the session may further comprise the server transmitting to the advertisement decision service at least one advertisement call to the address of the commercial break corresponding to the session identifier, receiving, from the ad decision service, at least one advertisement, and storing the at least one advertisement in the at least one cache. Instructing an advertisement service to merge the at least one advertisement to the address of the commercial break in the session may further comprise, prior to said merging, instructing the advertisement decision service to retrieve the at least one advertisement from the cache.

[0025] Em uma concretização, o deslocamento da sessão e o ma nifesto de sessão anterior são armazenados em uma memória. A memória pode ser uma memória de acesso aleatório estática. O manifesto de sessão e o manifesto de sessão anterior diferem quando a diferença não é zero. Quando o aparelho inteligente sintoniza com outro canal ou termina sua sessão, o manipulador de manifesto pode reiniciar o deslocamento de sessão para zero.[0025] In one embodiment, the session offset and the previous session manifest are stored in a memory. The memory can be static random access memory. Session manifest and previous session manifest differ when the difference is not zero. When the smart device tunes to another channel or ends its session, the manifest handler can reset the session offset to zero.

[0026] Em uma concretização, o manipulador de manifesto do ser vidor pode receber um manifesto original a partir de um transcodifica- dor. O manipulador de manifesto pode inicialmente designar um deslocamento zero para o manifesto original. O manipulador de manifesto pode derivar e manter vários manifestos armazenados possuindo diferentes deslocamentos a partir do manifesto original. O manipulador de manifesto pode substituir um dos manifestos armazenados pelo manifesto de sessão para produzir o manifesto de sessão anterior.[0026] In one embodiment, the server's manifest handler may receive an original manifest from a transcoder. The manifest handler may initially assign a zero offset to the original manifest. The manifest handler can derive and maintain multiple stored manifests having different offsets from the original manifest. The manifest handler can replace one of the manifests stored by the session manifest to produce the previous session manifest.

[0027] Em uma concretização, cada um dentre o manifesto de sessão e o manifesto de sessão anterior pode compreender várias URLs correspondentes apontando para segmentos de uma sessão correspondendo ao identificador de sessão. Pelo menos um dos URLs do manifesto de sessão e pelo menos um dos URLs do manifesto de sessão anterior pode apontar para diferentes segmentos da sessão.[0027] In one embodiment, each of the session manifest and the previous session manifest may comprise multiple corresponding URLs pointing to segments of a session corresponding to the session identifier. At least one of the session manifest URLs and at least one of the previous session manifest URLs can point to different segments of the session.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0028] A presente invenção será mais prontamente entendida a partir da descrição detalhada de concretizações ilustrativas apresentadas abaixo consideradas em conjunto com os desenhos anexos, nos quais:[0028] The present invention will be more readily understood from the detailed description of illustrative embodiments presented below considered in conjunction with the accompanying drawings, in which:

[0029] A Figura 1 ilustra um modelo linear ou de vídeo sob de manda convencional para colocação de anúncio;[0029] Figure 1 illustrates a conventional linear or video-on-demand model for ad placement;

[0030] A Figura 2 representa uma configuração de uma infraestru- tura convencional de televisão a cabo baseada em Internet para executar decisões de colocação de anúncio nos fluxos de sinal;[0030] Figure 2 represents a configuration of a conventional Internet-based cable television infrastructure to execute ad placement decisions on signal streams;

[0031] A Figura 3 apresenta um diagrama de blocos de dois mani festos que diferem no número de URLs armazenados que resulta quando anúncios são continuamente permutados para alterar a duração total de tempo de um intervalo comercial;[0031] Figure 3 shows a block diagram of two manifests that differ in the number of stored URLs that result when advertisements are continually swapped to change the total length of time of a commercial break;

[0032] A Figura 4 representa uma configuração de uma concreti zação de um sistema para manipular manifestos;[0032] Figure 4 represents a configuration of a realization of a system to handle manifests;

[0033] A Figura 5 é um fluxograma ilustrando uma concretização de um método para acelerar as decisões de colocação de anúncio em fluxos de dados a partir de um ponto de vista de um servidor;[0033] Figure 5 is a flowchart illustrating an embodiment of a method for accelerating ad placement decisions in data streams from a server point of view;

[0034] A Figura 6 é um diagrama de blocos ilustrando vários mani festos armazenados na memória estática, onde cada um dos manifestos armazenados possui um deslocamento diferente de outro manifesto;[0034] Figure 6 is a block diagram illustrating various manifests stored in static memory, where each of the stored manifests has a different offset from another manifest;

[0035] A Figura 7 é um fluxograma ilustrando um exemplo de um método para manipular um manifesto; e[0035] Figure 7 is a flowchart illustrating an example of a method for manipulating a manifest; and

[0036] A Figura 8 ilustra uma representação diagramática de uma máquina na forma ilustrativa de um sistema de computador dentro do qual um conjunto de instruções, para causar que a máquina execute qualquer uma ou mais das metodologias discutidas neste documento, possam ser executadas.[0036] Figure 8 illustrates a diagrammatic representation of a machine in illustrative form of a computer system within which a set of instructions, to cause the machine to execute any one or more of the methodologies discussed in this document, can be executed.

[0037] É para ser entendido que os desenhos anexos são para o propósito de ilustrar os conceitos da invenção e podem não estar em escala.[0037] It is to be understood that the accompanying drawings are for the purpose of illustrating the concepts of the invention and may not be to scale.

DESCRIÇÃO DETALHADA DA INVENÇÃODETAILED DESCRIPTION OF THE INVENTION

[0038] Algumas concretizações da presente revelação são compa tíveis e fazem uso de elementos definidos de acordo com o padrão SCTE-130. O padrão SCTE-130 proporciona uma interface baseada em mensagem padronizada e extensível definindo um conjunto mínimo de serviços lógicos cooperativos necessários para comunicar oportunidades de colocação, decisões de colocação, e dados de evento relacionados com a colocação necessários para as medições de responsabilidade de prestação de contas. O SCTE-130 define uma estrutura extensível de interfaces dentre um conjunto de serviços lógicos do sistema de anúncio. O padrão SCTE-130 abrange: um conjunto mínimo de serviços lógicos cooperativos necessários para implementar sistemas de anúncio endereçável avançados; os tipos de dados principais e a estrutura de mensagem extensível formando um vocabulário necessário para se comunicar entre os serviços lógicos definidos; as interfaces entre estes serviços lógicos utilizando os tipos de dados principais e mensagens; e, mecanismos para capacidade de extensão que permite inovação enquanto preservando compatibilidade com versões anteriores com sistemas ao implementados - desse modo, reduzindo a complexidade para incorporar novos aspectos dentro do padrão.[0038] Some embodiments of the present disclosure are compatible and make use of elements defined in accordance with the SCTE-130 standard. The SCTE-130 standard provides a standardized and extensible message-based interface defining a minimal set of cooperative logic services necessary to communicate placement opportunities, placement decisions, and placement-related event data required for service delivery responsibility measurements. bills. SCTE-130 defines an extensible structure of interfaces among a set of logical services of the advertisement system. The SCTE-130 standard encompasses: a minimal set of cooperative logic services necessary to implement advanced addressable advertisement systems; the core data types and extensible message structure forming a vocabulary necessary to communicate between the defined logical services; the interfaces between these logical services using the main data types and messages; and, extensibility mechanisms that allow for innovation while preserving backward compatibility with deployed systems - thereby reducing the complexity of incorporating new aspects into the standard.

[0039] As partes normativas do padrão SCTE-130 definem meca nismos para integrar sistemas implementando aspectos tais como anúncio baseado em VOD, anúncio baseado em linear, capacidades avançadas de anúncio tal como grupos de rotação de anúncio (grupos de rotação se refere às oportunidades de colocação que executam em rotação de modo que o mesmo anúncio não é visto novamente imediatamente), endereçamento baseado em assinante para adequação de anúncio ou conteúdo, pontos de extensão para aspectos avançados de anúncio ou de endereçamento, serviços lógicos que são implementados como um ou mais sistemas físicos criados pelo menos vendedor, implementação de um serviço lógico que pode simultaneamente incluir sistemas a partir de um ou mais fornecedores, e uma implementação que pode incorporar um ou mais serviços lógicos e interfaces definidas.[0039] The normative parts of the SCTE-130 standard define mechanisms for integrating systems implementing aspects such as VOD-based advertising, linear-based advertising, advanced advertising capabilities such as ad rotation groups (rotation groups refer to opportunities placements that run in rotation so that the same ad is not seen again immediately), subscriber-based addressing for ad or content suitability, extension points for advanced aspects of ad or addressing, logical services that are implemented as one or more physical systems created by the least vendor, implementation of a logical service that can simultaneously include systems from one or more vendors, and an implementation that can incorporate one or more logical services and defined interfaces.

[0040] O padrão SCTE-130 define um conjunto de serviços lógicos compreendendo um sistema de anúncio avançado. Cada serviço lógico pode ele próprio ser um sistema complexo. Em uma concretização, um ou mais dentre os seguintes serviços lógicos podem ser utilizados ou interagir com algumas concretizações da presente invenção.[0040] The SCTE-130 standard defines a set of logical services comprising an advanced advertisement system. Each logical service can itself be a complex system. In one embodiment, one or more of the following logical services may be used or interact with some embodiments of the present invention.

[0041] Um Serviço de Gerenciamento de Anúncio (ADM) define mensagens em suporte às atividades de inserção de anúncio. O consumidor principal destas mensagens é um Serviço de Decisão de Anúncio (ADS). As interfaces de mensagem expostas por um ADM permitem tanto decisões de anúncio pré-configuradas como modelos de atendimento em tempo real. Uma implementação ADM pode incorporar algumas regras simples de seleção de anúncio (por exemplo, rotações de anúncio), mas decisões de anúncio mais complexas são a responsabilidade de um ADS.[0041] An Ad Management Service (ADM) defines messages in support of ad insertion activities. The primary consumer of these messages is an Ad Decision Service (ADS). The message interfaces exposed by an ADM allow for both pre-configured ad decisions and real-time service models. An ADM implementation may incorporate some simple ad selection rules (eg, ad rotations), but more complex ad decisions are the responsibility of an ADS.

[0042] Um Serviço de Decisão de Anúncio (ADS) determina como o conteúdo do anúncio é combinado com recursos de conteúdo que não são de anúncio (por exemplo, entretenimento). As decisões tomadas por um ADS podem ser objetivas (isto é, conteúdo de anúncioes- pecífico colocado em um momento específico em um recurso específico) ou arbitrariamente complexas (baseadas em dados do assinante, zona de anúncio, etc.).[0042] An Ad Decision Service (ADS) determines how ad content is combined with non-advertising content resources (eg entertainment). Decisions made by an ADS can be objective (ie, specific ad content placed at a specific time on a specific resource) or arbitrarily complex (based on subscriber data, ad zone, etc.).

[0043] Um Serviço de Informação de Conteúdo (CIS) gerencia me tadados descrevendo recursos (tanto recursos de anúncio como recursos que não são anúncio) disponíveis para os outros serviços lógicos SCTE-130. O CIS proporciona interfaces de consulta e de notificação para os outros serviços lógicos. O serviço de consulta está disponível em uma base ad hoc e pode ser chamado por qualquer outro serviço lógico a qualquer tempo sem qualquer registro anterior. As consultas especificam valores ou padrões a serem buscados nos metadados da mensagem de consulta e a informação associada especificada (ou uma indicação de erro) é retornada em uma mensagem de resposta.[0043] A Content Information Service (CIS) manages metadata describing resources (both advertisement resources and non-advertising resources) available to the other logical SCTE-130 services. CIS provides query and notification interfaces for the other logical services. The query service is available on an ad hoc basis and can be called by any other logical service at any time without any previous registration. Queries specify values or patterns to look for in the query message metadata, and the specified associated information (or an error indication) is returned in a response message.

[0044] O Serviço de Informação de Conteúdo (CIS) é um meca nismo de armazenamento e distribuição. Ele armazena metadados sobre recursos de entretenimento e de anúncio; proporciona notificações para clientes registrados quando metadados são modificados; registra, recebe e processa notificação a partir de outros serviços CSI; e suporta consultas de metadados em tempo real. O CIS permite que um Gerenciador de Anúncio (ADM) e/ou Serviço de Decisão de Anúncio (ADS) recupere e utilize metadados de conteúdo em seu processamento avançado de decisão de anúncio.[0044] The Content Information Service (CIS) is a storage and distribution mechanism. It stores metadata about entertainment and advertising resources; provides notifications to registered customers when metadata is modified; registers, receives and processes notification from other CSI services; and supports real-time metadata queries. CIS allows an Ad Manager (ADM) and/or Ad Decision Service (ADS) to retrieve and utilize content metadata in their advanced ad decision processing.

[0045] Um Serviço de Informação de Oportunidade de Colocação (POIS) pode conter, manter e reter descrições de oportunidades de colocação. O POIS também pode conter atributos e restrições para cada oportunidade de colocação, conformidade com a plataforma, direitos, e políticas do conteúdo no qual existe a oportunidade de colocação. Estas oportunidades de colocação são específicas em relação ao conteúdo e, portanto, atributos e restrições podem variar por rede, região geográfica, ou por outra dimensão de distribuição de conteúdo.[0045] A Placement Opportunity Information Service (POIS) may contain, maintain and retain descriptions of placement opportunities. The POIS may also contain attributes and restrictions for each placement opportunity, platform compliance, rights, and policies for the content on which the placement opportunity exists. These placement opportunities are content-specific and therefore attributes and restrictions may vary by network, geographic region, or other content delivery dimension.

[0046] O POIS é um mecanismo de execução de armazenamento e inventário de Oportunidade de Colocação (PO). Ele armazena metadados e estatísticas de PO; proporciona notificações para clientes registrados quando os metadados de PO são modificados; registra, recebe e processa notificações a partir de outros serviços POIS; e suporta consultas de metadados de PO em tempo real. Através do dispositivo POIS, um Gerenciador de Anúncio (ADM) e/ou Serviço de Decisão de Anúncio (ADS) pode recuperar e utilizar metadados de oportunidade de colocação na sua tomada de decisão de anúncio avançada.[0046] POIS is a Placement Opportunity (PO) storage and inventory execution engine. It stores PO metadata and statistics; provides notifications to registered customers when PO metadata is modified; logs, receives and processes notifications from other POIS services; and supports real-time PO metadata queries. Through the POIS device, an Ad Manager (ADM) and/or Ad Decision Service (ADS) can retrieve and use placement opportunity metadata in its advanced ad decision making.

[0047] O Serviço de Informação de Assinante (SIS) gerencia in formação por assinante relevante para decisões de colocação de anúncio. O SIS proporciona um mapeamento entre identificadores de assinante ou cliente, tal como um endereço MAC, número de série, etc., e atributos de assinante ou audiência, por exemplo, idade, sexo, localização de um assinante.[0047] Subscriber Information Service (SIS) manages per subscriber information relevant to ad placement decisions. SIS provides a mapping between subscriber or customer identifiers, such as a MAC address, serial number, etc., and subscriber or audience attributes, for example, age, gender, location of a subscriber.

[0048] O termo "computador" ou "plataforma de computador" é pretendido para incluir qualquer dispositivo de processamento de dados, tal como um computador de mesa, um computador laptop, um computador tablet, um computador de grande porte, um servidor, um dispositivo portátil, um processador de dados digitais (DSP), um processador embutido (cujo exemplo é descrito em conexão com a Figura 8), ou qualquer outro dispositivo apto a processar dados. O computa- dor/plataforma de computador é configurado para incluir um ou mais microprocessadores comunicativamente conectados com um ou mais meios legíveis por computador não transitórios e uma ou mais redes. O termo "comunicativamente conectado" é pretendido para incluir qualquer tipo de conexão, seja com uso de fios ou sem uso de fios, na qual dados podem ser comunicados. O termo "comunicativamente conectado" é pretendido para incluir, mas não limitado a uma conexão entre dispositivos e/ou programas dentro de um único computador ou entre dispositivos e/ou computadores separados através de uma rede. O termo "rede" é pretendido para incluir, mas não limitado a OTA (transmissão aérea, ATSC, DVB-T), redes comutadas por pacote (TCP/IP, por exemplo, Internet), satélite (micro-onda, fluxo de transporte MPEG ou IP), satélite de transmissão direta, sistemas analógicos de transmissão a cabo (RF), e sistemas de transmissão de vídeo digital (ATSC, HD-SDI, HDMI, DVI, VGA), etc.[0048] The term "computer" or "computer platform" is intended to include any data processing device, such as a desktop computer, a laptop computer, a tablet computer, a mainframe, a server, a portable device, a digital data processor (DSP), an embedded processor (the example of which is described in connection with Figure 8), or any other device capable of processing data. The computer/computer platform is configured to include one or more microprocessors communicatively connected with one or more non-transient computer readable media and one or more networks. The term "communicatively connected" is intended to include any type of connection, whether wired or wireless, over which data may be communicated. The term "communicatively connected" is intended to include, but not limited to, a connection between devices and/or programs within a single computer or between separate devices and/or computers over a network. The term "network" is intended to include, but not limited to, OTA (over the air, ATSC, DVB-T), packet-switched networks (TCP/IP, e.g. Internet), satellite (microwave, transport stream, MPEG or IP), direct broadcast satellite, analog cable (RF) transmission systems, and digital video transmission systems (ATSC, HD-SDI, HDMI, DVI, VGA), etc.

[0049] A Figura 4 representa uma configuração de um sistema 400 para manipular manifestos. O sistema 400 pode ser executado em um servidor 402, interconectado por uma ou mais redes (não apresentadas) e comunicativamente conectado com um ou mais ADSs 404a até 404n. Os ADSs 404a até 404n são configurados para colocar anúncios dentro de intervalos comerciais nos fluxos de dados de assinante por solicitação de uma CDN 406 para distribuição para um ou mais aparelhos inteligentes 408a até 408n.[0049] Figure 4 represents a configuration of a system 400 to handle manifests. System 400 may run on a server 402, interconnected by one or more networks (not shown) and communicatively connected with one or more ADSs 404a through 404n. ADSs 404a through 404n are configured to place advertisements within ad breaks in subscriber data streams upon request from a CDN 406 for distribution to one or more smart appliances 408a through 408n.

[0050] Em uma concretização, o servidor 402 pode estar comuni cativamente conectado por uma ou mais redes (não apresentadas) com os dispositivos clientes 410a até 410n. Os dispositivos clientes 410a até 410n são configurados para armazenar e recuperar um número predeterminado de anúncio na/para as caches correspondentes 412a até 412n para distribuição para os ADSs 404a até 404n correspondentes sob o controle do servidor 402 e da CDN 406.[0050] In one embodiment, the server 402 may be communicatively connected by one or more networks (not shown) with the client devices 410a through 410n. Client devices 410a through 410n are configured to store and retrieve a predetermined number of advertisements in/to the corresponding caches 412a through 412n for distribution to the corresponding ADSs 404a through 404n under the control of the server 402 and the CDN 406.

[0051] O servidor 402 pode ser associado com ou implementar um CIS 416 para receber um ou mais fluxos de sinal fonte a partir de dispositivos a montante 418 e tons de deixa correspondentes (isto é, instâncias de pacotes SCTE-130) a partir de um observador 420, o qual pode ser incorporado dentro de um transcodificador 422. O transcodifi- cador 422 também é configurado para distribuir vídeo IP, áudio, etc., em "blocos" ou segmentos predeterminados para a CDN 406, como descrito acima. O transcodificador 422 também é configurado para ge- renciar um ou mais manifestos com uma duração de tempo predeterminada (por exemplo, 30 segundos) que compreendem os endereços (por exemplo, URLs) dos segmentos de um fluxo de sinal para um ou mais dispositivos à jusante (normalmente a CDN 406) baseado em um endereço armazenado no transcodificador 422 durante um processo de registro. Em uma concretização, o dispositivo à jusante registrado é o servidor 402.[0051] Server 402 may be associated with or implement a CIS 416 to receive one or more source signal streams from upstream devices 418 and corresponding cue tones (i.e. instances of SCTE-130 packets) from a viewer 420, which may be incorporated within a transcoder 422. The transcoder 422 is also configured to deliver IP video, audio, etc., in predetermined "blocks" or segments to the CDN 406, as described above. Transcoder 422 is also configured to manage one or more manifests of a predetermined length of time (e.g., 30 seconds) that comprise the addresses (e.g., URLs) of segments of a signal stream for one or more devices at the same time. downstream (typically CDN 406) based on an address stored in transcoder 422 during a registration process. In one embodiment, the registered downstream device is the 402 server.

[0052] O CIS 416 também é configurado para identificar metada dos a partir de um ou mais fluxos de sinal fonte e distribuir os metadados identificados para o servidor 402. O servidor 402 é configurado para prealocar um número correspondente de oportunidades de colocação (POs) não confirmadas sem sinais e para vincular o fluxo de sinal fonte com várias oportunidades de colocação não confirmadas criadas anteriormente. Parte dos metadados identificados inclui um identificador de canal associado com um fluxo de sinal fonte correspondente. O CIS 416 é configurado para retornar um valor globalmente único, um UUID, referido como um identificador de sinal ou ID de sinal que, de forma única, identifica uma oportunidade de colocação como uma colocação confirmada e sua localização inicial dentro do sistema operacional ponta a ponta 400. O CIS 416 é adicionalmente configurado para inserir o ID do sinal e o identificador do canal dentro dos metadados do fluxo de sinal fonte utilizando o formato apropriado de transporte na banda.[0052] The CIS 416 is also configured to identify metadata from one or more source signal streams and distribute the identified metadata to the server 402. The server 402 is configured to pre-allocate a corresponding number of placement opportunities (POs) uncommitted without signals and to link the source signal stream with multiple previously created uncommitted placement opportunities. Part of the identified metadata includes a channel identifier associated with a corresponding source signal stream. The CIS 416 is configured to return a globally unique value, a UUID, referred to as a signal identifier or signal ID that uniquely identifies a placement opportunity as a confirmed placement and its initial location within the end-to-end operating system. tip 400. CIS 416 is further configured to insert the signal ID and channel identifier within the source signal stream metadata using the appropriate in-band transport format.

[0053] Em uma concretização, quando o dispositivo à jusante que se registrou com o transcodificador 422 para receber manifestos é o servidor 402, o CIS 416 é configurado para receber um ou mais manifestos originais correspondendo a um intervalo de dados do fluxo de sinal fonte a partir do transcodificador 422.[0053] In one embodiment, when the downstream device that has registered with transcoder 422 to receive manifests is server 402, CIS 416 is configured to receive one or more original manifests corresponding to a data range of the source signal stream from transcoder 422.

[0054] Em uma concretização, um POIS 424 pode ser implemen tado pelo servidor 402. O POIS 424 é configurada para "confirmar" oportunidades de colocação não confirmadas por identificar localizações iniciais temporais das oportunidades de colocação não confirmadas (isto é, incluindo ponto(s) de sinal de anúncio relativo tanto ao fluxo de conteúdo como a um tempo total de processamento. O POIS 424 é configurado para retornar um valor globalmente único, um UUID, referido como identificador de sinal ou ID de sinal que de forma única identifica uma PO como uma PO confirmada e sua localização inicial dentro do sistema operacional ponta a ponta. O POIS 424 então insere o ID de sinal e o identificador de canal em outros metadados extraídos do fluxo de sinal fonte utilizando o formato apropriado de transporte na banda.[0054] In one embodiment, a POIS 424 may be implemented by the server 402. The POIS 424 is configured to "confirm" unconfirmed placement opportunities by identifying temporal start locations of unconfirmed placement opportunities (i.e., including point( s) of an advertisement signal relative to both the content stream and a total processing time. POIS 424 is configured to return a globally unique value, a UUID, referred to as a signal identifier or signal ID that uniquely identifies a PO as a confirmed PO and its initial location within the end-to-end operating system.POIS 424 then inserts the signal ID and channel identifier into other metadata extracted from the source signal stream using the appropriate in-band transport format.

[0055] O POIS 424 é configurado para iniciar um fluxo de trabalho onde, pelo sinal confirmado, gera o conjunto de oportunidades de colocação confirmadas e dispara um gatilho de decisão antecipada com o ID de sinal como os dados do gatilho. O receptor do gatilho de decisão antecipada é uma instância de um Serviço de Gerenciamento de Anúncio 426 do SCTE 130, ou ADM 426 associado com o servidor 402. O ADM 426 é configurado para identificar uma lista representativa de um número de fluxos de sinal do receptor possuindo o identificador de canal. Para identificar a lista, em uma concretização, o ADM 426 transmite e recebe mensagens e dados para/a partir do gerenciador de sessão 428 internamente implementado pelo servidor 402. Em uma concretização, o ADM 426 transmite o identificador de canal para o gerenciador de sessão 428, o qual proporciona para o ADM 426 uma lista de identidades de cliente indicativa de um número de fluxos de transporte ativos (por exemplo, uma série de sessões) possuindo o identificador de canal, por exemplo, uma lista de fluxos de sinal do receptor possuindo o mesmo identificador de canal que está sendo "assistido" pelos assinantes. O ADM 426 também é configurado para obter vários anúncios correspondendo à lista de todas as sessões ativas a partir de um ou mais ADSs 404a até 404n. O ADM 426 recebe, a partir dos ADS 404a até 404n, os vários anúncios direcionados para a lista representativa dos vários fluxos de sinal.[0055] POIS 424 is configured to start a workflow where, by the confirmed signal, it generates the set of confirmed placement opportunities and triggers an early decision trigger with the signal ID as the trigger data. The early decision trigger receiver is an instance of an Advertisement Management Service 426 of the SCTE 130, or ADM 426 associated with the server 402. The ADM 426 is configured to identify a representative list of a number of signal streams from the receiver. having the channel identifier. To identify the list, in one embodiment, the ADM 426 transmits and receives messages and data to/from the session manager 428 internally implemented by the server 402. In one embodiment, the ADM 426 transmits the channel identifier to the session manager 428, which provides the ADM 426 with a list of client identities indicative of a number of active transport streams (e.g., a series of sessions) having the channel identifier, e.g., a list of receiver signal streams having the same identifier as the channel being "watched" by subscribers. The ADM 426 is also configured to get multiple advertisements matching the list of all active sessions from one or more ADSs 404a through 404n. The ADM 426 receives, from the ADS 404a to 404n, the various advertisements directed to the representative list of the various signal streams.

[0056] O ADM 426 utiliza o ID de sinal mais um conjunto de crité rios de direcionamento localmente configurados ou aprendidos para iniciar um conjunto único de solicitações de decisão de anúncio. As solicitações de decisão de anúncio dão origem às solicitações de decisão de anúncio direcionado para os proprietários de decisão apropriados e os resultados são um conjunto de decisões de colocação de anúncio se correlacionando com as oportunidades de colocação geradas como resultado da confirmação do sinal.[0056] The ADM 426 uses the signal ID plus a set of locally configured or learned targeting criteria to initiate a unique set of ad decision requests. Ad decision requests give rise to targeted ad decision requests to the appropriate decision owners and the results are a set of ad placement decisions correlating with the placement opportunities generated as a result of signal confirmation.

[0057] O ADM 426 também é configurado para armazenar a lista de anúncios obtida em um ou mais caches 412a até 412n sob o controle dos clientes correspondentes 410a até 410n associados com um ou mais ADSs 404a até 404n. O ADM 426 associa o ID de sinal único com cada um dos anúncios direcionados/não direcionados e armazena os anúncios direcionados/não direcionado EME uma ou mais caches 412a até 412n. Desde que podem existir milhares até milhões de anúncios a serem armazenados na um ou mais caches 412a até 412n, em uma concretização, o ADM 426 é configurado para dividir um intervalo de tempo entre a recepção de um tom de deixa e a chegada de um ponto de sinal de anúncio correspondente em um número predeterminado de subintervalos de tempo e divide o fluxo de sinal em um número predeterminado de subfluxos de sinal.[0057] The ADM 426 is also configured to store the obtained advertisement list in one or more caches 412a through 412n under the control of corresponding clients 410a through 410n associated with one or more ADSs 404a through 404n. The ADM 426 associates the unique Signal ID with each of the targeted/untargeted advertisements and stores the targeted/untargeted advertisements EME in one or more caches 412a through 412n. Since there may be thousands to millions of advertisements to be stored in the one or more caches 412a through 412n, in one embodiment, the ADM 426 is configured to divide a time interval between the receipt of a cue tone and the arrival of a point. of corresponding annunciation signal into a predetermined number of time sub-slots and divides the signal stream into a predetermined number of signal sub-streams.

[0058] Em uma concretização, o ADM 426 é adicionalmente confi gurado para implementar um manipulador de manifesto 430 e uma memória 432, a qual pode ser, por exemplo, uma memória de acesso aleatório estática 432. O manipulador de manifesto 430 é configurado para receber um ou mais manifestos originais a partir do CIS 416. Para cada sessão ativa na lista representativa das várias sessões ativas, o manipulador de manifesto 430 associa o manifesto original com o identificador de canal correspondente, com um identificador de sessão, e com um deslocamento inicial de zero na memória (estática) 432. O manipulador de manifesto 430 é configurado para derivar e manter na memória (estática) vários manifestos armazenados possuindo diferentes deslocamentos a partir do manifesto original.[0058] In one embodiment, the ADM 426 is further configured to implement a manifest handler 430 and a memory 432, which may be, for example, a static random access memory 432. The manifest handler 430 is configured to receive one or more original manifests from the CIS 416. For each active session in the representative list of the various active sessions, the manifest handler 430 associates the original manifest with the corresponding channel identifier, with a session identifier, and with an offset leading zero in memory (static) 432. The manifest handler 430 is configured to derive and maintain in memory (static) multiple stored manifests having different offsets from the original manifest.

[0059] Em uma concretização, o manipulador de manifesto 430 é configurado para receber a partir de um aparelho inteligente (por exemplo, 408a) uma solicitação para um manifesto correspondendo a um identificador de sessão e um identificador de canal. O manipulador de manifesto 430 é configurado para recuperar a partir do gerenciador de sessão 428 um manifesto de sessão baseado no identificador de sessão. O manipulador de manifesto 430 é configurado para ajustar um deslocamento da sessão baseado em uma diferença em uma duração da sessão representada pelo manifesto de sessão a partir da duração de sessão representada por uma manifesto de sessão anterior correspondendo à sessão. Quando o manifesto de sessão compreende um endereço de um intervalo comercial, o manipulador de manifesto 430 é configurado para identificar em um cache (por exemplo, 412a) pelo menos um anúncio a ser inserido na sessão e substitui pelo menos um endereço correspondendo a pelo menos um segmento do pelo menos um anúncio no manifesto de sessão baseado na diferença. O manipulador de manifesto 430 é configurado para transmitir o manifesto de sessão para o aparelho inteligente (por exemplo, 408a).[0059] In one embodiment, the manifest handler 430 is configured to receive from a smart device (e.g., 408a) a request for a manifest corresponding to a session identifier and a channel identifier. Manifest handler 430 is configured to retrieve from session manager 428 a session manifest based on the session identifier. Manifest handler 430 is configured to adjust a session offset based on a difference in a session duration represented by the session manifest from the session duration represented by a previous session manifest corresponding to the session. When the session manifest comprises an address from an ampersand, the manifest handler 430 is configured to identify in a cache (e.g. 412a) at least one advertisement to be inserted into the session and replaces at least one address corresponding to at least a segment of at least one ad in the difference-based session manifest. Manifest handler 430 is configured to pass the session manifest to the smart device (for example, 408a).

[0060] Em uma concretização, quando o manifesto de sessão compreende um endereço de um intervalo comercial, o manipulador de manifesto 430 é configurado para instruir um cliente (por exemplo, 410a) associado com um serviço de decisão de anúncio (por exemplo, ADS 404a) para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão baseado no pelo menos um endereço substi- tuído do manifesto de sessão.[0060] In one embodiment, when the session manifest comprises an address of a commercial slot, the manifest handler 430 is configured to instruct a client (e.g., 410a) associated with an advertisement decision service (e.g., ADS 404a) to join the at least one advertisement to the ad break address in the session based on the at least one substituted address from the session manifest.

[0061] Em uma concretização, instruir um serviço de decisão de anúncio (por exemplo, 404a) para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender o servidor 402 transmitir, para o serviço de decisão de anúncio (por exemplo, 404a), pelo menos uma chamada de anúncio para o endereço do intervalo comercial correspondendo ao identificador de sessão, receber, a partir do serviço de decisão de anúncio (por exemplo, 404a), pelo menos um anúncio, e armazenar o pelo menos um anúncio em pelo menos um cache (por exemplo, 412a). Instruir um serviço de decisão de anúncio (por exemplo, 404a) para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender antes da união, instruir o serviço de decisão de anúncio (por exemplo, 404a) para recuperar o pelo menos um anúncio a partir do cache (por exemplo, 412a).[0061] In one embodiment, instructing an advertisement decision service (e.g., 404a) to match the at least one advertisement to the commercial break address in the session may further comprise the server 402 transmitting, to the advertisement decision service ( e.g. 404a), at least one advertisement call to the ad break address corresponding to the session identifier, receive from the advertisement decision service (e.g. 404a) at least one advertisement, and store the at least least one ad in at least one cache (e.g. 412a). Instructing an ad decision service (e.g. 404a) to merge the at least one advertisement to the commercial break address in the session may additionally comprise, prior to the merge, instruct the ad decision service (e.g. 404a) to retrieve the at least one advertisement from the cache (eg 412a).

[0062] Em uma concretização, o manipulador de manifesto 430 é configurado para armazenar o deslocamento da sessão e o manifesto de sessão anterior na memória 432. A memória 432 pode ser uma memória de acesso aleatório estática. O manifesto de sessão e o manifesto de sessão anterior diferem quando a diferença não é zero. Quando o aparelho inteligente (por exemplo, 408a) sintoniza com outro canal ou termina sua sessão, o manipulador de manifesto 430 pode reiniciar o deslocamento de sessão para zero.[0062] In one embodiment, the manifest handler 430 is configured to store the session offset and the previous session manifest in memory 432. Memory 432 may be static random access memory. Session manifest and previous session manifest differ when the difference is not zero. When the smart device (e.g., 408a) tunes to another channel or ends its session, the manifest handler 430 may reset the session offset to zero.

[0063] Em uma concretização, o manipulador de manifesto 430 do servidor 402 pode receber um manifesto original a partir do transcodifi- cador 422. O manipulador de manifesto 430 pode inicialmente designar um deslocamento zero para o manifesto original. O manipulador de manifesto 430 pode derivar e manter vários manifestos armazenados possuindo diferentes deslocamentos a partir do manifesto original. O manipulador de manifesto 430 pode substituir um dos manifestos ar- mazenados pelo manifesto de sessão para produzir o manifesto de sessão anterior.[0063] In one embodiment, manifest handler 430 from server 402 may receive an original manifest from transcoder 422. Manifest handler 430 may initially assign a zero offset to the original manifest. Manifest handler 430 can derive and maintain multiple stored manifests having different offsets from the original manifest. Manifest handler 430 can replace one of the manifests stored by the session manifest to produce the previous session manifest.

[0064] A Figura 5 é um fluxograma ilustrando uma concretização de um método 500 para acelerar as decisões de colocação de anúncio nos fluxos de dados a partir de um ponto de vista de um servidor 402, de acordo com uma concretização da presente invenção. No bloco 505, o servidor 402 pega um fluxo de sinal fonte a partir do transcodifi- cador 422. Mais particularmente, o CIS 416 associado com o servidor 402 pega um fluxo de sinal fonte (por exemplo, no formato MPEG-2) possuindo um identificador de canal a partir dos dispositivos à montante 418.[0064] Figure 5 is a flowchart illustrating an embodiment of a method 500 for accelerating ad placement decisions in data streams from a point of view of a server 402, in accordance with one embodiment of the present invention. At block 505, server 402 takes a source signal stream from transcoder 422. More particularly, CIS 416 associated with server 402 takes a source signal stream (e.g., in MPEG-2 format) having a channel identifier from upstream devices 418.

[0065] Um transcodificador 422 associado com um formato de for necedor específico para o fluxo de sinal fonte (por exemplo, TBS) recebe o fluxo de sinal e converte o fluxo de sinal para vídeo IP. No processo, um observador 420, o qual pode estar incluído no transcodifi- cador 422, observa a presença de um tom de deixa SCTE-35. Em uma concretização, a indicação de que uma oportunidade de colocação de anúncio está localizada no fluxo de sinal é uma instância de um pacote SCTE-35 indicativo de um tom de deixa. O tom de deixa também proporciona uma indicação de que uma oportunidade de colocação de anúncio está localizada no fluxo de sinal um período de tempo antes de um ponto de sinal de anúncio no fluxo de sinal. O observador 420 do transcodificador 422 então faz uma chamada de Rede para o CIS 416 para informar ao CIS 416 que o tom de deixa para um ID de canal específico foi observado.[0065] A transcoder 422 associated with a specific provider format for the source signal stream (eg, TBS) receives the signal stream and converts the signal stream to IP video. In the process, an observer 420, which may be included in the transcoder 422, observes the presence of an SCTE-35 cue tone. In one embodiment, the indication that an ad placement opportunity is located in the signal stream is an instance of a SCTE-35 packet indicative of a cue tone. The cue tone also provides an indication that an ad placement opportunity is located in the signal stream a period of time before an ad signal point in the signal stream. Observer 420 of transcoder 422 then makes a Network call to CIS 416 to inform CIS 416 that the cue tone for a specific channel ID has been observed.

[0066] O transcodificador 422 pode identificar o servidor 402 como anteriormente registrado para receber vários manifestos originais associados com o fluxo de sinal fonte (por exemplo, TBS). Como resultado do transcodificador 422 divide o fluxo de sinal fonte em vários intervalos de dados com uma duração predeterminada (por exemplo, 30 segundos), e para cada intervalo de dados, em vários segmentos ou "blocos" (por exemplo, 2 segundos). O transcodificador 422 é adicionalmente configurado para construir e transmitir um manifesto original para o servidor 402. No bloco 510, o CIS 416 adicionalmente recebe o manifesto original correspondendo a um intervalo de dados do fluxo de sinal fonte a partir do transcodificador 422. No bloco 515, o CIS 416 transmite o manifesto original para o manipulador de manifesto 430 para processamento adicional a ser descrito abaixo.[0066] Transcoder 422 may identify server 402 as previously registered to receive various original manifests associated with the source signal stream (e.g., TBS). As a result, transcoder 422 divides the source signal stream into several data intervals of a predetermined duration (e.g., 30 seconds), and for each data interval, into several segments or "blocks" (e.g., 2 seconds). Transcoder 422 is further configured to construct and transmit an original manifest to server 402. At block 510, CIS 416 additionally receives the original manifest corresponding to a data range of the source signal stream from transcoder 422. At block 515 , CIS 416 passes the original manifest to manifest handler 430 for further processing to be described below.

[0067] A chegada do pacote SCTE-35 é uma indicação de várias oportunidades de colocação (POs) teóricas para o ID de canal especificado (por exemplo, TBS). Cada PO não confirmada possui uma localização inicial estimada conhecida como um ponto de sinal. O ponto de sinal precisa ser confirmado. Quando uma localização inicial real de inserção de anúncio é encontrada em tempo real, um processo de software no POIS 424 confirma o tempo real do ponto de sinal. Este ponto de sinal confirmado resulta na geração de POs confirmadas que agora estão prontas para inserção de anúncio.[0067] The arrival of the SCTE-35 packet is an indication of several theoretical placement opportunities (POs) for the specified channel ID (eg TBS). Each unconfirmed PO has an estimated starting location known as a signal point. The signal point needs to be confirmed. When a real-time ad insertion start location is found in real-time, a software process in the POIS 424 confirms the real-time of the signal point. This confirmed signal point results in the generation of confirmed POs that are now ready for ad insertion.

[0068] Quando o CIS 416 recebe as oportunidades de colocação teóricas, o CIS 416 é configurado para prealocar um número correspondente de oportunidades de colocação não confirmadas sem sinais e para vincular o fluxo de sinal fonte com várias oportunidades de colocação preestabelecidas, mas não confirmadas. A vinculação do fluxo de sinal fonte com várias oportunidades de colocação preestabelecidas, mas não confirmadas, inclui o CIS 416 extraindo metadados incluindo o identificador de canal a partir do fluxo de sinal fonte. Como utilizado neste documento, o termo "vinculação" ser refere a uma identificação de sinais e de conteúdo dentro de uma PO. As POs frequentemente são criadas para grandes quantidades de conteúdo que ainda não são publicados (isto é, qualquer programa na rede TNT à noite).[0068] When the CIS 416 receives the theoretical placement opportunities, the CIS 416 is configured to pre-allocate a corresponding number of unsigned unconfirmed placement opportunities and to link the source signal stream with multiple pre-established but unconfirmed placement opportunities . Linking the source signal stream with various pre-established but unconfirmed placement opportunities includes the CIS 416 extracting metadata including the channel identifier from the source signal stream. As used in this document, the term "binding" refers to an identification of signals and content within a PO. POs are often created for large amounts of content that is not yet published (ie, any show on the TNT network at night).

[0069] Quando um programa "é levado ao ar" e um fluxo de sinal fonte é detectado, o fluxo de sinal fonte é vinculado com as POs relevantes para este programa.[0069] When a program "airs" and a source signal stream is detected, the source signal stream is linked with the POs relevant to this program.

[0070] Quando POs confirmadas são geradas, o mesmo identifi cador de ponto de sinal que gerou as POs é enviado e capturado por um processo de resolução de decisão de anúncio de escuta no ADM 426 associado com o servidor 402. Este envio do ponto de sinal é chamado de gatilho de decisão de colocação antecipado (ou gatilho de decisão, de forma abreviada) que inicia uma sequência de processos de software. À medida que conteúdo é adquirido pela CDN 406, a CDN 406 notifica o POIS 424, e o POIS 424 "confirma" a localização inicial temporal de uma oportunidade de colocação em relação tanto ao fluxo de sinal fonte como a um tempo total de processamento. O POIS 424 retorna um valor globalmente único, um UUID, referido como identificador de sinal ou ID de sinal que de forma única identifica uma PO como uma PO configurada e sua localização inicial dentro do sistema operacional ponta a ponta. O POIS 424 então insere o ID de sinal e o identificador de canal em outros metadados extraídos do fluxo de sinal fonte utilizando o formato apropriado de transporte na banda.[0070] When confirmed POs are generated, the same signal point identifier that generated the POs is sent and captured by a listening announcement decision resolution process in the ADM 426 associated with the server 402. signal is called an early placement decision trigger (or decision trigger for short) that starts a sequence of software processes. As content is acquired by the CDN 406, the CDN 406 notifies the POIS 424, and the POIS 424 "confirms" the initial temporal location of a placement opportunity in relation to both the source signal stream and a total processing time. POIS 424 returns a globally unique value, a UUID, referred to as a signal identifier or signal ID that uniquely identifies a PO as a configured PO and its initial location within the end-to-end operating system. POIS 424 then inserts the signal ID and channel identifier into other metadata extracted from the source signal stream using the appropriate in-band transport format.

[0071] Em paralelo, o POIS 424 inicia um fluxo de trabalho por meio do qual o POIS gera um conjunto de oportunidades de colocação confirmadas no fluxo de sinal fonte e dispara um gatilho de decisão antecipada com o ID de sinal como os dados do gatilho. O receptor do gatilho de decisão antecipada é uma instância de um Serviço de Gerenciamento de Anúncio do SCTE 130, ou o ADM 426 associado com o servidor.[0071] In parallel, POIS 424 starts a workflow whereby POIS generates a set of confirmed placement opportunities in the source signal stream and fires an early decision trigger with the signal ID as the trigger data . The early decision trigger receiver is an instance of an SCTE 130 Ad Management Service, or the ADM 426 associated with the server.

[0072] No bloco 520, o ADM 426 do servidor 402 identifica um re presentante de um número de fluxos de sinal do receptor possuindo o identificador de canal antes da expiração do período de tempo. A lista representativa de vários fluxos de sinal do receptor possuindo o identificador de canal corresponde ao número de oportunidades de coloca- ção confirmadas. Para identificar a lista, o ADM 426 transmite o identificador de canal para o gerenciador de sessão 428, o qual proporciona para o ADM 426 uma lista de identificadores de sessão indicativos de um número de receptores atualmente visualizando um canal correspondendo ao identificador de canal.[0072] In block 520, the ADM 426 of the server 402 identifies a representative of a number of signal streams from the receiver having the channel identifier before the expiration of the time period. The representative list of various signal streams from the receiver having the channel identifier corresponds to the number of confirmed placement opportunities. To identify the list, the ADM 426 transmits the channel identifier to the session manager 428, which provides the ADM 426 with a list of session identifiers indicative of a number of receivers currently viewing a channel corresponding to the channel identifier.

[0073] No bloco 525, o ADM 426 do servidor 402 obtém a partir de um ou mais ADSs 404a até 404n vários anúncios correspondendo à lista correlacionada com os identificadores de sessão e com o identificador de canal. O ADM 426 recebe a partir dos ADSs 404a até 404n os vários anúncios correspondendo à lista representativa dos vários fluxos de sinal do receptor possuindo o identificador de canal.[0073] In block 525, the ADM 426 of the server 402 obtains from one or more ADSs 404a to 404n various advertisements corresponding to the list correlated with the session identifiers and the channel identifier. The ADM 426 receives from the ADSs 404a through 404n the various advertisements corresponding to the representative list of the various signal streams from the receiver having the channel identifier.

[0074] No bloco 530, o ADM 426 do servidor 402 armazena a lista de anúncios obtida em pelo menos um cache 412a até 412n no um ou mais ADSs 404a até 404n. Enquanto armazenando a lista de anúncios na pelo menos um cache 412a até 412n, o ADM 426 associa IDs de sinal únicos com cada um da lista de anúncios. Armazenar a lista de anúncios obtida na pelo menos um cache 412a até 412n pode incluir transmitir a lista de anúncios para pelo menos um JAR (isto é, um arquivo compactado Java) associado com um ou mais clientes 410a até 410n. Desde que podem existir milhares até milhões de anúncios a serem armazenados nos caches 412a até 412n, em uma concretização, o ADM 426 divide o intervalo de tempo a partir da recepção de um tom de deixa até uma chegada esperada do ponto de sinal correspondente no fluxo de sinal fonte em um número predeterminado de subintervalos de tempo e divide o número (isto é, a contagem) de fluxos de sinal recebidos em um número predeterminado de subfluxos de sinal. O número predeterminado de subfluxos de sinal é distribuído através do número predeterminado de subintervalos de tempo para as caches 412a até 412n associadas com os clientes 410a até 410n.[0074] In block 530, ADM 426 of server 402 stores the obtained advertisement list in at least one cache 412a through 412n in one or more ADSs 404a through 404n. While storing the ad list in at least one cache 412a through 412n, the ADM 426 associates unique signal IDs with each of the ad list. Storing the obtained advertisement list in at least one cache 412a through 412n may include passing the advertisement list to at least one JAR (i.e. a Java compressed file) associated with one or more clients 410a through 410n. Since there may be thousands to millions of advertisements to be stored in caches 412a through 412n, in one embodiment, the ADM 426 divides the time interval from receipt of a cue tone to an expected arrival of the corresponding signal point in the stream. of source signal into a predetermined number of time sub-slots and divides the number (i.e. count) of received signal streams into a predetermined number of signal sub-streams. The predetermined number of signal substreams is distributed over the predetermined number of time subslots to caches 412a through 412n associated with clients 410a through 410n.

[0075] No bloco 535, para cada sessão ativa na lista, o manipula- dor de manifesto 430 associa o manifesto original com um identificador de canal, com um identificador de sessão, e com um deslocamento inicial de zero em uma memória 432. Em uma concretização, a memória 432 pode ser, por exemplo, uma memória estática. O deslocamento indica o número de segmentos e os URLs correspondentes de um manifesto de sessão a ser distribuído para um aparelho inteligente (por exemplo, 408a) que é diferente do número de segmento em um manifesto de sessão anterior correspondente (veja a Figura 7).[0075] In block 535, for each active session in the list, the manifest handler 430 associates the original manifest with a channel identifier, with a session identifier, and with an initial offset of zero in a memory 432. In in one embodiment, memory 432 may be, for example, a static memory. The offset indicates the number of segments and corresponding URLs of a session manifest to be distributed to a smart appliance (e.g. 408a) that is different from the segment number in a corresponding previous session manifest (see Figure 7).

[0076] No bloco 540, o manipulador de manifesto 430 deriva e mantém na memória estática (veja a Figura 6) vários manifestos armazenados 602 possuindo deslocamentos diferentes do manifesto original. Em uma concretização, os manifestos estaticamente armazenados e o número correspondente de segmentos por manifesto armazenados podem ser numerados consecutivamente a partir de um valor negativo mínimo esperado, passando por 0, até o valor máximo positivo esperado. Os anúncios são recuperados e inseridos nos intervalos comerciais, o valor do deslocamento pode alterar e um manifesto de sessão original ou "anterior" não original pode ser substituído (veja a Figura 7) dependendo da duração de um ou mais anúncios a serem inseridos no intervalo comercial.[0076] At block 540, manifest handler 430 derives and maintains in static memory (see Figure 6) several stored manifests 602 having different offsets from the original manifest. In one embodiment, the statically stored manifests and the corresponding number of segments per stored manifest can be numbered consecutively from a minimum expected negative value, through 0, to a maximum positive expected value. Ads are retrieved and inserted into ad breaks, the offset value can change, and a non-original or "previous" session manifest can be replaced (see Figure 7) depending on the duration of one or more ads to be inserted into the ad. commercial.

[0077] A Figura 7 é um fluxograma ilustrando um exemplo de um método 700 para manipular um manifesto. O método 700 pode ser executado por um sistema de computador 400 da Figura 4 e pode compreender hardware (por exemplo, conjunto de circuitos, lógica dedicada, lógica programável, microcódigo, etc.), software (por exemplo, instruções executadas em um dispositivo de processamento), ou uma combinação dos mesmos. Em um exemplo, o método 700 é executado pelo manipulador de manifesto 430 do servidor 402 da Figura 4.[0077] Figure 7 is a flowchart illustrating an example of a method 700 for manipulating a manifest. Method 700 may be performed by a computer system 400 of Figure 4 and may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed on a processing), or a combination thereof. In one example, method 700 is executed by manifest handler 430 of server 402 in Figure 4.

[0078] Como apresentado na Figura 7, no bloco 705, o manipula dor de manifesto 430 do servidor 402 recebe uma solicitação para um manifesto correspondendo a um identificador de sessão a partir de um aparelho inteligente (por exemplo, 408a). No bloco 710, o manipulador de manifesto 430 identifica um manifesto de sessão a partir do gerenciador de sessão 432 e um deslocamento baseado no identificador de sessão. O manifesto de sessão e o deslocamento atual são identificados como um dos manifestos armazenados e os deslocamentos localizados na memória estática 432.[0078] As shown in Figure 7, at block 705, manifest handler 430 from server 402 receives a request for a manifest corresponding to a session identifier from a smart device (eg, 408a). At block 710, the manifest handler 430 identifies a session manifest from the session manager 432 and an offset based on the session identifier. Session manifest and current offset are identified as one of the stored manifests and offsets located in static memory 432.

[0079] No bloco 715, o manipulador de manifesto 430 ajusta um deslocamento de sessão baseado em uma diferença em uma duração da sessão representada pelo manifesto de sessão a partir de uma duração de sessão representada por um manifesto de sessão anterior armazenado na memória 432 correspondendo à sessão. Em uma concretização, baseado no identificador de sessão, o manipulador de manifesto 430 identifica um cliente (por exemplo, 404a) a partir do qual obter a duração de tempo de pelo menos um anúncio. O manipulador de manifesto 430 ajusta o deslocamento da sessão baseado na duração do pelo menos um anúncio recuperado. O manipulador de manifesto 430 substitui o deslocamento da sessão anteriormente armazenado na memória 432 pelo deslocamento de sessão ajustado.[0079] At block 715, manifest handler 430 adjusts a session offset based on a difference in a session duration represented by the session manifest from a session duration represented by a previous session manifest stored in memory 432 corresponding to the session. In one embodiment, based on the session identifier, the manifest handler 430 identifies a client (e.g., 404a) from which to obtain the time duration of at least one advertisement. Manifest handler 430 adjusts session offset based on the duration of at least one ad retrieved. Manifest handler 430 replaces the session offset previously stored in memory 432 with the adjusted session offset.

[0080] No bloco 720, quando o manifesto atual compreende um endereço de um intervalo comercial, o manipulador de manifesto 430 identifica no cache (por exemplo, 412a) pelo menos um anúncio a ser inserido na sessão e substitui pelo menos um endereço correspondendo ao pelo menos um segmento do pelo menos um anúncio no manifesto da sessão baseado na diferença. O manipulador de manifesto 430 substitui o manifesto de sessão anterior (o qual pode ser um manifesto de sessão original ou outro manifesto anterior atualizado) na memória 432 pelo manifesto de sessão atualizado.[0080] At block 720, when the current manifest comprises an ampersand range address, manifest handler 430 identifies in the cache (e.g. 412a) at least one advertisement to be inserted into the session and replaces at least one address corresponding to the at least one segment of at least one ad in the session manifest based on the difference. Manifest handler 430 replaces the previous session manifest (which could be an original session manifest or another updated previous manifest) in memory 432 with the updated session manifest.

[0081] No bloco 720, o manipulador de manifesto 430 transmite o manifesto de sessão atualizado para o aparelho inteligente (por exem- plo, 408a).[0081] At block 720, manifest handler 430 passes the updated session manifest to the smart device (eg 408a).

[0082] Se o deslocamento ajustado não alterar devido à duração total do intervalo comercial não alterar, ou se somente houver conteúdo endereçado pelo manifesto atual, então o manifesto anteriormente armazenado é uma cópia do manifesto atual. O manifesto anteriormente armazenado é uma cópia de outro manifesto diferente do manifesto atual quando o deslocamento da sessão altera o valor. Adicionalmente, quando o aparelho inteligente (por exemplo, 408a) sintoniza com outro canal ou termina sua sessão, o deslocamento da sessão é reiniciado para zero. O método da Figura 7 é repetido sempre que o transcodificador 422 distribuir um novo manifesto original à medida que o fluxo de transporte progride no tempo transmitido.[0082] If the adjusted offset does not change due to the total length of the commercial break does not change, or if there is only content addressed by the current manifest, then the previously stored manifest is a copy of the current manifest. The previously stored manifest is a copy of another manifest than the current manifest when the session offset changes the value. Additionally, when the smart device (eg, 408a) tunes in to another channel or ends its session, the session offset is reset to zero. The method of Figure 7 is repeated each time transcoder 422 distributes a new original manifest as the transport stream progresses in transmitted time.

[0083] Em uma concretização, quando o manifesto de sessão compreende um endereço de um intervalo comercial, o servidor 402 pode instruir um cliente (por exemplo, 410a) associado com um serviço de decisão de anúncio (por exemplo, 404a) para unir o pelo menos um anúncio a partir de um cache associado (por exemplo, 412a) ao endereço do intervalo comercial na sessão baseado no pelo menos um endereço substituído do manifesto da sessão. Instruir um serviço de decisão de anúncio (por exemplo, 404a) a unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender o servidor 402 transmitir, para o serviço de de-cisão de anúncio (por exemplo, 404a), pelo menos uma chamada de anúncio para o endereço do intervalo comercial correspondendo ao identificador de sessão, receber, a partir do serviço de decisão de anúncio (por exemplo, 404a) pelo menos um anúncio, e armazenar o pelo menos um anúncio no cache associado (por exemplo, 412a). Instruir um serviço de decisão de anúncio (por exemplo, 404a) para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão pode adicionalmente compreender, antes da união, o manipulador de manifesto 430 instruindo o serviço de decisão de anúncio (por exemplo, 404a) para recuperar o pelo menos um anúncio a partir do cache associado (por exemplo, 412a).[0083] In one embodiment, when the session manifest comprises an address from a commercial range, the server 402 may instruct a client (e.g., 410a) associated with an advertisement decision service (e.g., 404a) to join the at least one advertisement from a cache associated (e.g., 412a) to the commercial break address in the session based on the at least one overridden address from the session manifest. Instructing an advertisement decision service (e.g., 404a) to merge the at least one advertisement to the address of the commercial break in the session may further comprise server 402 transmitting to the advertisement decision service (e.g., 404a) , at least one advertisement call to the ad break address corresponding to the session identifier, receive from the advertisement decision service (e.g. 404a) at least one advertisement, and store the at least one advertisement in the associated cache (eg 412a). Instructing an ad decision service (e.g., 404a) to merge the at least one advertisement to the commercial break address in the session may additionally comprise, prior to the merge, the manifest handler 430 instructing the ad decision service (e.g. , 404a) to retrieve the at least one advertisement from the associated cache (for example, 412a).

[0084] A Figura 8 ilustra uma representação diagramática de uma máquina na forma ilustrativa de um sistema de computador 800 dentro do qual um conjunto de instruções, para causar que a máquina execute qualquer uma ou mais das metodologias discutidas neste documento, possa ser executado. Em alguns exemplos, a máquina pode ser conectada (por exemplo, colocada em rede) com outras máquinas em uma LAN, uma intranet, uma extranet, ou Internet. A máquina pode operar na capacidade de uma máquina servidora no ambiente de rede cliente - servidor. A máquina pode ser um computador pessoal (PC), uma caixa decodificadora de sinais (STB), um servidor, um roteador da rede, comutador ou ponte, ou qualquer máquina capaz de executar um conjunto de instruções (sequencial ou não) que especifica ações a serem executadas por esta máquina. Adicionalmente, apesar de somente uma única máquina ser ilustrada, o termo "máquina" também deve ser assumido como incluindo qualquer coleção de máquinas que individualmente ou de forma conjunta executam um conjunto (ou vários conjuntos) de instruções para executar qualquer uma ou mais das metodologias discutidas neste documento.[0084] Figure 8 illustrates a diagrammatic representation of a machine in illustrative form of a computer system 800 within which a set of instructions to cause the machine to execute any one or more of the methodologies discussed in this document can be executed. In some examples, the machine may be connected (eg, networked) with other machines on a LAN, an intranet, an extranet, or the Internet. The machine can operate in the capacity of a server machine in the client-server network environment. The machine can be a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or not) that specify actions. to be performed by this machine. Additionally, although only a single machine is illustrated, the term "machine" should also be assumed to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to execute any one or more of the methodologies discussed in this document.

[0085] O sistema de computador ilustrativo 800 inclui um dispositi vo de processamento (processador) 802, uma memória principal 804 (por exemplo, memória somente para leitura (ROM), memória rápida, memória de acesso aleatório dinâmica (DRAM) tal como DRAM síncrona (SDRAM)), uma memória estática 806 (por exemplo, memória rápida, memória de acesso aleatório estática (SRAM)), e um dispositivo de armazenamento de dados 816, os quais se comunicam uns com os outros via um barramento 808.[0085] Illustrative computer system 800 includes a processing device (processor) 802, a main memory 804 (e.g., read-only memory (ROM), fast memory, dynamic random access memory (DRAM) such as DRAM (SDRAM)), a static memory 806 (e.g. fast memory, static random access memory (SRAM)), and a data storage device 816, which communicate with each other via a bus 808.

[0086] O processador 802 representa um ou mais dispositivos de processamento de propósito geral tal como um microprocessador, unidade central de processamento, dentre outros. Mais particularmente, o processador 802 pode ser um microprocessador de computador de conjunto complexo de instruções (CISC), microprocessador de computação de conjunto reduzido de instruções (RISC), microprocessador de lavra de instrução muito longa (VLIW), ou um processador implementando outros conjuntos de instruções ou processadores implementando uma combinação de conjunto de instruções. O processador 802 também pode ser um ou mais dispositivos de processamento de propósito especial tal como um circuito integrado de aplicação específica (ASIC), um arranjo de portas programáveis em campo (FPGA), um processador de sinal digital (DSP), processador de rede, dentre outros. O manipulador de manifesto 830 apresentado na Figura 4 pode ser executado pelo processador 802 configurado para executar as operações e etapas discutidas neste documento.[0086] The 802 processor represents one or more general purpose processing devices such as a microprocessor, central processing unit, among others. More particularly, the processor 802 may be a complex instruction set computer (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other sets. of instructions or processors implementing an instruction set combination. Processor 802 can also be one or more special-purpose processing devices such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor. , among others. The manifest handler 830 shown in Figure 4 can be executed by the processor 802 configured to perform the operations and steps discussed in this document.

[0087] O sistema de computador 800 adicionalmente pode incluir um dispositivo de interface de rede 822. O sistema de computador 800 também pode incluir uma unidade de monitor de vídeo 810 (por exemplo, vídeo de cristal líquido (LCD) ou um tubo de raio catódico (CRT), um dispositivo de entrada alfanumérico 812 (por exemplo, um teclado), um dispositivo de controle de cursor 814 (por exemplo, um mouse), e um dispositivo de geração de sinal 820 (por exemplo, um alto-falante).[0087] Computer system 800 may additionally include a network interface device 822. Computer system 800 may also include a video monitor unit 810 (e.g., liquid crystal video (LCD) or a ray tube). (CRT), an alphanumeric input device 812 (for example, a keyboard), a cursor control device 814 (for example, a mouse), and a signal generating device 820 (for example, a loudspeaker). ).

[0088] Uma unidade de controle 816 pode incluir um meio legível por computador 824 no qual são armazenados um ou mais conjuntos de instruções (por exemplo, instruções do manipulador de manifesto 430) incorporando qualquer uma ou mais das metodologias ou funções descritas neste documento. As instruções do manipulador de manifesto 430 também podem residir, completamente ou pelo menos parcialmente, dentro da memória principal 804 e/ou dentro do processador 802 durante a execução das mesmas pelo sistema de computador 800, a memória principal 804 e o processador 802 também constituindo o meio legível por computador. As instruções do manipulador de manifesto 430 adicionalmente podem ser transmitidas ou recebidas através de uma rede via o dispositivo de interface de rede 822.[0088] A control unit 816 may include a computer-readable medium 824 on which one or more sets of instructions (e.g., manifest handler instructions 430) are stored incorporating any one or more of the methodologies or functions described herein. Manifest handler 430 instructions may also reside, completely or at least partially, within main memory 804 and/or within processor 802 during execution thereof by computer system 800, main memory 804 and processor 802 also constituting the computer readable medium. The instructions from the manifest handler 430 may additionally be transmitted or received over a network via the network interface device 822.

[0089] Apesar de o meio de armazenamento legível por computa dor 824 ser apresentado em um exemplo como sendo um único meio, o termo "meio de armazenamento legível por computador" deve ser assumido como incluindo um único meio não transitório ou vários meios não transitórios (por exemplo, uma base de dados centralizada ou distribuída e/ou caches e servidores associados) que armazenam o um ou mais conjuntos de instruções. O termo "meio de armazenamento legível por computador" também deve ser assumido como incluindo qualquer meio que seja capaz de armazenar, codificar ou transportar um conjunto de instruções para execução pela máquina e que causem que a máquina execute qualquer uma das uma ou mais metodologias da presente revelação. O termo "meio legível por computador", por consequência, deve ser assumido como incluindo, mas não sendo limitado às memórias de estado sólido, meio ótico, e meio magnético.[0089] Although the computer-readable storage medium 824 is presented in an example as a single medium, the term "computer-readable storage medium" should be assumed to include a single non-transient medium or multiple non-transient medium (eg, a centralized or distributed database and/or associated caches and servers) that store the one or more instruction sets. The term "computer-readable storage medium" should also be assumed to include any medium that is capable of storing, encoding, or transporting a set of instructions for execution by the machine and which causes the machine to execute any one or more of the methodologies in the present revelation. The term "computer-readable media", therefore, should be assumed to include, but not be limited to, solid-state, optical, and magnetic media.

[0090] Na descrição acima, vários detalhes são expostos. Entre tanto, é aparente para os versados na técnica tendo o benefício desta revelação que os exemplos da revelação podem ser praticados sem estes detalhes específicos. Em alguns casos, estruturas e dispositivos bem conhecidos são apresentados em forma de digrama de blocos, ao invés do que em detalhe, de modo a evitar obscurecer a descrição.[0090] In the description above, several details are exposed. However, it is apparent to those skilled in the art having the benefit of this disclosure that the disclosure examples can be practiced without these specific details. In some cases, well-known structures and devices are presented in block diagram form, rather than in detail, in order to avoid obscuring the description.

[0091] Algumas partes da descrição detalhada são apresentadas em termos de algoritmos e de representações simbólicas de operações em relação a bits de dados dentro de uma memória de computador. Estas descrições algorítmicas e representações são os meios utilizados pelos versados nas técnicas de processamento de dados para, de forma mais eficaz, transmitir a substância de seu trabalho para ou- tros versados na técnica. Aqui, e geralmente, um algoritmo é concebido para ser uma sequência autoconsistente de etapas, levando a um resultado desejado. As etapas são estas requerendo manipulações físicas de quantidades físicas. Normalmente, apesar de não necessariamente, estas quantidades assumem a forma de sinais elétricos ou magnéticos capazes de serem armazenados, transferidos, combinados, comparados e de outro modo manipulados. Tem se provado conveniente às vezes, principalmente por razões de utilização comum, se referir a estes sinais como bits, valores, elementos, símbolos, caracteres, termos, números, e assim por diante.[0091] Some parts of the detailed description are presented in terms of algorithms and symbolic representations of operations in relation to data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in data processing techniques to more effectively convey the substance of their work to others skilled in the art. Here, and generally, an algorithm is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are these requiring physical manipulations of physical quantities. Typically, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has sometimes proved convenient, mainly for reasons of common usage, to refer to these signs as bits, values, elements, symbols, characters, terms, numbers, and so on.

[0092] Entretanto, deve-se ter em mente que todos estes termos e termos similares são para ser associados com as quantidades físicas apropriadas e são meramente rótulos convenientes aplicados para estas quantidades. A não ser que especificamente declarado como aparente a partir da discussão acima, é apreciado que por toda a descrição, discussões utilizando termos tais como "receber", "gravar", "manter", dentre outros, se referem às ações e processos de um sistema de computador, ou do dispositivo de computação eletrônica similar, que manipula e transforma dados representados como quantidades físicas (por exemplo, eletrônica) dentro dos registros do sistema de computador em outros dados similarmente representados como quantidades físicas dentro das memórias ou dos registros do sistema de computador ou outros tais dispositivos de armazenamento, transmissão e exibição de informação.[0092] However, it should be borne in mind that all these terms and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated as apparent from the above discussion, it is appreciated that throughout the description, discussions using terms such as "receive", "record", "keep", among others, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical quantities (e.g. electronics) within computer system records into other data similarly represented as physical quantities within system memories or records computer or other such information storage, transmission and display devices.

[0093] Exemplos da revelação também se relacionam com um aparelho para executar as operações neste documento. Este aparelho pode ser especialmente construído para os propósitos requeridos, ou ele pode compreender um computador de propósito geral seletivamente ativado ou reconfigurado por um programa de computador armazenado no computador. Tal programa de computador pode ser armaze- nado em um meio de armazenamento legível por computador, tal como, mas não limitado a, qualquer tipo de disco incluindo discos flexíveis, discos óticos, CD-ROMs, e discos magnéticos - óticos, memórias somente para leitura (ROMs), memória de acesso aleatório (RAMs), EPROMs, EEPROMs, cartões magnéticos ou óticos, ou qualquer tipo de meio adequado para armazenar instruções eletrônicas.[0093] Examples of the disclosure also relate to an apparatus for performing the operations in this document. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored on the computer. Such computer program may be stored on a computer-readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, memory-only read-only memory (ROMs), random access memory (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any other suitable medium for storing electronic instructions.

[0094] Os algoritmos e exibições apresentados neste documento não estão inerentemente relacionados com qualquer computador ou outro aparelho particular. Vários sistemas de propósito geral podem ser utilizados com programas de acordo com as instruções neste documento, ou pode ser conveniente construir um aparelho mais especializado para executar as etapas requeridas do método. A estrutura ilustrativa para vários destes sistemas aparece a partir da descrição neste documento. Em adição, a presente revelação não é descrita com referência a qualquer linguagem de programação particular. Será aparente que várias linguagens de programação podem ser utilizadas para implementar as instruções da revelação como descritas neste documento.[0094] The algorithms and displays presented in this document are not inherently related to any particular computer or other device. Various general purpose systems can be used with programs according to the instructions in this document, or it may be convenient to build a more specialized apparatus to perform the required steps of the method. The illustrative structure for several of these systems appears from the description in this document. In addition, the present disclosure is not described with reference to any particular programming language. It will be apparent that various programming languages can be used to implement the disclosure instructions as described in this document.

[0095] É para ser entendido que a descrição acima é pretendida para ser ilustrativa e não restritiva. Vários outros exemplos serão aparentes para os versados na técnica quando da leitura e entendimento da descrição acima. Portanto, o escopo da revelação deve ser determinado com referência às reivindicações anexas, junto com o escopo total de equivalentes para os quais tais reivindicações são autorizadas.[0095] It is to be understood that the above description is intended to be illustrative and not restrictive. Several other examples will be apparent to those skilled in the art upon reading and understanding the above description. Therefore, the scope of disclosure must be determined with reference to the appended claims, together with the full scope of equivalents for which such claims are authorized.

Claims (19)

1. Método implementado por computador para manipular um manifesto, o método caracterizado por compreender: armazenar (540), por um servidor (402), um ou mais manifestos em uma lista de manifestos em uma memória (432), cada manifesto compreendendo um endereço de um intervalo comercial, e o um ou mais manifestos se diferenciando em um número de segmentos correspondendo a um ou mais intervalos comerciais de diferentes durações; receber (705), por um servidor, a partir de um aparelho inteligente (408a, 408n), uma solicitação para um manifesto tendo uma primeira duração de um intervalo comercial correspondendo a um primeiro número de segmentos correspondendo ao intervalo comercial; determinar (710), pelo servidor, um deslocamento baseado em uma diferença em uma duração representada por um manifesto na lista de um ou mais manifestos armazenados na memória a partir de uma primeira duração do intervalo comercial; com base na determinação (720), por um servidor, de que o deslocamento é zero e de que um número correspondente de segmentos para o primeiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; recuperar, pelo servidor, a partir do manifesto identificado na lista de um ou mais manifestos armazenados na memória; identificar, pelo servidor, pelo menos um anúncio a ser inserido dentro do intervalo comercial e substituir (720) pelo menos um endereço correspondendo a pelo menos um segmento no manifesto com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir (725), pelo servidor, o manifesto identificado para o aparelho inteligente; e com base na determinação, pelo servidor, de que o deslocamento é diferente de zero para todos os manifestos na lista de um ou mais manifestos armazenados na memória e que o número correspondente de segmentos para o primeiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; gerar, pelo servidor, um manifesto tendo uma duração cor-respondente à primeira duração do intervalo comercial e tendo o número correspondente de segmentos para o primeiro número de segmentos correspondendo ao intervalo comercial; inserir, pelo servidor, o manifesto gerado na lista de um ou mais manifestos armazenados na memória; identificar, pelo servidor, pelo menos um anúncio a ser inserido em um intervalo comercial do manifesto gerado e substituir pelo menos um endereço correspondendo a pelo menos um segmento do manifesto gerado com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir, pelo servidor, o manifesto gerado para o aparelho inteligente.1. Computer-implemented method for manipulating a manifest, the method comprising: storing (540), by a server (402), one or more manifests in a list of manifests in a memory (432), each manifest comprising an address of an ad break, and the one or more manifests differing into a number of segments corresponding to one or more ad breaks of different durations; receiving (705), by a server, from an intelligent apparatus (408a, 408n), a request for a manifest having a first commercial break duration corresponding to a first number of segments corresponding to the commercial break; determining (710), by the server, an offset based on a difference in a duration represented by a manifest in the list of one or more manifests stored in memory from a first duration of the commercial interval; based on the determination (720) by a server that the offset is zero and that a corresponding number of segments for the first number of segments corresponds to the commercial interval in the list of one or more manifests stored in memory; retrieve, by the server, from the manifest identified in the list of one or more manifests stored in memory; identifying, by the server, at least one advertisement to be inserted within the commercial interval and replacing (720) at least one address corresponding to at least one segment in the manifest with one or more corresponding addresses from the at least one advertisement; and transmitting (725) the identified manifest to the smart device by the server; and based on the server's determination that the offset is non-zero for all manifests in the list of one or more in-memory manifests and that the corresponding number of segments for the first number of segments matches the ampersands in the list from one or more manifests stored in memory; generating, by the server, a manifest having a duration corresponding to the first duration of the commercial break and having the corresponding number of segments for the first number of segments corresponding to the commercial break; insert, by the server, the generated manifest in the list of one or more manifests stored in memory; identifying, by the server, at least one advertisement to be inserted into an ad range of the generated manifest and replacing at least one address corresponding to at least one segment of the generated manifest with one or more corresponding addresses from the at least one advertisement; and transmit, by the server, the generated manifest to the smart device. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que quando o manifesto transmitido compreende um endereço de um intervalo comercial, instruir, pelo servidor, um cliente associado com um serviço de decisão de anúncio para unir o pelo menos um anúncio dentro do endereço do intervalo comercial na sessão baseado na substituição de um ou mais endereços.2. Method according to claim 1, characterized in that when the transmitted manifest comprises an address of a commercial range, instructing, by the server, a client associated with an advertisement decision service to join the at least one advertisement within the commercial break address in the session based on the substitution of one or more addresses. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que instruir uma decisão de serviço de anúncio para unir o pelo menos um anúncio dentro do intervalo comercial na sessão adicionalmente compreende: transmitir, para o serviço de decisão de anúncio utilizando o servidor, pelo menos uma chamada de anúncio para o endereço do intervalo comercial; receber, a partir do serviço de decisão de anúncio no servidor, pelo menos um anúncio; e armazenar, utilizando o servidor, o pelo menos um anúncio na pelo menos um cache.3. Method according to claim 2, characterized in that instructing an advertisement service decision to join the at least one advertisement within the commercial break in the session additionally comprises: transmitting, to the advertisement decision service using the server, at least one advertisement call to the commercial break address; receive at least one advertisement from the advertisement decision service on the server; and storing, using the server, the at least one advertisement in the at least one cache. 4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que instruir um serviço de decisão de anúncio para unir o pelo menos um anúncio ao endereço do intervalo comercial na sessão adicionalmente compreende, antes da dita união, instruir o serviço de decisão de anúncio para recuperar o pelo menos um anúncio a partir do cache.4. Method according to claim 3, characterized in that instructing an advertisement decision service to merge the at least one advertisement to the commercial break address in the session additionally comprises, before said merging, instructing the decision service ad to retrieve the at least one ad from the cache. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a memória é uma memória de acesso aleatório estática.5. Method according to claim 1, characterized in that the memory is a static random access memory. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada manifesto dos um ou mais manifestos é associado a um deslocamento.6. Method according to claim 1, characterized in that each manifest of the one or more manifests is associated with a displacement. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que quando o aparelho inteligente sintoniza com outro canal ou termina sua sessão, reinicializa o deslocamento para zero.7. Method, according to claim 6, characterized in that when the smart device tunes to another channel or ends its session, it resets the offset to zero. 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de adicionalmente compreender receber, pelo servidor, um manifesto original a partir de um transcodificador.8. Method according to claim 1, characterized in that it additionally comprises receiving, by the server, an original manifest from a transcoder. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de adicionalmente compreender designar um deslocamento zero para o manifesto original.9. Method, according to claim 8, characterized in that it additionally comprises designating a zero offset for the original manifest. 10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de adicionalmente compreender derivar e manter, pelo servidor, vários manifestos armazenados possuindo diferentes deslocamentos do manifesto original.10. Method according to claim 8, characterized in that it additionally comprises deriving and maintaining, by the server, several stored manifests having different offsets from the original manifest. 11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de adicionalmente compreender substituir um dos vários manifestos armazenados pelo manifesto gerado.11. Method according to claim 10, characterized in that it additionally comprises replacing one of the several manifests stored by the generated manifest. 12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o manifesto original e cada manifesto dos um ou mais manifestos compreendem vários URLs correspondentes apontando para segmentos de uma sessão.12. Method according to claim 1, characterized in that the original manifest and each manifest of the one or more manifests comprise several corresponding URLs pointing to segments of a session. 13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que pelo menos um dos vários URLs do manifesto original e pelo menos um dos vários URLs dos manifestos apontam para segmentos diferentes da sessão.13. Method according to claim 12, characterized in that at least one of several URLs of the original manifest and at least one of several URLs of the manifests point to different segments of the session. 14. Sistema de computador para manipular um manifesto, caracterizado pelo fato de compreender: uma memória; um dispositivo de processamento, acoplado com a memória, o dispositivo de processamento configurado para: armazenar (540) um ou mais manifestos em uma lista de manifestos em uma memória (432), cada manifesto compreendendo um endereço de um intervalo comercial, e o um ou mais manifestos se diferenciando em um número de segmentos correspondendo a um ou mais intervalos comerciais de diferentes durações; receber (705), a partir de um aparelho inteligente (408a, 408n), uma solicitação para um manifesto tendo uma primeira duração de um intervalo comercial correspondendo a um primeiro número de segmentos correspondendo ao intervalo comercial; determinar (710) um deslocamento baseado em uma diferença em uma duração representada por um manifesto na lista de um ou mais manifestos armazenados na memória a partir da primeira duração do intervalo comercial; com base na determinação (720) de que o deslocamento é zero e de que um número correspondente de segmentos para o pri-meiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; recuperar o manifesto identificado na lista de um ou mais manifestos armazenados na memória; identificar pelo menos um anúncio a ser inserido dentro do intervalo comercial e substituir (720) pelo menos um endereço corres-pondendo a pelo menos um segmento no manifesto com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir (725) o manifesto identificado para o aparelho inteligente com base na determinação de que o deslocamento é diferente de zero para todos os manifestos na lista de um ou mais manifestos armazenados na memória e que o número correspondente de segmentos para o primeiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; gerar um manifesto tendo uma duração correspondente à primeira duração do intervalo comercial e tendo o número correspondente de segmentos para o primeiro número de segmentos correspondendo ao intervalo comercial; inserir o manifesto gerado na lista de um ou mais manifestos armazenados na memória; identificar pelo menos um anúncio a ser inserido em um intervalo comercial do manifesto gerado e substituir pelo menos um endereço correspondendo a pelo menos um segmento do manifesto gerado com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir o manifesto gerado para o aparelho inteligente.14. Computer system for manipulating a manifest, characterized by the fact that it comprises: a memory; a processing device coupled with the memory, the processing device configured to: store (540) one or more manifests in a manifest list in a memory (432), each manifest comprising an address of an ampersand, and the one or more manifests differing in a number of segments corresponding to one or more commercial breaks of different durations; receiving (705), from an intelligent apparatus (408a, 408n), a request for a manifest having a first commercial break duration corresponding to a first number of segments corresponding to the commercial break; determining (710) an offset based on a difference in a duration represented by a manifest in the list of one or more manifests stored in memory from the first duration of the commercial break; based on determining (720) that the offset is zero and that a corresponding number of chips for the first number of chips corresponds to the commercial interval in the list of one or more manifests stored in memory; retrieve the manifest identified in the list of one or more manifests stored in memory; identifying at least one advertisement to be inserted within the commercial range and replacing (720) at least one address corresponding to at least one segment in the manifest with one or more corresponding addresses from the at least one advertisement; and transmitting (725) the identified manifest to the smart device based on the determination that the offset is non-zero for all manifests in the list of one or more manifests stored in memory and that the corresponding number of segments for the first number of segments corresponds to the ampersand range in the list of one or more manifests stored in memory; generating a manifest having a duration corresponding to the first duration of the commercial break and having the corresponding number of segments for the first number of segments corresponding to the commercial break; insert the generated manifest into the list of one or more manifests stored in memory; identify at least one advertisement to be inserted into an ad range of the generated manifest and replace at least one address corresponding to at least one segment of the generated manifest with one or more corresponding addresses from the at least one advertisement; and transmit the generated manifest to the smart device. 15. Sistema, de acordo com a reivindicação 14, caracteri- zado pelo fato de que quando o manifesto transmitido compreende um endereço de um intervalo comercial, instruir um cliente associado com um serviço de decisão de anúncio para unir o pelo menos um anúncio com o intervalo comercial baseado na substituição de um ou mais endereços.15. System according to claim 14, characterized in that when the transmitted manifest comprises an address of a commercial break, instructing a client associated with an advertisement decision service to merge the at least one advertisement with the commercial break based on the substitution of one or more addresses. 16. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que instruir um serviço de decisão de anúncio para unir o pelo menos um anúncio ao intervalo comercial na sessão adicionalmente compreende: transmitir, para o serviço de decisão de anúncio, pelo menos uma chamada de anúncio para o endereço do intervalo comercial; receber, a partir do serviço de decisão de anúncio, pelo menos um anúncio; e armazenar o pelo menos um anúncio no cache.16. System according to claim 15, characterized in that instructing an ad decision service to join the at least one ad to the commercial break in the session additionally comprises: transmitting, to the ad decision service, at least an advertisement call to the commercial break address; receive at least one advertisement from the ad decision service; and cache the at least one ad. 17. Meio de armazenamento legível por computador não transitório, caracterizado pelo fato de incluir instruções que, quando executadas por um sistema de processamento, causam que o sistema de processamento execute operações para manipular um manifesto, compreendendo: armazenar (540) um ou mais manifestos em uma lista de manifestos em uma memória (432), cada manifesto compreendendo um endereço de um intervalo comercial, e o um ou mais manifestos se diferenciando em um número de segmentos correspondendo a um ou mais intervalos comerciais de diferentes durações; receber (705), a partir de um aparelho inteligente (408a, 408n), uma solicitação para um manifesto tendo uma primeira duração de um intervalo comercial correspondendo a um primeiro número de segmentos correspondendo ao intervalo comercial; determinar (710) um deslocamento baseado em uma diferença em uma duração representada por um manifesto de uma lista de um ou mais manifestos armazenados na memória a partir de uma primeira duração do intervalo comercial; com base na determinação (720) de que o deslocamento é zero e de que um número correspondente de segmentos para o primeiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; recuperar o manifesto identificado na lista de um ou mais manifestos armazenados na memória; identificar pelo menos um anúncio a ser inserido no intervalo comercial e substituir (720) pelo menos um endereço correspondendo ao pelo menos um segmento no manifesto com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir (725) o manifesto identificado para o aparelho inteligente; e com base na determinação de que o deslocamento é diferente de zero para todos os manifestos na lista de um ou mais manifestos armazenados na memória e que o número correspondente de segmentos para o primeiro número de segmentos corresponde ao intervalo comercial na lista de um ou mais manifestos armazenados na memória; gerar um manifesto tendo uma duração correspondente à primeira duração do intervalo comercial e tendo o número correspondente de segmentos para o primeiro número de segmentos correspondendo ao intervalo comercial; inserir o manifesto gerado na lista de um ou mais manifestos armazenados na memória; identificar pelo menos um anúncio a ser inserido em um intervalo comercial do manifesto gerado e substituir pelo menos um endereço correspondendo a pelo menos um segmento do manifesto gerado com um ou mais endereços correspondentes do pelo menos um anúncio; e transmitir o manifesto gerado para o aparelho inteligente.17. Non-transient computer-readable storage medium, characterized in that it includes instructions that, when executed by a processing system, cause the processing system to perform operations to manipulate a manifest, comprising: storing (540) one or more manifests in a list of manifests in a memory (432), each manifest comprising an address of an ampersand, and the one or more manifests differing into a number of segments corresponding to one or more ampersands of different durations; receiving (705), from an intelligent apparatus (408a, 408n), a request for a manifest having a first commercial break duration corresponding to a first number of segments corresponding to the commercial break; determining (710) an offset based on a difference in a duration represented by a manifest from a list of one or more manifests stored in memory from a first duration of the commercial interval; based on determining (720) that the offset is zero and that a corresponding number of segments for the first number of segments corresponds to the commercial range in the list of one or more manifests stored in memory; retrieve the manifest identified in the list of one or more manifests stored in memory; identifying at least one advertisement to be inserted into the commercial slot and replacing (720) at least one address corresponding to the at least one segment in the manifest with one or more corresponding addresses from the at least one advertisement; and transmitting (725) the identified manifest to the smart device; and based on the determination that the offset is non-zero for all manifests in the list of one or more manifests stored in memory and that the corresponding number of segments for the first number of segments matches the ampersand range in the list of one or more manifests stored in memory; generating a manifest having a duration corresponding to the first duration of the commercial break and having the corresponding number of segments for the first number of segments corresponding to the commercial break; insert the generated manifest into the list of one or more manifests stored in memory; identify at least one advertisement to be inserted into an ad range of the generated manifest and replace at least one address corresponding to at least one segment of the generated manifest with one or more corresponding addresses from the at least one advertisement; and transmit the generated manifest to the smart device. 18. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 17, caracterizado pelo fato de que quando o manifesto transmitido compreende um endereço de um intervalo comercial, instruir um cliente associado com um serviço de decisão de anúncio para unir o pelo menos um anúncio com o intervalo comercial na sessão baseado na substituição de um ou mais endereços.18. The non-transient computer-readable storage medium of claim 17, characterized in that when the transmitted manifest comprises an address of a commercial break, instructing a client associated with an advertisement decision service to join the hair at least one commercial break ad in the session based on the substitution of one or more addresses. 19. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 18, caracterizado pelo fato de que instruir um serviço de decisão de anúncio para unir o pelo menos um anúncio ao intervalo comercial na sessão adicionalmente compreende: transmitir, para o serviço de decisão de anúncio, pelo menos uma chamada de anúncio para o endereço do intervalo comercial; receber, a partir do serviço de decisão de anúncio, pelo menos um anúncio; e armazenar o pelo menos um anúncio na pelo menos um cache.19. Non-transient computer-readable storage medium according to claim 18, characterized in that instructing an ad decision service to match the at least one ad to the commercial break in the session additionally comprises: transmit, to the service ad decision, at least one ad call to the commercial break address; receive at least one advertisement from the ad decision service; and store the at least one advertisement in the at least one cache.
BR112014029971-4A 2013-05-02 2013-05-02 COMPUTER-IMPLEMENTED METHOD, SYSTEM AND NON-TRANSITORY COMPUTER READable STORAGE MEDIA FOR MANIFEST HANDLING BR112014029971B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/039275 WO2014178872A2 (en) 2013-05-02 2013-05-02 Method and system for efficient manifest manipulation

Publications (3)

Publication Number Publication Date
BR112014029971A2 BR112014029971A2 (en) 2017-06-27
BR112014029971A8 BR112014029971A8 (en) 2021-05-25
BR112014029971B1 true BR112014029971B1 (en) 2022-08-09

Family

ID=51844079

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014029971-4A BR112014029971B1 (en) 2013-05-02 2013-05-02 COMPUTER-IMPLEMENTED METHOD, SYSTEM AND NON-TRANSITORY COMPUTER READable STORAGE MEDIA FOR MANIFEST HANDLING

Country Status (5)

Country Link
EP (1) EP2883201A4 (en)
BR (1) BR112014029971B1 (en)
CA (1) CA2875845C (en)
MX (1) MX359563B (en)
WO (1) WO2014178872A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11044520B2 (en) 2016-12-29 2021-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Handling of video segments in a video stream
US10887799B2 (en) 2019-01-10 2021-01-05 Cisco Technology, Inc. SRv6 user-plane-based triggering methods and apparatus for session or flow migration in mobile networks
CN112488762B (en) * 2020-11-30 2024-06-28 维沃移动通信有限公司 Advertisement resource processing method, device, equipment and readable storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949882B2 (en) * 2007-12-06 2015-02-03 This Technology, Inc. System and method for enabling content providers to identify advertising opportunities
US8914824B2 (en) 2009-01-07 2014-12-16 Microsoft Corporation Video ad delivery using configurable video ad policies
CN104394487B (en) * 2010-03-05 2018-02-06 三星电子株式会社 The method and apparatus that self adaptation stream is generated and reproduced based on file format
AU2010202741B1 (en) * 2010-06-30 2010-12-23 Adeia Media Holdings Llc Dynamic chunking for media streaming
US8806050B2 (en) * 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
KR20120060134A (en) * 2010-08-16 2012-06-11 삼성전자주식회사 Method and apparatus for reproducing advertisement
US8677428B2 (en) * 2010-08-20 2014-03-18 Disney Enterprises, Inc. System and method for rule based dynamic server side streaming manifest files
US20120198492A1 (en) * 2011-01-31 2012-08-02 Cbs Interactive, Inc. Stitching Advertisements Into A Manifest File For Streaming Video
US8234350B1 (en) * 2011-12-19 2012-07-31 Seachange International, Inc. Systems and methods for generating targeted manifest files

Also Published As

Publication number Publication date
CA2875845C (en) 2020-08-25
BR112014029971A8 (en) 2021-05-25
MX2014015107A (en) 2015-08-06
EP2883201A2 (en) 2015-06-17
CA2875845A1 (en) 2014-11-06
MX359563B (en) 2018-10-01
EP2883201A4 (en) 2016-03-09
WO2014178872A3 (en) 2015-04-02
WO2014178872A2 (en) 2014-11-06
BR112014029971A2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
US8799943B1 (en) Method and system for efficient manifest manipulation
US10038925B2 (en) Server side adaptive bit rate reporting
US8863164B1 (en) Server side adaptive bit rate reporting
EP2839638B1 (en) Accelerating advertising decision resolution
US20130291014A1 (en) Method and system for uniformly marking and identifying placement opportunity locations for facilitating accelerated decision resolution
US8468563B1 (en) Method for ingesting multiple signals of the same meaning
US20240147019A1 (en) In-Band Trick Mode Control
BR112014029971B1 (en) COMPUTER-IMPLEMENTED METHOD, SYSTEM AND NON-TRANSITORY COMPUTER READable STORAGE MEDIA FOR MANIFEST HANDLING

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 02/05/2013, OBSERVADAS AS CONDICOES LEGAIS

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 11A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2773 DE 27-02-2024 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.