![最终产品图片](https://i-blog.csdnimg.cn/blog_migrate/d4ca87d84a4d56c8787cf0e2a5dd2d16.png)
横幅广告是许多应用程序开发人员的重要收入来源。 在本教程中,您将学习如何使用Swift 3和Xcode 8将AdMob广告添加到iOS应用中。
创建横幅广告单元ID
准备您的iOS应用程序以显示横幅广告的第一件事是在AdMob网站上创建其单元ID。 如果您没有Google帐户,建议您注册一个新帐户-它是免费的,并且可以访问所有Google服务。
进入AdMob主页后,点击红色的“通过新应用获利”按钮。
![AdMob网站首页](https://i-blog.csdnimg.cn/blog_migrate/80f998adfa54b1a8506b4dbea347aba7.png)
如果您的应用尚未在iTunes App Store上,则必须选择手动添加您的应用 。 然后输入应用程序的名称,选择iOS平台,然后单击“ 添加应用程序”按钮。
![开始通过您的应用获利](https://i-blog.csdnimg.cn/blog_migrate/23a35c4015c37f1bf37c97b02c7e482b.png)
在下一个屏幕上,您将在Apple灰色图标下方看到新生成的AdMob应用ID 。 请注意,它与需要粘贴到Xcode项目中的单元ID不同。 我们将稍等一下。
点击横幅以选择广告格式。 建议您将广告类型 , 自动刷新和文字广告样式设置保留为默认值。 如果您想自定义广告样式,则可以点击 标准组合框,然后选择自定义 。 对于自定义横幅,您可以自定义背景,边框,标题,文本和URL颜色。
最后,在广告单元名称框中输入名称 。 那将不是您的横幅标识符,而只是您的单位ID的参考名称。 单击“ 保存”继续进行第三步。
![创建横幅广告单元ID](https://i-blog.csdnimg.cn/blog_migrate/937517b20eb314ea96c68647de15fdef.png)
第3步是可选步骤,可让您将AdMob应用链接到Firebase并通过免费的Firebase Analytics工具共享数据。 现在,只需单击“ 跳过”继续。
![将AdMob链接到Firebase Analytics可选](https://i-blog.csdnimg.cn/blog_migrate/336d4656102a95addf0bcf5938c8010b.png)
最后,您可以从Firebase服务器下载最新的GoogleMobileAds.framework文件。 第四步还将显示您必须粘贴到Xcode项目的主.swift文件中的广告单元ID,我们将在后面看到。
![完成创建横幅ID](https://i-blog.csdnimg.cn/blog_migrate/0cbe77ab6a85b202de59f6a8d151f890.png)
点击下载Google Mobile Ads SDK链接。 新的标签页将在您的浏览器中打开,您将能够下载最新的官方软件包zip文件。
![下载Google Mobile SDK程序包](https://i-blog.csdnimg.cn/blog_migrate/3065d71045f8c3f351724e3388dce6ac.png)
返回AdMob网站,然后点击完成 。 下一个屏幕将显示您刚刚创建的广告单元ID ,可以将其复制并粘贴到Xcode的.swift文件中。 我假设您已经创建了一个新的Xcode项目,或者您有一个要在其中添加AdMob广告的项目。
在您的Xcode项目中实施AdMob
提取您以前从Firebase服务器下载的googlemobileadssdkios.zip文件,打开其文件夹,然后仅复制GoogleMobileAds.framework 。
![复制GoogleMobileAdsframework](https://cms-assets.tutsplus.com/uploads/users/1455/posts/27403/image/12.jpg)
将其粘贴到您的项目文件夹中。
现在,输入您的Xcode项目,然后转到“ 常规”标签,向下滚动到“ 链接的框架和库”部分,然后将GoogleMobileAds.framework文件拖到该项目上。
![将GoogleMobileAdsframework拖到您的Xcode窗口中](https://i-blog.csdnimg.cn/blog_migrate/7efb3e2c75b11042dfe2c51cd1ffb3d4.png)
您可能必须向Xcode项目中添加其他iOS框架,以便AdMob可以在您的应用中接收和显示横幅。
单击底部的+号,然后一个接一个地导入以下框架:
- 事件包
- EventKitUI
- AVFoundation
- AdSupport
- 音频工具箱
- AVFoundation
- CoreGraphics
- 核心电话
- 核心媒体
- MessageUI
- StoreKit
- 系统配置
![在Xcode中导入iOS框架](https://i-blog.csdnimg.cn/blog_migrate/a68f0aafedab3aa908ab633926f7e1c7.png)
要做的是切换到“ 构建设置”选项卡并搜索位码 。 Xcode将调出Enable Bitcode选项,您必须将其设置为No。
![启用位码选项设置为否](https://i-blog.csdnimg.cn/blog_migrate/f5ae7e81871db5acad27acb76026f513.png)
现在,您可以编写一些代码以使AdMob广告显示在您的应用中!
代码
根据应用的构建方式,您希望AdMob广告显示在视图控制器中。 因此,您需要输入要显示广告的控制器的.swift文件,并在文件顶部导入以下框架:
import GoogleMobileAds
import AudioToolbox
通过将GADBannerViewDelegate
协议添加到类声明的末尾来采用它:
class ViewController: UIViewController,
GADBannerViewDelegate
{
在您的课程的viewDidLoad()
方法上方添加AdMob横幅视图:
// Ad banner and interstitial views
var adMobBannerView = GADBannerView()
以下代码行是一个简单的字符串,它可以调用您之前创建的广告单元ID:
// IMPORTANT: REPLACE THE RED STRING BELOW WITH THE AD UNIT ID YOU'VE GOT BY REGISTERING YOUR APP IN https://apps.admob.com
let ADMOB_BANNER_UNIT_ID = "ca-app-pub-9733347540588953/7805958028"
在这里您必须替换ca-app-pub-9733347540588953/6145924825
使用您自己的横幅单元ID,因此请返回浏览器中的“ AdMob 广告单元”页面,以复制该字符串并将其粘贴到上面的代码中。
现在,在viewDidLoad()
方法内添加以下函数:
override func viewDidLoad() {
super.viewDidLoad()
// Init AdMob banner
initAdMobBanner()
}
最后,将以下方法声明粘贴到.swift中的任意位置 文件(在类右括号之前,而不是在现有方法中):
// MARK: - ADMOB BANNER
func initAdMobBanner() {
if UIDevice.current.userInterfaceIdiom == .phone {
// iPhone
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 320, height: 50))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 320, height: 50)
} else {
// iPad
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 468, height: 60))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 468, height: 60)
}
adMobBannerView.adUnitID = ADMOB_BANNER_UNIT_ID
adMobBannerView.rootViewController = self
adMobBannerView.delegate = self
view.addSubview(adMobBannerView)
let request = GADRequest()
adMobBannerView.load(request)
}
// Hide the banner
func hideBanner(_ banner: UIView) {
UIView.beginAnimations("hideBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = true
}
// Show the banner
func showBanner(_ banner: UIView) {
UIView.beginAnimations("showBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = false
}
// AdMob banner available
func adViewDidReceiveAd(_ view: GADBannerView!) {
showBanner(adMobBannerView)
}
// NO AdMob banner available
func adView(_ view: GADBannerView!, didFailToReceiveAdWithError error: GADRequestError!) {
hideBanner(adMobBannerView)
}
请注意,AdMob标语的大小取决于所使用的设备,因此func initAdMobBanner()
的第一行代码设置了iPhone / iPod Touch和iPad标语的大小。
如果您对AdMob广告的可用横幅尺寸感到好奇,可以查看AdMob文档 。 无论如何,iPhone和iPad设备的最佳横幅尺寸是我们在上面的代码中设置的尺寸:
- 适用于iPhone的320 x 50像素
- iPad 468 x 60像素
CodeCanyon模板
在CodeCanyon上,我正在出售一个iOS应用程序模板,该模板内置了AdMob标语,并且还支持插页式广告 。 因此,如果您想加快开发速度,只需购买该模板并启动您的应用即可。
![AdMob横幅非页内广告iOS通用应用模板](https://i-blog.csdnimg.cn/blog_migrate/d6ff05208b02fcc4145876e383ed799f.png)
在此处查找: iOS AdMob横幅+ Interstital广告模板| 通用(快速) 。
CodeCanyon上还有数百个其他iOS应用程序模板 。 去看看他们! 您可能只是在下一个应用程序上节省了工作时间。
结论
感谢您的阅读,下次再见! 请查看有关使用Swift开发iOS应用的其他一些课程和教程。
翻译自: https://code.tutsplus.com/tutorials/how-to-add-admob-banner-ads-to-your-ios-swift-app--cms-27403