Skip to main content

横幅广告

横幅广告#

  • Banner本身是一个UIView,需要在创建后添加到指定位置。
  • 自动展示开启时,在loaded成功后将自动填充广告内容。
  • Banner的自动刷新功能,您可以在TradPlus后台进行配置。 可参考 自动刷新功能说明
  • 关闭自动展示(autoShow = NO)时,开发者需要,在loaded回调后手动调用 showWithSceneId 进行展示.

集成说明#

1. 初始化#

#import <TradPlusAds/TradPlusAdBanner.h>
//初始化广告位 frame大小可自行调整
self.banner = [[TradPlusAdBanner alloc] init];
[self.banner setAdUnitID:@"您的广告位ID"];
//设置回调
self.banner.delegate = self;
//添加到指定UIView上
[self.adView addSubview:self.banner];

2. 关闭自动展示#

如需要关闭自动展示请调用以下代码(默认开启)

//设置是否开启自动展示 默认为YES
self.banner.autoShow = NO;

3. 加载广告#

  • 注:autoShow=YES 开启自动展示时 场景ID在此方法设置
//sceneId为广告场景ID
[self.banner loadAdWithSceneId:nil];

4. 显示广告#

  • 注:autoShow=NO 关闭自动展示时 场景ID在此方法设置
//sceneId为广告场景ID
[self.banner showWithSceneId::nil];

5. 监听回调#

  • 回调信息说明

  • tpBannerAdLoadFailWithError:返回的是TP封装的错误信息:详见: 错误码说明

  • tpBannerAdOneLayerLoad:didFailWithError: 返回三方源的错误信息

  • 以下回调接口已废弃v7.6.0+

- (void)tpBannerAdBidEnd:(NSDictionary *)adInfo success:(BOOL)success DEPRECATED_MSG_ATTRIBUTE("Please use tpBannerAdBidEnd:error:");
- (void)tpBannerAdLoadStart:(NSDictionary *)adInfo DEPRECATED_MSG_ATTRIBUTE("Please use tpBannerAdOneLayerStartLoad:");

回调接口及说明

///AD加载完成 首个广告源加载成功时回调 一次加载流程只会回调一次
- (void)tpBannerAdLoaded:(NSDictionary *)adInfo;
///AD加载失败
///tpBannerAdOneLayerLoad:didFailWithError:返回三方源的错误信息
- (void)tpBannerAdLoadFailWithError:(NSError *)error;
///AD展现
- (void)tpBannerAdImpression:(NSDictionary *)adInfo;
///AD展现失败
- (void)tpBannerAdShow:(NSDictionary *)adInfo didFailWithError:(NSError *)error;
///AD被点击
- (void)tpBannerAdClicked:(NSDictionary *)adInfo;
@optional
///为三方提供rootviewController 用于点击广告后的操作
- (UIViewController *)viewControllerForPresentingModalView;
///v7.6.0+新增 开始加载流程
- (void)tpBannerAdStartLoad:(NSDictionary *)adInfo;
///当每个广告源开始加载时会都会回调一次。
///v7.6.0+新增。替代原回调接口:tpBannerAdLoadStart:(NSDictionary *)adInfo;
- (void)tpBannerAdOneLayerStartLoad:(NSDictionary *)adInfo;
///v8.7.0+新增
///调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。
- (void)tpBannerAdIsLoading:(NSDictionary *)adInfo;
///bidding开始
- (void)tpBannerAdBidStart:(NSDictionary *)adInfo;
///bidding结束 error = nil 表示成功
- (void)tpBannerAdBidEnd:(NSDictionary *)adInfo error:(NSError *)error;
///当每个广告源加载成功后会都会回调一次。
- (void)tpBannerAdOneLayerLoaded:(NSDictionary *)adInfo;
///当每个广告源加载失败后会都会回调一次,返回三方源的错误信息
- (void)tpBannerAdOneLayerLoad:(NSDictionary *)adInfo didFailWithError:(NSError *)error;
///加载流程全部结束
- (void)tpBannerAdAllLoaded:(BOOL)success;
///三方关闭按钮触发时的回调
- (void)tpBannerAdClose:(NSDictionary *)adInfo;

6. 隐藏或显示banner#

  • 如果在后台开启自动刷新功能,隐藏banner的同时会暂停自动刷新,重新显示则会继续启动自动刷新。
//sceneId为广告场景ID
self.banner.hidden = YES/NO;

7. 居中模式(v6.9.0+新增)#

  • 需要在load前设置
///设置居中模式 支持三种模式
///TPBannerContentModeTop 顶部水平居中 (默认)
///TPBannerContentModeCenter 垂直居中并水平居中
///TPBannerContentModeBottom 底边水平居中
self.banner.bannerContentMode = TPBannerContentMode;

8. 设置bannerSIze#

  • 需要在load前设置
  • 开发者可以通过此API预设横幅尺寸,TPSDK将根据平台情况优先使用预设尺寸请求三方横幅,适配大小。
//预设横幅大小
[self.banner setBannerSize:CGSizeMake(width, height)];
  • 支持通过bannerSIze直接设置的平台列表
平台说明
Admob支持宽度和高度设置
MyTarget支持宽度和高度设置
AdColony支持宽度和高度设置
Mintegral支持宽度和高度设置
Smaato支持宽度和高度设置
Vungle普通banner:支持宽度设置,高度使用后台设置的尺寸
中矩型:支持宽度和高度设置
Facebook支持宽度设置,高度使用后台设置的尺寸
AppLovin支持宽度设置,高度使用后台设置的尺寸
Chartboost支持宽度设置,高度使用后台设置的尺寸
百度支持宽度设置,高度使用后台设置的比例进行计算
腾讯支持宽度和高度设置
穿山甲(Pangle)支持宽度和高度设置
  • 其他广告平台使用服务器下发尺寸

9. 接入参考#

参考:TradPlusAdBannerViewController

10.设置自定义原生模版#

v8.4.0开始 横幅支持混用原生广告。对于需要使用自定义原生布局的开发者可以通过API来设置

/// 指定原生横幅的渲染模版 未设置时SDK会使用默认模版进行渲染
/// customRenderingViewClass 仅对Waterfall中的原生广告生效
@property (nonatomic,strong,nullable)Class customRenderingViewClass;
/// 指定原生横幅的renderer 未设置时SDK会使用默认模版进行渲染
/// customRenderer 仅对Waterfall中的原生广告生效
@property (nonatomic,strong,nullable)TradPlusNativeRenderer *customRenderer;