跳到主要内容

积分墙

一、集成建议

主要介绍在Android项目中如何集成 TradPlus SDK的积分墙广告: V8.1.0.1 Android开始支持积分墙。

注意事项

  • 禁止在oneLayerLoadFailed回调中执行广告加载的方法,否则会引起死循环。
  • 禁止在onAdLoaded回调中直接执行广告展示的方法。SDK有广告会过期自动补充功能。如果在onAdLoaded回调中执行showAd(),开发者会无法精准控制广告展示的时机。

二、TPOfferWall API说明

1、创建广告位对象

方法说明
TPOfferWall(Context context, String adUnitId)仅调用一次。
adUnitId是在TP平台创建的广告位ID。

2、加载、展示广告

方法说明
loadAd()请求广告。
isReady()检测是否有可用广告。
entryAdScenario(String sceneId)(可选) 进入广告场景。
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
showAd(Activity activity, String sceneId)展示广告。
参数2 : sceneId 广告场景ID 是可选参数,开发者需和entryAdScenario(sceneId)配套使用。不调用entryAdScenario(sceneId),可以直接传空字符串。
  • 参数说明
参数说明
adUnitId广告位ID,TradPlus后台创建。应用管理——添加应用——添加广告位。
注意广告类型创建错误会导致广告展示失败,例如用标准原生的广告位去请求激励视频广告。
sceneId广告场景ID,TradPlus后台创建。应用管理—— 广告场景。
具体如何使用,请看广告场景的调用时机和用途说明

3、积分设置

更多了解可以参考官方用户ID介绍

参数说明
setUserId(String userId)设置UserId
getCurrencyBalance()查询总额。
spendCurrency(int count)消耗积分。
awardCurrency(int amount)增加积分。

4、监听回调

方法说明
setAdListener(OfferWallAdListener adListener)设置广告监听。
其中OfferWallAdListener是需要实现广告事件回调的接口类。
setOffWallBalanceListener(OffWallBalanceListener listener)设置积分获取监听。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)设置单个源维度的监听回调(可选)
其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。单个源维度是指TP端的一个广告位下配置多个广告源缓存,每个源的回调。
  • 监听回调中的参数说明 V6.2.4新增API
参数说明
TPAdInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
TPAdError广告请求失败、广告展示失败的错误码、错误信息,具体请参考错误码、错误信息说明
  • RewardAdListener(广告位维度)
方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。
onAdImpression(TPAdInfo tpAdInfo)广告被展示。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdFailed(TPAdError error)广告加载失败。
onAdReward(TPAdInfo tpAdInfo)广告奖励。
onAdVideoError(TPAdInfo tpAdInfo, TPAdError error)展示失败。
  • OffWallBalanceListener(广告位维度)
方法说明
currencyBalanceSuccess(int amount,String msg)查询总额成功。
currencyBalanceFailed(String msg)查询总额失败。
spendCurrencySuccess(int amount,String msg)消耗积分成功。
spendCurrencyFailed(String msg)消耗积分失败。
awardCurrencySuccess(int amount,String msg)增加积分成功。
awardCurrencyFailed(String msg)增加积分失败。
setUserIdSuccess()设置UserID成功
setUserIdFailed(String msg)设置UserID失败。
  • LoadAdEveryLayerListener(可选)(单个源维度)
方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源,每个广告源加载失败后都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)配置多个广告源,每个广告源加载成功后都会回调一次。
oneLayerLoadStart(TPAdInfo tpAdInfo)每层waterfall 向三方广告源发起请求前,触发的回调。
onAdStartLoad(String adUnitId)每次调用load方法时返回的回调。
onBiddingStart(TPAdInfo tpAdInfo)Bidding开始加载。目前无支持该类型的bidding广告平台。
onBiddingEnd(TPAdInfo tpAdInfo, TPAdError tpAdError)Bidding加载完成。目前无支持该类型的bidding广告平台。
onAdIsLoading(String adUnitId)调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。
V9.0.0新增回调

三.示例代码


private TPOfferWall mTpOfferWall;
...

if(mTpOfferWall == null) {
mTpOfferWall = new TPOfferWall(activity, "在TP平台创建的广告位ID");
}

mTpOfferWall.setAdListener(new OffWallBalanceListener() {
@Override
public void onAdLoaded(TPAdInfo tpAdInfo) {
// 禁止在onAdLoaded中执行showAd()
// 自动加载(开发者控制)和广告会过期自动补充功能会导致无法精准控制广告展示的时机。
}

@Override
public void onAdClicked(TPAdInfo tpAdInfo) {}

@Override
public void onAdImpression(TPAdInfo tpAdInfo) {}

@Override
public void onAdFailed(TPAdError tpAdError) {
//禁止在onAdFailed中执行loadAd()
}

@Override
public void onAdClosed(TPAdInfo tpAdInfo) {}

@Override
public void onAdReward(TPAdInfo tpAdInfo) {}
});

mTpOfferWall.loadAd();
....
// 展示广告页面
// 进入广告场景
mTpOfferWall.entryAdScenario(sceneId);
// 先判断是否有可用广告
if (mTpOfferWall.isReady()) {
// 有可用广告,展示
mTpOfferWall.showAd(activity,sceneId)
}