SDK错误码解析及问题排查定位
SDK错误码问题定位总体思路
在接入过程中或者线上用户最常反馈的就是广告无填充问题,当遇到这类问题时,建议:
- 及时查看相关错误码埋点情况或根据媒体平台找到应用管理->搜索对应的广告位/代码位ID->点击三个点->点击诊断分析;根据诊断分析解释说明协助快速定位并解决问题
- 当通过诊断分析无法定位问题时,可通过抓包或日志检索关键字明确ADN具体错误码
- 支持通过- (NSArray<CloooudAdLoadInfo > )getAdLoadInfoList 获取加载失败的ADN错误信息,根据LoadInfoList详情发现并定位问题
Cloooud SDK高频错误码解析
错误码 | 说明 | 排查建议 |
---|---|---|
10086 | 所有层所有ADN次无广告返回 | 建议增加兜底代码位,如果已配置兜底代码位,建议通过查看穿山甲媒体平台诊断分析模块进行定位或通过穿山甲抓包来明确广告无填充原因 |
10010 | 所有代码位还未请求完成就触发了总超时时间 | 建议延长瀑布流总超时时长或者缩短层超时并添加兜底代码位 |
40006 | 广告位ID不合法,请检查广告聚合平台的相关配置 | 建议检查是否是新建广告位ID,是否在请求赋值时多空格等操作 |
10040 | 因暂无广告聚合平台的相关配置无法加载Ad,配置丢失相关可能原因:请求中、配置请求必要参数设定错误、网络链接失败!如果Ad类型非开屏广告,请尽量在各ad的setConfigSuccessCallback中loadAd | 除开屏广告外,建议在config回调成功后再发起广告请求 |
40031 | 聚合广告位对应的广告类型和当前广告类型不一致 | 请在媒体平台核对创建的广告类型,参照接入文档内提供的支持广告类型进行对照,避免方法使用有误 |
40040 | 暂无配置信息 | 当发生此场景时,建议优先检查应用ID是否赋值正确,是否有多余空格等,当无法定位到相关问题时,建议通过抓包查看config文件夹下的请求信息反馈给对应的技术支持同学 |
40041 | waterfall层级展示次数达到上限,本次广告加载被阻止 | 建议通过穿山甲媒体平台,查询该广告位ID下的瀑布流属性设置内的展示控制设置天级别频控是否达到上限导致的 |
40042 | waterfall层级展示间隔未超过规定的最短时长,本次广告加载被阻止 | 建议通过穿山甲媒体平台,查询该广告位ID下的瀑布流属性设置内的展示控制设置用户小时级别频控是否达到上限导致的 |
40043 | 命中M频繁请求熔断机制,实际未发起请求 | 建议延长请求频次间隔或者通过穿山甲媒体平台,设置该广告位ID下的瀑布流属性设置内的展示控制 |
40044 | 命中ADN错误码,进入冷冻期,实际未发起请求 | 建议延长请求频次间隔或者通过穿山甲媒体平台,设置该广告位ID下的瀑布流属性设置内的展示控制 |
40045 | 因广告配置数据出错,导致实际广告请求未发起 | 建议检查瀑布流相关配置,如检查是否存在广告类型配置错误等场景 |
40047 | 同一广告对象不能多次加载(广告还未展示),请使用新的广告对象 | 需注意每次加载广告时需重新创建新的广告对象,不能使用同一个广告对象多次请求 |
40048 | 同一广告对象不能多次加载(广告已经展示),请使用新的广告对象 | 需注意已经展示过的广告对象不能重复使用,需要使用新的广告对象 |
40050 | ADN填充失败,但无具体错误信息 | 建议通过查看穿山甲媒体平台诊断分析模块进行定位或通过穿山甲抓包来明确广告无填充原因 |
40051 | ADN版本错误引起的加载失败 | 请参照对接文档SDK接入模块,对照接入的ADN版本 |
40052 | 无可用广告引起的展示失败 | 开发者可在展示失败回调确认该错误码情况,如果是穿山甲广告可优先检查是否是调整了系统时间导致的 |
40200 | 广告类型不匹配 | 建议通过各adn对应Cloooud广告样式明确接入的广告类型情况,参照对接文档各广告类型模块说明明确对应广告请求方法,以确保正确完成广告接入,避免由于广告类型不匹配导致的无广告填充 |
44406 | 广告位ID不合法 | 当发生此场景时建议优先检查广告位ID的状态是否正常 |
广告网络常见错误码
穿山甲
错误码 | 说明 | 排查方向 |
---|---|---|
20001 | 没有合适的广告返回而导致的请求没有填充,偶现属于正常情况 | 可以尝试更换设备进行验证。若不能解决,请先检查一下广告尺寸是否填写正确,是否有使用模拟器测试广告,单个设备是否一天请求了大量广告但没有展示或者展示率极低等。以上均不满足可以联系穿山甲对接同学或者提交工单(包含代码位和出现概率以及请求时间),相关同学查明后会做出回复。必现场景可以通过抓包确认更具体原因:抓包地址:https://is.snssdk.com/api/ad/union/sdk/get_ads/ 返回结果:{"request_id": "xxxx", "status_code": 20001, "reason": 112} 若reason=112,则需要开发者提升展示率,或优化cpm后,隔天会自动恢复填充。若reason=106,则说明没有填充是因为设置了target导致的填充不足。其他原因请通过工单反馈或者微信群进行反馈。2500以上版本只过滤get_ads即可,DNS预解析会导致请求ip |
40001 | http request pb错误 | 对照穿山甲集成文档或demo检查一下广告请求是否缺少必要参数 |
40004 | 广告位不能为空 | 检查设置的代码位位ID是否为空 |
40006 | 广告位ID不合法 | 代码位ID长度不对,或者传了空字符串。新创建代码位需要等2~3分钟才可生效 |
40007 | 广告数量错误 | 检查设置的广告请求条数 |
40008 | 图片尺寸错误 | 检查传入的请求广告尺寸 |
40009 | 媒体ID不合法 | 检查设置的代码位ID |
40013 | 非开屏广告请求方法使用了开屏代码位ID | 检查请求广告使用的代码位ID是否正确,开屏代码位ID为8开头的九位数字 |
40016 | 代码位ID与应用ID不匹配或者应用ID缺失 | 开发者重点检查下发或者设置的应用ID或者代码位ID,保证应用ID与代码位ID匹配,且传入的正确。保证在广告请求之前SDK初始化完成,且应用ID设置正确 |
40018 | 平台上录入的包名与项目里的包名不一致 | 发出广告请求的包名和在平台上创建应用时填写的包名不匹配,需要检查发出广告的应用的包名 |
40019 | 广告请求方法与代码位类型不匹配 | 例如平台上创建开屏代码位,但是代码中调用的接口是Banner或者其他非开屏的广告类型。可参考穿山甲的集成文档或Demo进行方法确认 |
40020 | 开放注册新上线广告位超出日请求量限制 | 平稳放量,会逐渐放开限制 |
40021 | apk签名SHA1值与媒体平台录入的SHA1不一致 | 发出广告请求应用的SHA1值和在平台上创建应用时填写的SHA1值不匹配。SHA1获取方法 |
40022 | 广告请求方法与代码位渲染方式不一致 | Banner和插屏广告,穿山甲平台目前仅支持模板渲染和自渲染两种方式,非原生Banner、插屏广告请求方法已经废弃。开发者创建了自渲染或者模板渲染的代码位,而使用了非原生Banner、插屏的广告请求方法,会出现此错误。需要开发者调整广告请求方法 |
40024 | SDK版本过低不返回广告 | 请升级到平台最新版本SDK |
40025 | 渲染异常 | 分为两种情况:1、Android:SDK版本使用不正确,媒体使用了非该应用所属账号下的SDK版本导致,请到该代码位所属账号下工具-文档下载展示的SDK版本去进行接入。2、iOS:媒体使用2100之前的版本可能渲染异常,请更新到最新版本接入即可解决该问题 |
40026 | 海外ip请求中国服务器导致 | 请确认发出广告请求设备ip的所属国家,非全球化开发者只能在国内请求广告 |
40029 | 模板渲染类型广告的请求方法或请求参数不正确 | 三种情况:1. SDK版本低:使用的SDK版本过低,还不支持个性化模板渲染功能。解决办法:升级到平台最新版本SDK。2. 服务端代码位配置未生效:新建代码位需要等2~3分钟再去请求广告。3. 接口使用错误;创建的代码位类型是模板渲染,但是请求方法是非模板渲染的方法或者模板广告的请求方法中缺少setExpressViewAcceptedSize参数。解决办法:使用模板渲染的方法和正确的参数去请求模板渲染类型的广告。参考文档 |
50001 | 服务器错误 | 出现频率过大请反馈给穿山甲对接人员 |
60007 | 激励视频验证服务器异常或处理失败 | 激励视频使用服务端验证方式可能会出现此问题。一般由服务异常或者超时问题导致,建议多尝试几次 |
-1 | 数据解析失败 | 客户端代码问题的合集,可先排查以下情况:1:在子线程调用了show。2:注册点击事件时viewgroup传空。3:媒体在onFeedLoaded回调里的业务逻辑发生了异常,导致SDK走到了onError回调中。若以上思路依然不能解决您的问题,可以联系技术支持同学或者提交工单(包含代码位和出现概率以及请求时间) |
-2 | 网络错误 | 检查网络连接或者查看是否设置了代理 |
-3 | 解析数据没有ad | 需要重新请求广告 |
-4 | 返回数据缺少必要字段 | 需要重新请求广告 |
-5 | BannerAd加载图片失败 | 需要重新请求广告 |
-6 | 插屏广告图片加载失败 | 需要重新请求广告 |
-7 | 开屏广告图片加载失败 | 需要重新请求广告 |
-8 | 频繁请求 | 客户端控制广告请求的频率 |
-10 | 缓存解析失败 | 需要重新请求广告 |
-11 | 缓存过期 | 需要重新请求广告 |
101 | 渲染结果数据解析失败 | 建议升级到穿山甲2955及以上版本SDK |
102 | 未匹配到主模板 | 主模板没有下载到本地导致,偶发在首次请求广告时,偶现属于正常情况,出现之后请多尝试多次请求。建议升级到穿山甲2955及以上版本SDK |
103 | 未匹配到子模板 | 偶发在接入初期,没有匹配到模板导致。待SDK将模板下载成功后不会出现,出现之后请多尝试多次请求。建议升级到穿山甲2955及以上版本SDK |
107 | 模板渲染超时未回调 | 网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲2955及以上版本SDK |
108 | 模板广告加载超时无返回 | 建议升级到穿山甲2955及以上版本SDK |
GDT
常见错误码 | 说明 | 处理建议 |
---|---|---|
4001 | 初始化错误, 包括广告位为空、App ID为空、Context/Activity为空 | 在广告位ID和应用ID无误的前提下,请检查展示广告的Context/Activity是否为空 |
4007 | 当前设备或版本不支持 | 请参照本文档中相应广告类型对设备或版本的限制 |
5002 | 视频素材下载错误 | 建议稍后重试,如果重试仍然有错误,请反馈给优量汇运营 |
5004 | 未匹配到合适的广告 | 此情况下禁止多次重试请求广告,否则可能影响系统对您流量的评价从而影响变现效果 |
5006 | 包名校验错误,当前 App 的包名和优量汇官网注册媒体时填写的包名不一致,因此无广告返回 | 请检查接入优量汇 SDK 的 App 包名是否和注册时填写的一致,否则将影响您的收益 |
5010 | 广告样式校验失败,请检查广告位与接口使用是否一致 | 目前后台开放权限的是平台模板广告,请根据平台模板广告的接入文档进行接入,如果是按照自渲染广告接入文档进行接入的话,也会报错107034 |
2001 | 初始化错误 | 开发者自查参数问题 |
2003 | SDK未初始化 | 根据 Logcat 中的错误信息提示修改嵌入代码 |
3003 | 网络不可用 | 网络不可用,无法连接到服务器 |
5013 | 广告请求过于频繁 | 请求过于频繁,服务器繁忙时会返回该错误码,请检测与控制请求频率 |
4011 | 开屏广告拉取超时,请自查开屏广告的拉取超时时间设置是否过短 | 根据 Logcat 中的错误信息提示修改嵌入代码 |
5010 | 广告样式校验失败,请检查广告位与接口使用是否一致 | 目前后台开放权限的是平台模板广告,请根据平台模板广告的接入文档进行接入,如果是按照自渲染广告接入文档进行接入的话,也会报错107034 |
2001 | 初始化错误 | 开发者自查参数问题 |
5022 | 模板激励视频渲染失败 | 建议稍后重试,如果重试仍然有错误,请反馈给优量汇运营 |
4002 | 请检查 Manifest 文件中的 Activity/Service/Permission 的声明是否正确以及声明的权限是否都已授予 | 请检查 Manifest 文件中的 Activity/Service/Permission 的声明是否正确以及声明的权限是否都已授予 |
5012 | 广告数据过期 | 部分广告(如激励视频)可以预拉取,拉取广告后广告数据会有存在一个过期时间,当开发者调用展示广告的接口但此时当前时间已经超过过期时间时会返回此错误码 |
102006 | 没有匹配到合适的广告。 | 禁止重试,否则可能触发系统策略导致流量收益下降。 |
100133 | 广告位填写错误,或广告位状态处于关闭状态;如是新建广告位并立刻请求了广告,则会由于系统索引不到而导致请求失败 | 请求中包含无效的广告位,请确认对应的广告位ID的状态;新建广告位,请在新建30分钟后请求广告 |
100135 | 广告位状态冻结 | 请检查广告位状态。 |
109502 | 请求过于频繁或返回未曝光,且产生的收入低,触发平台出于成本考虑的填充限制 | 无法识别当前的网络环境,视频广告需要在WIFI和4G网络环境下请求,其他环境会返回这个报错,建议切换当前网络到WIFI或者4G再次尝试一下.无合适广告资源返回,请控制广告请求频次 |
百度
常见错误信息 | 处理建议 |
---|---|
获取不到广告 | 如为激励视频,需咨询百度相关人员申请白名单 ; 其他情况请使用Cloooud的测试工具进行问题排查。 |
加载Banner广告时一直没有回调 | ATBannerView需要先add到window上再发起加载请求 |
Admob
常见错误码 | 处理建议 |
---|---|
3 | 使用Cloooud的测试工具进行测试 |
2 | 检查是否翻墙 |
1 | 检查Cloooud后台Admob广告网络代码位配置 |
0 | 使用Cloooud的测试工具进行问题排查,或检查是否翻墙 |
Mintegral
常见错误码 | 处理建议 |
---|---|
EXCEPTION_RETURN_EMPTY | 确保Mintegral后台-应用设置中开启了是否接受apk广告投放 |
errorCode: 3507 errorMessage: data load failed, errorMsg is Network error,I/O exception | 检查是否连接了代理,并且开启了SSL Proxying,去掉后重试 |
Network error,I/O exception | 检查是否连接了代理,并且开启了SSL Proxying,去掉后重试 |
EXCEPTION_UNIT_NOT_FOUND | 该unitID不存在/填写错误,检查Cloooud后台Mintegral代码位配置(广告单元id) |
EXCEPTION_UNIT_NOT_FOUND_IN_APP | 在该appID和unitID不匹配,检查Cloooud后台Mintegral代码位配置(广告单元id) |
EXCEPTION_SIGN_ERROR | 检查Cloooud后台Mintegral代码位配置(AppKey) |
EXCEPTION_UNIT_ADTYPE_ERROR | 传入的unitID广告类型不符,检查Cloooud后台Mintegral代码位配置(广告形式不匹配) |
resource load timeout | 检查网络是否正常后进行重试 |
EXCEPTION_TIMEOUT | 请求超时,减少代码位数量或延长总超时时长 |
Sigmob
常见错误码 | 说明 | 处理建议 |
---|---|---|
200000 | 无广告填充 | 通过Sigmob后台添加测试设备进行测试 |
500701 | app未开通任何广告渠道 | 检查Sigmob后台应用状态 |
500420 | 请求的app已经关闭广告服务 | 检查Sigmob后台应用状态 |
500473 | 请求的app不存在 | 检查Cloooud后台Sigmob代码位配置 |
500424/500422 | 广告请求为什么收到请求参数缺少设备信息 | 6.0以上设备需要动态申请READ_PHONE_STATE权限,或android10请参考Sigmob FAQ中关于android10国内如何填充广告的内容 |
600101 | 请求出错 | 该code会包含多种错误场景,具体原因会在userInfo中以Json形式进行更细致的描述(code&message) |
Unity
常见错误 | 说明 |
---|---|
NOT_INITIALIZED | 在 Unity Ads 初始化之前尝试展示广告。 |
INITIALIZE_FAILED | 某些条件阻止了 Unity Ads 的初始化。 |
INVALID_ARGUMENT | 传递给 Unity Ads API 的值无效。 |
VIDEO_PLAYER_ERROR | 视频播放过程中遇到错误。 |
INIT_SANITY_CHECK_FAIL | 设备环境健全性检查失败。Unity Ads 将不起作用。 |
AD_BLOCKER_DETECTED | 检测到设备上正在运行广告拦截器。Unity Ads 将不起作用。 |
FILE_IO_ERROR | 尝试将文件写入设备存储时出错。 |
DEVICE_ID_ERROR | 未找到设备 ID 或设备 ID 无效。Unity Ads 将不起作用。 |
SHOW_ERROR | 在视频开始之前尝试展示广告失败。 |
INTERNAL_ERROR | 发生了其他一些内部错误。 |
问题排查思路及方向
在开发过程中我们经常会遇到一些接入过程中的问题,比如广告无填充;广告展示异常;偶现/必现崩溃;回调/监听不执行等问题,当遇到上述问题时
- 首先需要明确是Cloooud聚合的问题还是三方adn的问题;
- 当某家adn发生异常时建议直接在相同的adn sdk版本及其demo上进行验证,明确是否是adn自身问题,有效进行反馈并定位问题
- 广告展示异常时,需要明确是否是特定素材/特定机型及系统版本,排查问题时需要有一些辅助信息,如接入的Cloooud SDK版本;展示的ADN SDK版本;广告类型(模版/自渲染);对应素材的抓包信息;对应的录屏等
- 偶现/必现崩溃问题时,可通过堆栈信息明确是adn问题还是聚合问题,各家adn都有对应的关键字进行检索,比如穿山甲bytedance;三方adn问题建议直接和三方平台进行反馈,问题解决更高效
问题反馈模版
为了确保定位问题更高效,较少双方沟通成本,建议反馈问题时按照如下模版提供对应信息
信息提供越完整,问题排查越快捷~
- Cloooud版本(必要)
- adn版本(必要)
- 手机机型及系统版本(可选)
- 详细的问题描述(必要)
- 广告类型(模版/自渲染)(可选)
- 应用ID/广告位ID/代码位ID(必要)
- 是否必现(可选)
- 操作录屏或截图(最好是录屏)(可选,展示异常时必要)
- 素材抓包(展示异常场景,可选)
- 堆栈信息(最好提供文本信息;截图不建议,崩溃场景必要)
- debug包(可选,方便问题排查及场景复现)