为何要做?
其实很简单,为了钱!
当1个APP积累了1定的用户量时,除APP本身内容产生商业价值外,老板就会要求寻求更多能带来收入的功能。广告是目前大多数产品的主要盈利手段,在APP中,启动广告的报价1般都是最高和争抢的。
固然,启动广告除可以投放商业广告外,还可以宣扬和推行公司的新产品、新活动等内容。
怎样做?
初次接到需求时,简单看了1些竞品,觉得10分简单(主要是当时自己经验不足,初入行半年左右),简单设计了1个方案就进入开发阶段,以后上线。上线以后遇到各类情况和新的需求,让我发现看似简单的开屏广告,却不简单。
初次上手
最初,接到需求后,设计的方案以下:
在广告系统建立“APP开屏广告”广告位,广告位中可以添加多个广告,用户每次启动APP时,随机获得该广告位中的1个广告。
开发,测试,上线,完善!
2次改进
刚开始1切完善,广告正常展现、跳转正常。可不多久,就发现了问题:
- 网络不佳时,广告图片加载慢,造成倒计时结束图片还没加载出来,屏幕白屏情况;
- 用户如果通过home键(特别是iPhone)切出APP后,由于APP进程未杀死,用户再次进入APP时就不会再出现广告,可能造成用户长时间段内不会看到广告,这与商业初衷相背离。
基于以上缘由,开始了第2次迭代,方案以下:
- 针对网络慢等造成图片没法加载的问题:APP每次启动时,都将所有的后台广告缓存到本地,用户再次启动APP时,从缓存中随机获得1个广告并展现,同时程序更新缓存的广告。
- 针对用户home键切出APP的问题:用户每次进入APP时(即便是通过home键切出后再切回),都展现广告。(真不知道自己当时是怎样想的,这么影响用户体验的需求居然也能提)
开发,测试,上线,完善!
3次迭代
本以为1切完善,这个需求算是解决了,但使用进程中又遇到了问题:
- 广告是有时效性的:如果1个活动到1月31号结束,广告推行时间是1月20号⑴月31号,1个用户在1月20号打开了APP,这时候由于广告缓存的缘由,这个用户没有看到这个广告,但这个广告已缓存到了本地;假定该用户下1次启动APP的时间是2月1号,由于缓存,该用户看到了这个广告,点击了链接,结果却发现活动已结束,这在用户体验上是有问题的。
- 每次切出APP再切回APP都展现广告,很明显,这个做法太影响体验,造成用户抱怨太多。
老板发火,不好惹,加班改!
APP缓存广告图片时,同时将APP的起止日期数据缓存下来,下次展现广告时,先判断缓存的广告是不是在有效期内,不在的都不展现。
通过home键切出切回的情况:AM6:00 – PM2:00:如果当前时间内没有显示过广告,则显示1次,显示过则不再显示;PM2:00 – 第2天AM6:00:如果当前时间内没有显示过广告,则显示1次,显示过则不再显示。(这个时间设置的缘由主要是我们APP日启动次数不算太高,在4⑸次左右)
开发,测试,上线,完善!
完全方案总结:
- APP每次启动时都从缓存中获得广告并展现,同时要对本地的缓存进行更新;
- 展现缓存广告时,需判断广告是不是在有效期内;
- 针对home键切出切回问题,和斟酌用户体验的情况下,需对广告展现的时机和次数做限制。
小结
(1)APP启动广告要有跳过的功能,给予用户1定的选择权利。
(2)常规看到APP启动时,其启动图片底部与广告底部1样,这类做法有两种:
- 1是广告图片在设计时,其底部保持与启动图片底部1致(样式、大小尺寸);
- 2是可以在APP启动广告上层添加1张只有底部而上部份透明的图片(这类也需要设计广告图片时底部不能设计有效内容)。
虽然我们采取的是第2种,但现在我更偏向于第1种,由于图片设计可以更多样;第2种限制了所有的图片都有固定的底部。
(3)现在的方案未能斟酌到紧急下架的情况,当前方案下,即便广告紧急下架,如果缓存中存在,广告仍会展现(由于紧急下架未改广告有效期,在有效期内就会展现)。
漫漫产品路,需不断上下而探索!
作者: 桃花仙坞