Skip to main content

激励视频

一、集成建议#

主要介绍在Android项目中如何集成 TradPlus SDK的激励视频:

  • 激励视频广告一般是全屏的15-30s的视频,调用时机是在给用户奖励或者获得某些特定物品时展示广告;当用户看完广告,开发者可以在onAdReward回调中下发奖励发放给用户。目前TP不支持服务器回调(S2S)的激励下发机制,但是可以使用广告平台的服务器回调功能,请参考激励视频服务器激励(S2S)说明
  • 激励视频广告是三方广告平台提供的activity,一般不支持做定制或者修改。创建广告位对象和展示广告的时候需要传Activity。
  • 激励视频广告一般需要预加载,在需要展示激励视频前判断isReady()是否准备好,准备好后可以调showAd()。
  • 自动加载功能是TradPlus独有的针对部分需要频繁展示广告的场景做的自动补充和过期重新加载的功能,推荐在广告场景触发较多的场景下使用。更多了解,请看自动加载功能介绍

注意事项#

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

二、TPReward API说明#

1、初始化广告位#

方法说明
TPReward(Activity activity, String adUnitId)初始化广告位。 仅调用一次。
以下广告平台时必须传入Activity: IronSource 、Kidoz、Maio、Sigmob、GDT(奖励式插屏全屏视频),否则会导致广告无法加载成功。
默认开启自动加载功能。
TPReward(Activity activity, String adUnitId, boolean isAutoLoad)isAutoLoad设置自动加载模式。默认开启,false关闭。

2、加载、展示广告#

方法说明
loadAd()请求广告。
isReady()检测是否有可用广告。
V6.2.4新增APItrue为有可用广告。 自动加载模式下,isReady()false会自动加载广告。
entryAdScenario(String sceneId)进入广告场景。
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
showAd(Activity activity, String sceneId)展示广告。
参数1: 以下广告平台时必须传入Activity:Awesome、UnityAds、Fyber、Admob、Huawei、 Kuaishou、Mimo、Sigmob、GDT、Toutiao(国内)、Pangle(海外),否则会导致广告加载成功,但无法展示。
参数2: sceneId 广告场景ID 是可选参数,开发者需和entryAdScenario(sceneId)配套使用。不调用entryAdScenario(sceneId),可以直接传空字符串。
  • 参数说明
参数说明
adUnitId广告位ID,TradPlus后台创建。应用管理——添加应用——添加广告位。
注意广告类型创建错误会导致广告展示失败,例如用标准原生的广告位去请求激励视频广告。
sceneId广告场景ID,TradPlus后台创建。应用管理—— 广告场景。
具体如何使用,请看广告场景的调用时机和用途说明
自动加载模式 isAutoLoadtrue开启,false 关闭。
开启自动加载模式后无需调用loadAd()
开启后,会在哪些时机请求广告请看自动加载功能说明

3、监听回调#

方法说明
setAdListener(RewardAdListener adListener)设置广告监听。
其中RewardAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)设置单个源维度的监听回调(可选)
V6.4.5新增API。其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。单个源维度是指TP端的一个广告位下配置多个广告源缓存,每个源的回调。
setDownloadListener(DownloadListener downloadListener)设置下载监听回调(可选 )。 快手、穿山甲等国内源支持。
V8.1.0.1新增API
setRewardAdExListener(RewardAdExListener rewardAdExListener)设置“再看一次”回调(可选 )。 快手、穿山甲等国内源支持。
V8.1.0.1新增API
  • 监听回调中的参数说明 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 tpAdError)广告展示失败。
V7.3.0新增回调参数TPAdError
onAdPlayAgainReward(TPAdInfo tpAdInfo)“再看一次”奖励回调。
V7.4.0新增,目前仅快手和头条国内支持(需要申请)
V8.1.0.1 废弃。
开发者可通过设置setRewardAdExListener获取“再看一次奖励”回调。
onAdVideoStart(TPAdInfo tpAdInfo)视频播放开始。
V8.1.0.1新增
onAdVideoEnd(TPAdInfo tpAdInfo)视频播放结束。
V8.1.0.1新增
  • LoadAdEveryLayerListener(可选)(单个源维度)V6.4.5新增
方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源,每个广告源加载失败后会都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)配置多个广告源,每个广告源加载成功后会都会回调一次。
onLoadAdStart(TPAdInfo tpAdInfo)请求广告后,广告开始加载。
V7.9.0 废弃。
oneLayerLoadStart(TPAdInfo tpAdInfo)每层waterfall 向三方广告源发起请求前,触发的回调。V7.9.0 新增。
onAdStartLoad(String adUnitId)每次调用load方法时返回的回调,包含自动加载等触发时机。V7.9.0 新增。
onBiddingStart(TPAdInfo tpAdInfo)Bidding开始加载。
onBiddingEnd(TPAdInfo tpAdInfo, TPAdError tpAdError)Bidding加载完成。
V7.3.0新增回调参数TPAdError
  • setDownloadListener(可选)(部分国内源支持)V8.1.0.1新增
方法参数说明
onDownloadStartTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName开始下载回调。
TPAdInfo:广告的信息对象,具体请参考上文回调信息说明
totalBytes:文件总大小(单位:字节)
currBytes:当前已下载的大小(单位:字节)
fileName:文件名称
appName:文件对应的应用名称
onDownloadUpdateTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName,int progress下载进度更新回调。
参数意义同上。
onDownloadPauseTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName暂停下载回调。
参数意义同上。
onDownloadFinishTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName下载完成回调。
参数意义同上。
onDownloadFailTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName下载失败回调。
参数意义同上。
onInstalledTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appNameApk安装完成回调。
参数意义同上。
  • setRewardAdExListener(可选)(部分国内源支持)V8.1.0.1新增
方法说明
onAdAgainVideoClicked(TPAdInfo tpAdInfo)“再看一次”广告被点击。
onAdAgainImpression(TPAdInfo tpAdInfo)“再看一次”广告被展示。
onAdAgainVideoStart(TPAdInfo tpAdInfo)“再看一次”广告视频播放开始。
onAdAgainVideoEnd(TPAdInfo tpAdInfo)“再看一次”广告视频播放结束。
onAdPlayAgainReward(TPAdInfo tpAdInfo)“再看一次”广告奖励回调。

三、示例代码#

请参考RewardedVideo Demo

private TPReward mTpReward;
...
if(mTpReward == null) {
mTpReward = new TPReward(activity, "AdUnitId");
}
mTpReward.setAdListener(new RewardAdListener() {
@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) {}
@Override
public void onAdVideoError(TPAdInfo tpAdInfo,TPAdError tpAdError) {}
// 8.1.0.1 新增播放开始
@Override
public void onAdVideoStart(TPAdInfo tpAdInfo) {}
// 8.1.0.1 新增播放结束
@Override
public void onAdVideoEnd(TPAdInfo tpAdInfo) {}
});
mTpReward.loadAd();
....
// 展示广告页面
// 进入广告场景
mTpReward.entryAdScenario(sceneId);
// 先判断是否有可用广告
if (mTpReward.isReady()) {
// 有可用广告,展示
mTpReward.showAd(activity,sceneId)
}