Native Anzeigen

Native Anzeigen sind Anzeigen-Assets, die Nutzern über UI-Komponenten präsentiert werden, die für die Plattform nativ sind. Sie werden mit den Klassen angezeigt, die Sie bereits für Ihre Storyboards verwenden, und können an das visuelle Design Ihrer App angepasst werden.

Beim Laden einer nativen Anzeige erhält Ihre App ein Anzeigenobjekt, das seine Assets enthält, und die App – und nicht das Google Mobile Ads SDK – ist dann für die Auslieferung der Assets zuständig.

Im Großen und Ganzen umfasst die Implementierung nativer Anzeigen zwei Schritte: das Laden einer Anzeige mithilfe des SDK und das anschließende Einblenden des Anzeigeninhalts in Ihrer App.

Auf dieser Seite wird beschrieben, wie Sie mit dem SDK native Anzeigen laden.

Voraussetzungen

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen und keine Liveanzeigen.

Testanzeigen lassen sich am einfachsten mit unserer speziellen Test-ID für Anzeigenblöcke für native Anzeigen auf iOS laden:

ca-app-pub-3940256099942544/3986624511

Sie wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie einfach durch Ihre eigene Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.

Weitere Informationen zur Funktionsweise der Testanzeigen des Google Mobile Ads SDK finden Sie unter Anzeigen testen.

Anzeigen laden

Native Anzeigen werden mit der Klasse GADAdLoader geladen, die Nachrichten gemäß dem GADAdLoaderDelegate-Protokoll an ihre Bevollmächtigten senden.

Anzeigenladeprogramm initialisieren

Bevor Sie eine Anzeige laden können, müssen Sie das Anzeigenladeprogramm initialisieren. Der folgende Code zeigt, wie ein GADAdLoader initialisiert wird:

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Sie benötigen eine Anzeigenblock-ID (Sie können die Test-ID verwenden), Konstanten, die an das adTypes-Array übergeben werden, um anzugeben, welche nativen Formate Sie anfordern möchten, sowie alle Optionen, die Sie im Parameter options festlegen möchten. Die Liste der möglichen Werte für den Parameter options finden Sie auf der Seite Optionen für native Anzeigen festlegen.

Das Array adTypes sollte diese Konstante enthalten:

Ad Loader-Delegaten implementieren

Der Ad Loader Delegate muss spezifische Protokolle für Ihren Anzeigentyp implementieren. Bei nativen Anzeigen enthält das GADNativeAdLoaderDelegate-Protokoll eine Nachricht, die an den Bevollmächtigten gesendet wird, wenn eine native Anzeige geladen wurde.

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

Anzeigenanfrage senden

Sobald die GADAdLoader initialisiert ist, rufen Sie ihre loadRequest:-Methode auf, um eine Anzeige anzufordern:

Swift

adLoader.load(GADRequest())

Objective-C

[self.adLoader loadRequest:[GADRequest request]];

Für die Methode loadRequest: in GADAdLoader werden dieselben GADRequest-Objekte wie für Banner und Interstitials akzeptiert. Sie können Anfrageobjekte verwenden, um Targeting-Informationen hinzuzufügen, genau wie bei anderen Anzeigentypen.

Mehrere Anzeigen laden (optional)

Wenn Sie mehrere Anzeigen in einer einzelnen Anfrage laden möchten, legen Sie beim Initialisieren einer GADAdLoader das Objekt GADMultipleAdsAdLoaderOptions fest.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

Die Anzahl der Anzeigen pro Anfrage ist auf fünf begrenzt. Es ist nicht garantiert, dass das SDK genau die Anzahl der angeforderten Anzeigen zurückgibt.

Die zurückgegebenen Google Anzeigen unterscheiden sich alle voneinander. Es kann jedoch nicht garantiert werden, dass Anzeigen von reserviertem Inventar oder von Drittanbieterkäufern eindeutig sind.

Die Klasse GADMultipleAdsAdLoaderOptions sollte nicht zusammen mit der Vermittlung genutzt werden, da Anfragen für mehrere native Anzeigen derzeit nicht für Anzeigenblock-IDs funktionieren, die für die Vermittlung konfiguriert wurden.

Feststellen, wann der Ladevorgang abgeschlossen ist

Nachdem eine Anwendung loadRequest: aufgerufen hat, kann sie die Ergebnisse der Anfrage mit folgenden Aufrufen abrufen:

Eine Anfrage für eine einzelne Anzeige führt zu einem Aufruf einer dieser Methoden.

Eine Anfrage für mehrere Anzeigen führt zu mindestens einem Callback der oben genannten Methoden, aber nicht mehr als die maximal zulässige Anzahl von angeforderten Anzeigen.

Außerdem bietet GADAdLoaderDelegate den adLoaderDidFinishLoading-Callback. Diese Delegate-Methode zeigt an, dass ein Anzeigenladeprogramm das Laden von Anzeigen abgeschlossen hat und keine weiteren Anzeigen oder Fehler für die Anfrage gemeldet werden. Hier sehen Sie ein Beispiel, wie Sie es beim gleichzeitigen Laden mehrerer nativer Anzeigen verwenden können:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
       didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Fehlgeschlagene Anfragen verarbeiten

Die oben genannten Protokolle erweitern das GADAdLoaderDelegate-Protokoll, das eine Nachricht definiert, die gesendet wird, wenn Anzeigen nicht geladen werden können.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Benachrichtigungen zu Ereignissen für native Anzeigen erhalten

Um über Ereignisse im Zusammenhang mit Interaktionen mit nativen Anzeigen informiert zu werden, legen Sie die Eigenschaft "Delegate" der nativen Anzeige fest:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Implementieren Sie dann GADNativeAdDelegate, um die folgenden Delegate-Aufrufe zu erhalten:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Best Practices

Halten Sie sich beim Laden von Anzeigen an die folgenden Regeln.

  • Bei Apps, die native Anzeigen in einer Liste verwenden, sollte die Liste der Anzeigen vorab im Cache gespeichert werden.

  • Leeren Sie beim Speichern von Anzeigen den Cache und laden Sie sie nach einer Stunde neu.

  • Rufen Sie loadRequest: für ein GADAdLoader erst dann wieder auf, wenn die vorherige Anfrage geladen wurde, wie durch adLoaderDidFinishLoading: angegeben.

Anzeige einblenden

Nachdem Sie eine Anzeige geladen haben, muss sie nur noch den Nutzern präsentiert werden. Weitere Informationen finden Sie in unserem Leitfaden für erweiterte native Anzeigen.