Bidding Android iOS 快应用 SDK H5 SDK Media API 常见问题

插屏广告

插屏广告包含 半屏、全屏 两种形态,下面分别介绍两种广告形态的接入方案。

插屏半屏

插屏半屏简介

插屏半屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。(注:插屏半屏广告接入需要在开发者平台创建插屏广告,可选择横版插屏和横/竖版插屏)

权限等级:开放

适用场景:在应用执行流程的自然停顿点,适合投放这类广告

分类:插屏半屏广告分为小规格纯图片(横屏)和大规格纯图片(竖屏)、插屏横屏视频、插屏竖屏视频,具体种类可以在开发者平台进行选择:

小规格纯图片(横屏) 大规格纯图片(竖屏)
插屏横屏视频 插屏竖屏视频

插屏全屏

插屏全屏简介

插屏全屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。

权限等级:开放

适用场景:在应用执行流程的自然停顿点,适合投放这类广告

注意事项:如您正在使用模板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)unifiedInterstitialAdViewWillPresentVideoVC:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdViewDidPresentVideoVC:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdViewWillDismissVideoVC:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (void)unifiedInterstitialAdViewDidDismissVideoVC:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
- (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 播放状态更新回调
unifiedInterstitialAdViewWillPresentVideoVC 点击插屏广告以后即将弹出视频广告页
unifiedInterstitialAdViewDidPresentVideoVC 点击插屏广告以后弹出视频广告页
unifiedInterstitialAdViewWillDismissVideoVC 视频广告页将要关闭
unifiedInterstitialAdViewDidDismissVideoVC 视频广告页被关闭
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。

 文档反馈

腾讯公司 版权所有