Interstitial Ads zu einer iOS-App hinzufügen

Mit dem Audience Network kannst du deine iOS-Apps mit Facebook-Werbeanzeigen monetarisieren. Eine Interstitial Ad ist eine Werbeanzeige im Vollbildmodus, die du in deiner App anzeigen kannst. Befolge die Schritte in diesem Leitfaden, um diese Werbeeinheit zu verwenden. Falls du mehr über andere Arten von Werbeeinheiten erfahren möchtest, findest du hier eine Liste der verfügbaren Arten.

Hier implementieren wir die folgende Interstitial Ad-Platzierung.



Schritt 1: Interstitial Ad-Ansicht laden und anzeigen

Schritt 2: Impressionen bestätigen und Klicks aufzeichnen

Schritt 3: Debuggen, wenn die Werbeanzeige nicht gezeigt wird

Schritt 4: Integration der Werbeanzeige testen

Schritt 1: Interstitial Ad-Ansicht laden und anzeigen

Stelle sicher, dass du die Leitfäden zu den ersten Schritten mit dem Audience Network und mit iOS abgeschlossen hast, bevor du fortfährst.

  1. Nachdem du ein neues Projekt aus dem iOS-Leitfaden „Erste Schritte“ erstellt hast, importiere FBAudienceNetwork, deklariere, dass ViewController das FBInterstitialAdDelegate-Protokoll implementiert, und füge eine Instanzvariable für die Interstitial Ad-Einheit hinzu.
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBInterstitialAdDelegate {
      private var interstitialAd: FBInterstitialAd?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBInterstitialAdDelegate>
    @property (nonatomic, strong) FBInterstitialAd *interstitialAd;
    @end

  2. Als Nächstes instanziierst du das Werbeanzeigenobjekt in der viewDidLoad-Methode des Anzeige-Controllers und implementierst interstitialAdDidLoad.
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an InterstitialAd object.
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it 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 interstitialAd = FBInterstitialAd(placementID: "YOUR_PLACEMENT_ID")
      interstitialAd.delegate = self
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      interstitialAd.load()
      
      self.interstitialAd = interstitialAd
    }
    
    func interstitialAdDidLoad(_ interstitialAd: FBInterstitialAd) {
      guard interstitialAd.isAdValid else {
        return
      }
      print("Ad is loaded and ready to be displayed")
      interstitialAd.show(fromRootViewController: self)
    }
    - (void)viewDidLoad 
    {
      [super viewDidLoad];
    
      // Instantiate an InterstitialAd object. 
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it 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.interstitialAd = [[FBInterstitialAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];
    
      self.interstitialAd.delegate = self;
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      [self.interstitialAd loadAd];
    }
    
    - (void)interstitialAdDidLoad:(FBInterstitialAd *)interstitialAd
    {
      NSLog(@"Ad is loaded and ready to be displayed");
    
      if (interstitialAd && interstitialAd.isAdValid) {
        // You can now display the full screen ad using this code:
        [interstitialAd showAdFromRootViewController:self];
      }
    }

  3. Die ID, die bei YOUR_PLACEMENT_ID angezeigt wird, ist eine temporäre ID ausschließlich für Testzwecke.

    Wenn du diese temporäre ID in deinem Live-Code verwendest, erhalten deine Nutzer*innen keine Werbeanzeigen (sondern den Fehler Nichterfüllung). Du musst nach dem Testen hierher zurückkehren und diese temporäre ID durch eine Live-Placement-ID ersetzen.

    Informationen dazu, wie du eine Live-Placement-ID generierst, findest du unter Audience Network-Setup.

    Wähle dein Gerät als Build-Ziel aus und führe den oben angegebenen Code aus. Das Ergebnis sollte in etwa wie folgt aussehen:

Wenn du Anzeigen im Simulator schaltest, musst du die Einstellung auf „Testmodus“ festlegen, um Testwerbeanzeigen anzuzeigen. Weitere Informationen findest du unter Verwendung des Testmodus.

Rufe loadAd nicht für FBInterstitialAd auf, während die Werbeanzeige auf dem Bildschirm angezeigt wird. Wenn du ein weiteres FBInterstitialAd für die zukünftige Verwendung laden musst, kannst du dies tun, nachdem der*die Nutzer*in das aktuelle geschlossen hat, beispielsweise im interstitialAdDidClose-Callback.

Schritt 2: Impression bestätigen und Klicks aufzeichnen

Du kannst optional die folgenden Funktionen hinzufügen, für den Fall, dass die Werbeanzeige von Nutzern angezeigt, angeklickt oder geschlossen wird.

func interstitialAdWillLogImpression(_ interstitialAd: FBInterstitialAd) {
  print("The user sees the ad")
  // Use this function as indication for a user's impression on the ad.
}

func interstitialAdDidClick(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the ad and will be taken to its destination")
  // Use this function as indication for a user's click on the ad.
}

func interstitialAdWillClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}

func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}
- (void)interstitialAdWillLogImpression:(FBInterstitialAd *)interstitialAd 
{
  NSLog(@"The user sees the ad");
  // Use this function as indication for a user's impression on the ad.
}

- (void)interstitialAdDidClick:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the ad and will be taken to its destination");
  // Use this function as indication for a user's click on the ad.
}

- (void)interstitialAdWillClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the close button, the ad is just about to close");
  // Consider to add code here to resume your app's flow
}

- (void)interstitialAdDidClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"Interstitial had been closed");
  // Consider to add code here to resume your app's flow
}

Schritt 3: Debuggen, wenn die Werbeanzeige nicht gezeigt wird

Füge in der Implementierungsdatei deines Anzeige-Controllers die folgende Funktion hinzu und implementiere sie, um mit Fehlern beim Laden von Werbeanzeigen umzugehen.

func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
  print("Interstitial ad failed to load with error: \(error.localizedDescription)")
}
- (void)interstitialAd:(FBInterstitialAd *)interstitialAd didFailWithError:(NSError *)error
{
  NSLog(@"Interstitial ad failed to load with error: %@", error);
}

Wenn es keine Werbeanzeige zum Anzeigen gibt, wird interstitialAd:didFailWithError: mit error.code (festgelegt auf 1001) aufgerufen. Wenn du deine eigene Berichts- oder Mediationsebene verwendest, solltest du den Codewert prüfen und diesen Fall erkennen. Du kannst in diesem Fall auf ein anderes Werbeanzeigennetzwerk zurückgreifen, aber fordere danach nicht sofort eine neue Werbeanzeige an.

Nächste Schritte

  • Sieh dir unsere Codebeispiele für die Verwendung von Native Ads an. Die NativeAdSample steht als Teil des SDK zur Verfügung und befindet sich im Ordner FBAudienceNetwork/samples. Öffne das Projekt mit Xcode und führe es auf einem Gerät oder Simulator aus.