
激励视频广告使用 IMInterstitial 类。该类IMInterstitial是一个UIViewController子类,用于显示响应用户触摸的全屏广告。
按照以下步骤,通过程序化方式创建激励视频广告单元:
导入头文件并在根目录中声明一个插页式实例ViewController.h 。ViewController.swift您的ViewController头文件应如下所示:
<span class="hljs-selector-id">#import</span>
@<span class="hljs-selector-tag">import</span> <span class="hljs-selector-tag">InMobiSDK</span>;
<span class="hljs-variable">@interface</span> <span class="hljs-attribute">ViewController </span>: UIViewController
<span class="hljs-variable">@property</span> (nonatomic, strong) IMInterstitial *interstitial;
<span class="hljs-variable">@end</span>
<span class="hljs-keyword">import</span> UIKit
<span class="hljs-keyword">import</span> InMobiSDK
<span class="hljs-keyword">class</span> <span class="hljs-title class_">ViewController</span>: <span class="hljs-type">UIViewController</span>, <span class="hljs-type">IMInterstitialDelegate</span> {
<span class="hljs-keyword">var</span> interstitial: IMInterstitial?
}
实例化插页式广告对象。每个广告位 ID 只创建一个对象,并在后续广告加载时重复使用。文件 viewDidLoad 中的方法ViewController.m应如下所示:
-(<span class="hljs-type">void</span>)viewDidLoad {
[<span class="hljs-variable language_">super</span> viewDidLoad];
<span class="hljs-keyword">self</span>. interstitial = [[IMInterstitial alloc] initWithPlacementId:];
<span class="hljs-keyword">self</span>. interstitial.delegate = <span class="hljs-keyword">self</span>;
[<span class="hljs-keyword">self</span>.interstitial load];
}
<span class="hljs-keyword">override</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">viewDidLoad</span>() {
<span class="hljs-keyword">super</span>.viewDidLoad()
interstitial <span class="hljs-operator">=</span> <span class="hljs-type">IMInterstitial</span>.<span class="hljs-keyword">init</span>(placementId: )
interstitial<span class="hljs-operator">?</span>.delegate <span class="hljs-operator">=</span> <span class="hljs-keyword">self</span>
interstitial<span class="hljs-operator">?</span>.load()
}
对于广告状态回调,请实现代理方法IMInterstitialDelegate。以下是支持的回调:
- (<span class="hljs-type">void</span>)interstitialDidFinishLoading:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialDidFinishLoading"</span>);
}
- (<span class="hljs-type">void</span>)interstitial:(IMInterstitial *)interstitial didFailToLoadWithError:
(IMRequestStatus *)error {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"Interstitial failed to load ad"</span>);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"Error : %@"</span>,error.description);
}
- (<span class="hljs-type">void</span>)interstitial:(IMInterstitial *)interstitial didFailToPresentWithError:
(IMRequestStatus *)error {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"Interstitial didFailToPresentWithError"</span>);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"Error : %@"</span>,error.description);
}
- (<span class="hljs-type">void</span>)interstitialWillPresent:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialWillPresent"</span>);
}
- (<span class="hljs-type">void</span>)interstitialDidPresent:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialDidPresent"</span>);
}
- (<span class="hljs-type">void</span>)interstitialWillDismiss:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialWillDismiss"</span>);
}
- (<span class="hljs-type">void</span>)interstitialDidDismiss:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialDidDismiss"</span>);
}
- (<span class="hljs-type">void</span>)userWillLeaveApplicationFromInterstitial:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"userWillLeaveApplicationFromInterstitial"</span>);
}
- (<span class="hljs-type">void</span>)interstitial:(IMInterstitial *)interstitial rewardActionCompletedWithRewards:
(<span class="hljs-built_in">NSDictionary</span> *)rewards {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"rewardActionCompletedWithRewards"</span>);
}
- (<span class="hljs-type">void</span>)interstitial:(IMInterstitial *)interstitial didInteractWithParams:(<span class="hljs-built_in">NSDictionary</span> *)params {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"InterstitialDidInteractWithParams"</span>);
}
/ * Not used <span class="hljs-keyword">for</span> direct integration. Notifies the delegate that the ad server has returned an ad but assets are not yet available. */
- (<span class="hljs-type">void</span>)interstitialDidReceiveAd:(IMInterstitial *)interstitial {
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"interstitialDidReceiveAd"</span>);
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialDidReceiveAd</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialDidFinishLoading</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitial</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>, <span class="hljs-params">didFailToLoadWithError</span> <span class="hljs-params">error</span>: <span class="hljs-type">IMRequestStatus</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Interstitial ad failed to load with error <span class="hljs-subst">\(error)</span>"</span> )
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialWillPresent</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialDidPresent</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitial</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>, <span class="hljs-params">didFailToPresentWithError</span> <span class="hljs-params">error</span>: <span class="hljs-type">IMRequestStatus</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Interstitial ad failed to present with error <span class="hljs-subst">\(error)</span>"</span> )
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialWillDismiss</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitialDidDismiss</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitial</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>, <span class="hljs-params">didInteractWithParams</span> <span class="hljs-params">params</span>: [<span class="hljs-params">String</span> : <span class="hljs-keyword">Any</span>]<span class="hljs-operator">?</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">interstitial</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>, <span class="hljs-params">rewardActionCompletedWithRewards</span> <span class="hljs-params">rewards</span>: [<span class="hljs-params">String</span> : <span class="hljs-keyword">Any</span>]) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">func</span> <span class="hljs-title function_">userWillLeaveApplicationFromInterstitial</span>(<span class="hljs-keyword">_</span> <span class="hljs-params">interstitial</span>: <span class="hljs-type">IMInterstitial</span>) {
<span class="hljs-built_in">print</span>(<span class="hljs-string">"[ViewController %@] <span class="hljs-subst">\(<span class="hljs-keyword">#function</span>)</span>"</span>)
}
要显示插页式广告,请使用以下代码:
[self.interstitial showFrom:self];
[self.interstitial showFrom:self <span class="hljs-keyword">with</span>:IMInterstitialAnimationTypeAsNone];
interstitial?.<span class="hljs-keyword">show</span>(<span class="hljs-keyword">from</span>: self)
<span class="hljs-operator">/</span><span class="hljs-operator">/</span>interstitial?.<span class="hljs-keyword">show</span>(<span class="hljs-keyword">from</span>: self, <span class="hljs-keyword">with</span>:.coverVertical)
以下是可能的动画类型:
IMInterstitialAnimationTypeCoverVerticalIMInterstitialAnimationTypeFlipHorizontalIMInterstitialAnimationTypeAsNone重要的
interstitialDidFinishLoading在调用 `show()` 之前触发委托showFromViewController。否则,会触发错误回调interstitial:didFailToPresentScreenWithError:。持续监听插页式广告状态,仅在广告完全加载后才调用 `show()`。[self.interstitial load];再次调用此功能。否则,您将无法showFromViewController再次调用。interstitial:rewardActionCompletedWithRewards:的方法。如果您已在 InMobi 门户网站上设置了奖励,则可以在此处访问 JSON 字典。IMInterstitialDelegate以下是可能的动画类型:
coverVerticalflipHorizontalnone重要的
interstitialDidFinishLoading在调用 `show()` 之前触发委托show(from viewController: UIViewController!)。否则,会触发错误回调interstitial(_ interstitial: IMInterstitial!, didFailToLoadWithError error: IMRequestStatus!)。持续监听插页式广告状态,仅在广告完全加载后才调用 `show()`。interstitial?.load()再次调用此功能。否则,您将无法show(from viewController: UIViewController!)再次调用。interstitial(_ interstitial: IMInterstitial!, rewardActionCompletedWithRewards rewards: [AnyHashable : Any]!)的方法。如果您已在 InMobi 门户网站上设置了奖励,则可以在此处访问 JSON 字典。IMInterstitialDelegateBy installing this SDK update, you agree that your Children Privacy Compliance setting remains accurate or that you will update that setting, whenever there is a change in your app's audience. You may update the app's Children Privacy Compliance settings at https://publisher.inmobi.com/my-inventory/app-and-placements.
Support Center