1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アプリ内バナー広告の実装(SwiftUI)

Last updated at Posted at 2021-12-22

#GoogleAdMobの実装
アプリ内広告の種類はいくつかありますが、今回はGoogleAdMobのバナー広告を選択しました。
作成済みのアプリ(以下のQiita記事リンクに詳細)に組み込みます。

天気図リンクアプリ

また、AdMobの広告の種類は以下の通りです。
スクリーンショット 2021-12-23 0.09.10.png

https://support.google.com/admob/answer/6128738?hl=ja より画像引用

###AdMobの登録とキーの取得
省略します

###フレームワーク(Google-Mobile-Ads-SDK)のインストール
cocoapodsを使用したフレームワークのインストールに失敗しました。
M1マックを使用していることに原因がありそうですが、解決法が見つからなかったので手動でサイトから直接ダウンロードして、
手動でフレームワーク放り込むことで上手くいきました。

放り込む場所(GneralFrameworks,Libraries,and Embeded Content)
D491A63B-DFC8-4CFF-A016-E34B762A9AFA.jpeg

デフォルトでEmbedになっていますのでDo Not Embedにします

###Infomtion Property Listにkeyを追加
BC610AC0-649C-46EC-81A5-5C6CBC397684_4_5005_c.jpeg

###コードの記述
フレームワークのインポート

ContentView.swift
    import GoogleMobileAds 

初期化

AppDelegate.swift
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        return true
    }

AppDelegate.swiftにあるfunc applicarion内の//Override point for...以下に
GADMobileAds.sharedInstance().start(completionHandler: nil)を記述します。

続いてstruct ContentView: View {}内に広告を定義します。

ContentView.swift
//Admobの実装
struct AdView: UIViewRepresentable {
    func makeUIView(context: Context) -> GADBannerView {
        let banner = GADBannerView(adSize: kGADAdSizeBanner)
        // 下記はテスト専用広告ユニットID(バナー広告)。
        banner.adUnitID = "ca-app-pub-3940256099942544/2934735716"
        banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
        banner.load(GADRequest())
        return banner
    }

    func updateUIView(_ uiView: GADBannerView, context: Context) {
    }
}

続いて、var body: some View {}内にAdView()を追加します。
これで広告の実装が完成です。

ContentView.swift
AdView().frame(width: 320, height: 50)

792C84B3-956B-4BAE-9A1B-105E65D00B32.jpeg

今回はNavigationViewの上に配置しました。
本番用の広告IDを使用して、もしタップしてしまうとペナルティをくらいますのでご注意下さい。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?