最近接了一波各种平台的广告,从单个到多个,再到整合到一起,接入方式和流程也算是都嚼了一遍了。
国内广告平台
- 广点通
- 穿山甲
- 百度
- 快友AdView
- 推啊
接入方式
通用
一、后台
1、申请相应平台账号,创建应用,拿到appId或者appKey。
2、根据类型创建广告位
二、客户端
1、导入jar/aar包,和其需要引用的第三方库,初始化
2、声明权限,动态申请权限
3、清单文件中配置
4、7.0以上自动安装适配
5、根据api请求展示广告
特殊
1、快友平台请求广告的时候不是根据posId,而是根据应用id请求。
2、推啊sdk的广告位创建、配置等,我们在后台创建无效,需要联系对方审核和配置,如样式、能否关闭等。
3、快友平台其实是个聚合平台,其内部也是集成了百度、广点通、今日头条三种广告,提高填充率。所以单独集成的话同样要添加其他几家广告的jar包和三方库。
对比
\ | 包体积 | 内容完整性 | 广告质量 | 广告收益 |
---|---|---|---|---|
广点通 | aar包 1.25MB | 丰富 | 一般 | 较高 |
穿山甲 | aar包 2.2MB | 丰富,可以由设计自由发挥 | 高,投放较为准确 | 高 |
百度 | aar包 937.6 KB | 简单,字段少,图片模糊 | 差,点击率低 | 低 |
快友 | jar包,290KB还需依赖以上所有库 | 可定制性高 | 较高 | 一般,收分成 |
推啊 | jar包+so,475KB | 可接sdk,可接api,可深度合作 | 高,都为互动游戏 | 一般 |
聚合
背景:
1、广告请求有一定几率失败、或者没有广告填充,为了提高展示率,我们要在失败后重新请求广告,直到请求成功为止。
2、针对某一平台提供的广告内容可能不符合用户喜好,我们要请求不同平台的广告,让用户能看到更多类型的广告。
3、运营希望能根据用户喜好或者平台广告质量、收益等动态调整广告平台,我们要把广告平台的配置和切换做到动态调整,需要通过后台或者接口读取配置
结果:
- 提升了广告展示率,启动开屏广告展示率由原来的30-45%提升到60-75%,间接提升了广告点击率和收益。
- 动态调整的实现让运营能够通过ecpm、市场的变化及时调整广告配置,达到收益最大化。
实现:
轮询
维护一个列表,创建一个广告的时候进行数据初始化操作。列表中对象为封装的一个广告抽象类,该类中定义了一些所有平台、所有类型广告公共的方法和属性。
每个广告都有自己独有的请求广告的方法,在请求广告过程中设置监听,当返回失败时,从列表中取出下一个广告,开始请求。
当列表中所有广告请求失败时,回调该次广告展示失败。
亦或者如开屏广告,我们不可能让用户一直等在启动页等广告,如果时间到了最大等待时间,回调该次广告展示失败。
多平台
接入多个平台的广告,虽然每个平台广告请求方式不一样,但我们要的结果都是一样的,都是拿到一个填充好数据的View,所以我们将请求方法抽象,每种类型的广告自己分别做请求,只要最后能把View塞到我们的Container中就可以了。
针对切换机制,我们采取多种机制
1、配置平台比例,根据比例随机请求该平台的广告
2、保存用户点击过的广告类型,下一次将该平台后置
3、记录每个平台广告曝光次数,如果该平台曝光次数过多,将该平台后置
动态调整
根据接口拿到一个配置实体类。类中,我们定义了各种广告的平台、顺序、权重,根据这个配置进行列表的初始化操作。
踩坑记
1、穿山甲广告重复请求无效,根本不会进入到回调中
2、诸如插屏广告等类似于弹出dialog在最上层的,重复调用时最好把前面的取消掉,不然关了一个广告还有一个广告...
3、穿山甲广告sdk升级版本后支持的so库调整了,要手动支持
网友评论