iOS 开屏广告
开屏广告
- 开屏广告是打开app的时候展示一个3-5s的全屏的广告
- 开屏广告分冷启动和热启动,冷启动时要尽可能提前开始加载广告,这样才能确保在进入app之前加载到并展示广告
- 热启动是app切换到后台,并没有真正的退出,这种情况下要能检测到并提前加载广告
- 开屏广告一般要配合app的启动页来使用,在加载的时间先给用户看启动页,等广告加载成功后展示广告,广告结束进入app内部
集成说明
注意: 需先将项目导 入至Xcode后,再接入开屏。
1. 初始化
#import <TradPlusAds/TradPlusAdSplash.h>
//初始化广告位
self.splashAd = [[TradPlusAdSplash alloc] init];
//设置回调
self.splashAd.delegate = self;
//设置广告位ID
[self.splashAd setAdUnitID:@"您的广告位ID"];
2. 加载广告
//设置 window 自定义view
[self.splashAd loadAdWithWindow:window bottomView:view];
注:自定义view大小一般不超过屏幕的25%;支持广告平台为:Mintegral,腾讯广告,穿山甲,Sigmob,百度
3. 进入广告场景
- (void)entryAdScenario:(nullable NSString *)sceneId;
参数说明
sceneId :广告场景ID (推荐)
- 开发者可在在TradPlus后台创建,位置如下:应用管理--广告场景。
- 具体如何调用,可以参考广告场景的调用时机和用途说明。
- 进入广告场景时传入sceneId,展示广告时也需传入sceneId,否则会影响统计。
4. 显示广告
//判断是否有可用广告
if (self.splashAd.isAdReady)
{
[self.splashAd showWithSceneId:sceneId];//sceneId可为nil
}
5. 监听回调
-
tpSplashAdLoadFailWithError:
返回的是TP封装的错误信息:详见: 错误码说明 -
tpSplashAdOneLayerLoaded:didFailWithError:
返回三方源的错误信息 -
以下回调接口已废弃v7.6.0+
- (void)tpSplashAdBidEnd:(NSDictionary *)adInfo success:(BOOL)success DEPRECATED_MSG_ATTRIBUTE("Please use tpSplashAdBidEnd:error:");
- (void)tpSplashAdLoadStart:(NSDictionary *)adInfo DEPRECATED_MSG_ATTRIBUTE("Please use tpSplashAdOneLayerStartLoad:");
回调接口及说明
///AD加载完成
///v1.1.2优化回调方式,一次loadAd对应一次loaded回调,不调用不回调。
- (void)tpSplashAdLoaded:(NSDictionary *)adInfo;
///AD加载失败
///tpSplashAdOneLayerLoad:didFailWithError:返回三方源的错误信息
- (void)tpSplashAdLoadFailWithError:(NSError *)error;
///AD展现
- (void)tpSplashAdImpression:(NSDictionary *)adInfo;
///AD展现失败
- (void)tpSplashAdShow:(NSDictionary *)adInfo didFailWithError:(NSError *)error;
///AD被点击
- (void)tpSplashAdClicked:(NSDictionary *)adInfo;
///AD关闭
- (void)tpSplashAdDismissed:(NSDictionary *)adInfo;
@optional
///v7.6.0+新增 开始加载流程
- (void)tpSplashAdStartLoad:(NSDictionary *)adInfo;
///当每个广告源开始加载时会都会回调一次。
///v7.6.0+新增。替代原回调接口:tpSplashAdLoadStart:(NSDictionary *)adInfo;
- (void)tpSplashAdOneLayerStartLoad:(NSDictionary *)adInfo;
///v8.7.0+新增
///调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。
- (void)tpSplashAdIsLoading:(NSDictionary *)adInfo;
///bidding开始
- (void)tpSplashAdBidStart:(NSDictionary *)adInfo;
///bidding结束 error = nil 表示成功
- (void)tpSplashAdBidEnd:(NSDictionary *)adInfo error:(NSError *)error;
///当每个广告源加载成功后会都会回 调一次。
- (void)tpSplashAdOneLayerLoaded:(NSDictionary *)adInfo;
///当每个广告源加载失败后会都会回调一次,返回三方源的错误信息
- (void)tpSplashAdOneLayerLoad:(NSDictionary *)adInfo didFailWithError:(NSError *)error;
///加载流程全部结束
- (void)tpSplashAdAllLoaded:(BOOL)success;
5. 接入参考
参考:TradPlusAdSplashViewController
广告平台特殊配置说明
Pangle(海外)
开发者可以通过一下代码设置Pangle(海外)开屏的 自定义icon(正方形)
UIImage *image = [UIImage imageNamed:@"icon"];
self.splashAd.dicCustomValue = @{@"pangleGlobal_appIcon":image};