yamaday0u Blog Written by yamaday0u

【SwiftUI】デバッグビルドとリリースビルドでMobAdの広告を切り替える方法

iOS

こんにちは、やまだゆうです。

今回はデバッグビルドとリリースビルドでMobAdのIDを切り替える方法を伝えします。

この記事の内容

  1. 広告ユニットIDをを用意
  2. User-Defined Settingに広告ユニットIDを設定する
  3. Info.plistに広告ユニットIDを渡す
  4. バナーView生成時に広告ユニットIDを取得する

スポンサーリンク

広告ユニットIDを用意

アプリに組み込む広告IDを用意します。

本番用はご自身のGoogle AdMobのページで広告ユニットIDを確認してください。

BabyGoodsManagerは私が個人開発したアプリです。

テスト用の広告ユニットIDはGoogle AdMobのドキュメントで公開されているIDを使用します。

今回の記事では、バナー広告(アダプティブ バナー)用のデモ広告ユニット IDを使用します。

User-Defined Settingに広告ユニットIDを設定する

Xcodeでアプリプロジェクトを開き、User-Definedを追加します。

TARGETS > Build Settings > +ボタン でAdd User-Defined Settingをクリックして新しい設定を追加します。

Setting名に「AdUnitID」を追加します。DebugとReleaseにそれぞれテスト用と本番用の広告ユニットIDを設定します。

DebugとReleaseのそれぞれ広告ユニットIDを設定します。

スポンサーリンク

Info.plistに広告ユニットIDを渡す

Info.plistに次の値を追加します。

AdUnitIDを追加します。

コードで表すと次のようになります。

<key>AdUnitID</key>
<string>${AdUnitID}</string>

バナーView生成時に広告ユニットIDを取得する

バナーViewを作成するときにInfo.plistからAdUnitIDを参照してadUnitIDに値を入れましょう。

import SwiftUI
import GoogleMobileAds

struct BannerView: UIViewControllerRepresentable {
    
    let bannerView = GADBannerView(adSize: GADAdSizeBanner)
    
    func makeUIViewController(context: Context) -> UIViewController {
        
        let viewController = UIViewController()
        // Info.plistからAdUnitIDを参照
        bannerView.adUnitID = Bundle.main.infoDictionary!["AdUnitID"] as? String
        bannerView.rootViewController = viewController
        viewController.view.addSubview(bannerView)
        
        return viewController
    }
    
    func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
        
        bannerView.load(GADRequest())
    }
}

これでデバッグビルド時はテスト広告、リリースビルド時は本番用の広告が表示されるようになります。

スポンサーリンク

参考資料

yamaday0uを応援お願いします!あなたの1クリックが励みになります。
>> にほんブログ村