Cómo controlar los eventos de clic del usuario

En esta guía, se explica cómo implementar más control sobre el clic en tu implementación del SDK de IMA. El término "clics" hace referencia al proceso en el que un usuario hace clic en un anuncio y llega a la página de destino de ese anuncio. En los ejemplos de esta guía, se muestra cómo configurar dónde se abre esa página de destino y cómo detectar eventos relacionados con los usuarios que visitan esa página.

Requisitos previos

Una aplicación para iOS con el SDK de IMA implementado

Cómo configurar el clic

El SDK de IMA ofrece dos opciones para abrir páginas de destino de anuncios: a través de un navegador integrado en la aplicación o a través de Safari. De forma predeterminada, el SDK abre páginas con Safari. Para actualizar el SDK y usar un navegador integrado en la app, debes usar IMAAdsRenderingSettings:

Swift

func createAdsRenderingSettings() {
  self.adsRenderingSettings = IMAAdsRenderingSettings();
  self.adsRenderingSettings.linkOpenerDelegate = self;
  self.adsRenderingSettings.linkOpenerPresentingController = self;
}

Objective-C

- (void)createAdsRenderingSettings {
  self.adsRenderingSettings = [[IMAAdsRenderingSettings alloc] init];
  self.adsRenderingSettings.linkOpenerDelegate = self;
  self.adsRenderingSettings.linkOpenerPresentingController = self;
}
Una vez que hayas configurado la instancia IMAAdsRenderingSettings, puedes pasársela al método de inicialización IMAAdsManager:

Swift

self.adsManager.initialize(withAdsRenderingSettings: adsRenderingSettings);

Objective-C

[self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings];
El SDK de IMA proporciona el IMALinkOpenerDelegate para comunicarse cuando el usuario está a punto de ver o acaba de cerrar una página de clics. Para usar este delegado, agrégalo a tu lista de delegados en el encabezado y, luego, implementa sus métodos. En el encabezado:

Swift

class ViewController: UIViewController, IMALinkOpenerDelegate {

Objective-C

@interface ViewController : UIViewController<IMALinkOpenerDelegate>
Y en la implementación:

Swift

func linkOpenerWillOpen(externalBrowser: NSObject) {
  print("External browser will open.")
}

func linkOpenerWillOpen(inAppLink: NSObject) {
  print("In-app browser will open.")
}

func linkOpenerDidOpen(inAppLink: NSObject) {
  print("In-app browser did open.")
}

func linkOpenerWillClose(inAppLink: NSObject) {
  print("In-app browser will close.")
}

func linkOpenerDidClose(inAppLink: NSObject) {
  print("In-app browser did close.")
}

Objective-C

- (void)linkOpenerWillOpenExternalBrowser:(NSObject *)linkOpener {
  NSLog(@"External browser will open.");
}

- (void)linkOpenerWillOpenInAppBrowser:(NSObject *)linkOpener {
  NSLog(@"In-app browser will open.");
}

- (void)linkOpenerDidOpenInAppBrowser:(NSObject *)linkOpener {
  NSLog(@"In-app browser did open.");
}

- (void)linkOpenerWillCloseInAppBrowser:(NSObject *)linkOpener {
  NSLog(@"In-app browser will close.");
}

- (void)linkOpenerDidCloseInAppBrowser:(NSObject *)linkOpener {
  NSLog(@"In-app browser did close.");
}