一、开屏广告
1. 是否有额外设置定时器逻辑在定时器触发时直接跳转首页,不依赖开屏广告超时回调
建议:如果有额外定时器逻辑,参考双端文档:
Android参考文档:Android开屏最佳实践,iOS参考文档:iOS开屏最佳实践
影响:无有效展示、无收益
2. 是否存在应用在后台时调用展示,如:在填充回调中直接展示广告
建议:展示前先判断应用处于前台时才调用展示Api
影响:后台执行展示API方法会出现无有效展示、无收益
3. 非全屏展示开屏广告,如:顶部展示开屏广告+底部展示Logo
建议:开屏容器在整个屏幕占比不小于75%
影响:展示区域面积过小,部分平台会无有效展示、无收益
4. 是否有其他控件或者广告遮挡开屏广告位内容区域
建议:开屏广告展示时,不要有其他控件或者广告覆盖开屏广告区域
影响:如果覆盖可能会影响有效展示或者倒计时卡住
补充说明:如果必须要在开屏广告区域上添加控件,建议控价大小不超过屏幕大小的20%并且在添加控件后观察接入的各个平台的开屏广告展示回调、倒计时是否正常
5. 广告展示后是否存在自行移除、销毁广告页面,如:定时器自动销毁广告、额外添加按钮点击后销毁广告
建议:广告展示后不要自行移除、销毁广告界面,可以等广告触发关闭回调(自动关闭或者用户去点击关闭)再移除开屏页面
影响:主动移除、销毁广告页面会导致部分平台无关闭回调。如果自行移除、销毁时机与展示API时机接近可能会导致不满足广告曝光时间而无有效展示、无收益
补充说明:除了上述可能存在的问题,自行移除、销毁广告可能导致广告对象没正常释放,视频广告可能会出现广告被移除了,但声音还在,播放完毕可能出现自动跳转等,视频和图片广告类型被移除了,但都可能出现摇一摇触发跳转,iOS端可能还会出现SkOverlay弹框等,但不限于上面问题,可能还有其他未知的问题。
6. 非全屏展示开屏广告,加载是否有传入广告容器宽高
建议:加载广告前需设置广告的宽高,示例如下
Android:
Map localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.AD_WIDTH, containerWidth);//单位:px localMap.put(ATAdConst.KEY.AD_HEIGHT, containerHeight);//单位:px splashAd.setLocalExtra(localMap);
splashAd.loadAd();
iOS:
UIView *logoView = [[UIView alloc] init];
logoView.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height * 0.24); // 高度不超过屏幕高25%
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
[[ATAdManager sharedManager] loadADWithPlacementID:@"your id"
extra:mutableDict delegate:self containerView:logoView];
影响:如无设置宽高或设置宽高与开屏容器宽高不一致,将会导致穿山甲开屏广告显示不全或者模糊、失真
二、原生广告
1.【自渲染原生广告】素材渲染要求:
Android:需要按照原生广告平台注意项文档去渲染,部分广告平必要的View如:MediaView,AdIconView必须渲染到布局上
iOS:关注原生广告-原生自渲染广告文档中的必看标题,重点也是需要以触发展示回调为准来判断是否正常渲染。
影响:未按要求渲染指定View时,无有效展示统计、无收益
2. 广告请求成功,但获取到的广告素材为空
建议:
Android:检查下是否存在多次调用getNativeAd()后没有进行渲染,把缓存都消耗了。因为每执行一次都会移除一条缓存
iOS:检查是否存在多次调用getNativeAdOfferWithPlacementID后没有进行渲染,把缓存都消耗了。因为每执行一次都会移除一条缓存
影响:浪费广告缓存、广告展示机会
3. 列表滑动时是否会destory销毁广告
建议:建议滑动过程中不要去销毁,请将渲染完成的视图进行保存,而不是使用offer在渲染一次,可以在关闭该页面时去处理,可以参考demo中NativeListActivity去渲染处理
影响:滑动回来时不显示广告、界面异常、户体验不佳
4. 模板广告加载是否有在加载前传入广告区域指定宽度,高度
建议:Topon后台选择的比例和广告平台保持一致或者接近,加载前传入相应的宽高,具体双端通过以下API传入:
Android:通过ATNative#setLocalExtra传入宽高,其中宽高的key:ATAdConst.KEY.AD_WIDTH,ATAdConst.KEY.AD_HEIGHT
iOS:通过ATAdManager#loadADWithPlacementID传入extra信息,extra里添加key:kATExtraInfoNativeAdSizeKey,value为 [NSValue valueWithCGSize:size]
影响:广告展示不全、变形
三、横幅广告
1. 是否开启自动刷新时还有手动去加载广告
建议:当后台设置自动刷新时,不需要频发手动去加载广告,TopOn会在调用load后按照后台刷新时机自动发起load,并且刷新横幅广告。如果需要自己控制Banner刷新逻辑可以在聚合管理-高级功能-自动刷新设置为0,关闭自动刷新后再使用手动加载
影响:可能会影响有效展示
2. 是否存在同一页面不同位置展示多个BannerView共用一个广告位加载的情况
建议:不同位置BannerView可以使用不同广告位去请求
影响:广告加载可能只填充成功一个,被展示后其余横幅区域就没有缓存可用无法展示,浪费了广告展示机会
3. 是否有在加载前通过LocalExtra传入横幅区域指定宽度,高度(如有)
建议:在加载前通过LocalExtra传入横幅区域宽度,高度(如有)
影响:无传入宽高,部分平台横幅广告不铺满横幅区域,点击率减少
Android:通过ATBannerView#setLocalExtra传入宽高,其中宽高的key:ATAdConst.KEY.AD_WIDTH,ATAdConst.KEY.AD_HEIGHT
iOS: ATAdManager#loadADWithPlacementID传入extra信息,添加key:kATExtraInfoBannerAdSizeKey,value为[NSValue valueWithCGSize:size],然后传入load的API中。
4. 是否在第三方平台中有设置Banner定时刷新
建议:只在topon后台开启定时刷新即可
影响:如果有设置可能会导致TopOn后台请求、展示数据和广告平台API数据对不上
四、激励视频
1. 创建广告对象时是否符合文档要求 (仅Android)
建议:请参考激励视频文档创建激励视频广告对象
影响:部分平台会加载失败,导致无填充,影响填充率
2. 激励下发需要依赖激励回调,而非播放结束回调
补充说明:不同平台激励下发条件不一样,部分平台在满足一定时长后播放中途下发,还有一部分平台可能播放关闭才下发
Android:依赖onReward回调
iOS:依赖rewardedVideoDidRewardSuccessForPlacemenID: extra:
影响:可能会导致激励下发异常
3. 广告展示后是否存在主动移除、销毁广告,如:定时器自动销毁广告、额外添加按钮点击后销毁广告
建议:广告展示后不要自行移除、销毁广告
影响:自行移除、销毁广告可能导致不触发广告关闭回调,还可能会导致广告摇一摇等功能还会触发,从而影响用户体验
补充说明:除了上述可能存在的问题,自行移除、销毁广告可能导致广告对象没正常释放,视频广告可能会出现广告被移除了,但声音还在,播放完毕可能出现自动跳转等,视频和图片广告类型被移除了,但都可能出现摇一摇触发跳转,iOS端可能还会出现SkOverlay弹框等,但不限于上面问题,可能还有其他未知的问题。
五、插屏广告
1. 创建广告对象时是否符合文档要求(仅Android)
建议:请参考插屏广告文档创建插屏广告对象
影响:部分平台会加载失败,导致无填充
2. 调用插屏展示Api后,是否会出现广告视图被其他视图或者广告覆盖、重叠情况,如:连续调用多次展示Api
建议:不要存在连续调用插屏广告展示Api场景,不要在插屏广告展示后额外添加视图覆盖广告
影响:可能出现无效展示、无收益
3. 广告展示后是否存在主动移除、销毁广告,如:定时器自动销毁广告、额外添加按钮点击后销毁广告
建议:广告展示后不要自行移除、销毁广告
影响:自行移除、销毁广告可能导致不触发广告关闭回调,还可能会导致广告摇一摇等功能还会触发,从而影响用户体验
补充说明:除了上述可能存在的问题,自行移除、销毁广告可能导致广告对象没正常释放,视频广告可能会出现广告被移除了,但声音还在,播放完毕可能出现自动跳转等,视频和图片广告类型被移除了,但都可能出现摇一摇触发跳转,iOS端可能还会出现SkOverlay弹框等,但不限于上面问题,可能还有其他未知的问题。