Native AFS-Implementierung für iOS

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.

GANSearchAdController

  • Der GANSearchAdController-Konstruktor muss den Wert Web-Property-Code des Publishers, gewünschte Einstellungs-ID und zugehörige GANSearchAdControllerOptions-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 Anzeige GANAdView eingefügt. In Neben dem GANAdView, das eingefügt werden soll, stellt der Aufrufer ein adIdentifier: 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 von populateAdView während der Übergabe „SchlüsselA“ da adIdentifier dazu führt, dass dieselbe Anzeige gezeigt wird.

GANAdView

  • Dies ist die UIView, die das Anzeigen-Creative enthält.
  • Diese Ansicht mit der Methode populateAdView auf dem GANSearchAdController.

GANSearchAdControllerOptions

  • Übergeben Sie dieses Objekt an den GANSearchAdController-Konstruktor, um das Objekt anzugeben: wie Anzeigen angefordert und angezeigt werden.

GANSearchAdRequest

  • Rufen Sie damit die Methode loadAds für die Instanz GANSearchAdController auf. für eine Anzeigenanfrage.

GANSearchAdControllerDelegate

  • 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"];
  }
}
...