美文网首页
开发一个iOS广告页应该要考虑的东西(转)

开发一个iOS广告页应该要考虑的东西(转)

作者: OrekiSei | 来源:发表于2017-09-29 14:25 被阅读57次

    一个广告怎么去实现,要考虑哪些问题。我就一一罗列一下:

    1、实现一个展示广告的Imageview;

    2、给广告添加点击事件;

    3、跳过广告的按钮;

    4、因为启动页展示的时间一般是相对较短的,而且后台返回的数据也都是只有一个图片url字段,我们拿到数据之后还需要用SDWebImage加载。所以一般我们不是每次进到app(除了第一次)都去后台拉取一条广告数据,而是第一次拉取到的广告数据就要包含多条不同有效期的广告,然后缓存到本地,每次加载广告的时候先从本地拉取数据,挑选出符合要求的图片url,然后用SDWebImage去加载。同时也向后台请求数据,将原来的缓存替换掉。

    5、app第一次安装,有引导页的时候不展示广告,第二次开始展示广告;

    6、广告如果加载太慢,展示的时候就会出现一片空白的情况,所以在启动页展示的时间里,应该去开始加载广告,在启动页加载完成之后应该去判断广告是否有加载出来。

    [_ImageView sd_setImageWithURL:[NSURLURLWithString:urlStr] completed:^(UIImage*image,NSError*error, SDImageCacheType cacheType,NSURL*imageURL) {//图片加载完成处理}];

    所以在开始加载广告的时候,就应该开始监听广告是否加载出来。

    //对YSAdvertiseViewController的ImgLoadFinished进行监听[self.advertiseControlleraddObserver:selfforKeyPath:@"imgLoadFinished"options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew  context:nil];//限时2秒加载出图片_adTime = [NSTimer scheduledTimerWithTimeInterval:2.0f target:selfselector:@selector(judegADImgWhetherLoad) userInfo:nilrepeats:NO];

    //对YSAdvertiseViewController的ImgLoadFinished进行监听的函数- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context {    _advertiseImgDidLoad =YES;//说明图片加载完成}//判断广告图片是否加载完成- (void)judegADImgWhetherLoad {    [_adTime invalidate];    _adTime =nil;if(!_advertiseImgDidLoad) {//加载未完成_isAdvertisedEnd =YES;        [selfdoCheckComplete];    }}

    //特别要注意移除监听,因为我就是这被坑了[self.advertiseController removeObserver:selfforKeyPath:@"imgLoadFinished"];//将监听移除

    7、如果app在后台待机太久,再次进来前台的时候也应该展示广告,所以在applicationDidEnterBackground的时候应该把时间存起来:

    //程序切入后台,这里要注意GMT时间    NSDateFormatter *formatter =[[NSDateFormatter alloc] init];

    NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];

    [formatter setTimeZone:sourceTimeZone];

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    _lastTimeEnterBackGroundStr = [formatter stringFromDate:[NSDate date]];//当前时间

    在applicationWillEnterForeground的时候对比时间差,判断是否显示:

    NSDateFormatter *formatter =[[NSDateFormatter alloc] init];

    NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];

    [formatter setTimeZone:sourceTimeZone];

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSDate * lastDate = [formatter dateFromString:_lastTimeEnterBackGroundStr];

    NSDate * now = [formatter dateFromString:[formatter stringFromDate:[NSDate date]]];        NSTimeInterval IntervalTime = [now timeIntervalSince1970]*1- [lastDate timeIntervalSince1970]*1;if(IntervalTime>(2*60*60)) {            [_mainController loadAdvertisedView];        }

    8、那么到了这里其实大部分功能都已经实现了,但是我们有时候就会想知道我们的广告详情到底有木有看。所以点击广告图片的时候,我们应该加一个内部跳转,让它跳到广告的响应页面。

    9、另外需要的话,我们应该加一个统计,看广告详情有多少人观看,有多少人会跳过等。

                                   ————————————————转自CSDN:u012297622的博客

    相关文章

      网友评论

          本文标题:开发一个iOS广告页应该要考虑的东西(转)

          本文链接:https://www.haomeiwen.com/subject/hyeiextx.html