插屏广告
插屏广告包含 半屏、全屏 两种形态,下面分别介绍两种广告形态的接入方案。
插屏半屏
插屏半屏简介
插屏半屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。(注:插屏半屏广告接入需要在开发者平台创建插屏广告,可选择横版插屏和横/竖版插屏)
权限等级:开放
适用场景:在应用执行流程的自然停顿点,适合投放这类广告
分类:插屏半屏广告分为小规格纯图片(横屏)和大规格纯图片(竖屏)、插屏横屏视频、插屏竖屏视频,具体种类可以在开发者平台进行选择:
小规格纯图片(横屏) | 大规格纯图片(竖屏) |
---|---|
插屏横屏视频 | 插屏竖屏视频 |
---|---|
插屏全屏
插屏全屏简介
插屏全屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。
权限等级:开放
适用场景:在应用执行流程的自然停顿点,适合投放这类广告
注意事项:如您正在使用模板2.0接口,请尽快按该文档更新接入方式,模板2.0接口将很快废弃,请尽快更新至4.12.80版本及以上。
分类:插屏全屏也分为插屏全屏图文、插屏全屏视频、奖励式插屏视频(插屏激励)
1、插屏全屏图文
插屏全屏图文,是优量汇最新推出的广告形态。插屏图文广告在广告展示期间会引导用户上滑屏幕进行广告交互;5秒后展示关闭按钮,可关闭。
(1)若用户5秒内与屏幕无交互,则5s后图片自动上滑展示广告落地页(如有)或打开第三方应用,为用户展示广告更多内容;
(2)若用户5秒内与屏幕有交互,则图片上滑展示广告落地页(如有),帮助用户了解更多。
接入效果:可提升广告填充,提升该广告位整体收益。
备注说明:
(1)您需升级SDK至4.13.10及以上版本;低版本SDK将无法返回新插屏图文广告请求。
(2)插屏全屏图文广告暂不支持激励回调能力。
(3)建议您接入【图片 + 视频】混出的插屏全屏广告位,最大化提升广告收益。
插屏全屏竖版图文 | 插屏全屏横版图文 |
---|---|
2、插屏全屏视频
插屏全屏视频广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。
竖版 | 横版 |
---|---|
3、奖励式插屏全屏视频(插屏激励)
奖励式插屏,是优量汇最新推出的广告形态。
奖励式插屏在视频播放5s后展示关闭按钮,可关闭;但在关闭展示的同时,增加引导提示「再观看x秒即可获得额外奖励」:
(1)用户如感兴趣,完成视频观看:开发者需针对满足观看的用户,派发额外的奖励,如系统内的金币,生命值等。
(2)用户如不感兴趣,不完成视频观看:可随时点击关闭按钮,退出广告,同普通插屏全屏视频。
接入效果:奖励式插屏,可延长视频播放时间,提升该广告位eCPM和整体收益。
备注说明:选中该样式时,您务必针对满足观看的用户,派发额外奖励,如系统内的金币,生命值等。
支持版本:iOS SDK 4.12.90及以上。
其他功能:当前样式同激励视频一样,支持奖励回调判断。
前5秒 | 后5秒 |
---|---|
主要API
生命周期事件回调
您可以实现全部或部分GDTUnifiedInterstitialAdDelegate,以跟踪点击成功或者插屏全屏广告请求失败等广告生命周期事件。
@protocol GDTUnifiedInterstitialAdDelegate <NSObject>
@optional
- (void)unifiedInterstitialSuccessToLoadAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialFailToLoadAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error;
- (void)unifiedInterstitialDidDownloadVideo:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialRenderSuccess:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialRenderFail:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error;
- (void)unifiedInterstitialFailToPresent:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error;
- (void)unifiedInterstitialWillPresentScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialDidPresentScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialDidDismissScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialWillLeaveApplication:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialWillExposure:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialClicked:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdWillPresentFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdDidPresentFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdWillDismissFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdDidDismissFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial playerStatusChanged:(GDTMediaPlayerStatus)status;
- (void)unifiedInterstitialAdDidRewardEffective:(GDTUnifiedInterstitialAd *)unifiedInterstitial info:(NSDictionary *)info;
@end
其中,视频播放过程中,会有如下几种状态
枚举变量 | 枚举含义 |
---|---|
GDTMediaPlayerStatusInitial | 初始状态 |
GDTMediaPlayerStatusLoading | 加载中 |
GDTMediaPlayerStatusStarted | 开始播放 |
GDTMediaPlayerStatusPaused | 用户行为导致暂停 |
GDTMediaPlayerStatusStoped | 播放停止 |
GDTMediaPlayerStatusError | 播放出错 |
在实现上述事件回调之前,请务必先设置delegate:
Objective-C
self.interstitial.delegate = self;
Swift
interstitial.delegate = self
回调函数列表
回调函数名 | 回调函数含义 |
---|---|
unifiedInterstitialSuccessToLoadAd | 插屏广告预加载成功回调 |
unifiedInterstitialFailToLoadAd | 插屏广告预加载失败回调 |
unifiedInterstitialDidDownloadVideo | 插屏广告视频下载完成回调 |
unifiedInterstitialRenderSuccess | 插屏广告渲染成功回调 |
unifiedInterstitialRenderFail | 插屏广告渲染失败回调 |
unifiedInterstitialWillPresentScreen | 插屏广告将要展示回调 |
unifiedInterstitialDidPresentScreen | 插屏广告视图展示成功回调 |
unifiedInterstitialDidDismissScreen | 插屏广告展示结束回调 |
unifiedInterstitialFailToPresent | 插屏广告播放失败回调 |
unifiedInterstitialWillLeaveApplication | 当点击下载应用时会调用系统程序打开其它App或者Appstore时回调 |
unifiedInterstitialWillExposure | 插屏广告曝光回调 |
unifiedInterstitialClicked | 插屏广告点击回调 |
unifiedInterstitialAdWillPresentFullScreenModal | 点击插屏广告以后即将弹出全屏广告页 |
unifiedInterstitialAdDidPresentFullScreenModal | 点击插屏广告以后弹出全屏广告页 |
unifiedInterstitialAdWillDismissFullScreenModal | 插屏广告页将要关闭 |
unifiedInterstitialAdDidDismissFullScreenModal | 插屏广告页被关闭 |
unifiedInterstitialAd:playerStatusChanged | 插屏广告 player 播放状态更新回调 |
unifiedInterstitialAdDidRewardEffective:info | 插屏激励广告视频播放达到激励条件 |
接入代码示例
加载并显示插屏广告
1.在您的View Controller文件中,引入对应头文件,定义好UnifiedInterstitial对象以及定义清本类支持GDTUnifiedInterstitialAdDelegate协议,如下例所示:
Objective-C
#import "GDTUnifiedInterstitialAd.h"
@interface UnifiedInterstitialViewController () <GDTUnifiedInterstitialAdDelegate>
@property (nonatomic, strong) GDTUnifiedInterstitialAd *interstitial;
2.在需要加载插屏广告的逻辑处,初始化interstitial变量,并做相应展示。
加载并展示插屏半屏广告
Objective-C
- (IBAction)loadAd:(id)sender {
if (self.interstitial) {
self.interstitial.delegate = nil;
}
self.interstitial = [[GDTUnifiedInterstitialAd alloc] initWithPlacementId:YOUR_PLACEMENT_ID];
self.interstitial.delegate = self;
self.interstitial.videoMuted = self.videoMutedSwitch.on; // 设置视频是否Mute
[self.interstitial loadAd]; // 加载插屏半屏广告
}
- (IBAction)showAd:(id)sender {
if ([self.interstitial isAdValid]) {
[self.interstitial presentAdFromRootViewController:self]; // 展示插屏半屏广告,建议在unifiedInterstitialRenderSuccess回调后再展示广告可能体验效果会更好
}
}
加载并展示插屏全屏广告
Objective-C
- (IBAction)loadAd:(id)sender {
if (self.interstitial) {
self.interstitial.delegate = nil;
}
self.interstitial = [[GDTUnifiedInterstitialAd alloc] initWithPlacementId:YOUR_PLACEMENT_ID];
self.interstitial.delegate = self;
self.interstitial.videoMuted = self.videoMutedSwitch.on; // 设置视频是否Mute
[self.interstitial loadFullScreenAd]; // 加载插屏全屏视频广告
}
- (IBAction)showAd:(id)sender {
if ([self.interstitial isAdValid]) {
[self.interstitial presentFullScreenAdFromRootViewController:self]; // 展示插屏全屏视频广告,建议在unifiedInterstitialRenderSuccess回调后再展示广告可能体验效果会更好
}
}
3.将YOUR_PLACEMENT_ID替换成你自己的PLACEMENTID。
注意:
- 在展示广告之前需要先调用isAdValid判断广告是否有效,当无效时展示会失败
- 在一次展现完成后,需要再次调用loadAd或loadFullScreenAd方法来加载新的广告,用于下次展现。
- 关于释放,建议在释放ViewController之前将_interstitialObj的delegate属性设置为nil
在不展示插屏全屏广告时执行调试
在您的ViewController里实现如下回调,处理插屏全屏广告加载失败的问题:
Objective-C
- (void)unifiedInterstitialFailToLoadAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error
{
NSLog(@"interstitial fail to load, Error : %@",error);
}
Swift
func unifiedInterstitialFail(toLoad unifiedInterstitial: GDTUnifiedInterstitialAd, error: Error) {
print(#function)
}
多阶底价能力
接入多阶底价能力分2步:
step1:
找优量汇运营同学开通广告位的多阶底价权限并提供底价配置信息;
step2:
当广告拉取成功后,通过GDTUnifiedInterstitialAd类的eCPMLevel属性查看当前广告对应的底价层级。
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,比如@"2"表示底价等级为2,@""或nil表示无权限或后台异常
*/
@property (nonatomic, readonly) NSString *eCPMLevel;
实时竞价能力
接入实时竞价能力分2步:
step1:
找优量汇运营同学开通广告位的实时竞价权限;
step2:
当广告拉取成功后,通过GDTUnifiedInterstitialAd类的eCPM属性获取本条广告实时的eCPM价格,单位是分。
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
- (NSInteger)eCPM;
说明:
当无权限调用该接口时,SDK会返回错误码-1。