Native Anzeigen sind Anzeigen-Assets, die Nutzern über UI-Komponenten präsentiert werden, die für die Plattform nativ sind. Sie werden mit denselben Klassen dargestellt, die Sie bereits in Ihren Storyboards verwenden. Außerdem können sie so formatiert werden, dass sie mit dem visuellen Design Ihrer App übereinstimmen.
Wenn eine native Anzeige geladen wird, erhält Ihre App ein Anzeigenobjekt mit den zugehörigen Assets. Die Anzeige wird dann von der App und nicht vom Google Mobile Ads SDK ausgeliefert.
Die Implementierung nativer Anzeigen umfasst im Wesentlichen zwei Schritte: das Laden einer Anzeige über das SDK und das anschließende Präsentieren des Anzeigeninhalts in Ihrer App.
Auf dieser Seite erfahren Sie, wie Sie mit dem SDK native Anzeigen laden.
Vorbereitung
- Führen Sie die Schritte im Startleitfaden aus.
Verwenden Sie immer Testanzeigen
Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen anstelle von aktiven Produktionsanzeigen.
Am einfachsten lassen sich Testanzeigen laden, wenn Sie die spezielle Test-Anzeigenblock-ID für native Anzeigen auf iOS-Geräten verwenden:
ca-app-pub-3940256099942544/3986624511
Es wurde speziell so konfiguriert, dass für jede Anfrage Testanzeigen zurückgegeben werden. Sie können es in Ihren eigenen Apps verwenden, während Sie Code schreiben, testen und Fehler beheben. Ersetzen Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID.
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 Delegierten sendet.
Anzeigen-Ladeprogramm initialisieren
Bevor Sie eine Anzeige laden können, müssen Sie den Anzeigen-Lademechanismus initialisieren.
Im folgenden Code wird gezeigt, wie ein GADAdLoader
initialisiert wird:
Swift
adLoader = GADAdLoader(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 angefordert werden sollen, 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 Einstellungen für native Anzeigen festlegen.
Das adTypes
-Array sollte diese Konstante enthalten :
Anzeigen-Lade-Delegierten implementieren
Der Anzeigen-Lade-Delegierte muss Protokolle implementieren, die für Ihren Anzeigentyp spezifisch sind.
Bei nativen Anzeigen enthält das GADNativeAdLoaderDelegate
-Protokoll eine Nachricht, die an den Delegaten 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
Rufen Sie nach der Initialisierung von GADAdLoader
die loadRequest:
-Methode auf, um eine Anzeige anzufordern:
Swift
adLoader.load(GADRequest())
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 Informationen zum Targeting 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 fest, wenn Sie ein GADAdLoader
initialisieren.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(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 kann nicht garantiert werden, dass das SDK genau die angeforderte Anzahl von Anzeigen zurückgibt.
Zurückgegebene Google-Anzeigen unterscheiden sich alle voneinander. Anzeigen aus reserviertem Inventar oder von Drittanbietern sind jedoch nicht garantiert einzigartig.
Verwenden Sie die Klasse GADMultipleAdsAdLoaderOptions
nicht, wenn Sie die Vermittlung verwenden, da Anfragen für mehrere native Anzeigen derzeit nicht für Anzeigenblock-IDs funktionieren, die für die Vermittlung konfiguriert wurden.
Feststellen, ob der Ladevorgang abgeschlossen ist
Nachdem eine App loadRequest:
aufgerufen hat, kann sie die Ergebnisse der Anfrage mithilfe von Aufrufen von folgenden Methoden abrufen:
adLoader:didFailToReceiveAdWithError:
inGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
inGADNativeAdLoaderDelegate
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 Rückruf an die oben genannten Methoden, jedoch nicht mehr als zur maximal angeforderten Anzahl von Anzeigen.
Außerdem bietet GADAdLoaderDelegate
den adLoaderDidFinishLoading
-Callback. Diese Delegating-Methode gibt an, dass ein Anzeigen-Ladeprogramm das Laden von Anzeigen abgeschlossen hat und keine weiteren Anzeigen oder Fehler für die Anfrage gemeldet werden. Hier ein Beispiel für die Verwendung beim gleichzeitigen Laden mehrerer nativer Anzeigen:
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",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
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"
// 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.
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
Wenn Sie über Ereignisse informiert werden möchten, die sich auf die Interaktionen mit der nativen Anzeige beziehen, legen Sie die Delegating-Eigenschaft der nativen Anzeige fest:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Implementieren Sie dann GADNativeAdDelegate
, um die folgenden delegierten 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
Beachten Sie beim Laden von Anzeigen die folgenden Regeln.
In Apps, in denen native Anzeigen 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.
Rufe
loadRequest:
für eineGADAdLoader
erst wieder auf, wenn die vorherige Anfrage vollständig geladen wurde, was durchadLoaderDidFinishLoading:
angezeigt wird.Beschränken Sie das Caching nativer Anzeigen auf das Notwendige. Beim Pre-Caching sollten beispielsweise nur die Anzeigen im Cache gespeichert werden, die sofort auf dem Bildschirm zu sehen sind. Native Anzeigen belegen viel Arbeitsspeicher. Wenn sie im Cache gespeichert werden, ohne gelöscht zu werden, führt das zu einer übermäßigen Arbeitsspeichernutzung.
Native Anzeigen löschen, wenn sie nicht mehr verwendet werden.
Anzeige schalten
Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch Ihren Nutzern präsentieren. Weitere Informationen finden Sie in unserem erweiterten Leitfaden zu nativen Anzeigen.