IOS版admob里集成KeyMob插页式广告教程

横幅广告是一些在用户触摸下一般会向用户呈现全屏应用内浏览体验的小型广告。

另外一方面,插页式广告能够在应用的天然转换点(例如启动、视频前贴片或游戏关卡加载时)即刻呈现HTML5富媒体效果或“网络应用”。网络应用提供了应用内浏览体验,这类应用的特色是只有简单的关闭按钮,而没有任何导航栏:其内容有本身的内部导航架构。插页式广告的价格通常更高,且展现机会有局限。

一:GADInterstitial
GADInterstitial功能更丰富、也更重要,这反映在它的定义上:它不是UIView,而是须要更多不一样的实例化、加载和显示步骤的NSObject。
不过,它的用法与GADBannerView很是相似:
1:导入GADInterstitial.h
2:在应用的UIViewController中声明GADInterstitial实例
3:完成建立
4:设置广告单元ID

一样,为方便起见,您最好在应用的UIViewController中执行上述全部步骤。
// InterstitialExampleViewController.h

// 从SDK导入GADInterstitial的定义
#import "GADInterstitial.h"

@interface InterstitialExampleViewController : UIViewController {

// 将其中一个声明为实例变量
GADInterstitial *interstitial_;
}

@end

如下代码会在视图控制器的viewDidLoad初始化挂钩中设置插页式广告。
// InterstitialExampleViewController.m

#import "InterstitialExampleViewController.h"

@implementation MyInterstitialHostingViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  interstitial_ = [[GADInterstitial alloc] init];
  interstitial_.adUnitID = MY_INTERSTITIAL_UNIT_ID;
  [interstitial_ loadRequest:[GADRequest request]];
}

@end

您随时能够调用loadRequest:不过必须等到系统调GADInterstitialDelegateinterstitialDidReceiveAd:后才能展现广告素材。若是收到GADInterstitialDelegate的interstitial:didFailToReceiveAdWithError:请妥善处理错误环境。

注意:插页式广告请求的超时时间为5秒。此超时涉及与服务器之间的套接字链接,与插页式广告的展现时长无关。

提示:GADInterstitial是一次性的对象。它能够在第一次请求以后,针对加载或展现插页式广告的请求调用didFailToReceiveAdWithError:而后在不引发中断的状况下失败。

一旦加载成功,便可展现全屏广告:
 [interstitial_ presentFromRootViewController:self];
接着,插页式广告会占据整个屏幕,直到用户将其关闭;届时,控制权将交还给应用,且视图控制器会被传递给这个方法。

二:初始画面插页式广告
插页式广告有一种特殊用法,就是在应用启动时以“初始画面”的方式出现。
在应用委托的application:didFinishLaunchingWithOptions:内调用loadAndDisplayRequest:usingWindow:initialImage:,可有效地将插页式广告排入队列,使其在isReady时当即展现。屏幕上会继续显示初始图片(一般是应用的默认图片),直到加载请求成功或失败为止。

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

GADInterstitial *splashInterstitial_ = [[GADInterstitial alloc] init];
splashInterstitial_.adUnitID = MY_INTERSTITIAL_UNIT_ID;
[splashInterstitial_ loadAndDisplayRequest:[GADRequest request]
usingWindow:window_initialImage:[UIImage imageNamed:@"Default.png"]];

}

三:GADInterstitialDelegate
就像使用GADBannerViewDelegate时同样,开发者能够选择实现所有或部分的GADInterstitialDelegate,以便跟踪插页式广告的生命周期事件。

@protocol GADInterstitialDelegate
@optional
- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial;
- (void)interstitial:(GADInterstitial *)interstitial
didFailToReceiveAdWithError:(GADRequestError *)error;
- (void)interstitialWillPresentScreen:(GADInterstitial *)interstitial;
- (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial;
- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial;
- (void)interstitialWillLeaveApplication:(GADInterstitial *)interstitial;
@end

- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial
在loadRequest:已得到成功,插页式广告处于isReady状态且随时能够适时展现时发送。

- (void)interstitial:(GADInterstitial *)interstitial didFailToReceiveAdWithError:(GADRequestError *)error

当loadRequest:失败时发送,常见失败缘由:网络故障、应用配置错误,或插页式广告资源不足(比在横幅广告中更常见)。您能够记下这些事件,以便进行调试。

- (void)interstitialWillPresentScreen:(GADInterstitial *)interstitial
发送后便当即向用户展现interstitial。与使用UIApplicationDidEnterBackgroundNotification时相似,此时应该暂停全部动画、计时器或其余可能会与用户互动的活动,并保存应用状态。请注意,用户可能会在插页式广告内按下“首页”按钮或触摸其余应用(例如App Store或iTunes)的连接,并所以离开您的应用。

- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial
当用户关闭interstitial且广告已从屏幕中退出时发送。

- (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial
用以恢复您的应用和根视图控制器(在非初始画面的状况下),在此语句发送后,interstitial便会紧跟着从屏幕中退出。这时应该从新启动interstitialWillPresentScreen:执行期间暂停的任何前台活动。

- (void)interstitialWillLeaveApplication:(GADInterstitial *)interstitial
在应用由于用户触摸interstitial内指向其余应用的连接而转至后台或终止运行前发送。在此以前,先会有applicationDidEnterBackground:等常规UIApplicationDelegate通知显示。

在这些方法中,您能够经过查看GADBannerView.hasAutoRefreshed来判断是否有刷新操做触发了事件。

一样,若是您将委托做为独特的对象来实现,则在发布插页式广告前,请务必将委托设为nil。
插页式广告与横幅广告就是咱们常说到的广告形式,广告形式就是用户看到的一些广告。移动平台才刚刚开始萌生的时候,一些手机平台只能集成Banner广告(横幅广告)这样很是单一,现现在移动平台愈来愈多集成的广告也逐渐增多。

分享下个人实例:我以前使用的是有米移动平台那个时候只能集成横幅广告,如今广告形式多了,我就选择了一个全新的移动平台——KeyMob移动平台。选择了这个平台,不只能够集成横幅广告、插页式广告、积分墙等等这些均可以。KeyMob移动平台集成这样广告形式操做简单,集成的广告样式也比较多,在技术上也很是拔尖。




服务器