初めてのSwift 〜Admobの導入〜

swift


iOSアプリに広告を入れる手順を書いていきたいと思います。
事前にこちらの手順を進めておきましょう。

Google Mobile Ads SDKの追加

1.プロジェクトの新規作成

プロジェクトを新規作成します。
作成直後のメニューは下記のようになっています。

コマンドプロンプトを開き、下記を実行する。(作成したプロジェクトへ移動しインストールを行う)

上記を実行するとPodsフォルダが作成されることが確認できます。

2.Podfileへ追加

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

下記を追加します。

再度コマンドプロンプトを開き、変更を更新します。

設定の変更とコードの追加

1.info.plistへ追記

プロジェクトフォルダ内のプロジェクト名フォルダを開きます。
一度でも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の下に下記を追加します。

2.delegateファイルの作成

新規でファイルを作成し、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
  }
}

3.広告用クラスの作成

新規でファイルを作成し、広告を表示するための処理を記載します。
[自分の広告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) {}

}

4.ContentViewへ追記

広告を表示するために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()
}

プロジェクトの実行

1.実行ボタンクリック

実行すると下記のようなエラーが表示されてしまいました。
いろいろ試してみましたが、なかなかなおらず。。。

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

2.再実行

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

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

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

3.再実行

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

タイトルとURLをコピーしました