Compartir a través de


Mostrar anuncios nativos en iOS

Información general

Los anuncios nativos le ofrecen la posibilidad de crear anuncios personalizados que coincidan con el aspecto del resto de la aplicación. En este artículo se describe mobile SDK Native Ads API en un nivel alto e incluye un ejemplo de uso.

Las redes nativas que se admiten a través de la mediación para anuncios nativos son:

  • Facebook
  • Google AdMob y Google DoubleClick para publicadores (Google DFP)

Para publicar anuncios nativos, enviará una "solicitud de anuncio nativo" y recibirá una "respuesta de anuncios nativos", como se explica en la sección siguiente.

Nota:

Mantenga una referencia a los ANNativeAdRequest objetos y ANNativeAdResponse que cree; de lo contrario, pasarán del ámbito y provocarán un comportamiento inesperado.

Proceso

  • Configure un objeto de solicitud y establezca algunas de sus propiedades, como el identificador de ubicación y si se debe cargar previamente la imagen de icono del anuncio.
  • Si lo desea, establezca el renderer_id para este objeto NativeAdRequest. (Para obtener más información sobre renderer_id vea Native Layout Service). El renderer_id debe especificarse para vastxml, likes, downloads, saleprice, phone, address, display URL to be returned in the NativeAdResponse.
  • Suponiendo que la solicitud se realiza correctamente, cargamos los recursos de anuncios nativos de la respuesta en la vista y la registramos para poder realizar un seguimiento de las interacciones del usuario, como los clics.

Solicitud

En primer lugar, configuramos el objeto de solicitud y establecemos algunas de sus propiedades, como el identificador de ubicación y si se va a cargar previamente la imagen de icono del anuncio:

ANNativeAdRequest *request = [[ANNativeAdRequest alloc] init];
request.placementId = @"123456";
request.rendererId = 123;
request.gender = ANGenderMale;
request.shouldLoadIconImage = YES;
request.shouldLoadMainImage = YES;
request.delegate = self;
[request loadAd];

Respuesta

Suponiendo que la solicitud se realiza correctamente, cargamos los recursos de anuncios nativos de la respuesta en la vista y la registramos para poder realizar un seguimiento de las interacciones del usuario, como los clics:

- (void)adRequest:(ANNativeAdRequest *)request didReceiveResponse:(ANNativeAdResponse *)response {
      // (code which loads the view)
      MyDummyView *view;
      view.title.text = response.title;
      view.text.text = response.body;
      view.iconImageView.image = response.iconImage;
      view.mainImageView.image = response.mainImage;
      [view.callToActionButton setTitle:response.callToAction forState:UIControlStateNormal];
 
      response.delegate = self;
 
      [response registerViewForTracking:view
                 withRootViewController:self
                         clickableViews:@[view.callToActionButton, view.mainImageView]
                                  error:nil];
 }

En esta respuesta de ejemplo, usamos varios elementos de un anuncio nativo:

  • Un título
  • Imagen de icono
  • Imagen del anuncio principal
  • Bodytext
  • Botón de "llamada a la acción" en el que el usuario puede hacer clic para convertir

Campos admitidos en Nativo

A partir de la versión 5.0 del SDK móvil, la compatibilidad con recursos nativos se alinea con la configuración de las creatividades nativas en la aplicación.

Si sigue usando Nativo heredado en la aplicación, tendrá que pasar a "Nuevo" Nativo para las creatividades.

A continuación se muestra una lista completa de los recursos nativos admitidos en los SDK.

Recurso ¿Pre 5.0 compatible? ¿Se admite Post 5.0? Ejemplo de API-Usage v5.0+
Imagen, Ancho, Alto Sí, sí, sí Sí, sí, sí response.mainImage;
response.mainImageSize;
response.mainImageURL;
Icono+Ancho+Alto Sí, No, No Sí, sí, sí response.iconImage;
response.iconImageURL;
response.iconImageSize;
Título response.title;
Patrocinado por response.sponsoredBy;
Texto de cuerpo response.body;
Desc2 response.additionalDescription;
Llamada a la acción response.callToAction;
Clasificación, escala Sí, sí Sí, no response.rating;
Me gusta No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Descargas No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Precio No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Precio de venta No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Phone No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Dirección No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Dirección URL de presentación No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Haga clic en URL No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
Haga clic en Dirección URL de reserva No Sí (solo json) NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] }
URL de privacidad No response.privacyLink;
Vídeo No response.vastXML;
Personalizado No
Contexto No
Texto completo Yes No