Controlar eventos de clique do usuário

Este guia explica como implementar mais controle sobre o clique na sua implementação do SDK do IMA. "Clique" se refere ao processo de um usuário clicar em um anúncio e acessar a página de destino dele. Os exemplos neste guia demonstram como configurar onde essa página de destino é aberta e como detectar eventos relacionados a usuários que visitam essa página.

Pré-requisitos

Um aplicativo iOS com o SDK do IMA implementado.

Como configurar o clique

O SDK do IMA oferece duas opções para abrir páginas de destino de anúncios: por um navegador no app ou pelo Safari. Por padrão, o SDK abre páginas usando o Safari. Para atualizar o SDK para usar um navegador no app, use 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;
}
Depois de configurar a instância do IMAAdsRenderingSettings, é possível transmiti-la ao método de inicialização IMAAdsManager:

Swift

self.adsManager.initialize(withAdsRenderingSettings: adsRenderingSettings);

Objective-C

[self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings];
O SDK do IMA fornece o IMALinkOpenerDelegate para comunicar quando o usuário está prestes a ver ou acabou de fechar uma página de clique. Para usar esse delegado, adicione-o à lista de delegados no cabeçalho e implemente os métodos dele. No cabeçalho:

Swift

class ViewController: UIViewController, IMALinkOpenerDelegate {

Objective-C

@interface ViewController : UIViewController<IMALinkOpenerDelegate>
E na implementação:

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