プロフィール
この記事を書いた人
こっちゃん

1997年生まれ。そち男(夫)とまめ助(マルチーズ)と暮らしています。夢は、地元の愛知県一宮市でカフェを開くことです。自分を表現できる、自分らしくいられる、なんだかほっとする、新たな出会いがある、ワクワクする、学びがある、、、そんな空間を作り、地元の人達のために働くのが私の夢です。このブログでは、私の日々の記録や、皆さんのお役に立てそうなことを発信していきます。インスタグラムではイラストの投稿もしているので、是非のぞいていただけたら嬉しいです!!

こっちゃんをフォローする

【Xcode】Admobの導入方法について 2025.2最新版 -swift

アプリ開発のエッセンス

こちらの記事では、iOSアプリに、Admobを導入する方法についてご紹介します。他にも記事があると思いますが、2025.2の時点で、他のサイト情報があまり参考にならなかったので、投稿します。

全体概要

① PodFileの編集

② Xcode内でGoogle-Mob-Ads-SDKの設定

③ バナー広告の導入

④ リワード広告の導入

①Podfileの編集

まずは、Podfileを導入したい部屋の階層まで下がりましょう

その後、

 pod init

Podfileを作成します。

作成したpodfileをクリックし、下記の写真のようにコードを追加しましょう。内容は理解できなくても、呪文のようにつけておけば大丈夫です。

platform :ios, '17.0'   #デフォルトでは、先頭に#がついているので、削除しましょう
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "11.0"
    end
  end
end
# こちらは、iOSのバージョンが低いときにエラーが発生してしまうので、iOSが11の制限をつけておきましょう

上記のように、podfileが編集できたら、Ctrl+sでセーぶして、podfileをインストールしましょう

pod install

成功すると、下記のようなメッセージが出現します。

② Google-Mobile-Ads-SDKのXcode内での設定

AppDelegateでの設定

AppDelegate内に下記のコードを入れましょう。

import GoogleMobileAds
MobileAds.shared.start(completionHandler: nil)

少し前までは、GADMobileAds.sharedInstance().start(completionHandler: nil)で、できたのですが、今ではサポートされていないので注意です。

↑この記事がなかったため、私は手間取りました。

infoでの設定

まずは、APPのBuild Setteingsの検索窓で、[sand]と入力し、User Script Sandboxingを”NO”にしましょう。

③バナー広告の導入

ここまできたら、本格的にバナー導入に移っていきます。

info.plistでの設定

次に、Info.plistをsource codeで展開します。

そこで、下記を入力しましょう。

    <key>AdUnitIDs</key>
    <dict>
        <key>banner</key>
        <string>$(BANNER_ID)</string>
        <key>interstitial</key>
        <string>$(INTERSTITIAL_ID)</string>
    </dict>
    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-3940256099942544~1458002511</string>
    <key>SKAdNetworkItems</key>
      <array>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>cstr6suwn9.skadnetwork</string>
        </dict>
      </array>

ちなみに、<string>ca-app-pub-3940256099942544~1458002511</string>は、バナー広告のテスト用のidですので、リリース時には、自身のAdmobのidを設定してください。

Mainstoryboardでの設定

まずは、imageviewをセットしてください。(今回は上下に設定します。)

次に、classをGADBannerViewに設定します。上下にセットする場合でも、クラス名を両方GADBannerViewにしても問題ありません。

加えて、制約も追加しましょう。制約を入れないと、Viewが迷子になることが多々あります。

個人的にバナー広告でおすすめの制約設定を載せておきます。

viewControllerでの設定

下記のコードを追加しましょう。

import GoogleMobileAds
@IBOutlet weak var bannerView: BannerView!
@IBOutlet weak var bannerView2: BannerView!
bannerView.adUnitID = "ca-app-pub-3940256099942544/2435281174"
bannerView.rootViewController = self
bannerView.load(Request())
bannerView2.adUnitID = "ca-app-pub-3940256099942544/2435281174"
bannerView2.rootViewController = self
bannerView2.load(Request())

一昔前までは、bannerView.load(GADRequest())を使っていたのですが、現在は一部変更されていますので、ご注意ください。

あとは、bannerViewを関連付けしたら終了です。

このように広告が表示されましたでしょうか?

④リワード広告の導入

バナー広告が実装できたら、リワード広告を実装するのは簡単です。

今回は、ボタンを押したらリワード広告が実装できるようにしましょう。

Mainstoryboardでの設定

ひとまず、ボタンだけ用意します。今回、一番右の「広告を見てヒントを見る」を押したら、広告が表示されるようにしていきます。

ViewController.swiftでの設定

下記のコードをそのまま入れるだけでOKです。

ちなみに、5行目の広告コードはテストコードですので、実際にアプリをリリースする際には、自身のAdmobコードを入れるようにしてください。

private var rewardedAd: RewardedAd?

    func loadRewardedAd() async {
      do {
          rewardedAd = try await RewardedAd.load(
            with: "ca-app-pub-3940256099942544/1712485313", request: Request())
      } catch {
        print("Rewarded ad failed to load with error: \(error.localizedDescription)")
      }
    }
    
    /// Tells the delegate that the ad failed to present full screen content.
    func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
      print("Ad did fail to present full screen content.")
    }

    /// Tells the delegate that the ad will present full screen content.
    func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
      print("Ad will present full screen content.")
    }

    /// Tells the delegate that the ad dismissed full screen content.
    func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
      print("Ad did dismiss full screen content.")
    }
    
    func show() {
      guard let rewardedAd = rewardedAd else {
        return print("Ad wasn't ready.")
      }
        
        if let rootViewController = self.view.window?.rootViewController {
            rewardedAd.present(from: rootViewController) {
                    let reward = rewardedAd.adReward
                    print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
                    // TODO: ユーザーに報酬を与える処理を追加
                }
            }
    }

そして、下記のコードでShow関数を呼び出してやります。

    @IBAction func hint() {
        show()
    }

あとは、Mainstoryboardに戻ってコードとストーリーボードの関連付けを行いましょう。

すると、リワード広告が実装できます。

いかがでしたか?

広告が実装できましたか?

コメント

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