事前準備
Google AdMobに登録
広告ユニットの作成
実装
Swift Package Manager (SPM) でGoogleMobileAdsライブラリを使うための準備
Xcode→File→Add Packages...を選択
下記を検索して、Add Package
https://github.com/googleads/swift-package-manager-google-mobile-ads
プロジェクトのTARGETS→Build PhasesからGoogleMobileAdsを追加
AppDelegateに下記の2箇所を追加
import GoogleMobileAds
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Google Mobile Ads SDKの初期化
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
infoタブでGADApplicationIdentifier:ca-app-pub-XXXX...を追加
AdMobのアプリIDを設定する。
次に、ViewControllerに広告表示をするコードを追加
GADBannerViewを作成する→参考
下記コードから必要な部分を入れてください。参考ページとは少し違います。
指定するIDはデモ用IDにします。 ※リリース時には実際の広告ユニットIDに置き換える。
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
var bannerView: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
let viewWidth = view.frame.inset(by: view.safeAreaInsets).width
let adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)
bannerView = GADBannerView(adSize: adaptiveSize)
addBannerViewToView(bannerView)
}
func addBannerViewToView(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
// バナーを画面の下部に配置
NSLayoutConstraint.activate([
bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
bannerView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
])
}
}
下記だとスワイプの場所に隙間ができるのですが、
最下部に広告を配置すると、操作感が悪くなり審査に通りにくいらしいのでそのままにしました。
equalTo: view.safeAreaLayoutGuide.bottomAnchor