最近在接入快应用banner广告时,入了一些坑,原本以为广告接口都是一样的,实际上在不同厂商手机测试时,碰到不少问题。本文主要梳理了华为banner广告和联盟广告的差异点,避免其他开发者入坑。 1.差异点1.1 ad.createBannerAd接口 图1 联盟创建广告接口说明
图2 华为创建广告接口说明 这个接口是创建广告对象的,决定了广告的大小、展示位置,差异点如下: l 华为接口有三个参数,第三个参数adIntervals尽管不是必填项,但是建议填写,不写的话广告就不会刷新。 l 华为广告style参数是必填的,联盟不是必填的。当style未填时,在华为手机和华为快应用加载器测试时,报202参数错误,报错如下: l 华为banner广告中style参数的width和height必须按照官方文档中的参数填写,不能随便填写其他值,否则会返回1004错误码,1004错误码意思是没有合适的广告。联盟广告width和height可以填写任意值,引擎会按照规则进行缩放。如果您是基于联盟广告文档开发的,后面在华为手机上测试发现不展示,此时您需要查看错误码,基本上都是返回1004错误码。 l 华为banner广告中style参数的top和left值是必填字段,也就是开发者需要显示设置广告显示位置,如不填返回如下错误: 联盟广告这两个字段不填写,广告默认展示在屏幕下方。如果您希望banner广告一直显示在设备下方,那么您也需要针对华为计算top值,可参考案例华为快应用banner广告如何实现显示在底部。 1.2 bannerAd.onResize接口华为banner广告不支持这个方法。如果您在这个回调中有处理业务逻辑,请注意一定要保证不影响在华为手机的效果。 1.3 验收华为广告有验收过程,验收阶段使用测试广告位,测试广告位不参与统计和计费,方便开发调试。验收通过后才可以使用正式的广告位提交审核发布新版本,新版本上架后,华为广告团队才会配置正式广告位素材。具体参考华为接入广告官方文档。 其他厂商vivo是通过在在后台给手机IMEI添加白名单,添加后可在该手机上预览到广告。 2. 总结针对上面的差异点,建议开发者在接入快应用广告时,代码上进行厂商区分。华为有自己的快应用引擎,如果您的应用要在华为渠道上架,一定要基于华为快应用加载器和华为手机测试。在区分华为和其他厂商时,建议使用device接口的engineProvider(华为扩展)来区分是否属于华为,也可参考案例如何判断快应用是否是运行在华为手机上。
|