Как управлять событиями кликов пользователей

В этом руководстве рассказывается, как настроить переход по клику в IMA SDK. Переход по клику – это процесс, в ходе которого пользователь нажимает на объявление и попадает на его целевую страницу. В примерах из этого руководства показано, как настроить открытие целевой страницы и отслеживать события, связанные с ее посещением.

Требования

Приложение для iOS с реализованным IMA SDK.

Настройка перехода по клику

IMA SDK позволяет открывать целевые страницы объявлений двумя способами: во встроенном браузере или в Safari. По умолчанию SDK открывает страницы в Safari. Чтобы обновить SDK и использовать встроенный браузер, вам понадобится 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;
}
Настроив экземпляр IMAAdsRenderingSettings, вы можете передать его в метод инициализации IMAAdsManager:

Swift

self.adsManager.initialize(withAdsRenderingSettings: adsRenderingSettings);

Objective-C

[self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings];
IMA SDK предоставляет IMALinkOpenerDelegate, чтобы сообщать, когда пользователь собирается перейти на целевую страницу или только что закрыл ее. Чтобы использовать этот делегат, добавьте его в список делегатов в заголовке и реализуйте его методы. В заголовке:

Swift

class ViewController: UIViewController, IMALinkOpenerDelegate {

Objective-C

@interface ViewController : UIViewController<IMALinkOpenerDelegate>
При реализации:

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