こちらの記事では、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に戻ってコードとストーリーボードの関連付けを行いましょう。
すると、リワード広告が実装できます。
いかがでしたか?
広告が実装できましたか?
コメント