【AdMob】スタートガイドを公式より詳細に書く

第0部: [スタートガイド](https://qiita.com/SNQ-2001/items/44f3446ce0966c78641b) ← イマココ

第1部: [リワード広告](https://qiita.com/SNQ-2001/items/253173abefc6f90f86ea)
第2部: [インタースティシャル広告](https://qiita.com/SNQ-2001/items/5590a55324c39582a9ef)
第3部: [ネイティブ広告](https://qiita.com/SNQ-2001/items/7151fdcb8e9f8c2c42c2)
第4部: [バナー広告](https://qiita.com/SNQ-2001/items/9bf389475cb5995469a0)
第5部: [アプリ起動広告](https://qiita.com/SNQ-2001/items/75ce24982bf418c52349)

# はじめに
https://developers.google.com/admob/ios/quick-start?hl=ja

ドキュメントを読むのが慣れてない人用です。
画像付きでわかりやすく説明したつもりです。
分からないことがあれば[こちら](https://twitter.com/_SNQ)にDMください。



# Mobile Ads SDK をインポートする
公式から推奨されているCocoaPodsのみ紹介します。

最初にディレクトリを移動します。
```
cd ファイルパス
```
![スクリーンショット 2022-05-15 19.25.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/472e234d-d735-2fd5-b054-02e389d1bb57.png)
![スクリーンショット 2022-05-15 19.25.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0a8dd6d9-a1d4-d44d-a947-f02c24263101.png)
```
pod init
```
![スクリーンショット 2022-05-15 19.30.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/26946d01-46eb-6230-1263-7d135cfe554d.png)
`pod init`を実行すると`Podfile`が生成されます。
![スクリーンショット 2022-05-15 19.32.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/73d16e71-2f1f-a0be-add4-222a8ad66fad.png)

`Podfile`に`pod 'Google-Mobile-Ads-SDK'`を追加します。
![スクリーンショット 2022-05-15 19.34.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8764f702-df40-530c-8724-df2015baff70.png)

```
pod install
```
![スクリーンショット 2022-05-15 19.35.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/529b4985-05d7-b29e-2dfd-ef63ec58542e.png)

`pod install`を実行するとインストールが開始されます。
基本、赤文字が出なければインストールに成功したと思って問題ありません。
![スクリーンショット 2022-05-15 19.36.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/27082f0d-9c54-adef-9738-87ccddcff115.png)

インストールが成功すると下記の3つが自動生成されます。
![スクリーンショット 2022-05-15 19.39.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7b9efe0e-9c1d-faca-a163-0afcc459ba7b.png)

これでMobile Ads SDK のインポートは完了です。

# Info.plist を更新する
今後は全てこちらのxcworkspaceで作業していきます。
![スクリーンショット 2022-05-15 19.41.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/6a78af71-95c1-7968-e700-721c418f0c59.png)

`Info`まで移動します。
![スクリーンショット 2022-05-15 19.44.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/33f71d01-b08f-8dae-21f0-3313f5e701ce.png)

一番下の列のプラスボタンを押してください。
その下に新しい項目が追加されます。
![スクリーンショット 2022-05-15 19.46.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/9ccd6773-8220-27c9-acc5-307c29355419.png)

追加する項目はこちらです。
|Key|Value|
|-|-|
|GADApplicationIdentifier|ca-app-pub-3940256099942544~1458002511|

:::note warn
警告
**ca-app-pub-3940256099942544~1458002511**
こちらはサンプルのアプリIDです。
リリースの際は自分のアプリIDに置き換えてください。
:::

![スクリーンショット 2022-05-15 19.48.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1814875a-c10a-95a8-a53d-f16180171d74.png)

`Info`がファイルとして追加されます。
![スクリーンショット 2022-05-15 19.53.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/b1e94386-0d67-5455-6d19-51119b74d421.png)

`Info`を右クリックしてソースコードで表示します。
![スクリーンショット 2022-05-15 19.54.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/9e6312cf-d087-07cb-f9aa-71b7d6976f74.png)


このように表示されます。
![スクリーンショット 2022-05-15 19.57.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0d79de96-fabe-8c4a-0c47-589d3be8354a.png)
「ここに追加」の場所に下記のコードを追加します。
```Info.plist
<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4fzdc2evr5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2fnua5tdw4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ydx93a7ass.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>5a6flpkh64.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>p78axxw29g.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v72qych5uu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>c6k4g5qg8m.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>s39g8k73mm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qy4746246.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3sh42y64q3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>f38h382jlk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>hs6bdukanm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>prcb7njmu6.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v4nxqhlyqp.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>wzmmz9fp6w.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>yclnxrl5pm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>t38b2kh725.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>7ug5zh24hu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>kbd757ywx3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9t245vhmpl.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4468km3ulz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2u9pt9hc89.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8s468mfl3y.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>av6w8kgt66.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>klf5c3l5u5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ppxm28t8ap.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>578prtvx9j.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4dzt52r2t5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>e5fvkxwrpn.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8c4e2ghe7u.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>zq492l623r.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>
```
これでInfo.plistの更新は完了です。

# Mobile Ads SDK を初期化する
![スクリーンショット 2022-05-15 20.04.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/c061a821-d484-0690-eeb7-466408ab4326.png)

```Swift
import SwiftUI
import GoogleMobileAds

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
    ) -> Bool {
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        return true
    }
}

@main
struct AdMob_StartGuide_DemoApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
```

# おわり
サンプルプロジェクト置いときます。

https://github.com/SNQ-2001/AdMob-StartGuide-Demo