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 , AdUnit
implementa 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 placementId objeto . |
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 placementId objeto . |
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 unamulti-tag UTv3
solicitud al bus de impresión de Xandr. Para cadaANMultiAdRequest
instancia, solo puede haber una carga activa a la vez. Las cargas se completan cuando se desencadena uno de losMultiAdRequestDelegate
métodos. DevuelveYES
si se realiza correctamente yNO
si se produce un error.- (BOOL)load;
addAdUnit
Agrega a
AdUnit
ANMultiAdRequest.AdUnits
se rechazará si sumemberId
no coincide con elmemberId
asignado aMultiAdRequest
o no coincide con elmemberId
del otroAdUnits
contenido dentro deANMultiAdRequest
. DevuelveYES
si se realiza correctamente yNO
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 aMultiAdRequest
removeAdUnit
Quita de
AdUnit
.ANMultiAdRequest
DevuelveYES
si se realiza correctamente yNO
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 aMultiAdRequest
addCustomKeywordWithKey
Agrega una palabra clave personalizada a
ANMultiAdRequest
. Almacenadas como un par de claves y un valor, las palabras clave personalizadas las hereda elAdUnits
contenido dentro deANMultiAdRequest
.- (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á elAdUnits
contenido dentro deANMultiAdRequest
.- (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á elAdUnits
contenido dentro deANMultiAdRequest
.- (void)clearCustomKeywords;
stop
Detiene ,
ANMultiAdRequest
antes de que se complete la solicitud.- (void)stop;
Métodos ANMultiAdRequestDelegate
multiAdRequestDidComplete
Devuelve correctamente
ANMultiAdRequest
. Correcto indica que todos los contenidosAdUnits
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 unaANMultiAdRequest
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.