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 administrar la reproducción de anuncios en tus apps. Con los SDK de DAI de IMA, las apps realizan una solicitud de transmisión de anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra una transmisión de video por Internet combinada para que no tengas que administrar el cambio entre anuncios y videos de contenido dentro de tu 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 administrar la reproducción de anuncios en tus apps. Con los SDK de DAI de IMA, las apps realizan una solicitud de transmisión de anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra una transmisión de video por Internet combinada para que no tengas que administrar el cambio entre anuncios y videos de contenido dentro de tu app.
En esta guía, se muestra cómo reproducir una transmisión de DAI Pod Serving con el SDK de IMA de DAI con un reproductor de video para la reproducción de transmisiones en vivo y de VOD. Para ver o seguir una integración de muestra completa, descarga el ejemplo de Entrega de Pods.
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 a los servidores de publicidad de Google. Se debe crear conImaSdkFactory.createPodStreamRequest()
oImaSdkFactory.createPodVodStreamRequest()
para habilitar la Entrega de Pods. Estos métodos requieren un código de red ycreatePodStreamRequest
también requiere una clave de recurso personalizada y una clave de API opcional. Ambos incluyen otros parámetros opcionales.StreamManager
: Es un objeto que controla la comunicación entre la transmisión de video por Internet y el SDK de IMA de DAI, como activar pings de seguimiento y reenviar eventos de transmisión al publicador.
Requisitos previos
Una aplicación para Android ya configurada con el SDK de IMA de DAI para reproducir transmisiones de video por Internet con anuncios de DAI. Si aún no tienes una app de este tipo, te recomendamos que uses BasicExample de la DAI de Android como punto de partida. BasicExample tiene la base de código a la que se hace referencia en esta guía.
Es importante que tu 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 tus variables de Publicación de grupos de anuncios
Todos los cambios necesarios para la Publicación de grupos de anuncios se realizan en SampleAdsWrapper.java. 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
: Solo se usa para transmisiones en vivo: Es la URL de transmisión de video por Internet que proporciona el manipulador de manifiestos o el socio externo que usa la Publicación de grupos de anuncios. Debería requerirte que insertes el ID de transmisión proporcionado por el SDK de IMA de DAI antes de realizar una solicitud. En este caso, la URL de transmisión incluye un marcador de posición,"[[STREAMID]]"
, que se reemplaza por el ID de transmisión antes de realizar una solicitud.NETWORK_CODE
: Es el código de red de tu cuenta de Ad Manager 360.CUSTOM_ASSET_KEY
: Solo se usa para transmisiones en vivo: La clave del recurso personalizada que identifica tu evento de publicación de grupos de anuncios en Ad Manager 360. Esto lo puede crear el 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 requerir para recuperar un ID de transmisión desde el SDK de DAI de IMA.
BasicExample de DAI de Android está diseñado para reproducir una variedad de tipos de transmisión diferentes. Sin embargo, en 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 de transmisión en vivo
Quita el método buildStreamRequest()
, que se usó para alternar entre la compilación de una variedad de tipos de transmisión. Luego, cambia requestAndPlayAds()
para llamar a ImaSdkFactory.createPodStreamRequest()
y crear una solicitud de anuncios de Publicación de grupos de anuncios en vivo. 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 entre la compilación de una variedad de tipos de transmisión. Luego, cambia requestAndPlayAds()
para llamar a ImaSdkFactory.createPodVodStreamRequest()
y crear una solicitud de anuncios de Publicación de grupos de anuncios de VOD. 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 de transmisión en vivo
Llama a StreamManager.getStreamId()
para obtener el ID de transmisión. Luego, debes insertarlo en STEAM_URL
y reemplazar "[[STREAMID]]"
. Después de realizar este cambio, podrás 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 una URL de transmisión a tu socio de tecnología de video (VTP). Luego, llama a StreamManager.loadThirdPartyStream()
para que IMA cargue la URL de transmisión y los subtítulos que muestre 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 la entrega de pods está habilitada, IMA no realiza llamadas a VideoStreamPlayer.loadUrl()
, por lo que puedes quitar cualquier llamada a videoPlayer.setStreamUrl()
y videoPlayer.play()
.
Borra los recursos de IMA de DAI
Cuando hayas terminado de solicitar y mostrar anuncios de forma correcta en una transmisión de Publicación de Pods con el SDK de IMA de DAI, te sugerimos que limpies cualquier recurso después de que se complete la sesión de Publicación de Pods. Llama a StreamManager.destroy()
para detener la reproducción de la transmisión, detener todo el seguimiento de anuncios y liberar todos los elementos de transmisión cargados.
Para ver otros ejemplos del SDK de Android en uso, consulta muestras en GitHub.