Modos de operação do SDK
O SDK pode operar em um ou mais modos, dependendo da resposta de anúncio que recebe do servidor de anúncios.
- Anúncio único
- Um anúncio que pode ser veiculado a qualquer momento quando a mensagem starté enviada aoIMAAdsManager. Nenhuma inicialização especial é necessária para veicular um único anúncio.
- Conjunto de anúncios
- Vários anúncios que são reproduzidos em sequência quando a mensagem starté enviada para oIMAAdsManager. Nenhuma inicialização especial é necessária para reproduzir um único conjunto de anúncios.
- Regras de anúncio
- Uma playlist de intervalos de anúncios programados em determinados horários para um conteúdo específico. A mensagem starté ignorada no modo de regras de anúncios. É possível programar vários intervalos de anúncios em uma única playlist (por exemplo, precedentes, intermediários e finais). Para mais detalhes sobre a implementação, consulte a seção Regras de anúncios abaixo.
Regras de anúncio
O SDK do tvOS do IMA é compatível com playlists de anúncios totalmente automatizadas. Esse recurso insere intervalos de anúncio no conteúdo conforme especificado no Google Ad Manager ao fazer o tráfego dos seus anúncios. Ele também simplifica muito o código do player de vídeo necessário para oferecer suporte a intervalos de anúncio, incluindo anúncios precedentes, intermediários e finais.
- Ao fazer o tráfego de anúncios no Ad Manager, é possível especificar várias regras de anúncio, como "sempre veicular um intervalo de anúncio no início do conteúdo" ou "veicular um intervalo de anúncio de um minuto a cada 30 minutos de conteúdo".
- Quando os anúncios são solicitados, o servidor de anúncios pode retornar uma playlist de anúncios. O SDK processa a playlist e programa automaticamente os intervalos de publicidade especificados.
- Ao inicializar o AdsManager, um objetoIMAContentPlayheadé transmitido pela chamadainitializeWithContentPlayhead:adsRenderingSettings:. Se você estiver usando um AVPlayer para mostrar seu conteúdo, transmita uma instância deIMAAVPlayerContentPlayheadao SDK ao criar oadDisplayContainer. Esse objeto é usado para acompanhar o progresso da reprodução de conteúdo para que os intervalos de anúncios sejam inseridos automaticamente nos horários especificados no Ad Manager.
 Com AVPlayer: IMAContentPlayhead *contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer]; IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl adDisplayContainer:adDisplayContainer contentPlayhead:contentPlayhead userContext:nil]; Sem AVPlayer: - Implemente a interface IMAContentPlayhead.
- Implemente currentTimepara retornar o tempo atual do seu player de vídeo.
- Mude a chamada de inicialização IMAAdsManagerpara usarinitializeWithContentPlayhead:self.
 
- Implemente a interface 
- O IMAAdsManagerDelegate é usado para pausar e retomar o conteúdo quando os intervalos de anúncio são veiculados.
Observação:quando o conteúdo terminar de ser reproduzido ou
  o usuário interromper a reprodução, chame contentComplete
  no IMAAdsLoader para sinalizar ao SDK que o conteúdo
  terminou de ser reproduzido. Em seguida, o SDK reproduz o bloco de anúncios pós-vídeo, se um tiver sido programado.
  O evento ALL_ADS_COMPLETED é gerado quando todos os intervalos de publicidade são
  reproduzidos. Além disso, observe que o rastreamento de conteúdo começa quando o método initializeWithContentPlayhead:adsRenderingSettings de IMAAdsManager é chamado, e você sempre precisa chamar initializeWithContentPlayhead:adsRenderingSettings antes de reproduzir o conteúdo.