Native Anzeigen

Plattform auswählen:Android iOS Flutter Unity

Native Anzeigen sind Anzeigen-Assets, die Nutzern über plattformspezifische UI-Komponenten präsentiert werden. Sie werden mit denselben Klassen dargestellt, die Sie bereits in Ihren Storyboards verwenden, und können so formatiert werden, dass sie mit dem visuellen Design Ihrer App übereinstimmen.

Wenn eine native Anzeige geladen wird, erhält Ihre App ein Anzeigenobjekt, das die Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Darstellung der Assets verantwortlich.

Die Implementierung nativer Anzeigen lässt sich in zwei Teile unterteilen: Laden einer Anzeige mit dem SDK und Anzeigen des Anzeigeninhalts in Ihrer App.

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

Vorbereitung

Immer Testanzeigen verwenden

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen.

Am einfachsten lassen sich Testanzeigen mit unserer speziellen Testanzeigenblock-ID für native Anzeigen unter iOS laden:

ca-app-pub-3940256099942544/3986624511

Sie ist speziell dafür konfiguriert, für jede Anfrage Testanzeigen zurückzugeben. Sie können sie in Ihren eigenen Apps verwenden, während Sie Code schreiben, testen und debuggen. Denken Sie daran, die ID vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID zu ersetzen.

Weitere Informationen zur Funktionsweise von Testanzeigen im Google Mobile Ads SDK finden Sie unter Testanzeigen.

Anzeigen laden

Native Anzeigen werden mit der Klasse GADAdLoader geladen, die Nachrichten gemäß dem Protokoll GADAdLoaderDelegate an ihre Delegates sendet.

Ad Loader initialisieren

Bevor Sie eine Anzeige laden können, müssen Sie den Anzeigenlader initialisieren. Der folgende Code zeigt, wie Sie ein GADAdLoader initialisieren:

Swift

adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    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 Sie im adTypes-Array übergeben, um anzugeben, welche nativen Formate Sie anfordern möchten, und alle Optionen, die Sie im Parameter options festlegen möchten. Eine Liste der möglichen Werte für den Parameter options finden Sie auf der Seite Optionen für native Anzeigen festlegen.

Das adTypes-Array sollte diese Konstante enthalten :

Ad Loader-Delegate implementieren

Das Ad Loader-Delegate muss Protokolle implementieren, die für Ihren Anzeigentyp spezifisch sind. Beim GADNativeAdLoaderDelegate-Protokoll für native Anzeigen wird eine Nachricht an den Delegaten gesendet, wenn eine native Anzeige geladen wurde.

Swift

public func adLoader(_ adLoader: AdLoader,
            didReceive nativeAd: NativeAd)

Objective-C

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

Anzeigenanfrage senden

Nachdem Sie GADAdLoader initialisiert haben, rufen Sie die zugehörige loadRequest:-Methode auf, um eine Anzeige anzufordern:

Swift

adLoader.load(Request())

Objective-C

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

Die Methode loadRequest: in GADAdLoader akzeptiert dieselben GADRequest-Objekte wie Banner und Interstitials. 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 einzigen Anfrage laden möchten, legen Sie das GADMultipleAdsAdLoaderOptions-Objekt beim Initialisieren eines GADAdLoader fest.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    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"
    // The UIViewController parameter is nullable.
    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 angeforderte Anzahl von Anzeigen zurückgibt.

Die zurückgegebenen Google-Anzeigen unterscheiden sich alle voneinander. Anzeigen aus reserviertem Inventar oder von Drittanbieterkäufern sind jedoch nicht garantiert eindeutig.

Verwenden Sie die Klasse GADMultipleAdsAdLoaderOptions nicht, wenn Sie Vermittlung verwenden, da Anfragen für mehrere native Anzeigen derzeit nicht für Anzeigenblock-IDs funktionieren, die für die Vermittlung konfiguriert wurden.

Ermitteln, wann das Laden abgeschlossen ist

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

Bei einer Anfrage für eine einzelne Anzeige wird eine dieser Methoden aufgerufen.

Eine Anfrage für mehrere Anzeigen führt zu mindestens einem Callback an die oben genannten Methoden, aber nicht mehr als die maximale Anzahl der angeforderten Anzeigen.

Außerdem bietet GADAdLoaderDelegate den adLoaderDidFinishLoading-Callback. Diese Delegatenmethode gibt an, dass ein Ad Loader das Laden von Anzeigen abgeschlossen hat und für die Anfrage keine weiteren Anzeigen oder Fehler gemeldet werden. Hier ist ein Beispiel für die Verwendung beim gleichzeitigen Laden mehrerer nativer Anzeigen:

Swift

class ViewController: UIViewController, NativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = MultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

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

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

  func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
    // 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"
      // The UIViewController parameter is nullable.
      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

Umgang mit fehlgeschlagenen Anfragen

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: AdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

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

Benachrichtigungen zu Ereignissen für native Anzeigen erhalten

Wenn Sie über Ereignisse im Zusammenhang mit nativen Anzeigenbenutzerinteraktionen benachrichtigt werden möchten, legen Sie die Delegate-Eigenschaft der nativen Anzeige fest:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Implementieren Sie dann GADNativeAdDelegate, um die folgenden Delegatenaufrufe zu erhalten:

Swift

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

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

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

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

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

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // 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

Beachten Sie beim Laden von Anzeigen die folgenden Regeln.

  • Bei Apps, in denen Native Ads in einer Liste verwendet werden, sollte die Liste der Anzeigen vorab im Cache gespeichert werden.

  • Wenn Sie Anzeigen vorab im Cache speichern, leeren Sie den Cache und laden Sie die Seite nach einer Stunde neu.

  • Rufen Sie loadRequest: für ein GADAdLoader erst wieder auf, wenn die vorherige Anfrage geladen wurde. Das wird durch adLoaderDidFinishLoading: angezeigt.

  • Beschränken Sie das Caching nativer Anzeigen auf das, was wirklich benötigt wird. Beim Pre-Caching sollten Sie beispielsweise nur die Anzeigen im Cache speichern, die sofort auf dem Bildschirm sichtbar sind. Native Anzeigen haben einen großen Speicherbedarf. Wenn Sie native Anzeigen im Cache speichern, ohne sie zu zerstören, führt das zu einer übermäßigen Speichernutzung.

  • Native Anzeigen zerstören, wenn sie nicht mehr verwendet werden.

Anzeige schalten

Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch Ihren Nutzern präsentieren. Hier finden Sie eine Anleitung.