前提・実現したいこと
前提
macOS Catalina (version 10.15.7)
iOSアプリの申請は通りました。
画面全体に表示されるinterstitial広告を導入したいと思っています。
ターミナル、GoogleAdMob、Firebaseの連携ということもあり、
広告掲載に必要な条件(全体像?)がよく理解できていません。
実現したいこと
AdMobの広告を表示したい。
発生している問題
問題:広告が出ないこと
エラーメッセージはありません。普通に動きます。
コード以外で問題があると考えています。
該当のソースコード
Swift
1 @objc private func didTapButton(){ 2 if interstitialAd?.isReady == true{ 3 interstitialAd?.present(fromRootViewController: self) 4 }else{ 5 print("Error") 6 } 7 }
コードの一部になりますが、ボタンをクリックすると
Errorの文字がConsoleに表示されます。
試したこと
・Google AdMobの登録
Google AdMob>アプリ>アプリの設定 にて
アプリID:ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX
Google AdMob>アプリ>広告ユニット にて
広告ユニット: ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX
・Firebaseの登録
FirebaseとGoogle Analyticsはリンクしています。
Firebaseとアプリケーションもリンクしています。
ターミナル関連
https://firebase.google.com/docs/admob/ios/quick-start
を参考にしています。
前提条件となる
1.Firebase SDKのインストール
2.AdMobアカウントの作成と、アプリの登録
3.アプリをFirebaseプロジェクトにリンク
に関しては、ページの方針に沿って進めました。
$ open Podfileで以下を確認できます。
Podfile
1# Uncomment the next line to define a global platform for your project 2# platform :ios, '9.0' 3 # Comment the next line if you don't want to use dynamic frameworks 4 use_frameworks! 5# add the Firebase pod for Google Analytics 6pod 'Firebase/Analytics' 7pod 'Firebase/AdMob' 8pod 'Google-Mobile-Ads-SDK' 9# add pods for any other desired Firebase products 10# https://firebase.google.com/docs/ios/setup#available-pods 11end
Xcode関連
.wcworkspaceでプロジェクトを開いています。
・Info.plistでは、GADApplicationIdentifierにアプリIDを代入しています。
Xcode>Info.plist>GADApplicationIdentifier>String>ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX
以下、AppDelegate.swift
swift
1import UIKit 2import Firebase 3import GoogleMobileAds 4 5@UIApplicationMain 6class AppDelegate: UIResponder, UIApplicationDelegate { 7 8 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 9 //以下追加 10 FirebaseApp.configure() 11 GADMobileAds.sharedInstance().start(completionHandler: nil) 12 //以上追加 13 return true 14 } 15}
以下、ボタンを押して広告を表示したいページ
swift
1import UIKit 2import CoreData 3import GoogleMobileAds 4 5class initialViewController: UIViewController { 6 7 struct Constants { 8//広告ユニットを使用しています。 9 static let adsenseID = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX" 10 } 11 private var interstitialAd: GADInterstitial? 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 self.interstitialAd = createdAd() 15 16 let button = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 55)) 17 button.backgroundColor = .link 18 button.center = view.center 19 button.setTitle("Show Ad", for: .normal) 20 button.setTitleColor(.white, for: .normal) 21 view.addSubview(button) 22 button.addTarget(self, action: #selector(didTapButton), for: .touchUpInside) 23 } 24 25//ボタンを押すとConsoleにErrorが表示される 26 @objc private func didTapButton(){ 27 if interstitialAd?.isReady == true{ 28 interstitialAd?.present(fromRootViewController: self) 29 }else{ 30 print("Error") 31 } 32 } 33 34 private func createdAd() -> GADInterstitial{ 35 let ad = GADInterstitial(adUnitID: Constants.adsenseID) 36 ad.delegate = self 37 ad.load(GADRequest()) 38 return ad 39 }
メッセージ
問題がどこにあるのかを考えていると、
アプリIDと広告ユニットが怪しく感じています。
しかし、ターミナル、GoogleAdMob、Firebaseと広範囲なこともあり、
問題の特定には至っていません。
曖昧な質問で申し訳ございません。
AdMobでiOSアプリへの広告を掲載された方、
アドバイスをいただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/06 12:36