Compartir a través de


Solicitud de varios anuncios para iOS

Información general

En este artículo se proporcionan instrucciones y ejemplos de código para iniciar y configurar una solicitud de varios anuncios (ANMultiAdRequest). ANMultiAdRequest permite usar una única solicitud de etiqueta universal (UTv3) para iniciar varias subastas, cuyos resultados se devuelven en una única respuesta del servidor.

ANMultiAdRequest, al igual que , AdUnitimplementa un subconjunto de ANAdProtocol. Esto permite ANMultiAdRequest adoptar el tipo y el comportamiento de diferentes AdUnits (banner, nativo, vídeo, etc.) con las mismas especificaciones de cada AdUnit tipo. Las palabras clave personalizadas se pueden asignar a y ANMultiAdRequest las heredará el contenido AdUnits.

Inicialización

Los usuarios pueden seleccionar entre uno de los tres métodos de inicialización. Todos requieren un memberId objeto y delegate como argumentos para ANMultiAdRequest inicializarse. memberId y delegate solo se puede establecer una vez por instancia. En este momento, se puede establecer un parámetro de id. de publicador opcional. Todos AdUnits deben contener lo mismo memberId que el que se ha pasado en el proceso de inicialización. AdUnits que contiene placementIds usará el asociado memberId a esa ubicación. Una vez inicializada correctamente, se devuelve una ANMultiAdRequest instancia de clase.

Nota:

La ANMultiAdRequest instancia se rechazará AdUnits con memberId valores distintos de los suyos propios.

Métodos de inicialización

Inicializar con una lista de uno o más AdUnits

Inicializa una instancia de ANMultiAdRequest con una lista de uno o varios AdUnits. Por ejemplo,

Sin id. de publicador

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
            delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
             adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit, ...;

Con el identificador del publicador

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
         publisherId:(NSInteger)publisherId
            delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
             adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                     ... NS_REQUIRES_NIL_TERMINATION;

Inicializar con una lista de AdUnits y llamar al load método

Habilita la inicialización y llama al load método con una sola línea de código. Al igual que el proceso anterior, la instancia se inicializa con una lista de uno o más AdUnits. Si se produce un error durante el load ciclo de vida, la clase no se inicializa y se devuelve un objeto NULL. Cuando se produce un proceso correcto load , se devuelve una instancia de clase, después de lo cual se comunica el éxito o el error de la instancia al autor de la llamada a través de ANMultiAdRequestDelegate. Por ejemplo,

Sin id. de publicador

- (nullable instancetype)
    initAndLoadWithMemberId:(NSInteger)memberId
                   delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
                    adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                            ...;

Con el identificador del publicador

- (nullable instancetype)
    initAndLoadWithMemberId:(NSInteger)memberId
                publisherId:(NSInteger)publisherId
                   delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
                    adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                            ... NS_REQUIRES_NIL_TERMINATION;

Inicialización simple

Esta inicialización básica devuelve una instancia de la clase pero no realiza ninguna acción. La configuración se puede completar mediante métodos y propiedades de clase. El delegado inicializado se establece en a AdUnits medida que se agregan.

Sin id. de publicador

- (nullable instancetype)initWithMemberId:(NSInteger)memberId
                              andDelegate:(nonnull id<ANMultiAdRequestDelegate>)

Sin id. de publicador

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
         publisherId:(NSInteger)publisherId
         andDelegate:(nullable id<ANMultiAdRequestDelegate>)delegate;

Argumentos

Variable Tipo Atributos Ámbito Descripción
memberId NSInteger nonatomic, readonly, assign Required Un identificador de miembro. Cualquier AdUnits contenido dentro de ANMultiAdRequest debe tener idéntico memberIds o ANMultiAdRequest se rechazará. memberId También se puede alcanzar pasando un placementIdobjeto .
delegate ANMultiAdRequestDelegate nonnull Obligatorio Objeto al que se va a notificar información y devoluciones de llamada pertinentes.
adUnits Lista de adUnits nonnull Opcional Lista de AdUnits para la inicialización de un objeto ANMultiAdRequest.

Nota:

Si la inicialización se realiza correctamente, el SDK devuelve YES, en caso contrario, devuelve NO.

Configuración

Todas las ANMultiAdRequest propiedades y métodos de configuración son los mismos en tipo y uso que los usados por AdUnits. Si las propiedades se establecen en ANMultiAdRequest, hereda AdUnits esas propiedades. No son permanentes. ANMultiAdRequest Una vez que haya completado su ciclo de vida, AdUnits accederá a sus valores de propiedad local después de quitarse de la lista de AdUnits encapsulados por la ANMultiAdRequest instancia.

Parámetros

Parámetro Tipo Atributos Descripción
memberId NSInteger Readonly Un identificador de miembro. Cualquier AdUnits contenido dentro de MultiAdRequest debe tener idéntico memberIds o será MultiAdRequest rechazado por el bus de impresión de Xandr. memberId También se puede alcanzar pasando un placementIdobjeto .
location ANLocation readwrite Ubicación del usuario. Location se puede establecer con horizontalAccuracy y un precision nivel. Vea Métodos de ubicación a continuación.
age NSString readwrite Edad del usuario.
gender ANGender readwrite El sexo del usuario.
customKeyword Matriz readwrite Palabras clave personalizadas aplicadas a MultiAdRequest. Estas palabras clave serán heredadas por el adjunto AdUnits. Esta lista se puede complementar dentro de cada AdUnit una con palabras clave personalizadas adicionales.
AdUnit Objeto readwrite Elemento AdUnit que se va a agregar a MultiAdRequest
countOfAdUnits NSUintetger Readonly Devuelve el número de AdUnits contenido de la MultiAdRequest instancia.

Métodos de ubicación

setLocationWithLatitude establece el valor de la location propiedad de un MultiAdRequest objeto . Se puede llamar a él con un parámetro adicional precision . Por ejemplo,

Sin parámetro de precisión

- (void)setLocationWithLatitude:(CGFloat)latitude
                      longitude:(CGFloat)longitude
                      timestamp:(nullable NSDate *)timestamp
             horizontalAccuracy:(CGFloat)horizontalAccuracy;

Con el parámetro precision

- (void)setLocationWithLatitude:(CGFloat)latitude
                      longitude:(CGFloat)longitude
                      timestamp:(nullable NSDate *)timestamp
             horizontalAccuracy:(CGFloat)horizontalAccuracy
                      precision:(NSInteger)precision;

Parámetros

Parámetro Tipo Ámbito Descripción
latitude CGFloat Obligatorio Latitud de la ubicación.
longitude CGFloat Obligatorio Longitud de la ubicación.
timestamp NSDate Opcional Marca de tiempo que se estableció la ubicación.
horizontalAccuracy CGFloat Obligatorio Radio de incertidumbre para la ubicación.
precision NSInteger Opcional Determina la precisión de grados decimales para la ubicación.

Métodos

  • load

    Carga todo lo contenido AdUnits mediante el envío de una multi-tag UTv3 solicitud al bus de impresión de Xandr. Para cada ANMultiAdRequest instancia, solo puede haber una carga activa a la vez. Las cargas se completan cuando se desencadena uno de los MultiAdRequestDelegate métodos. Devuelve YES si se realiza correctamente y NO si se produce un error.

    - (BOOL)load;
    
  • addAdUnit

    Agrega a AdUnit ANMultiAdRequest. AdUnits se rechazará si su memberId no coincide con el memberId asignado a MultiAdRequest o no coincide con el memberId del otro AdUnits contenido dentro de ANMultiAdRequest. Devuelve YES si se realiza correctamente y NO si se produce un error.

    - (BOOL)addAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;
    

    Argumentos

    Parámetro Tipo Ámbito Descripción
    AdUnit Object Obligatorio Elemento AdUnit que se va a agregar a MultiAdRequest
  • removeAdUnit

    Quita de AdUnit .ANMultiAdRequest Devuelve YES si se realiza correctamente y NO si se produce un error.

    - (BOOL)removeAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;
    

    Argumentos

    Parámetro Tipo Ámbito Descripción
    AdUnit Object Obligatorio Elemento AdUnit que se va a agregar a MultiAdRequest
  • addCustomKeywordWithKey

    Agrega una palabra clave personalizada a ANMultiAdRequest. Almacenadas como un par de claves y un valor, las palabras clave personalizadas las hereda el AdUnits contenido dentro de ANMultiAdRequest.

    - (void)addCustomKeywordWithKey:(nonnull NSString *)key
                              value:(nonnull NSString *)value;
    

    Argumentos

    Parámetro Tipo Ámbito Descripción
    key NSString Obligatorio Identificador de clave de la palabra clave personalizada.
    value NSString Obligatorio Valor de la palabra clave custom.
  • removeCustomKeywordWithKey

    Quita una palabra clave personalizada de ANMultiAdRequest. La palabra clave quitada ya no la heredará el AdUnits contenido dentro de ANMultiAdRequest.

    - (void)removeCustomKeywordWithKey:(nonnull NSString *)key;
    

    Argumentos

    Parámetro Tipo Ámbito Descripción
    key NSString Obligatorio Identificador de clave de la palabra clave personalizada que se va a quitar.
  • clearCustomKeywords

    Quita todas las palabras clave personalizadas de ANMultiAdRequest. Las palabras clave quitadas ya no las heredará el AdUnits contenido dentro de ANMultiAdRequest.

    - (void)clearCustomKeywords;
    
  • stop

    Detiene , ANMultiAdRequestantes de que se complete la solicitud.

    - (void)stop;
    

Métodos ANMultiAdRequestDelegate

  • multiAdRequestDidComplete

    Devuelve correctamente ANMultiAdRequest. Correcto indica que todos los contenidos AdUnits se han cargado y tienen un resultado claro

    - (void)multiAdRequestDidComplete:(nonnull ANMultiAdRequest *)MultiAdRequest;
    
  • multiAdRequestDidFailWithError

    Devuelve un mensaje de error si se produce un error en el UT Request generado por una ANMultiAdRequest instancia, por cualquier motivo.

    - (void)multiAdRequestDidFailWithError:(nonnull NSError *)error;
    

Nota:

[ANMultiAdRequest load] también puede producir un error devolviendo NO incluso antes de enviar un UT Request. Si load devuelve YES esto significa UT Request que se inició y todos los errores adicionales se producirán a través del método delegado.