为什么要做?

其实很简单,为了钱!

当一个APP积累了一定的用户量时,除了APP自身内容产生商业价值外,老板就会要求寻求更多能带来收入的功能。广告是目前大多数产品的主要盈利手段,在APP中,启动广告的报价一般都是最高和争抢的。

当然,启动广告除了可以投放商业广告外,还可以宣传和推广公司的新产品、新活动等内容。

怎么做?

初次接到需求时,简单看了一些竞品,觉得十分简单(主要是当时自己经验不足,初入行半年左右),简单设计了一个方案就进入开发阶段,之后上线。上线之后遇到各类情况以及新的需求,让我发现看似简单的开屏广告,却不简单。

初次上手

最初,接到需求后,设计的方案如下:

在广告系统建立“APP开屏广告”广告位,广告位中可以添加多个广告,用户每次启动APP时,随机获取该广告位中的一个广告。

开发,测试,上线,完美!

二次改进

刚开始一切完美,广告正常展现、跳转正常。可不多久,就发现了问题:

  • 网络不佳时,广告图片加载慢,造成倒计时结束图片还没加载出来,屏幕白屏情况;
  • 用户如果通过home键(尤其是iPhone)切出APP后,由于APP进程未杀死,用户再次进入APP时就不会再出现广告,可能造成用户长时间段内不会看到广告,这与商业初衷相背离。

基于以上原因,开始了第二次迭代,方案如下:

  • 针对网络慢等造成图片无法加载的问题:APP每次启动时,都将所有的后台广告缓存到本地,用户再次启动APP时,从缓存中随机获取一个广告并展示,同时程序更新缓存的广告。

  • 针对用户home键切出APP的问题:用户每次进入APP时(即使是通过home键切出后再切回),都展示广告。(真不知道自己当时是怎么想的,这么影响用户体验的需求竟然也能提)

开发,测试,上线,完美!

三次迭代

本以为一切完美,这个需求算是解决了,但使用过程中又遇到了问题:

  • 广告是有时效性的:如果一个活动到1月31号结束,广告推广时间是1月20号-1月31号,一个用户在1月20号打开了APP,这时由于广告缓存的原因,这个用户没有看到这个广告,但这个广告已经缓存到了本地;假设该用户下一次启动APP的时间是2月1号,由于缓存,该用户看到了这个广告,点击了链接,结果却发现活动已经结束,这在用户体验上是有问题的;

  • 每次切出APP再切回APP都展示广告,很明显,这个做法太影响体验,造成用户抱怨太多。

老板发火,不好惹,加班改!

  • APP缓存广告图片时,同时将APP的起止日期数据缓存下来,下次展示广告时,先判断缓存的广告是否在有效期内,不在的都不展示。

  • 通过home键切出切回的情况:AM6:00 - PM2:00:如果当前时间内没有显示过广告,则显示一次,显示过则不再显示;PM2:00 -第二天AM6:00:如果当前时间内没有显示过广告,则显示一次,显示过则不再显示。(这个时间设置的原因主要是我们APP日启动次数不算太高,在4-5次左右)

开发,测试,上线,完美!

完整方案总结:

  • APP每次启动时都从缓存中获取广告并展示,同时要对本地的缓存进行更新;

  • 展示缓存广告时,需判断广告是否在有效期内;

  • 针对home键切出切回问题,以及考虑用户体验的情况下,需对广告展示的时机和次数做限制。

小结:

  • APP启动广告要有跳过的功能,给予用户一定的选择权利;
  • 常规看到APP启动时,其启动图片底部与广告底部一样,这种做法有两种:
  • 一是广告图片在设计时,其底部保持与启动图片底部一致(样式、大小尺寸);

  • 二是可以在APP启动广告上层添加一张只有底部而上部分透明的图片(这种也需要设计广告图片时底部不能设计有效内容)

虽然我们采用的是第二种,但现在我更倾向于第一种,因为图片设计可以更多样;第二种限制了所有的图片都有固定的底部。

  • 现在的方案未能考虑到紧急下架的情况,当前方案下,即使广告紧急下架,如果缓存中存在,广告仍会展示(因为紧急下架未改广告有效期,在有效期内就会展示)。

漫漫产品路,需不断上下而探索!

APP开屏广告设计之路相关推荐

  1. App项目实战之路(二):API篇

    原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/practice/20160812 微信订阅号:keeganlee_me 写于2016- ...

  2. app开屏广告实现——借助webview和原生fetch请求实现

    app开屏广告实现1 全局加载,仅app打开时弹出,借助webview和原生fetch请求实现. app.vue的onLaunch生命周期,在整个app运行期间,仅会执行一次,所以广告就达到了只有打开 ...

  3. 学会了,JS逆向去除App开屏广告

    用到的工具 AndroidKiller.雷电模拟器 知识补充 了解安卓开发的知道,AndroidManifest文件是配置文件. 像什么activity,广播,服务,权限等,都需要在这里面配置. 下面 ...

  4. 屏蔽 app 开屏广告,舒畅了

    之前吐槽过开屏广告 吐槽一下 ,今天分享下iOS手机屏蔽 app 开屏广告的方法: 1.打开手机设置 2.打开 屏幕使用时间 3.打开 内容和隐私访问限制 4.找到 广告 设置为不允许 设置完后大部分 ...

  5. 5分钟搞定物联网 App —— 温湿度传感器 + 4路继电器

    5分钟搞定物联网 App -- 温湿度传感器 + 4路继电器 前边的视频我们分享 Modbus 设备通过 DTU 快速接入 ThingsCloud 云平台后,通过 Modbus 云网关对应到了独立的设 ...

  6. App项目实战之路(四):UI篇

    原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/practice/20160903 微信订阅号:keeganlee_me 写于2016- ...

  7. App的打磨之路(中)

    前言:该文接上篇博文App的打磨之路(上),继续描述混淆及APK瘦身. 一.混淆 1.混淆原理 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间"字节码"存储于 c ...

  8. App开屏页如何设计?来看这五个常用的方法

    今天为大家带来的文章是「开屏页」设计.用户只需要50毫秒(0.05秒)就能对网站/App做出评价,从而决定是留下还是离开.开屏页设计的合理性很大程度上影响了用户的初体验. 第一印象很重要!很多用户会根 ...

  9. 主流App开屏广告一夜消失!满屏找“跳过”的时代快结束了

    本文转载自 量子位 喜大普奔!喜大普奔! 就从昨晚开始,很多用户在打开App的时候发现了一种"异常": 广告呢? 手指都已经习惯性地挪到屏幕右上角,准备概率性按掉"X&q ...

最新文章

  1. 68页PPT教你撰写一篇优秀的机器学习研究论文!
  2. 无线网***工具进攻方法及防范技巧
  3. IOT物联网观察之三大运营商物联网发展进入规模商用阶段
  4. 如何才能加深对Linux概念架构的理解
  5. 201521123024 《Java程序设计》 第九周学习总结
  6. oracle 10g安装过程遇到的问题
  7. 【轻端重云和边缘架构新模式】
  8. woocommerce分类页面模板_小程序模板怎么设计才好看?
  9. aspen共沸精馏如何模拟_9月1011号Aspen plus:精馏精品培训!线上线下同时开展!另有惊喜活动等你参与!...
  10. SQL语句大全,所有的SQL都在这里 !极度建议收藏...
  11. linux/window 下 solr5.1 tomcat7.x 环境搭建即简单功能测试
  12. 【ASP.NET】获取网站目录的方法
  13. java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
  14. AOL CEO 谈雅虎收购案及后续计划
  15. spring使用之旅(一) ---- bean的装配
  16. sql where中用case_一份虐你千百遍的SQL语句面试题,请笑纳
  17. spring集成testng
  18. Java基础面试题整理-50题(附答案)
  19. MSP430F149学习之IO端口
  20. Cocos2d-JS打造:国内首款正版海贼王手游《航海王启航》

热门文章

  1. 浏览器打开网页但找不到服务器ip地址 DNS错误 解决办法
  2. 我们都希望有一部属于自己的电脑。
  3. 桂林理工大学 程序设计实践课程 实习报告
  4. Jdon框架(JdonFramework)应用系统
  5. 小而美的ToDo 待办事项便签工具,高效管理工作生活一切琐事
  6. 光线追踪(RayTracing)算法理论与实践(三)光照
  7. android studio 魅族真机 flyme6 下logcat 打印自定义日志
  8. Android项目工程结构介绍
  9. Ubuntu如何通过简单的几步操作来配置系统的软件源、找不到软件和更新怎么办?(带动态图文介绍)
  10. 多端开发之uniapp开发app