Das Google Mobile Ads SDK unterstützt auch benutzerdefinierte Designs. Wenn Ihre App Google Mobile Ads SDK bereits verwendet wird, sollten Sie das SDK Version des AFSMA SDK .
Vorbereitung
- Verwenden Sie Xcode 8.0 oder höher.
- Ausrichtung auf iOS 8.0 oder höher
- Ein gültiger Code der Web-Property des Publishers (z.B. vert-ppa-test1-srp)
- CocoaPods
AFS Native SDK importieren
CocoaPods
Importieren Sie das Google-AFSNative SDK mithilfe von CocoaPods Öffnen Sie das Podfile und fügen Sie diese Zeile dem Ziel Ihrer Anwendung hinzu:
pod 'Google-AFSNative'
Führen Sie dann in der Befehlszeile folgenden Befehl aus:
pod install --repo-update
Wenn du CocoaPods noch nicht kennst, schau dir ihre offizielle Dokumentation für weitere Informationen wie Podfiles erstellt und verwendet werden.
Übersicht
Wenn Sie ein Upgrade von Version 2.0.8 oder früher auf Version 4.0 oder höher durchführen, lesen Sie bitte den Abschnitt Migrationsanleitung.
In diesem Dokument wird die Integration von nativen AFS-Anzeigen beschrieben. in der mobilen iOS-App.
- Der
GANSearchAdController
-Konstruktor muss den Wert Web-Property-Code des Publishers, gewünschte Einstellungs-ID und zugehörigeGANSearchAdControllerOptions
-Objekt. - Bei jedem Aufruf von
loadAds()
wird eine neue Suche ausgelöst und die aktuelle Anzeigen, die verworfen und ungültig gemacht werden sollen. - Anzeigen-Creatives werden in
GANAdView
gespeichert. - Anzeigen werden mit der Methode
populateAdView
in die AnzeigeGANAdView
eingefügt. In Neben demGANAdView
, das eingefügt werden soll, stellt der Aufrufer einadIdentifier
: Dabei handelt es sich um einen beliebigen String, mit dem die Anzeige eindeutig identifiziert werden kann. Innerhalb der API wird jedem übergebenen adIdentifier eine spezifische Anzeige zugewiesen. . Immer, wenn dieser adKey in Zukunft erneut übergeben wird, wird dieselbe Anzeige zurückgegeben. Wenn z. B.populateAdView
zum ersten Mal mit adIdentifier "keyA" verwendet, wird bei jedem nachfolgenden Aufruf vonpopulateAdView
während der Übergabe „SchlüsselA“ daadIdentifier
dazu führt, dass dieselbe Anzeige gezeigt wird.
- Dies ist die UIView, die das Anzeigen-Creative enthält.
- Diese Ansicht mit der Methode
populateAdView
auf demGANSearchAdController
.
- Übergeben Sie dieses Objekt an den
GANSearchAdController
-Konstruktor, um das Objekt anzugeben: wie Anzeigen angefordert und angezeigt werden.
- Rufen Sie damit die Methode
loadAds
für die InstanzGANSearchAdController
auf. für eine Anzeigenanfrage.
- Implementieren Sie diese Schnittstelle und stellen Sie sie dem
GANSearchAdController
zur Verfügung, um registriert Callbacks für mehrere Zustände.
Beispielimplementierung
Im folgenden Beispiel sehen Sie, wie Sie einen GANSearchAdController
und einen GANView
erstellen, um eine Anzeige in einem Beispiel-ViewController
auszuliefern.
// SampleAppViewController.m implementation
#import <AFSNative/AFSNative.h>
@interface GBannerViewController () {
// The Ad Controller used by the sample application.
GANSearchAdController *_adController;
// The Ad View to display the loaded ad.
GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...
- (void)viewDidLoad {
[super viewDidLoad];
// Create the scroll view.
...
[self.view addSubview:scrollView];
// Create a test button and link the ad request to its action.
UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
...
[loadBannerButton addTarget:self
action:@selector(loadAd:)
forControlEvents:UIControlEventTouchUpInside];
[self.scrollView addSubview:loadBannerButton];
// Construct the Ad Controller.
GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
options.prefetchEnabled = YES;
options.adType = GANSearchAdTypeSPA;
options.adFetchCount = 3;
_adController = [[GANSearchAdController alloc]
initWithPublisherID: @"your-client-id"
styleID: @"your-settings-id"
options: options
delegate: self];
_adView = [_adController adView];
[self.scrollView addSubview:_adView];
}
// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
// Construct the Ad Request.
GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
adRequest.query = @"some-query";
// Start loading ads. Note that the loading is asynchronous.
[_adController loadAds: adRequest];
}
// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController
didLoadAds:(NSInteger)numberOfAds {
if (numberOfAds <= 0) {
NSLog(@"No ads found on the server");
} else {
[_adController populateAdView:_adView identifier:@"demoAd"];
}
}
...