本指南介绍了如何在 IMA SDK 实现中更好地控制点击。“点击”是指用户点击广告并进入该广告的着陆页的过程。本指南中的示例演示了如何配置着陆页的打开位置,以及如何监听与用户访问该页面相关的事件。
前提条件
已实现 IMA SDK 的 iOS 应用。
配置点击
更改链接打开方式
IMA SDK 提供了两种打开广告着陆页的选项:通过应用内浏览器或通过 Safari。默认情况下,SDK 使用 Safari 打开网页。如需更新 SDK 以使用应用内浏览器,您需要使用IMAAdsRenderingSettings
:
func createAdsRenderingSettings() { self.adsRenderingSettings = IMAAdsRenderingSettings(); self.adsRenderingSettings.linkOpenerDelegate = self; self.adsRenderingSettings.linkOpenerPresentingController = self; }
- (void)createAdsRenderingSettings { self.adsRenderingSettings = [[IMAAdsRenderingSettings alloc] init]; self.adsRenderingSettings.linkOpenerDelegate = self; self.adsRenderingSettings.linkOpenerPresentingController = self; }
IMAAdsRenderingSettings
实例后,您可以将其传递给 IMAAdsManager
初始化方法:
self.adsManager.initialize(withAdsRenderingSettings: adsRenderingSettings);
[self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings];
监听与点击相关的事件
IMA SDK 提供IMALinkOpenerDelegate
,用于在用户即将看到或刚刚关闭点击到达页面时进行通信。如需使用此代理,请将其添加到头文件中的代理列表,并实现其方法。在标题中:
class ViewController: UIViewController, IMALinkOpenerDelegate {
@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.") }
- (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."); }