iPhoneアプリに広告を付ける手順 2018/3(Xcode Version 9.2)

Xcode  Version 9.2 (9C40b)

これ↓を参考に、iPhoneアプリに広告を付けました。

Swift製iOSアプリの広告をiAdからAdMobへ - Qiita
# ナニコレ 僕が個人で配信しているiOSアプリの広告はiAdを利用しているのですが、iAd App Networkが今月末(2016年6月)に終了することもあり、今後の行方が不透明なので、Google先生のAdMobに置き換えまし...

▼手順

1. AdMobでアカウント登録

2. 広告を作成

3. アプリを選択(ないので仮の名前で追加)

4. 広告フォーマットの選択(バナー広告にしました)

5. Google Mobile Ads SDKをダウンロード

googlemobileadssdkios.zipをダウンロードして解凍すると

GoogleMobileAdsSdkiOS-7.29.0というフォルダができるので

その中のGoogleMobileAds.frameworkを後ほど使います

6. 組み込みフレームワークのインポート

f:id:marimoko3:20180303190316p:plain

7. AdMob SDKのインストール

※ 上のQiita記事に書かれている通りにするとあとでエラーになるので、、、

アプリに広告のフレームワークを追加したのに「No such module 'GoogleMobileAds'」と表示される問題の解決方法(Xcode7,Swift2.0) : Yukimi Blog
アプリに広告を表示させる時、GADBannerViewを使うのですが、これを使うには、GoogleMobileAdsというフレームワークをインポートしなければいけません。さらに、GoogleMobileAdsはXcodeに初期状態では入っていないため、GoogleDevelopersのサイトからフレームワークを入手し

f:id:marimoko3:20180303192032p:plain

この記事の通りに

BuildPhasesのCopyBundleResouecesに、「GoogleMobileAds.framework」を

【ドラッグアンドドロップ】して、追加しようとすると

「Copy items if needed」にチェックを付けることができます

▼ここの記載も参考にしました

AdMob広告をXcode(Swift)でiOSアプリに表示する手順とエラー対処方法 – ダーヤス.com プレミアム

f:id:marimoko3:20180303192649p:plain

f:id:marimoko3:20180303192856p:plain

8. 上で、BuildPhasesのCopyBundleResouecesに追加した

「GoogleMobileAds.framework」を、ドラッグアンドドロップして

Link Binary With Librariesに移動します。

9. コーディングは

以下を参考に、

バナー広告  |  iOS  |  Google Developers

ViewController.swift にコードをコピーしていきます

f:id:marimoko3:20180303194029p:plain

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

 
var bannerView: GADBannerView!

 
override func viewDidLoad() {
   
super.viewDidLoad()
   

   
// In this case, we instantiate the banner with desired ad size.
    bannerView
= GADBannerView(adSize: kGADAdSizeBanner)

    addBannerViewToView
(bannerView)
 
}

  func addBannerViewToView
(_ bannerView: GADBannerView) {
    bannerView
.translatesAutoresizingMaskIntoConstraints = false
    view
.addSubview(bannerView)
    view
.addConstraints(
     
[NSLayoutConstraint(item: bannerView,
                          attribute
: .bottom,
                          relatedBy
: .equal,
                          toItem
: bottomLayoutGuide,
                          attribute
: .top,
                          multiplier
: 1,
                          constant
: 0),
       
NSLayoutConstraint(item: bannerView,
                          attribute
: .centerX,
                          relatedBy
: .equal,
                          toItem
: view,
                          attribute
: .centerX,
                          multiplier
: 1,
                          constant
: 0)
     
])
   
}
   

}
import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

 
var bannerView: GADBannerView!

 
override func viewDidLoad() {
   
super.viewDidLoad()
   

   
// In this case, we instantiate the banner with desired ad size.
    bannerView
= GADBannerView(adSize: kGADAdSizeBanner)

    addBannerViewToView
(bannerView)
 
}

  func addBannerViewToView
(_ bannerView: GADBannerView) {
    bannerView
.translatesAutoresizingMaskIntoConstraints = false
    view
.addSubview(bannerView)
    view
.addConstraints(
     
[NSLayoutConstraint(item: bannerView,
                          attribute
: .bottom,
                          relatedBy
: .equal,
                          toItem
: bottomLayoutGuide,
                          attribute
: .top,
                          multiplier
: 1,
                          constant
: 0),
       
NSLayoutConstraint(item: bannerView,
                          attribute
: .centerX,
                          relatedBy
: .equal,
                          toItem
: view,
                          attribute
: .centerX,
                          multiplier
: 1,
                          constant
: 0)
     
])
   
}
   

}

f:id:marimoko3:20180303194133p:plain

f:id:marimoko3:20180303194242p:plain

f:id:marimoko3:20180303194346p:plain

f:id:marimoko3:20180303194446p:plain

この辺までやってシュミレータで動かしたら

テスト用の広告が表示されました!!

▼書いたコードはこんな感じ

f:id:marimoko3:20180303195344p:plain

f:id:marimoko3:20180303195502p:plain

こんな警告は出てますが

「’bottomLayoutGuide’ was deprecated in iOS 11.0: Use view.safeAreaLayoutGuide.bottomAnchor instead of bottomLayoutGuide.topAnchor」

とりあえず今日はここまで!!