本平台Android Sdk常见问题
1. 不同广告类型常见问题
1.1 各广告类型通用常见问题
1.1.1 Q : 对接过程中如何调试不同广告平台的广告?
A : 所有广告类型均有setOnlySupportPlatform(String platform)方法,可以通过该方法指定需要调试的平台,平台名称可以参考Demo中res/values/strings.xml中的platforms;
例:Banner广告需要指定头条平台的广告,则可以通过以下代码设置;
// 设置仅支持的广告平台,设置了这个值,获取广告时只会去获取该平台的广告,null或空字符串为不限制,默认为null,方便调试使用,上线时建议不设置或设置为null
suyiBannerAd.setOnlySupportPlatform("toutiao");
1.1.2 Q : 每个广告平台支持的广告类型都一样吗?
A : 由于三方平台相关特性,不同广告平台所支持的广告类型不太一致,具体请参考各平台广告类型支持情况;
1.1.3 Q : 如何判断当前获取到的广告是哪个平台的?
A : 广告Info对象(ADSuyiAdInfo和它的子类)都有getPlatform()方法,可以通过该方法获取平台名称,平台名称可以参考Demo中res/values/strings.xml中的platforms;
1.1.4 Q : 其他手机下载完成之后可以唤起安装,但是安卓7.0及之后的手机无法唤起安装界面?
A : 请参考对接文档兼容适配,检查FileProvider是否配置正确,v4包版本号是否达到要求,是否有添加REQUEST_INSTALL_PACKAGES权限等;
1.1.5 Q : 应用过审的时候,特别是华为平台,不允许直接下载广告,需要弹出下载提示框,该如何处理?
A : 我们后台有开启下载提示框的配置,但是,由于各个平台的特性,该功能仅支持部分平台(头条、百度等),一些平台需要到相应平台的后台申请(例如:优量汇),还有一些平台暂不支持该功能;
1.1.6 Q : 广告资源释放问题?
A : 广告都有释放接口,开发者可以在合适的时机释放广告,被释放的广告无法再次使用,SDK本身会在Activity onDestroy或Fragment onViewDestroy 的生命周期中释放广告资源;
1.2 开屏广告常见问题
1.2.1 Q : 开屏广告,点击之后开始下载不跳转主页面,或者跳转到广告落地页后返回开屏不跳转主页面,或者广告点击之后跳转的落地页被主页覆盖,或者其他有关开屏跳转逻辑问题,该如何处理?
A : 设置开屏广告监听并在onAdClose和onAdFailed两个回调中进行页面跳转;
1.2.2 Q : 开屏广告白屏时间较长该如何处理?
A : 开发者可以通过给开屏界面设置主题样式的android:windowBackground来进行视觉过渡;如果觉得等待时间太长,可以通过ADSuyiSplashAd对象的**setTimeout()**来设置超时时长,单位是毫秒,最小值为3000,默认是5000,超时时长设置过小将一定程度上影响广告收益;
<activity
android:name=".activity.SplashAdActivity"
android:screenOrientation="portrait"
android:theme="@style/splash">
...
</activity>
1.2.3 Q : 开屏广告的跳过按钮是否支持自定义样式和倒计时时长?
A : 暂时不支持,跳过按钮倒计时时长默认为5秒;
1.2.4 Q : 开屏广告的容器需要注意什么?
A : 容器应保证可见,高度不小于屏幕高度的75%,并且不拦截点击触摸等事件;
1.3 Banner广告常见问题
1.3.1 Q : 如何设置Banner广告自动轮播刷新功能?
A : 可通过ADSuyiBannerAd的**setAutoRefreshInterval()**方法设置,部分平台的Banner广告可能还需要在相应平台的后台开启轮播,部分平台设置不生效,例如:百度;
// 设置自刷新时间间隔,0为不自动刷新(部分平台无效,如百度),其他取值范围为[30,120],单位秒
suyiBannerAd.setAutoRefreshInterval(60);
1.3.2 Q : Banner广告的尺寸问题?
A : 我们支持多种比例的广告尺寸,但是不同广告平台的支持不太一致,具体尺寸以本平台实际可使用的广告尺寸为主。
1.4 信息流广告常见问题
1.4.1 Q : 信息流广告为什么区分原生渲染和模板两种类型?
A : 不同平台的支持不太一样,有的仅支持原生,有的仅支持模板,合并在一起开发者可以更自由的对接,如果只需要原生渲染,后台只配置原生渲染的即可,如果只需要模板也是同理,如果需要混合则两个均配置;
1.4.2 Q : 信息流广告如何区分是原生渲染还是模板?
A : ADSuyiNativeAdInfo对象有**isNativeExpress()**方法,如果返回true即为模板,否则是原生自渲染;
1.4.3 Q : 信息流广告可以区分广告是什么类型(落地页、下载等)吗?
A : 信息流广告的原生自渲染可以区分,可以通过ADSuyiNativeFeedAdInfo对象的**getActionType()方法来获取广告类型,还可以通过getCtaText()**方法来获取广告类型描述文字(例如:下载安装、查看详情、拨打电话等),但是,由于不同平台的特性,部分平台无法区分类型,**getActionType()**获取的会是未知类型,getCtaText()获取的是查看详情;
1.4.4 Q : 使用信息流广告需要注意什么?
A : 参考Demo对接,如果是自渲染模式务必添加广告标识角标,可以通过ADSuyiNativeFeedAdInfo对象的**getPlatformIcon()**方法来获取广告角标Drawable资源;
1.5 激励视频、全屏视频、插屏广告常见问题
1.5.1 Q : 激励视频、全屏视频、插屏广告有什么区别?
A : 激励视频广告是播放一段视频,播放完成或其他特定情况下(不同平台有所差异)会给予激励回调,激励视频一般是需要播放完成后才能退出播放界面;全屏视频广告类似激励视频,但是全屏视频没有激励回调,全屏视频一般在播放一段时间后即可退出当前播放界面;插屏广告一般是以弹窗的形式展示图文或视频,也有部分平台是单独的全屏界面进行展示;
1.5.2 Q : 激励视频、全屏视频、插屏广告什么时机展示较好?
A : 激励视频、全屏视频一般在onAdReceive回调之后即可展示;插屏一般在onAdReceive回调之后即可展示;
1.5.3 Q : 激励视频、全屏视频、插屏广告可以多次展示吗?
A : 激励视频、全屏视频、插屏广告均属于一次性展示广告,成功获取的广告Info对象仅能展示一次,具体可参考Demo;
2. 调试和错误码相关问题
2.1 调试和问题排查
2.1.1 Q : 所有广告都有错误回调吗?
A : 都有,且所有广告错误回调均为 :
@Override
public void onAdFailed(ADSuyiError adSuyiError) {
}
2.1.2 Q : 如何通过错误信息排查问题?
A : 错误回调均会返回ADSuyiError对象,ADSuyiError可以获取错误码,错误信息和描述列表,通过ADSuyiError的**toString()**方法可以得到Json格式化后的错误信息,然后通过相应的错误码和错误信息结合描述信息排查问题,其中描述信息中包含广告来源平台和该平台广告获取失败的错误码以及错误信息,示例如下:
{
"posId":"7722",
"adType":"drawvod",
"code":-20101,
"error":"所有三方广告位均没有获取到广告",
"descList":[
{
"platform":"toutiao",
"code":40006,
"error":"广告位ID不合法"
},
{
"platform":"admobile",
"code":-20109,
"error":"暂不支持当前广告类型"
}
]
}
2.2 错误码
2.2.1 Q : ADSuyiSdk错误码对照表
A : ADSuyiSdk错误码对照表如下 :
错误码 | 错误描述 |
---|---|
-10001 | AppId不能为空 |
-10002 | SDK初始化必须在主线程 |
-10003 | 艾狄墨搏平台或天目平台不能为空, 请检查导入和混淆情况 |
-10004 | 没有初始化或者初始化没有成功, 可能没有导入该平台需要的SDK或者混淆配置不正确 |
-10005 | OAID必须集成, 如已经集成请检查混淆是否正确 |
-10006 | 初始化接口数据为空 |
-10007 | 初始化接口KEY为空 |
-10008 | 初始化接口数据解密失败 |
-10009 | 初始化接口数据解析失败 |
-10010 | 平台AdapterSdk支持的ADSuyiSdk版本为空 |
-10011 | 平台AdapterSdk不支持当前版本的ADSuyiSdk, 当前平台AdapterSdk支持的ADSuyiSdk版本有 : ... |
-10012 | 没有调用初始化方法 |
-20000 | 必须在主线程获取广告 |
-20001 | 广告容器不能为空 |
-20002 | 广告对象已被释放或者传入的Activity或Fragment为空 |
-20100 | 获取广告超时 |
-20101 | 所有三方广告位均没有获取到广告,请查看三方Adapter失败原因 |
-20102 | 获取广告时发生未知异常 |
-20103 | PosId不能为空 |
-20104 | 初始化数据为空,可能是没有本地缓存的初始化数据并且初始接口请求失败 |
-20105 | AppId和包名不匹配 |
-20106 | 没有找到当前PosId的配置信息,主要有以下三种情况 : 1、初始化失败,本地没有初始化配置信息并且远程拉取初始化配置失败了,请检查网络或AppId是否正确; 2、传入的PosId有误; 3、如果前两条均正常,请后台检查该PosId是否配置了三方平台的广告位信息 |
-20107 | 平台的广告位信息为空 |
-20108 | 该PosId对应的广告类型不匹配 |
-20109 | 暂不支持当前广告类型 |
-20110 | 返回的广告数据为空 |
-20111 | 不支持激励广告 |
-20112 | 已达到展示上限 |
-20113 | 初始化配置信息拉取失败并需要阻止广告加载 : ... |
-1 | 其他错误信息(如:头条信息流模板广告ADSuyiAdSize中的宽度必须大于0等) |
2.2.2 Q : 三方平台错误码去哪里查看?
A : 三方平台错误码对照表参考以下;
平台 | 错误码相关链接 |
---|---|
天目 | 天目错误码 |
优量汇/优量汇/gdt | 优量汇错误码 |
头条/穿山甲/toutiao | 头条错误码 |
百度/百青藤/baidu | 百度错误码 |
快手/ksad/kuaishou | 快手错误码 |
万维/oneway | 万维错误码 |
讯飞 | 讯飞错误码 |
汇量/minteral | SDK内部已转换 |
Inmobi | 暂无 |
Appic | 暂无 |
待续... | 待续... |