Compartir a través de


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.

Personalizar las opciones del reproductor de vídeo