1. 简述。

iAd是苹果提供给开发者嵌入广告的advertising platform。苹果通过iAd向用户推送广告,广告产生的收益跟开发者分成。

下面波波手把手教你如何通过几行简单的代码,嵌入iAd(以ADBannerView为示例)

2.下载示例项目。

去苹果官网:https://developer.apple.com/library/ios/samplecode/iAdSuite/Introduction/Intro.html

下载iAdSuite项目。

3. iAd详细解说。

打开BasicBanner子项目,BasicBanner项目是一个Single View Application,打开TextViewController类。

3.1初始化广告视图

TextViewController初始化时将广告视图ADBannerView也初始化,ADBannerView的delegate是TextViewController:

【1-1】

<1>行API是iOS6开始才有的!

…没错,你猜对了ADBannerView就是将要展示给用户的广告,顾名思义banner['bænə] n. 旗帜,横幅,所以ADBannerView是小型“横幅”广告,用户点击ADBannerView才展示具体内容。下面来预览一下ADBannerView最终效果,满足你的好奇心:

【1-2】

3.2广告视图加到View视图体系上

言归正传,TextViewController加载完成时,将ADBannerView  Add 到 self.view上:

这行代码执行后,苹果开始推送广告。

3.3重要 delegate方法

苹果推送广告,无论 成功 or 失败 都会通知TextViewController。为什么通知TextViewController? 因为之前 ADBannerView  的delegate 设为TextViewController!下面所有delegate方法体,不贴出具体代码实现,因为我们注重的是理念。具体代码请查看示例。

3.3.1苹果推送广告成功delegate方法

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{

//显示ADBannerView的 代码(具体代码,请看示例)

}

这时候就会看到广告:

【3-1-1】

3.3.2苹果推送广告失败delegate方法

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{

//隐藏ADBannerView的 代码(具体代码,请看示例)

}

苹果强烈建议:如果ADBannerView正在显示,苹果推送广告失败,应该隐藏它。

3.3.3点击广告视图后, 显示指定内容之前,的delegate方法:

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave{

//做一些逻辑操作(具体代码,请看示例)

return takeAction;

}

上面方法隐含信息量比较大,波波下面慢慢跟你解说:

(1)当用户点击ADBannerView后,willLeave = NO代表以modal形式全屏显示ADBannerView指定的内容, 依然在App的控制范围之内;willLeave = YES 代表App被打入冷宫(退到后台),ADBannerView指定的内容以“另一个App”的形式出现。willLeave = NO时,开发者要规划好App,停止一些渲染、逻辑 。

(2)上面的返回值takeAction也是需要解析一下,takeAction = YES,代表ADBannerView指定内容要显示出来;takeAction = NO,代表ADBannerView指定内容不要显示出来。takeAction 应该一直等于 YES,除非App发生不可打断的情况。因为takeAction = NO,广告显示不出来,会影响到开发者广告收益。

3.3.4查看完指定内容,退回到原来的 App后,马上执行的delegate方法

- (void)bannerViewActionDidFinish:(ADBannerView *)banner{

//恢复因为用户点击ADBannerView被打断的App逻辑(具体代码,请看示例)

}

Important: If your application was moved into the background because the willLeave parameter was

YES, then the application’s user interface is never covered by the banner view and your application does

not receive a call to bannerViewActionDidFinish:. However, if your interface was covered by the

banner view, your application could still be moved into the background later, either because the

advertisement launched another application or because the user chose to do so. In all cases, if your user

interface was covered by the banner view, it is uncovered and your delegate’s

bannerViewActionDidFinish: is invoked before your application moves to the background. Because

the application may be moving into the background, your delegate should return quickly from its

bannerViewActionDidFinish: method.【摘自苹果开发者官网,因为如果我翻译出来后,会变味,所以我没有翻译。这些英文单词很简单,很容易看的】

原文:http://blog.sina.com.cn/s/blog_6a99c8bc0101oap0.html

iOS开发之iAd苹果广告相关推荐

  1. iOS开发之ARC(自动引用计数)

    iOS开发之ARC(自动引用计数) 英文原文:Automatic Reference Counting on iOS 参与翻译(4人): 纶巾客, showme, 李远超, 王宇龙 自动引用计数(AR ...

  2. 图片轮播c语言,IOS开发之UIScrollView实现图片轮播器的无限滚动

    IOS开发之UIScrollView实现图片轮播器的无限滚动 简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告.新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScr ...

  3. iOS开发之c语言入门教程

    苹果作为移动互联的高端品牌,iOS操作系统也被用户公认为是最好用的移动互联网操作系统.据了解,曾一度拒绝为iOS平台对出浏览器的火狐在今年5月份的时候,他们却食言了.今天,Mozilla宣布iOS版F ...

  4. iOS开发之UI开发(UITableView)

    UITableView 继承自UIScrollView,性能极佳 UITableView的两种样式 UITableViewStylePlain列表样式 UITableViewStyleGrouped ...

  5. iOS开发之AVKit框架使用

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发之AVKit框架使用 一.引言 在iOS开发框架中,AVKit是一个非常上层,偏应用的框架,它是基于AVFounda ...

  6. (0045) iOS 开发之MBProgressHUD 源码学习

    (0045) iOS 开发之MBProgressHUD 源码学习 第一部分:学习所得和分析线程 1.  学习到了kvo 的使用 和屏幕方向的旋转判断. 2. 如果调起这个 HUD 的方法不是在主线程调 ...

  7. (0016)iOS 开发之Mac上Navicat Premium 创建远程连接和本地连接

    1.下载安装 (百度云盘里面有安装文件和注册机) 链接: https://pan.baidu.com/s/1kVG1k71 密码: mr5g 破解教程看这篇博客:http://blog.csdn.ne ...

  8. 李洪强iOS开发之RunLoop的原理和核心机制

    李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研 ...

  9. IOS开发之MD5加密和钥匙串的使用-oc

    IOS开发之MD5加密和钥匙串的使用-oc 源码在我的主页,md5加密是用户登录安全的一个保障.不可逆的,可以暴力破解的. // // ViewController.m // MD5演练 // // ...

最新文章

  1. 上海交大、华为海思提出X-volution,发力网络核心基础架构创新
  2. eval解析JSON中的注意点
  3. numpy vsplit
  4. mac 下启动Android Studio 时出现 Android Studio was unable to find a valid Jvm
  5. php常用功能代码,10段PHP常用功能代码(1)_PHP教程
  6. (ACM模板)队列queue
  7. 经验分享:java批量读取txt文件入库
  8. Intellij IDEA创建maven项目无java文件问题
  9. 【深度学习】全面理解VGG16模型
  10. ant design——Modal
  11. 2023北京邮电大学计算机考研信息汇总
  12. html实现图片轮播切换箭头,最简单jquery实现带左右箭头和数字焦点的图片轮播...
  13. Qt-命令行更新翻译.ts文件
  14. 如何关闭计算机自动关机设置方法,Win7电脑怎么取消自动关机?
  15. 图像处理领域术语英文对应
  16. Halcon读取Csv文件
  17. SWFObject参数
  18. 使用Java校验【统一社会信用代码】真假
  19. jQuery邮票人 --> 案例
  20. RL 实践(3)—— 悬崖漫步【QLearning Sarsa 各种变体】

热门文章

  1. C语言结构体大小计算
  2. Kali Linux 2020.3 最新版壁纸 —— 那些好看你又苦苦寻找的黑客壁纸
  3. [海明威]《乞力马扎罗的雪》灵魂上扬寻觅它永远的归宿
  4. 实现复数类中的运算符重载
  5. 微信开放平台(消息加解密接入指引)
  6. 中国电子级玻纤布市场产销调研及投资前景预测报告2022-2028年
  7. 黑马程序员——常用类
  8. TCP|Android上TCP通信实现
  9. 基于java的springboot在线外卖点餐系统毕业设计springboot开题报告
  10. 彩色图像RGB分量直方图分析matlab