Ajouter des bandeaux et rectangles moyens publicitaires à une application iOS

Le réseau Audience Network vous permet de monétiser vos applications iOS avec des publicités Facebook. Ce guide explique comment créer une application iOS qui présente des bandeaux et rectangles moyens publicitaires.

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.

Si vous êtes intéressé·e par d’autres types d’unité publicitaire, consultez la liste des types disponibles.

Procédure d’ajout de bandeaux et de rectangles moyens publicitaires

Passons à la mise en œuvre du placement de bandeau publicitaire suivant.



Étape 1 : charger et afficher la vue de la publicité

Étape 2 : vérifier l’enregistrement de l’impression et du clic

Étape 3 : processus de débogage lorsque la publicité n’apparaît pas

Étape 4 : tester l’intégration des publicités

Étape 1 : charger et afficher la vue de la publicité

Assurez-vous d’avoir suivi les guides de configuration iOS avant de poursuivre.

Lors de la conception de la publicité native et de la bannière publicitaire, assurez-vous d’avoir suivi la règle de conception pour iOS pour offrir une expérience utilisateur optimale.

  1. Lorsque vous avez créé un projet conformément aux guides de démarrage sur iOS, ouvrez Main.storyboard. Ajoutez un élément UIView à l’élément View principal, puis nommez-le adContainer.
  2. À présent, dans votre fichier d’en-tête du contrôleur de vue (ou fichier Swift, si vous êtes un·e utilisateur·ice de Swift), importez FBAudienceNetwork, indiquez la conformité au protocole FBAdViewDelegate, puis ajoutez une variable d’instance pour l’unité publicitaire.
    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. Ajoutez le code ci-dessous à viewDidLoad. Créez une nouvelle instance de FBAdView et ajoutez-la à la vue. FBAdView est une sous-classe de UIView. Vous pouvez l’ajouter à votre hiérarchie de vues comme n’importe quelle autre vue.
    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];
    }
    Si vous préférez ajouter une publicité Rectangle moyen, il vous suffit de définir l’attribut kFBAdSizeHeight250Rectangle du paramètre adSize sur FBAdView.

    Audience Network propose trois tailles de publicités à utiliser dans votre FBAdView. La largeur d’une unité est flexible avec un minimum de 320 pixels. Seule la hauteur est définie.

    Format publicitaire Référence AdSize Dimensions Recommandation

    Rectangle moyen

    kFBAdSizeHeight 250Rectangle

    300 x 250

    Ce format est vivement recommandé, car il offre de meilleures performances, une qualité supérieure et une utilisation plus efficace du processeur.

    Bandeau standard

    kFBAdSizeHeight 50Banner

    320 x 50

    Ce format est adapté aux téléphones, mais il n’est pas recommandé, car il réduit les performances et la qualité.

    Grand bandeau

    kFBAdSizeHeight 90Banner

    320 x 90

    Ce format est adapté aux tablettes et aux appareils plus grands, mais il n’est pas recommandé, car il réduit les performances et la qualité.

  4. Remplacez YOUR_PLACEMENT_ID par la chaîne représentant votre ID de placement. Si vous n’avez pas d’ID de placement ou que vous ne savez pas comment en obtenir un, consultez le Guide de démarrage. Choisissez Appareil en tant que cible de version, puis exécutez le code ci-dessus. Vous devriez voir une fenêtre comme celle-ci :



Lorsque vous diffusez des publicités dans le simulateur, basculez le paramètre sur le mode de test pour afficher les publicités tests. Pour en savoir plus, consultez la section Comment utiliser le mode Test.

Étape 2 : vérifier l’enregistrement de l’impression et du clic

Vous avez également la possibilité d’ajouter les fonctions suivantes pour gérer les cas où la publicité est close ou lorsque l’utilisateur·ice décide de cliquer dessus :

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.");
}

Étape 3 : processus de débugage lorsque la publicité n’apparaît pas

Ajoutez et implémentez les deux fonctions déléguées suivantes dans votre contrôleur de vue pour gérer les échecs de chargement de la publicité :

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];
  }
}

Lorsqu’il n’y a aucune publicité à afficher, adView:didFailWithError: est appelé, accompagné du error.code1001. Si vous utilisez votre propre couche de médiation ou de rapport personnalisée, nous vous conseillons de vérifier la valeur du code et de détecter ce cas. Vous pouvez utiliser un autre réseau publicitaire dans ce cas, mais ne renvoyez pas de demande de publicité immédiatement après.


Étapes suivantes

  • Découvrez nos exemples de code qui montrent le fonctionnement des publicités natives. L’exemple NativeAdSample fait partie du SDK et se situe dans le dossier FBAudienceNetwork/samples. Ouvrez le projet avec Xcode, et lancez-le sur un appareil ou sur le simulateur.