Skip to main content

积分墙

一、集成建议

  • 积分墙广告一般是全屏的,调用时机是在页面切换时,一般有图片和视频两种,部分渠道会有定制化的积分墙
  • 积分墙广告是三方广告平台提供的一般不支持做定制或者修改
  • 积分墙广告一般需要预加载,在展示机会到来时,通过调用isAdReady方法检查是否有可用广告,有可用广告时,调用showAdWithSceneId:方法来展示广告

主要步骤:

  • 创建TradPlusAdOfferwall对象
  • 加载开屏广告loadAd
  • 注册TradPlusAdOfferwallDelegate 回调,获取广告加载、展示、点击、关闭等回调。
  • 显示开屏广告showAdWithSceneId:

注意事项

  • 不建议在tpOfferwallAdOneLayerLoad : didFailWithError:回调中执行广告加载的方法,对广告平台方来说,短时间内多次请求,不容易得到填充,同时会造成多次无效请求,也可能会导致应用卡顿;如果产品逻辑需要在这里发起请求,开发者需要控制时间间隔和次数,比如分别在10S、30S、60S后发起请求。
  • 不建议在tpOfferwallAdLoaded回调中直接执行广告展示的方法,这可能导致用户体验不佳,SDK有广告会过期自动补充功能和自动加载功能,加载成功后会回调tpOfferwallAdLoaded。开发者无法精准控制广告展示的时机。可配合产品逻辑在需要展示广告的地方,判断isAdReady是否有可用广告,再展示广告。

二、TradPlusAdOfferwall API说明

1. 加载、展示广告

  • 参数说明
参数说明
adUnitIDadUnitID为TradPlus后台创建的广告位ID,SDK将根据广告位ID拉取配置并请求广告
sceneIdsceneId为广告场景ID是可选参数,默认为nil,开发者需和- (void)showAdWithSceneId:(nullable NSString *)sceneId;配套使用
如需使用广告场景请参考: 广告场景说明
  • 方法说明
方法说明
- (void)setAdUnitID:(NSString *)adUnitID;设置广告位ID
- (void)loadAd;请求该广告位积分墙广告
- (BOOL)isReady;检测该广告位是否有可用广告
true为有可用广告
flase为无可用广告
- (void)entryAdScenario:(nullable NSString *)sceneId;进入广告场景
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
- (void)showAdWithSceneId:(nullable NSString *)sceneId;展示该广告位积分墙广告

2. 其他方法说明

方法说明
- (void)setUserId:(NSString *)userId;设置用户id,首次load成功后设置
- (void)getCurrencyBalance;获取当前余额,从callback中获取balance
- (void)spendCurrency:(int)amount;扣除用户积分墙积分
- (void)awardCurrency:(int)amount;添加用户积分墙积分

3. 监听回调

  • 参数说明
参数说明
adInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
error返回的是TP封装的错误信息:详见: 错误码说明
  • TradPlusAdOfferwallDelegate 回调接口及说明
方法说明
- (void)tpOfferwallAdLoaded:(NSDictionary *)adInfo;积分墙广告加载完成,首个广告源加载成功时回调,一次加载流程只会回调一次
- (void)tpOfferwallAdLoadFailWithError:(NSError *)error;积分墙广告加载失败,返回的是TP封装的错误信息。详见: 错误码说明
tpOfferwallAdOneLayerLoaded:didFailWithError:返回三方源的错误信息
- (void)tpOfferwallAdImpression:(NSDictionary *)adInfo;积分墙广告展示成功
- (void)tpOfferwallAdShow:(NSDictionary *)adInfo didFailWithError:(NSError *)error;积分墙广告展现失败
- (void)tpOfferwallAdClicked:(NSDictionary *)adInfo;积分墙广告被点击
- (void)tpOfferwallAdDismissed:(NSDictionary *)adInfo;积分墙广告关闭
- (void)tpOfferwallSetUserIdFinish:(NSError *)error;userID 设置结束 error = nil 成功
- (void)tpOfferwallGetCurrencyBalance:(NSDictionary *)response error:(NSError *)error;用户当前积分墙积分数量
- (void)tpOfferwallSpendCurrency:(NSDictionary *)response error:(NSError *)error;扣除用户积分墙积分回调
- (void)tpOfferwallAwardCurrency:(NSDictionary *)response error:(NSError *)error;添加用户积分墙积分回调
  • TradPlusAdOfferwallDelegate 回调接口及说明(可选)
方法说明
- (void)tpOfferwallAdStartLoad:(NSDictionary *)adInfo;v7.6.0+新增 开始加载流程
- (void)tpOfferwallAdOneLayerStartLoad:(NSDictionary *)adInfo;当每个广告源开始加载时会都会回调一次。
- (void)tpOfferwallAdOneLayerLoaded:(NSDictionary *)adInfo;当每个广告源加载成功后会都会回调一次。
- (void)tpOfferwallAdOneLayerLoad:(NSDictionary *)adInfo didFailWithError:(NSError *)error;当每个广告源加载失败后会都会回调一次,返回三方源的错误信息
- (void)tpOfferwallAdIsLoading:(NSDictionary *)adInfo;v8.7.0+新增 调用load之后如果收到此回调,说明广告位仍处于加载状态,请等待上一轮load结果回调后再触发新的一轮广告加载。
- (void)tpOfferwallAdAllLoaded:(BOOL)success;加载流程全部结束

三、示例代码

请参考:TradPlusAdOfferwallViewController

#import <TradPlusAds/TradPlusAdOfferwall.h>

@interface TradPlusAdOfferwallViewController ()<TradPlusADOfferwallDelegate>
@property (nonatomic, strong) TradPlusAdOfferwall *offerwall;
@end

@implementation TradPlusAdOfferwallViewController

- (void)viewDidLoad
{
[super viewDidLoad];
self.offerwall = [[TradPlusAdOfferwall alloc] init];
//设置广告位ID
[self.offerwall setAdUnitID:@""在TP平台创建的广告位ID""];
//设置代理
self.offerwall.delegate = self;
//加载广告需要一些时间,可以在展示广告前提前加载好广告
[self.offerwall loadAd];
}

- (void)showOfferwall
{
//调用isAdReady方法检查是否有可用广告,有可用广告时,调用showAdWithSceneId:方法来展示广告
if (self.offerwallAd.isAdReady)
{
[self.offerwall showAdWithSceneId:nil];
}
}

#pragma mark - TradPlusAdOfferwallDelegate

//广告加载完成,首个广告源加载成功时回调,一次加载流程只会回调一次
- (void)tpOfferwallAdLoaded:(NSDictionary *)adInfo
{
}
//广告加载失败
- (void)tpOfferwallAdLoadFailWithError:(NSError *)error
{
}
//广告展示成功 三方认可的有效展示
- (void)tpOfferwallAdImpression:(NSDictionary *)adInfo
{
}
//广告展现失败
- (void)tpOfferwallAdShow:(NSDictionary *)adInfo didFailWithError:(NSError *)error
{
}
//广告被点击
- (void)tpOfferwallAdClicked:(NSDictionary *)adInfo
{
}
//广告关闭
- (void)tpOfferwallAdDismissed:(NSDictionary *)adInfo
{
}

@end