El SDK de anuncios de Google para dispositivos móviles también admite estilos del anuncio de búsqueda personalizados. Si tu app ya usa el SDK de anuncios de Google para dispositivos móviles, te recomendamos que utilices la versión del SDK de AFSMA en su lugar.
Requisitos previos
- Usa Xcode 8.0 o una versión más reciente
- Orientación a iOS 8.0 o versiones posteriores
- Un código de propiedad web del publicador válido (p.ej., vert-ppa-test1-srp)
- CocoaPods
Importa el SDK nativo de AFS
CocoaPods
Importa el SDK nativo de Google-AFS a un proyecto de iOS con CocoaPods. Abre el archivo Podfile de tu proyecto y agrega esta línea al destino de tu app:
pod 'Google-AFSNative'
Luego, desde la línea de comandos, ejecuta lo siguiente:
pod install --repo-update
Si es la primera vez que usas CocoaPods, consulta su documentación oficial para obtener información sobre cómo crear y usar Podfiles.
Descripción general
Si actualizas desde la versión 2.0.8 o una anterior a una posterior, consulta nuestra guía de migración.
En este documento, se describe el proceso de integración de anuncios nativos de AFS en tu app para dispositivos móviles para iOS.
- Se debe proporcionar el código de propiedad web del publicador, el ID de configuración deseado y el objeto
GANSearchAdControllerOptions
asociado al constructorGANSearchAdController
. - Cada llamada a
loadAds()
indica una búsqueda nueva, lo que hará que el conjunto actual de anuncios se descarte y se invalide. - Las creatividades de los anuncios se almacenan en
GANAdView
. - Los anuncios se insertan en el anuncio
GANAdView
con el métodopopulateAdView
. Además delGANAdView
que se propagará, el llamador proporciona unadIdentifier
, que es una string arbitraria que debe identificar el anuncio de manera única. Dentro de la API, se asigna un anuncio específico a cada adIdentifier que se pasa. Luego, cada vez que se vuelva a pasar esa adKey en el futuro, se mostrará el mismo anuncio. Por ejemplo, si se llama apopulateAdView
por primera vez con adIdentifier "keyA", cada llamada posterior apopulateAdView
mientras se pasa "keyA" comoadIdentifier
, se mostrará el mismo anuncio.
- Esta es la UIView que contiene la creatividad del anuncio.
- Propaga esta vista con un anuncio mediante el método
populateAdView
enGANSearchAdController
.
- Pasa este objeto al constructor
GANSearchAdController
para especificar el comportamiento de cómo se solicitan y muestran los anuncios.
- Llama al método
loadAds
en la instanciaGANSearchAdController
con este objeto para realizar una solicitud de anuncio.
- Implementa esta interfaz y proporciónala a
GANSearchAdController
a fin de registrar devoluciones de llamada para varios estados.
Ejemplo de implementación
En el siguiente ejemplo, se muestra cómo crear un GANSearchAdController
y un GANView
para mostrar un anuncio en un ViewController
de muestra.
// 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"];
}
}
...