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 utilizar una única solicitud de etiqueta universal (UTv3) para iniciar varias subastas, cuyos resultados se devuelven en una única respuesta del servidor.

ANMultiAdRequest, como un AdUnit, implementa un subconjunto de ANAdProtocol. Esto permite adoptar ANMultiAdRequest el tipo y comportamiento de diferentes AdUnits (banner, nativo, vídeo, etc.) utilizando las mismas especificaciones de cada AdUnit tipo. Las palabras clave personalizadas se pueden asignar a un ANMultiAdRequest y serán heredadas por el archivo AdUnits.

Inicialización

Los usuarios pueden seleccionar uno de los tres métodos de inicialización. Todos requieren a memberId y a delegate object como argumentos para inicializarse ANMultiAdRequest . El memberId y delegate solo se puede establecer una vez por instancia. En este momento se puede establecer un parámetro de identificador de editor opcional. Todos AdUnits deben contener lo mismo memberId que el pasado en el proceso de inicialización. AdUnits que contenga placementIds usará el asociado memberId de esa ubicación. Tras una inicialización correcta, se devuelve una ANMultiAdRequest instancia de clase.

Nota:

La ANMultiAdRequest instancia rechazará AdUnits con memberId valores diferentes a los suyos.

Métodos de inicialización

Los métodos siguientes son compatibles con esta característica:

Inicialice con una lista de una o más AdUnits

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

Sin Id. de editor

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

Con id. de editor

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

Inicialice con una lista de AdUnits y llame 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 en el proceso anterior, la instancia se inicializa con una lista de uno o varios AdUnitsarchivos . Si se produce un error durante el ciclo de load vida, la clase no se inicializa y se devuelve un objeto nulo. Cuando se produce un proceso exitoso load , se devuelve una instancia de clase, después de lo cual el éxito o el fracaso de la instancia se comunica al autor de la llamada a través ANMultiAdRequestDelegatede . Por ejemplo,

Sin Id. de editor

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

Con id. de editor

- (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 utilizando propiedades y métodos de clase. El delegado inicializado se establece a AdUnits medida que se agregan.

Sin Id. de editor

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

Con id. de editor

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

Argumentos

Variable Tipo Atributos Ámbito Descripción
memberId NSInteger no atómico, de solo lectura, de asignación Required Un id. de miembro. Cualquier contenido AdUnits dentro del ANMultiAdRequest debe tener idéntico memberIds o el ANMultiAdRequest será rechazado. El memberId también se puede lograr pasando en un placementId.
delegate ANMultiAdRequestDelegate nonnull Obligatorio Objeto a notificar con información y devoluciones de llamada relevantes.
adUnits Lista de adUnits nonnull Opcional Lista de AdUnits para la inicialización de un ANMultiAdRequestarchivo .

Nota:

Si la inicialización se realiza correctamente, SDK devuelve YES, de lo contrario, devuelve NO.

Configuración

Todas las ANMultiAdRequest propiedades y métodos de configuración son los mismos en tipo y uso que los utilizados por AdUnits. Si las propiedades se establecen en el ANMultiAdRequest, heredan AdUnits esas propiedades. No son permanentes. Una vez que hayan ANMultiAdRequest completado su ciclo de vida, AdUnits accederán a sus valores de propiedad locales después de ser eliminados de la lista de AdUnits encapsulados por la ANMultiAdRequest instancia.

Parámetros

Parámetro Tipo Atributos Descripción
memberId NSInteger solo lectura Un id. de miembro. Cualquier contenido AdUnits dentro del MultiAdRequest debe tener idéntico memberIds o será MultiAdRequest rechazado por Impression Bus. El memberId también se puede lograr pasando en un placementId.
location ANLocation escritura lectora La ubicación del usuario. Location se puede establecer con horizontalAccuracy y un precision nivel. Consulte Métodos de ubicación a continuación.
age NSString escritura lectora La edad del usuario.
gender ANGender escritura lectora El sexo del usuario.
customKeyword Matriz escritura lectora Palabras clave personalizadas aplicadas al MultiAdRequestarchivo . Estas palabras clave serán heredadas por el archivo AdUnitsadjunto. Esta lista se puede complementar dentro de cada una AdUnit con palabras clave personalizadas adicionales.
AdUnit Objeto escritura lectora Un AdUnit elemento para agregar al MultiAdRequest
countOfAdUnits NSUintetger solo lectura Devuelve el número de AdUnits elementos contenidos por la MultiAdRequest instancia.

Métodos de ubicación

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

Parámetro sin precisión

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

Con parámetro de precisión

- (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 La marca de tiempo que se estableció la ubicación.
horizontalAccuracy CGFloat Obligatorio El radio de incertidumbre de la ubicación.
precision NSInteger Opcional Determina la precisión de grados decimales de la ubicación.

Métodos

  • load

    Carga todo contenido AdUnits mediante el envío de una multi-tag UTv3 solicitud a Impression Bus. Para cada ANMultiAdRequest instancia, solo puede haber una carga activa a la vez. Las cargas se completan cuando se dispara uno de los MultiAdRequestDelegate métodos. Regresa YES al éxito y NO al fracaso.

    - (BOOL)load;
    
  • addAdUnit

    Agrega un AdUnit a ANMultiAdRequest. AdUnits serán rechazados si su memberId no coincide con el memberId asignado al MultiAdRequest o no coincide con el memberId del otro AdUnits contenido dentro del ANMultiAdRequest. Si se establece a publisherId en el ANMultiAdRequest, cualquiera AdUnit con una diferente publisherId también será rechazada. Regresa YES al éxito y NO al fracaso.

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

    Argumentos

    Parámetro Tipo Ámbito Descripción
    AdUnit Object Obligatorio Un AdUnit elemento para agregar al MultiAdRequest
  • removeAdUnit

    Quita an AdUnit del ANMultiAdRequest. Regresa YES al éxito y NO al fracaso.

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

    Argumentos

    Parámetro Tipo Ámbito Descripción
    AdUnit Object Obligatorio Un AdUnit elemento para agregar al MultiAdRequest
  • addCustomKeywordWithKey

    Agrega una palabra clave personalizada al ANMultiAdRequestarchivo . Almacenadas como un par de claves y valor, las palabras clave personalizadas se heredan por las AdUnits contenidas en el ANMultiAdRequestarchivo .

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

    Argumentos

    Parámetro Tipo Ámbito Descripción
    key NSString Obligatorio El identificador de clave de la palabra clave personalizada.
    value NSString Obligatorio El valor de la palabra clave personalizada.
  • removeCustomKeywordWithKey

    Quita una palabra clave personalizada del ANMultiAdRequestarchivo . La palabra clave eliminada ya no se heredará por la AdUnits contenida en el ANMultiAdRequestarchivo .

    - (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 del ANMultiAdRequestarchivo . Las palabras clave eliminadas ya no se heredarán por las AdUnits contenidas en el ANMultiAdRequestarchivo .

    - (void)clearCustomKeywords;
    
  • stop

    Detiene el ANMultiAdRequest, antes de que se complete la solicitud.

    - (void)stop;
    

Métodos ANMultiAdRequestDelegate

  • multiAdRequestDidComplete

    Devuelve el éxito de ANMultiAdRequest. El éxito 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 lo UT Request generado por una ANMultiAdRequest instancia falla, por cualquier motivo.

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

Nota:

[ANMultiAdRequest load] También puede producirse un error si se devuelve NO incluso antes de enviar un UT Requestarchivo . Si la carga devuelve YES , significa UT Request que se inició, y todos los errores posteriores vendrán a través del método delegado.