Los SDK de IMA facilitan la integración de anuncios multimedia en sus sitios web y aplicaciones. Los SDK de IMA pueden solicitar anuncios de cualquier servidor de anuncios compatible con VAST y administra la reproducción de anuncios en tus apps. Con los SDK de IMA de DAI, las aplicaciones solicitud de transmisión para anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra un una transmisión de video por Internet combinada, de modo que no tenga que administrar el cambio entre el video del anuncio y el de contenido dentro de la app.
Selecciona la solución de DAI que te interesa
DAI de publicación de grupos de anuncios
Los SDK de IMA facilitan la integración de anuncios multimedia en sus sitios web y aplicaciones. Los SDK de IMA pueden solicitar anuncios de cualquier servidor de anuncios compatible con VAST y administra la reproducción de anuncios en tus apps. Con los SDK de IMA de DAI, las aplicaciones solicitud de transmisión para anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra un una transmisión de video por Internet combinada, de modo que no tenga que administrar el cambio entre el video del anuncio y el de contenido dentro de la app.
En esta guía, se muestra cómo reproducir una transmisión de Publicación de grupos de anuncios de DAI con la DAI de IMA SDK con un reproductor de video simple para la reproducción de transmisiones en vivo y de VOD. Si quisieras o seguir una integración de muestra completa, descarga la ejemplo de publicación de grupos de anuncios.
Descripción general de la publicación de grupos de anuncios de DAI de IMA
StreamRequest
: Es un objeto que define una solicitud de transmisión para a través de los servidores de publicidad de Google. Se deben crear usando cualquiera de las siguientes opciones:ImaSdkFactory.createPodStreamRequest()
oImaSdkFactory.createPodVodStreamRequest()
para habilitar la entrega de grupos de anuncios. Estos métodos requieren un código de red.createPodStreamRequest
también requiere una clave del recurso personalizada y una clave de API opcional. Ambos incluyen otros parámetros opcionales.StreamManager
: Es un objeto que controla la comunicación entre entre la transmisión de video por Internet y el SDK de IMA de DAI, como activar pings de seguimiento reenviar eventos de transmisión al publicador.
Requisitos previos
Una aplicación para Android que ya esté configurada con el SDK de IMA de DAI para reproducir transmisiones de video anuncios de DAI. Si aún no tienes una app de este tipo, te recomendamos usar la DAI de Android BasicExample como punto de partida. BasicExample tiene la base de código a la que se hace referencia en esta guía.
Es importante que la app envíe eventos ID3 con
VideoStreamPlayerCallback.onUserTextReceived()
para que funcione la DAI de IMA. Consulte este ejemplo de fragmento de código de DAI de servicio completo.
Configura las variables de publicación de grupos de anuncios
Todos los cambios necesarios para la entrega de pods se realizan en SampleAdsWrapper.java. El el primer paso es actualizar las variables constantes.
Estas son las constantes de solicitud de transmisión del grupo de anuncios que se agregarán:
STREAM_URL
: Se usa solo para transmisiones en vivo: Corresponde a la URL de la transmisión de video por Internet proporcionada por tu manipulador de manifiestos o socio externo usando la publicación de grupos de anuncios. Debe se le solicita que inserte el ID de transmisión proporcionado por el SDK de IMA de DAI antes de realiza una solicitud. En este caso, la URL de la transmisión incluye un marcador de posición,"[[STREAMID]]"
, que se reemplaza por el ID de transmisión, antes de crear una para cada solicitud.NETWORK_CODE
: Es el código de red de tu cuenta de Ad Manager 360.CUSTOM_ASSET_KEY
: Se usa solo para transmisiones en vivo, que es la clave del activo personalizada que identifica tu evento de publicación de grupos de anuncios en Ad Manager 360. Esto lo puede crear tu manipulador de manifiestos o el socio externo de publicación de grupos de anuncios.API_KEY
: Se usa solo para transmisiones en vivo. Es una clave de API opcional que se puede necesarios para recuperar un ID de transmisión del SDK de IMA de DAI.
BasicExample de DAI de Android se diseñó para reproducir una variedad de transmisiones pero, en el caso de la entrega de grupos de anuncios, está configurado para reproducir una sola transmisión. Cambia la sección de variables del ejemplo para que coincida con lo siguiente:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Crea una solicitud de transmisión de grupo de anuncios en vivo o de VOD para habilitar la publicación de grupos de anuncios
Publicación de grupos de anuncios en vivo
Quita el método buildStreamRequest()
que se usó para alternar.
compilando varios tipos de transmisiones. Luego, cambia requestAndPlayAds()
para llamar
ImaSdkFactory.createPodStreamRequest()
para crear un anuncio de publicación de grupos de anuncios en vivo
para cada solicitud. Por último, solicita la transmisión con AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Publicación de grupos de anuncios de transmisión de VOD
Quita el método buildStreamRequest()
que se usó para alternar.
compilando varios tipos de transmisiones. Luego, cambia requestAndPlayAds()
para llamar
ImaSdkFactory.createPodVodStreamRequest()
para crear un anuncio de publicación de grupos de VOD
para cada solicitud. Por último, solicita la transmisión con AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Cómo editar y configurar la URL de la transmisión
Publicación de grupos de anuncios en vivo
Llama a StreamManager.getStreamId()
para obtener el ID de transmisión. Luego, se debe
se inserta en STEAM_URL
y reemplaza "[[STREAMID]]"
. Después de este cambio
se puede configurar la nueva URL de transmisión con videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Publicación de grupos de anuncios de transmisión de VOD
Llama a StreamManager.getStreamId()
para obtener el ID de transmisión. Luego, solicita
URL de transmisión de su socio de tecnología de video (VTP). Luego, llama
StreamManager.loadThirdPartyStream()
para que IMA cargue la URL de transmisión y cualquier
subtítulos que muestra tu TVP.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Cuando se habilita la publicación de grupos de anuncios, IMA no realiza llamadas a
VideoStreamPlayer.loadUrl()
, para que puedas quitar cualquier llamada a
videoPlayer.setStreamUrl()
y videoPlayer.play()
.
Eso es todo. Ahora está solicitando y mostrando anuncios en una transmisión de publicación de grupos de anuncios con el SDK de IMA de DAI. Para ver otros ejemplos del SDK de Android en uso, mira la muestras en GitHub.