Mostrar anuncios de vídeo en streaming en iOS
En esta página se describe cómo usar el SDK para capturar y mostrar anuncios de vídeo en secuencia.
Requisito previo
Incluya el SDK en el proyecto. A partir de la versión 3.0, el SDK tiene compatibilidad con vídeo en secuencia. Para obtener instrucciones sobre cómo integrar el SDK, consulte Integración del SDK.
Pasos para mostrar anuncios en secuencia
Paso 1: Inicializar el objeto de anuncio de vídeo
Un anuncio de vídeo se puede capturar y mostrar con tan solo tres métodos initWithPlacementId:
y loadAdWithDelegate:
playAdWithContainer:withDelegate:
.
La definición de los delegados para la carga y reproducción proporcionará comentarios pormenorizadas para el ciclo de vida del anuncio de vídeo.
En este paso, inicialice ANInstreamVideoAd
con el identificador de ubicación.
ANInstreamVideoAd *videoAd = [[ANInstreamVideoAd alloc] initWithPlacementId:@"MY-PLACEMENT-ID"];
Paso 2: Carga del anuncio de vídeo
Cargue el anuncio de vídeo y, opcionalmente, defina .ANInstreamVideoAdLoadDelegate
El uso de ANInstreamVideoAdLoadDelegate
es muy recomendable. Indica cuándo se ha completado la carga o, como alternativa, si se ha producido un error durante la carga.
Los delegados devuelven la instancia de ANInstreamVideoAd
, expresada como referencia a su superclase ANAdProtocol
. Se comparte con otros formatos de anuncio de Mobile SDK. El objeto de anuncio de vídeo conserva el estado que puede ser útil para hacer referencia durante el ciclo de vida del anuncio de vídeo.
El estado del anuncio de vídeo incluye el identificador de ubicación, si se ha hecho clic o omitido el anuncio de vídeo, y los comentarios de error en caso de error. (Para obtener detalles completos, consulte ANInstreamVideoAd.h
.)
@interface ViewController() <ANInstreamVideoAdLoadDelegate, ANInstreamVideoAdPlayDelegate>
//...
@end
@protocol ANInstreamVideoAdLoadDelegate <NSObject>
@required
- (void) adDidReceiveAd:(id<ANAdProtocol>)ad;
@optional
- (void) ad:(id<ANAdProtocol>)ad requestFailedWithError:(NSError *)error;
@end
[videoAd loadAdWithDelegate:self];
Paso 3: Mostrar el anuncio de vídeo
Muestra el anuncio de vídeo en el contenedor UIView
de contenido y define .ANInstreamVideoAdPlayDelegate
Los métodos delegados devuelven la instancia de ANInstreamVideoAd
, expresada como referencia a su superclase ANAdProtocol
. Se comparte con otros formatos de anuncio de Mobile SDK. Además de devolver el estado del anuncio de vídeo, el método adDidComplete:withState:
necesario indica cuándo se ha completado el anuncio de vídeo.
@protocol ANInstreamVideoAdPlayDelegate <NSObject>
@required
- (void) adDidComplete: (id<ANAdProtocol>)ad
withState: (ANInstreamVideoPlaybackStateType)state;
@optional
- (void) adCompletedFirstQuartile: (id<ANAdProtocol>)ad;
- (void) adCompletedMidQuartile: (id<ANAdProtocol>)ad;
- (void) adCompletedThirdQuartile: (id<ANAdProtocol>)ad;
- (void) adPlayStarted: (id<ANAdProtocol>)ad;
//...
@end
[videoAd playAdWithContainer:MY-VIDEO-CONTENT-UIVIEW withDelegate:self];
ANInstreamVideoAdPlayDelegate
contiene muchos métodos opcionales útiles que definen aún más el estado y el ciclo de vida de reproducción de anuncios de vídeo tanto para el anuncio de vídeo como para la página de aterrizaje. (Consulte ANInstreamVideoAd.h
para obtener detalles completos).
Pausar y reanudar el anuncio de vídeo
Para pausar o reanudar la reproducción del anuncio de vídeo, use las siguientes llamadas de método:
(void) pauseAd;
(void) resumeAd;
Elegir qué explorador abre la página de aterrizaje
Cuando se hace clic en el anuncio de vídeo, se pausa la reproducción de anuncios de vídeo y se activa el seguimiento de clics. A continuación, la dirección URL de click-through se abre en el explorador desde la aplicación O en el explorador nativo según la configuración de la opensInNativeBrower
propiedad :
- Explorador desde la aplicación: el contenido de click-through se carga dentro de la aplicación en un elemento emergente
UIView
. - Explorador nativo: la aplicación se suspende para que el contenido de click-through se cargue en el explorador nativo.
Las siguientes propiedades se exponen ANInstreamVideoAd
para administrar el explorador de destino y si la página de aterrizaje se carga antes o después de que se muestre la página de aterrizaje.
videoAd.opensInNativeBrowser = NO; // DEFAULT is NO.
videoAd.landingPageLoadsInBackground = YES; // DEFAULT is YES.
Cuando el usuario vuelva desde el explorador, el anuncio de vídeo reanudará la reproducción.
Carga de más de un anuncio de vídeo por sesión
Cualquier número de anuncios de vídeo se puede cargar en una sola sesión. Para ello, llame a initWithPlacementId:
y loadAdWtihDelegate:
una vez para cada objeto de anuncio de vídeo.
Captura de los atributos de una creatividad de vídeo cargada
Una vez cargado el vídeo, puede recuperar varios atributos de la creatividad:
-(NSUInteger) getAdDuration; //Provide the duration of the loaded video
-(NSString *) getCreativeURL; //Provide the creative that will be played
-(NSString *) getVastURL; //Provide the vastURL that is loaded
-(NSString *) getVastXML: //Provide the vastXML that is loaded
-(ANVideoOrientation) getVideoOrientation; //Provide the Orientation of the Video rendered. Possible video orientations can be square, portrait, landscape or none
Determinación del progreso de la reproducción de anuncios
Puede determinar hasta qué punto ha progresado adPlay.
-(NSUInteger) getAdPlayElapsedTime;
Pantalla completa del anuncio de vídeo
Mobile SDK no proporciona ninguna funcionalidad para mostrar anuncios de vídeo o contenido designado por el desarrollador en modo de pantalla completa. El contenedor de anuncios de vídeo aparece automáticamente sobre el marco de la vista contenedora de contenido con las mismas dimensiones y posicionamiento de la vista contenedora de contenido. (Consulte anteriormente playWithAdContainer:withDelegate:
.)
Esto significa que tienes control sobre si el anuncio de vídeo se muestra en modo de pantalla completa mediante la administración del marco de la vista del contenedor de contenido. Por extensión, si desea dar control sobre el modo de pantalla completa al usuario, debe proporcionar las opciones de interfaz adecuadas al usuario.
Nota:
Controles de reproducción de vídeo
En iOS, es idiomático usar los controles de transporte proporcionados por AVPlayerViewController
con la propiedad showsPlaybackControls
. Este método no es compatible con el SDK móvil de Xandr porque, en este caso, la opción de pantalla completa crea una vista modal que se muestra en todas las vistas actuales, ocultando el contenedor de anuncios de vídeo que se muestra en el contenedor de contenido. La funcionalidad de pantalla completa del anuncio de vídeo debe controlarse con algunos medios distintos de crear una vista modal.