Skip to main content

开屏广告

开屏广告#

      v5.0.1开始支持开屏广告。

前提条件#

  • 接入TradPlus SDK
  • 初始化TradPlus SDK
  • 在TradPlus后台创建开屏广告位

创建MsSplashView 加载广告#

  • TradPlus SDK 版本 >= 5.8.0
#import
@interface SplashViewController ()
@property (nonatomic, strong) TPSplashAd *splashAd;
@end
...
self.splashAd = [[TPSplashAd alloc] init];
self.splashAd.delegate = self;
//如果在使用穿山甲的开屏时,需要在底部插入自定义view,需要设置这个自定义view的高度
//self.splashAd.pangleBottomHeight = 110;
[self.splashAd setAdUnitID:_placementId];
[self.splashAd loadAd];
  • TradPlus SDK 版本 < 5.8.0
#import
@interface SplashViewController ()
@property (nonatomic, strong) MsSplashView *splashView;
@end
...
self.splashView = [[MsSplashView alloc] init];
self.splashView.delegate = self;
self.splashView.adTimeoutInterval = 3;
//如果需要在使用穿山甲的开屏时,在底部插入自定义view,需要设置这个自定义view的高度
//self.splashView.pangleBottomHeight = 110;
[self.splashView setAdUnitID:_placementId];
[self.splashView loadAd];

预设策略#

//设置本地策略 首次启动时不用从TradPlus后台拉取策略, 具体的策略会在加载开屏时打印在控制台日志中, 需要确保这份策略能成功加载开屏广告。
- (void)setStrategy:(NSString *)base64Strategy;

广告显示#

  • TradPlus SDK 版本 >= 5.8.0
//如果使用了穿山甲渠道,需要设置自定义view的frame。
CGRect frame = UIScreen.mainScreen.bounds;
CGRect newframe = CGRectMake(0, frame.size.height - 110, frame.size.width, 110);
UIView *testCustomView = [[UIView alloc] initWithFrame:newframe];
testCustomView.backgroundColor = [UIColor blueColor];
[self.splashAd showSplashInWindow:[UIApplication sharedApplication].keyWindow withBottomView:testCustomView];
//不使用自定义view
[self.splashAd showSplashInWindow:[UIApplication sharedApplication].keyWindow withBottomView:nil];
  • TradPlus SDK 版本 = 5.8.0
//首次加载成功
- (void)splashAdDidLoaded:(NSDictionary *)dicChannelInfo
{
}
//广告加载失败
- (void)splashAd:(NSDictionary *)dicChannelInfo didFailedWithError:(NSError *)error
{
}
//广告展示
- (void)splashAdShown:(NSDictionary *)dicChannelInfo
{
}
//广告播放失败
- (void)splashAdFailToPlay:(NSDictionary *)dicChannelInfo error:(NSError *)error
{
}
//用户点击广告
- (void)splashAdClicked:(NSDictionary *)dicChannelInfo
{
}
//广告关闭
- (void)splashAdDismissed:(NSDictionary *)dicChannelInfo
{
}
//加载完成,readyCount为此次加载成功的广告数目。
- (void)splashAdAllLoaded:(int)readyCount
{
}
//根据后台设置的缓存数并行请求广告,每次加载成功
- (void)splashAdOneLayerLoaded:(NSDictionary *)dicChannelInfo
{
}
//根据后台设置的缓存数并行请求广告,每次加载失败
- (void)splashAdOneLayer:(NSDictionary *)dicChannelInfo didFailWithError:(NSError *)error
{
}
//bid 开始
- (void)splashAdBidStart
{
}
//bid 结束
- (void)splashAdBidEnd
{
}
//三方源加载开始
- (void)splashAdLoadStart:(NSDictionary *)dicChannelInfo
{
}
- (void)splashAdPlayStart:(NSDictionary *)dicChannelInfo
{
}
- (void)splashAdPlayEnd:(NSDictionary *)dicChannelInfo
{
}
  • TradPlus SDK 版本 < 5.8.0
- (void)MsSplashViewLoaded:(MsSplashView *)adView
{
//[self.splashView showAdInKeyWindow:[UIApplication sharedApplication].keyWindow];
}
- (void)MsSplashView:(MsSplashView *)adView didFailWithError:(NSError *)error
{
}
- (void)MsSplashViewClicked:(MsSplashView *)adView
{
}
- (void)MsSplashViewShown:(MsSplashView *)adView
{
}
- (void)MsSplashViewDismissed:(MsSplashView *)adView
{
}
- (void)MsSplashViewBidStart:(MsSplashView *)adView
{
}
- (void)MsSplashViewBidEnd:(MsSplashView *)adView
{
}
- (void)MsSplashViewLoadStart:(MsSplashView *)adView
{
}

开屏广告的推荐用法#

应用启动方式#

  • 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这种方式叫“冷启动”
  • 热启动:当启动应用时,后台已有该应用的进程,例:按home键推出再回到前台,或切换应用回到前台等,这种方式叫“热启动”

开屏加载策略#

冷启动方式打开应用#

  • 第一时间在后台load广告,同时建议在loading页时最多停留5秒
    • 如果5秒内返回广告,直接显示。显示完后,再调用 load 方法加载一条广告,供下次热启动时使用
    • 如果5秒内未返回广告,则关闭loading页,直接进入应用主界面。如在此之后收到 loaded 回调,不要再调用show方法。本次广告不会丢弃,SDK会缓存下来备用
  • 应用冷启动时,加载广告的过程中尽量不要同时请求其他网络资源,以免影响广告加载速度

热启动方式打开应用#

  • 有广告则直接显示
  • 不管有无广告展示,都需要再加载一条新的广告,作为备用
  • 如果应用能够监听到切换后台事件,可在切换后台时调用 isReady 方法判断广告是否Ready,如果没有Ready,可补充一条广告

开屏出现时机#

推荐示例

在下面的推荐示例中,开屏广告在应用的加载屏幕上显示。

不推荐示例

如果用户已经进入应用Home页,则不要展示开屏广告。否则会突然弹出,容易造成用户误点击。