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」に変更します。

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


