#2 iOSアプリでAdModを使えるようにする1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい．


#環境
Xcode：11.2.1
Swift：5.1.2
2019/11



##part1
`Firebase`にログインして，プロジェクトを作成するか既存のものを選択する．

[Firebase console - Google](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=2ahUKEwinkf-nqfblAhVKZt4KHQhvCmkQFjADegQIAhAB&url=https%3A%2F%2Fconsole.firebase.google.com%2F%3Fhl%3Dja&usg=AOvVaw0nJq2yfxv3uujz0Z6Ozn8z)

<img width="1371" alt="スクリーンショット 2019-11-18 午後11.18.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/5c2df64d-80bb-8e17-3237-ac5c55bf4ec2.png">



##part2
プロジェクトを選択したら，ProjectOverViewから`アプリを追加`を選択する．

<img width="1340" alt="スクリーンショット 2019-11-18 午後11.18.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/e9f310d6-780e-9421-b977-68234d9b3037.png">



##part3
Xcodeから`Bundle Identifier`をコピーする．

<img width="1179" alt="スクリーンショット 2019-11-18 午後11.19.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/7d892855-183a-5170-5598-e048127fbc1a.png">



##part4
Firebaseに戻り，`iOSバンドルID`に先ほどコピーしたものを貼り付ける．
アプリのニックネームを適当に入力し，次へ．

<img width="811" alt="スクリーンショット 2019-11-18 午後11.20.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/2410fad0-42c3-6f3b-e8ef-b67069eb6aca.png">



##part5
`GoogleService-Info.plistをダウンロード`を選択し，次へ．

<img width="832" alt="スクリーンショット 2019-11-18 午後11.20.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/2ce920cc-3331-2dd6-8ac4-f748ac0af9e5.png">



##part6
ダウンロードしたものをドラッグ・ドロップでXcodeにコピーする．

<img width="440" alt="スクリーンショット 2019-11-18 午後11.21.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/3e8d7677-9fb6-1448-3f3e-e22b45f164b3.png">



##part7
プロジェクトを終了する．
ターミナルを立ち上げて，`CD`コマンドを用いてXcodeファイルがあるディレクトリに移動する．
`command`+`option`+`c`で，現在のフォルダのパスをコピーできる．



##part8
移動したら，

```
pod init
```
と打ち込み，エンター．



##part9
すると，Xcodeファイルがあるフォルダに`Podfile`という名前のファイルが自動生成される．

<img width="354" alt="スクリーンショット 2019-11-18 午後11.23.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/77342945-2158-237f-4785-294251e8d9b2.png">



##part10
Podfileをテキストエディタなどで開き，下のコードを`end`の前に書き加え，上書き保存をして閉じる．

```
# add the Firebase pod for Google Analytics
pod 'Firebase'
pod 'FirebaseUI'
pod 'Firebase/AdMob'
# add pods for any other desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
```



##part11
コマンドプロンプトに戻り，

```
pod install --repo-update
```
と打ち込み，エンター．



##part12
すると，`~~~.xcworkspace`，`Podfile.lock`，`Pods`という名前のファイル又はフォルダが自動生成される．

<img width="617" alt="スクリーンショット 2019-11-18 午後11.27.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/f627d805-addb-d206-0888-aa16a78dee41.png">



##part13
`~~~.xcworkspace`を立ち上げ，`AppDelegate.swift`に下のコードになるよう4つ書き加える．

```swift
import UIKit
//↓↓↓↓↓ここを書き加える
import Firebase
//↓↓↓↓↓ここを書き加える
import FirebaseUI

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        //↓↓↓↓↓ここを書き加える
        FirebaseApp.configure()
        //↓↓↓↓↓ここを書き加える
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        
        return true
    }
    ~~~~~
}
```



##part14
Google AdMobに登録し，`アプリの設定`画面に移動する．
アプリIDをコピーする．

[Google AdMob - モバイルアプリの収益化](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=2ahUKEwibrpn_qfblAhWoUN4KHW5jC7kQFjABegQIARAB&url=https%3A%2F%2Fadmob.google.com%2Fintl%2Fja%2Fhome%2F&usg=AOvVaw2drrGjw6iFwxWroqUq5V_S)

<img width="1344" alt="スクリーンショット 2019-11-18 午後11.34.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/939333e3-57cd-068a-927a-1b75e12e8329.png">




##part15
Xcodeに戻り，`Info.plist`を選択する．

<img width="271" alt="スクリーンショット 2019-11-18 午後11.32.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/eb22a179-e813-3481-66a3-f8969d2716ff.png">



##part16
`Information Property List`に`GADApplicationIdentifier`を追加し，`Value`に先ほどコピーした`アプリID`を貼り付ける．

<img width="775" alt="スクリーンショット 2019-11-18 午後11.34.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/8d9b918e-3386-7a2f-6dfd-7d33b14e9576.png">



##part17
ここから実際に広告が使えるか試す．
広告を表示したいViewControllerに下のフレームワークをインポートする．

```swift
import GoogleMobileAds
```



##part18
広告を表示したいViewControllerにUIViewを配置する．

<img width="684" alt="スクリーンショット 2019-11-18 午後11.41.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/cb61ce9c-c4a9-8d9e-bab1-09b16ccd1f1d.png">



##part19
下の制約をつける．

<img width="267" alt="スクリーンショット 2019-11-18 午後11.42.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/19aaf299-04f8-9468-781b-424c7b7f0a5f.png">

<img width="299" alt="スクリーンショット 2019-11-18 午後11.42.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/312a9462-b155-b2bd-9af6-6c8c8fe62746.png">




##part20
UIViewを選択した状態で，`Identity inspector`の`Custom Class`の`Class`を`GADBannerView`に変更する．

<img width="260" alt="スクリーンショット 2019-11-18 午後11.43.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/4218c121-80ed-5d45-7ec4-887ef99f9da5.png">



##part21
`Main.storyboard`のUIをコードに接続する．

<img width="853" alt="スクリーンショット 2019-11-18 午後11.44.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/e7973fde-5406-67fa-0a45-3642dfe31e18.png">



##part22
AdMob公式サイトからテスト広告ユニットIDをコピーする．

[バナー広告 | iOS | Google Developers](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=2ahUKEwjvpYaeqvblAhUJ_GEKHXPJAjgQFjABegQIBBAB&url=https%3A%2F%2Fdevelopers.google.com%2Fadmob%2Fios%2Fbanner%3Fhl%3Dja&usg=AOvVaw1t1xLjDb-Wl7cMhyjDxERQ)

<img width="1227" alt="スクリーンショット 2019-11-18 午後11.47.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/b20ceaaa-2757-7422-466a-8947d5370931.png">



##part23
広告を表示したい`ViewController`に下のコードになるよう3行書き加える．
`bannerView.adUnitID`は先ほどコピーしたもの．

```swift
import UIKit
import GoogleMobileAds

class FirstViewController: UIViewController {
    
    @IBOutlet weak var bannerView: GADBannerView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //↓↓↓↓↓この3行を書き加える
        bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
        bannerView.rootViewController = self
        bannerView.load(GADRequest())
    }
}
```

###追記
`override func viewDidLoad() {}`に広告の大きさを指定する以下のコードも加えてもいい．
`bannerView.adSize = kGADAdSizeBanner`



##part24
ビルドを実行して下のようになればOK．

<img width="375" alt="スクリーンショット 2019-11-18 午後11.57.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/bc343cdc-3f30-ceb3-28c8-8724e0fe0603.png">



##part25
###追記
`AdMob`にログインし，お支払いの設定から`お支払い情報の登録`を行う．

![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/8d65006a-721f-192a-d1fc-3c954aa7e8cb.png)


##part26
###追記
`AdMob`にログインし，アプリの設定から`アプリ名とアプリストアのリンク`を設定する.

![https---qiita-image-store.s3.ap-northeast-1.amazonaws.com-0-534708-78cfd3c2-ff07-f522-175a-fa6a23526852.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534708/bb6e100d-7f97-375d-cb6a-1cfeb37899d8.png)