ユーザーのクリック イベントを制御する

このガイドでは、IMA SDK の実装でクリックスルーをより細かく制御する方法について説明します。「クリックスルー」とは、ユーザーが広告をクリックしてその広告のランディング ページにアクセスするプロセスを指します。このガイドの例では、そのランディング ページを開く場所を構成する方法と、そのページにアクセスしたユーザーに関連するイベントをリッスンする方法を示します。

前提条件

IMA SDK を実装した iOS アプリ。

クリックスルーの設定

IMA SDK では、広告ランディング ページを開く方法として、アプリ内ブラウザと Safari の 2 つのオプションが用意されています。デフォルトでは、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.");
}