iOSアプリに広告を入れる手順を書いていきたいと思います。
事前にこちらの手順を進めておきましょう。
Google Mobile Ads SDKの追加
プロジェクトを新規作成します。
作成直後のメニューは下記のようになっています。

コマンドプロンプトを開き、下記を実行する。(作成したプロジェクトへ移動しインストールを行う)
1 2 3 |
XX@XXMacBook-Air ios % cd admobtest01 XX@XXMacBook-Air admobtest01 % pod init XX@XXMacBook-Air admobtest01 % pod install |
上記を実行するとPodsフォルダが作成されることが確認できます。

プロジェクト名フォルダ配下にある「Podfile」を開きます。

下記を追加します。
1 |
pod ’Google-Mobile-Ads-SDK’ |

再度コマンドプロンプトを開き、変更を更新します。
1 |
pod install --repo-update |
設定の変更とコードの追加
プロジェクトフォルダ内のプロジェクト名フォルダを開きます。
一度でもinfo.plistを編集したことがある場合はこのフォルダ内にinfo.plistファイルが作成されていますが、今回は新規のためファイルは存在していません。

設定画面を開き、「Info」タブをクリックし、+マークをクリックします。

「Custom iOS Target Properties」にアプリIDを設定します。
Key:GADApplicationIdentifier
Value:AdMobから取得した「ca-app-pub-XXXXXXXXXX~XXXXXX」形式のID

【AdmobからアプリIDを取得する方法】
「アプリの設定」→「アプリID」のコピー

追加した結果が下記のように表示されます。

先程のフォルダにもinfo.plistファイルが作成されたことが確認できます。

info.plistファイルを開き、先程登録したGADApplicationIdentifierの下に下記を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>GADApplicationIdentifier</key> <string>ca-app-pub-XXXXXXXXXX~XXXXX</string> <key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> </array> </dict> </plist> |
新規でファイルを作成し、Mobile Ads SDKを初期化するための処理を記載します。
例.ファイル名:AppDelegate.swift
import SwiftUI import GoogleMobileAds class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { MobileAds.shared.start(completionHandler: nil) return true } }
新規でファイルを作成し、広告を表示するための処理を記載します。
[自分の広告ID]部分にはAdmobで取得したIDを入力してください。
例.ファイル名:BannerAdView.swift
import SwiftUI import GoogleMobileAds struct BannerAdView: UIViewRepresentable { func makeUIView(context: Context) -> BannerView { let banner = BannerView(adSize: AdSizeBanner) banner.adUnitID = "[自分の広告ID]" banner.rootViewController = UIApplication.shared.connectedScenes .compactMap { $0 as? UIWindowScene } .first?.windows.first?.rootViewController banner.load(Request()) return banner } func updateUIView(_ uiView: BannerView, context: Context) {} }
広告を表示するためにContentViewに下記を追加します。
import SwiftUI struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") Spacer() // ここを追加 BannerAdView().frame(width: 320, height: 50) } .padding() } } #Preview { ContentView() }
プロジェクトの実行
実行すると下記のようなエラーが表示されてしまいました。
いろいろ試してみましたが、なかなかなおらず。。。

一旦XCodeを修了し、次は下記「xcworkspace」ファイルをダブルクリックして再度開きます。

先程とは異なるエラーに変わったことがわかります。
こちらのエラーを解決していきます。

設定画面を開き、「Build Settings」タブをクリックします。
「Basic」と「Levels」を選択します。

「ENABLE_USER_SCRIPT_SANDBOXING」を検索し、見つかった項目の値を「No」に変更します。

広告が表示されるようになったことが確認できます!
