このガイドでは、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."); }