常见问题
一、广告加载失败
1、集成错误
- 适配文件没有集成
开发者需要根据打包平台确认集成的SDK都正确添加到项目中,找不到三方Adapter会报错adapter not found 或 Couldn't locate or instantiate custom event null
- TP的混淆配置没有添加
根据《SDK配置》文档添加混淆,不添加混淆会报Couldn't locate or instantiate custom event null
- 确认集成广告源是否需要传入Activity
部分三方源需要activity才能请求成功,没有传入Activity会一直失败
- 对象调用错误
确认TP的广告位类型和new TPObject的类型一致,例如不能创建开屏的广告位ID,但是用激励视频API去请求
2、后台配置问题
- 后台没有添加广告源
确认在TradPlus创建的广告位ID下已经添加了三方广告网络,会由于拉取不到配置报no config
- 同一个广告平台配置不同的APPID
- 确认TradPlus后台是否配置的三方广告源有多个APPID
- 后台配置错误即使是不同类型也只能配置同一个APPID
- 例如Mintegral开屏类型的appId、appkey和激励视频类型的appId、appkey不一致,三方平台只支持初始化同一个APPID,多个APPID初始化会导致请求失败
3、请求某个源一直无填充
-
开发者需配合《错误码和错误信息》定位错误问题
-
如果广告一直请求失败,就需要开发者根据三方平台错误码确认集成三方广告加载失败的原因
-
开发者可以通过过滤
TradPlusLog
查看日志信息或设置LoadAdEveryLayerListener
监听oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)回调,打印每个广告源加载失败的原因
(1)Meta或者Admob一直没有填充
-
**Meta必须使用测试广告测试,否则会有封号风险。**需要使用三方提供的测试ID去测试,可配合如何使用测试模式来测试
-
Admob必须使用测试广告测试,否则会有封号风险。(见下面截图)TradPlus测试模式测试,TradPlus后台已经将Admob测试广告配置到后台,开发者可以直接使用。
-
网络不好会偶现插屏视频中间视频播放黑屏,或者原生广告展示无展示事件。
-
请求次数过多,即使是使用测试广告也会无填充。
(2)Bidding源正式广告拉不到配置
报错日志为:
waterfall bean is null
或
Bidding Failed
-
由于TradPlus服务器策略能访问国内ip的网无法拉取到海外Bidding配置的。
-
开发者可以使用TradPlus测试模式进行测试。测试广告请求成功并展示表示内部流程已经跑通,是可以直接上线。
-
如果有需求上线前必须要用正式广告测试,那么IP必须在海外Bidding才能拉取到配置。例如:VPN开启后,不能打开CSDN情况下,才能拉取到,如下图:

(3)TapTap请求没有填充
-
由于Oaid对于TapADN SDK 的广告转化效果尤为重要,开发者请求广告前要传OAID
-
V9.9.10.1+ 支持开发者设置oaid
-
第一次请求广告时设置,以激励视频为例
TPReward mTpReward = new TPReward(activity, "AdUnitId");
Map<String, Object> mLocalExtras = new HashMap<>();
mLocalExtras.put("tap_oaid","手机设备的oaid");
mTpReward.setCustomParams(mLocalExtras);
mTpReward.loadAd();
- V9.9.10.1之前的版本,开发者要重写TapAdCustomController类,传入oaid,请求广告前传给TP,开发者可参考Demo设置
TapTapInitManager.getInstance().setTTCustomController(new TapTapUserDataCustomController());
二、广告加载成功但是展示失败
1、广告加载成功后没有调用showAd
- (1)各类型广告
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)
或oneLayerLoaded(TPAdInfo adInfo)
加载成功监听是否回调 - (2)激励、插屏、开屏
isReady()
为true,后调用showAd()。
2、广告位类型请求的API是否类型匹配
- 例如创建开屏的广告位,但是使用激励视频的API去请求。
- 开发者可以通过打印
onAdVideoError(TPAdInfo tpAdInfo, TPAdError tpAdError)
或onAdShowFailed(TPAdError error, TPAdInfo tpAdInfo)
查看报错原因。
3、激励视频、插屏
-
(1)showAd调用没有传入activity
showAd(Activity activity, String sceneId)
展示广告是否传入Activity,context会导致部分广告源展示失败。 -
(2)后台配置问题
errorMsg为
frequency limit
,TP广告位是否设置了频次限制。
4、标准原生
-
(1)
showAd(ViewGroup adContainer, int layoutId)
容器是否为空 -
(2)开发者是否修改布局文件中的android🆔 资源ID,会导致自渲染广告的元素无法找到对应id而展示失败
-
(3)后台配置问题
errorMsg为
frequency limit
,TP广告位是否设置了频次限制。
5、开屏
- (1)开发者需确认加载和展示广告是否使用配对的API,正确传入容器,具体请查看《开屏文档》
- (2)后台配置问题
errorMsg为
frequency limit
,TP广告位是否设置了频次限制。
6、Meta的原生横幅
- 容器的宽必须是match_parent,不能是wrap_content,否则会导致展示失败。
7、Bigo的原生横幅
- bigo原生横幅有填充但是没展示,bigo对原生广告的要求是一定要有大图,即mediaView,否则不算展示。用我们的默认布局模板是有设置mediaView的,如果是自定义样式注意需要加上mediaView。
三、应用ID与广告位ID不匹配问题
一般出现这样提示有以下几种情况:
- 没有调用tradplus的初始化就去load了,这种情况下load广告的时候用的appid是空的
- 调用tradplus的初始化是在load广告后,同上一种情况
- 初始化没有成功就load广告,同上一种情况
- 开启了tradplus的测试模式,测试模式下发的是tradplus默认配置,确实会不一样。这种可以忽略
- 初始化也是提前调的,但是load还提示这个,那么可能确实用的appid和广告位id不是一个app下的,需要去tradplus后台查看应用管理。
四、编译报错
1、拉取TP SDK 或 TP对应的三方Adapter Gradle 失败
-
步骤1:开发者需根据打包平台确认集成的SDK正确
- (1)是否是5.X更新上来的用户:由于JCenter仓库停止服务,TP和三方平台的仓库均有更新,请老版本升级上来的客户对照打包平台一一修改引用
- (2)版本号是否能一一对应或者是否有字母写错的情况
- (3) Android Studio HTTP Proxy状态正常
- (4) Gradle是否属于“离线模式”—— 'offline mode'情况下构建项目是不会在线拉取第三方依赖包的
-
步骤2:确认Module级和Project级中build.gradle中正确引入了
mavenCentral()
和google()
repositories {
mavenCentral()
google()
jcenter()
...
}
}