Este guia demonstra como integrar o SDK de DAI do IMA a um app simples de player de vídeo. Se você quiser conferir ou acompanhar uma integração de exemplo concluída, faça o download do BasicExample no GitHub.
Visão geral da DAI do IMA
A implementação da DAI do IMA envolve quatro componentes principais do SDK, conforme demonstrado neste guia:
StreamDisplayContainer: um objeto de contêiner que fica sobre o elemento de reprodução de vídeo e abriga os elementos da interface do anúncio.AdsLoader: um objeto que solicita streams e processa eventos acionados por objetos de resposta de solicitação de stream. Instancie apenas um carregador de anúncios, que pode ser reutilizado durante toda a vida útil do aplicativo.StreamRequest: um objeto que define uma solicitação de stream. As solicitações de stream podem ser para vídeo on demand ou transmissões ao vivo. As solicitações de transmissão ao vivo especificam uma chave de recurso, enquanto as solicitações de VOD especificam um ID do CMS e um ID do vídeo. Os dois tipos de solicitação podem incluir uma chave de API necessária para acessar streams especificados e um código de rede do Google Ad Manager para que o SDK do IMA processe identificadores de anúncios, conforme especificado nas configurações do Google Ad Manager.StreamManager: um objeto que processa as interações e os streams de inserção de anúncios dinâmicos com o back-end da DAI. O gerenciador de stream também processa pings de rastreamento e encaminha eventos de stream e de anúncio para o editor.
Pré-requisitos
- Android Studio
- Exemplo de app de player de vídeo para a integração do SDK
Baixar e executar o app de exemplo do player de vídeo
O app de exemplo oferece um player de vídeo que reproduz vídeos HLS. Use-o como ponto de partida para integrar os recursos de DAI do SDK do IMA DAI.
Baixe o app de exemplo de player de vídeo e extraia-o.
Inicie o Android Studio e selecione Open an existing Android Studio project ou, se o Android Studio já estiver em execução, selecione File > New > Import Project. Em seguida, escolha
SampleVideoPlayer/build.gradle.Execute uma sincronização do Gradle selecionando Tools > Android > Sync Project with Gradle Files.
Verifique se o app de player é compilado e executado em um dispositivo Android físico ou Dispositivo virtual Android usando Run > Run 'app'. É normal que o stream de vídeo leve alguns instantes para carregar antes de ser reproduzido.
Analisar o player de vídeo de amostra
O player de vídeo de exemplo ainda não contém nenhum código de integração do SDK de DAI do IMA. O app de exemplo tem duas partes principais:
samplevideoplayer/SampleVideoPlayer.java: um player de HLS baseado no ExoPlayer que serve como base para a integração da DAI do IMA.videoplayerapp/MyActivity.java: essa atividade cria o player de vídeo e transmite umContexte ummedia3.ui.PlayerView.
Adicionar o SDK do DAI do IMA ao app do player
Também é necessário incluir uma referência ao SDK de DAI do IMA. No Android Studio, adicione o
seguinte ao arquivo build.gradle no nível do aplicativo, localizado em
app/build.gradle. O SDK do IMA exige que a simplificação de biblioteca esteja ativada. Para isso, defina coreLibraryDesugaringEnabled true e adicione
'com.android.tools:desugar_jdk_libs' como uma dependência no arquivo
build.gradle. Para mais detalhes, consulte
APIs Java 11+ disponíveis por simplificação com a especificação nio.
Integrar o SDK da DAI do IMA
Crie uma nova classe chamada
SampleAdsWrapperno pacotevideoplayerapp(emapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) para encapsular oSampleVideoPlayeratual e adicionar a lógica que implementa a DAI do IMA. Para fazer isso, primeiro crie umAdsLoaderque será usado para solicitar o stream de DAI.Esse snippet inclui parâmetros de exemplo para transmissões ao vivo e VOD em HLS e DASH. Para definir qual stream está sendo reproduzido, atualize a variável
CONTENT_TYPE.Crie um método auxiliar
createSampleVideoPlayerCallback()para criar uma instância de interfaceSampleVideoPlayerCallbackque estendeVideoStreamPlayer.VideoStreamPlayerCallback.Para funcionar com a DAI, o player precisa transmitir eventos ID3 ao SDK de DAI do IMA. O método
callback.onUserTextReceived()faz isso no exemplo de código abaixo.Adicione um método
buildStreamRequest()para criar oSteamRequest. Esse método alterna entre diferentes streams com base em como você define a variávelCONTENT_TYPE. O stream padrão usado neste guia é o stream de VOD HLS de amostra do IMA.Você também precisa de um
VideoStreamPlayerpara reproduzir o stream. Portanto, adicione um métodocreateVideoStreamPlayer(), que cria uma classe anônima que implementaVideoStreamPlayer.Implemente os listeners necessários e adicione suporte para tratamento de erros.
Observe a implementação de
AdErrorListener, que chama um URL alternativo se os anúncios não forem reproduzidos. Como o conteúdo e os anúncios estão em um único stream, você precisa estar pronto para chamar um stream substituto se o stream da DAI encontrar um erro.Adicione o código para geração de registros.
Modifique
MyActivityemvideoplayerapppara instanciar e chamarSampleAdsWrapper. Além disso, faça uma chamada paraImaSdkFactory.initialize()aqui usando um método auxiliar para criar uma instância deImaSdkSettings.Adicione o método auxiliar
getImaSdkSettings()para criar uma instânciaImaSdkSettings.Modifique o arquivo de layout da Activity
activity_my.xmlpara adicionar elementos da interface para geração de registros.
Parabéns! Agora você está solicitando e exibindo anúncios em vídeo no seu app Android. Para ajustar sua implementação, consulte Marcadores, Snapback e a documentação da API.
Solução de problemas
Se você tiver problemas para reproduzir um anúncio em vídeo, faça o download do BasicExample completo. Se funcionar corretamente no BasicExample, é provável que haja um problema com o código de integração do IMA do seu app.
Se você ainda estiver com problemas, acesse o fórum do SDK do IMA.