Agregar banners publicitarios y anuncios de rectángulo medio a una app para iOS

Audience Network te permite monetizar tus apps de iOS mediante anuncios de Facebook. En esta guía, se explica cómo crear una app para iOS que muestre banners publicitarios y anuncios de rectángulo medio.

You can change placements in Monetization Manager to the Medium Rectangle format if these were previously configured as Banner for bidding. Similarly, for any new medium rectangle placements, navigate to the placement settings page in Monetization Manager and select Medium Rectangle (not Banner).

Placements will deliver as normal even if they are not changed to the medium rectangle format. However, to avoid confusion, we recommend that you change these placements to medium rectangle.

Enlace permanente

Si te interesan otras clases de bloques de anuncios, consulta la lista de tipos de anuncio disponibles.

Pasos relacionados con los banners publicitarios y los anuncios de rectángulo medio

Implementemos la siguiente ubicación de banner publicitario.



Paso 1: Cargar y mostrar la vista de anuncio

Paso 2: Comprobar el registro de impresiones y clics

Paso 3: Depurar cuando no se muestra el anuncio

Paso 4: Probar la integración de los anuncios

Paso 1: Cargar y mostrar la vista de anuncio

Asegúrate de haber completado las guías de configuración para iOS antes de continuar.

Asegúrate de seguir la norma de diseño para iOS al crear anuncios nativos y banners para ofrecer una experiencia de usuario óptima.

  1. Después de crear un nuevo proyecto desde la guía Primeros pasos para iOS, abre Main.storyboard. Agrega un elemento "UIView" al elemento principal "View" y nómbralo en adContainer.
  2. En el archivo de encabezado del controlador de vista (o archivo Swift, si usas Swift), importa FBAudienceNetwork, declara conformidad con el protocolo FBAdViewDelegate y agrega una variable de instancia para la unidad de anuncios
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBAdViewDelegate {
    
      @IBOutlet private var adContainer: UIView!
    
      private var adView: FBAdView?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBAdViewDelegate>
    
    @property (nonatomic, weak) IBOutlet UIView *adContainer;
    @property (nonatomic, strong) FBAdView *adView;
    
    @end

  3. Agrega el código debajo a viewDidLoad. Crea una nueva instancia de FBAdView y agrégala a la vista. FBAdView es una subclase de UIView. Puedes agregarla a tu jerarquía de vista como lo harías con cualquier otra vista.
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an AdView object.
      // NOTE: the placement ID will eventually identify this as your app, you can ignore while you
      // are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      let adView = FBAdView(placementID: "YOUR_PLACEMENT_ID", adSize: kFBAdSizeHeight50Banner, rootViewController: self)
      adView.frame = CGRect(x: 0, y: 0, width: 320, height: 250)
      adView.delegate = self
      adView.loadAd()
      self.adView = adView
    }
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      // Instantiate an AdView object. 
      // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
      // now, while you are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a no fill error).
      self.adView = [[FBAdView alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID" adSize:kFBAdSizeHeight50Banner rootViewController:self];
      self.adView.frame = CGRectMake(0, 0, 320, 250);
      self.adView.delegate = self;
      [self.adView loadAd];
    }
    Para agregar un anuncio de rectángulo medio en su lugar, solo debes proporcionar kFBAdSizeHeight250Rectangle en el parámetro adSize de FBAdView.

    Audience Network admite tres tamaños de anuncios que se pueden usar en tu FBAdView. El ancho de una unidad es flexible, con un mínimo de 320 px, y solo se define la altura.

    Formato de anuncio Referencia de AdSize Tamaño Recomendación

    Rectángulo medio

    kFBAdSizeHeight 250Rectangle

    300x250

    Este formato es altamente recomendable porque proporciona mayor rendimiento, mayor calidad y mayor eficiencia de la CPU

    Banner estándar

    kFBAdSizeHeight 50Banner

    320x50

    Este formato es adecuado para los teléfonos, pero no se recomienda debido a su mal rendimiento y calidad

    Banner grande

    kFBAdSizeHeight 90Banner

    320x90

    Este formato es adecuado para las tabletas y dispositivos más grandes, pero no se recomienda debido a su mal rendimiento y calidad

  4. Reemplaza YOUR_PLACEMENT_ID con tu cadena de identificador de ubicación. Si no tienes un identificador de ubicación o no sabes cómo obtener uno, consulta la guía de primeros pasos. Elige el dispositivo como destino de compilación y ejecuta el código anterior. Deberías ver algo como esto:



Para ver los anuncios de prueba, cambia la configuración al modo de prueba al publicarlos en el simulador. Consulta Cómo usar el modo de prueba para obtener más información.

Paso 2: Comprobar el registro de impresiones y clics

Opcionalmente, puedes agregar las siguientes funciones para administrar los casos en los que el anuncio se cierra o cuando el usuario hace clic en él:

func adViewDidClick(_ adView: FBAdView) {
  print("Ad was clicked.")
}

func adViewDidFinishHandlingClick(_ adView: FBAdView) {
  print("Ad did finish click handling.")
}

func adViewWillLogImpression(_ adView: FBAdView) {
  print("Ad impression is being captured.")
}
- (void)adViewDidClick:(FBAdView *)adView
{
  NSLog(@"Ad was clicked.");
}

- (void)adViewDidFinishHandlingClick:(FBAdView *)adView
{
  NSLog(@"Ad did finish click handling.");
}

- (void)adViewWillLogImpression:(FBAdView *)adView
{
  NSLog(@"Ad impression is being captured.");
}

Paso 3: Depurar cuando no se muestra el anuncio

Agrega e implementa las siguientes dos funciones en tu controlador de vista para administrar los errores de carga de anuncios:

func adView(_ adView: FBAdView, didFailWithError error: Error) {
  print("Ad failed to load with error: \(error.localizedDescription)")
}

func adViewDidLoad(_ adView: FBAdView) {
  print("Ad was loaded and ready to be displayed")
  showAd()
}

private func showAd() {
  guard let adView = adView, adView.isAdValid else {
    return
  }
  adContainer.addSubview(adView)
}
- (void)adView:(FBAdView *)adView didFailWithError:(NSError *)error
{
  NSLog(@"Ad failed to load with error: %@", error);
}

- (void)adViewDidLoad:(FBAdView *)adView
{
  NSLog(@"Ad was loaded and ready to be displayed");
  [self showAd];
}

- (void)showAd
{
  if (self.adView && self.adView.isAdValid) {
    [self.adContainer addSubview:self.adView];
  }
}

Cuando no haya ningún anuncio para mostrar, se llamará a adView:didFailWithError: con un error.code configurado en 1001. Si usas tu propia capa de informes o mediación personalizada, es posible que quieras comprobar el valor del código y detectar este caso. En este caso, puedes recurrir a otra red publicitaria, pero no puedes volver a solicitar un anuncio de inmediato.


Próximos pasos

Obtén más información sobre los formatos de anuncios disponibles para las apps en Audience Network.

Consulta también