5.1 排查指南
本指南面向已经完成 Mediation SDK 接入、但广告无法加载或展示的开发者。请按“初始化 → 云控 → 广告源集成 → 请求与填充 → 展示”的顺序排查,不要在未确认测试模式时点击正式广告。
30 秒快速检查
- 使用文档中当前版本的
mediation-lib和对应广告源*-lib,不要混用不同版本。 - 初始化使用正式且有效的 App ID,并确认应用包名与平台配置一致。
- 广告位 ID、广告类型和调用的 API 一致,例如插屏广告位使用
TInterstitialAd。 - 设备网络可用,测试国家或地区在广告位投放范围内。
- 测试广告配置已按集成测试完成;不同广告源的测试模式可能需要分别配置。
- 在
onCloudComplete回调完成后再调用loadAd()。 - 已实现并记录
onError()和onShowError()返回的错误码与错误信息。
第一步:确认初始化和云控结果
在初始化时设置云控回调,记录 code 和 message。code == 0 后再发起广告请求;非 0 时先处理初始化或云控问题。
.setCloudCompleteListener(new TAdManager.OnCloudCompleteListener() {
@Override
public void onCloudComplete(int code, String message) {
// 使用应用现有日志系统记录code和message
if (code == 0) {
// 在此处请求广告
}
}
})
常见分流:
60001:App ID 无效或为空,检查初始化参数。70001~70006:云控请求、App ID、包名、系统或平台应用状态异常。70007:本地未找到广告位配置;确认广告位已经生效、投放地区正确,并在云控成功后再加载。70011~70013:广告位未配置广告源、API 与广告类型不匹配,或广告位已关闭。
错误码的完整处理建议请查看错误定位。
第二步:确认广告源已经集成
如果云控成功但始终没有广告,请检查:
- 对应广告源的
*-lib依赖已经加入,并与mediation-lib使用相同版本。 - 已完成该平台要求的 Maven 仓库、Manifest、App ID、混淆和网络配置。
- 广告源 SDK 版本符合三方版本库适配要求。
- 其他广告源未出广告时,先确认对应广告源是否集成成功。开启SDK日志后查看以下日志,
exist = true表示该广告源已经集成成功:
例如:
...
platform classname = com.hisavana.adxlibrary.check.ExistsCheck exist = true
platform classname = com.hisavana.admoblibrary.check.ExistsCheck exist = true
platform classname = com.hisavana.fblibrary.excuter.check.ExistsCheck exist = true
...
出现 30001 通常表示广告源初始化失败。先检查依赖和平台参数;仍无法解决时,将初始化阶段完整日志提交给 SDK 支持人员。
第三步:开启日志并记录回调
Debug 构建可使用 .setDebug(BuildConfig.DEBUG) 开启 SDK 日志,也可以在测试设备执行:
adb shell setprop log.tag.ADSDK DEBUG
adb shell setprop log.tag.AD_NET_LOG DEBUG
adb logcat | grep ADSDK
ADSDK_M 用于聚合主流程日志,ADSDK_N 用于广告网络请求日志。复现问题时记录 onError() 和 onShowError() 的错误码及错误信息:
@Override
public void onError(TAdErrorCode errorCode) {
if (errorCode == null) {
return;
}
int code = errorCode.getErrorCode();
String message = errorCode.getErrorMessage();
// 使用应用现有日志系统记录code和message
}
@Override
public void onShowError(TAdErrorCode errorCode) {
if (errorCode == null) {
return;
}
int code = errorCode.getErrorCode();
String message = errorCode.getErrorMessage();
// 使用应用现有日志系统记录code和message
}
第四步:根据结果分流
| 现象 | 常见错误码 | 排查方向 |
|---|---|---|
| 初始化或云控未完成 | 60001、70001~70007 | 检查 App ID、包名、网络和平台配置,等待云控回调 |
| 广告源初始化失败 | 30001 | 检查对应 *-lib、平台 App ID、Manifest、混淆和版本兼容 |
| 请求超时或无填充 | 20001~20008、30002~30006、Hisavana SSP 9000 系列 | 检查网络、测试模式、广告位投放、平台库存和广告源参数 |
onLoad() 已回调但无法展示 | 40001~40002、50001、60002、60006~60007 | 确认在加载成功后展示、对象未销毁、广告未重复展示,并检查场景限制 |
只有 onLoad() 成功表示广告已经加载;展示阶段失败应以 onShowError() 为准。平台特有问题请继续查看常见问题。
提交问题时需要提供的信息
如果仍无法解决,请一次性提供以下信息,避免只提交“没有广告”的截图:
- Mediation SDK 版本和广告源 Adapter 版本。
- 应用包名、广告位 ID、广告类型和目标广告源。
- 问题发生时间(含时区)、国家或地区、网络类型、设备型号和 Android 版本。
- 是否开启测试模式,以及使用测试广告位还是真实广告位。
onCloudComplete、onError或onShowError的完整code/message。- 从初始化开始到失败回调结束的
ADSDK_M、ADSDK_N日志。
提交日志前请删除与问题无关的用户信息,不要公开真实 App ID、广告位密钥或完整广告响应。