Native AFS-Implementierung für iOS

Das Google Mobile Ads SDK unterstützt auch benutzerdefinierte Designs. Wenn in Ihrer App bereits das Google Mobile Ads SDK verwendet wird, empfehlen wir stattdessen die Verwendung der AFSMA SDK-Version.

Voraussetzungen

  • Verwenden Sie Xcode 8.0 oder höher.
  • Ausrichtung auf iOS 8.0 oder höher
  • Gültiger Web-Property-Code des Publishers (z.B. vert-ppa-test1-srp)
  • CocoaPods

AFS Native SDK importieren

CocoaPods

Importieren Sie das Google-AFSNative SDK mithilfe von CocoaPods in ein iOS-Projekt. Öffnen Sie die Podfile-Datei Ihres Projekts und fügen Sie dem Ziel Ihrer Anwendung diese Zeile hinzu:

pod 'Google-AFSNative'

Führen Sie dann in der Befehlszeile folgenden Befehl aus:

pod install --repo-update

Wenn Sie CocoaPods noch nicht kennen, finden Sie in der offiziellen Dokumentation Informationen zum Erstellen und Verwenden von Podfiles.

Überblick

Wenn Sie ein Upgrade auf Version 4.0 oder höher von 2.0.8 oder niedriger ausführen, lesen Sie unsere Migrationsanleitung.

In diesem Dokument wird beschrieben, wie Sie native AFS-Anzeigen in Ihre mobile iOS-App einbinden.

GANSearchAdController

  • Der GANSearchAdController-Konstruktor muss den Web-Property-Code des Publishers, die gewünschte Einstellungs-ID und das zugehörige GANSearchAdControllerOptions-Objekt angeben.
  • Jeder Aufruf von loadAds() gibt eine neue Suche an, durch die der aktuelle Satz von Anzeigen verworfen und ungültig gemacht wird.
  • Anzeigen-Creatives werden in GANAdView gespeichert.
  • Anzeigen werden mit der Methode populateAdView in die Anzeige GANAdView eingefügt. Zusätzlich zum auszufüllenden GANAdView gibt der Aufrufer eine adIdentifier an. Dabei handelt es sich um einen beliebigen String, der die Anzeige eindeutig identifizieren soll. Innerhalb der API wird jedem übergebenen adIdentifier eine spezifische Anzeige zugewiesen. Bei jeder erneuten Übergabe dieses Schlüssels wird dieselbe Anzeige zurückgegeben. Wenn beispielsweise populateAdView zum ersten Mal mit adIdentifier „keyA“ aufgerufen wird, führt jeder nachfolgende Aufruf von populateAdView und die Übergabe von „keyA“ als adIdentifier dazu, dass dieselbe Anzeige ausgeliefert wird.

GANAdView

  • Dies ist die UIView, die das Anzeigen-Creative enthält.
  • Füllen Sie diese Ansicht mithilfe der Methode populateAdView im GANSearchAdController mit einer Anzeige.

GANSearchAdControllerOptions

  • Übergeben Sie dieses Objekt an den Konstruktor GANSearchAdController, um festzulegen, wie Anzeigen angefordert und ausgeliefert werden.

GANSearchAdRequest

  • Rufen Sie mit diesem Objekt die Methode loadAds für die Instanz GANSearchAdController auf, um eine Anzeigenanfrage zu senden.

GANSearchAdControllerDelegate

  • Implementieren Sie diese Schnittstelle und stellen Sie sie dem GANSearchAdController zur Verfügung, um Callbacks für verschiedene Status zu registrieren.

Implementierungsbeispiel

Im folgenden Beispiel sehen Sie, wie GANSearchAdController und GANView erstellt werden, um eine Anzeige in einer 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"];
  }
}
...