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

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

Предварительные условия

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

Настройка кликабельности

IMA SDK предлагает два варианта открытия целевых страниц рекламы — через браузер в приложении или через Safari. По умолчанию SDK открывает страницы с помощью Safari. Чтобы обновить SDK для использования браузера в приложении, вам необходимо использовать IMAAdsRenderingSettings :

Быстрый

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

Цель-C

- (void)createAdsRenderingSettings {
  self.adsRenderingSettings = [[IMAAdsRenderingSettings alloc] init];
  self.adsRenderingSettings.linkOpenerDelegate = self;
  self.adsRenderingSettings.linkOpenerPresentingController = self;
}
После настройки экземпляра IMAAdsRenderingSettings вы можете передать его методу инициализации IMAAdsManager :

Быстрый

self.adsManager.initialize(withAdsRenderingSettings: adsRenderingSettings);

Цель-C

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

Быстрый

class ViewController: UIViewController, IMALinkOpenerDelegate {

Цель-C

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

Быстрый

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

Цель-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.");
}