質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1609閲覧

AdMobを実装したい

freemann

総合スコア264

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/05/07 09:29

前提・実現したいこと

iOSで、AdMobを使った広告を出したいです。
AdMobのスタートガイド
バナー広告の実装
上記リンクを参考にしています。

発生している問題・エラーメッセージ

制約がダメだとのエラ〜メッセージだと思います。
制約はコントロールで実装すると良いのかとも思ったのですが、2つ目のリンクでGADBannerViewをStoryboard上でのコントロールになくダメでした。

Thread 1: Exception: "NSLayoutConstraint for <GADBannerView: 0x7ff1c180f1e0; frame = (0 0; 320 50); clipsToBounds = YES; layer = <CALayer: 0x600003260180>>: Constraint items must each be a view or layout guide."

該当のソースコード

Swift

1import GoogleMobileAds 2import UIKit 3 4class TBViewController: UITabBarController { 5 6 var bannerView: GADBannerView! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 // Do any additional setup after loading the view. 12 bannerView = GADBannerView(adSize: kGADAdSizeBanner) 13 addBannerViewToView(bannerView) 14 bannerView.adUnitID = "ca-app-pub-3940256099942544~1458002511" 15 bannerView.rootViewController = self 16 bannerView.load(GADRequest()) 17 18 } 19 20 func addBannerViewToView(_ bannerView: GADBannerView) { 21 bannerView.translatesAutoresizingMaskIntoConstraints = false 22 view.addSubview(bannerView) 23 view.addConstraints( 24 [NSLayoutConstraint(item: bannerView, attribute: .bottom, relatedBy: .equal, toItem:view.safeAreaLayoutGuide.bottomAnchor, attribute: .top, multiplier: 1, constant: 0), 25 NSLayoutConstraint(item: bannerView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0)]) 26 27 } 28 29} 30

補足情報(FW/ツールのバージョンなど)

Xcode 11.4.1
Swift 5
iOS 13以降に対応

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のコメントのあるところ、4カ所を修正することによって表示できました。

Swift

1import GoogleMobileAds 2import UIKit 3 4//GADBannerViewDelegateプロトコルを追加 5class ListViewController: UIViewController, GADBannerViewDelegate { 6 7 var bannerView: GADBannerView! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 // Do any additional setup after loading the view. 13 bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) 14 addBannerViewToView(bannerView) 15 //指定するIDを正確に指定 16 bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" 17 bannerView.rootViewController = self 18 bannerView.load(GADRequest()) 19 //これを追加 20 bannerView.delegate = self 21 } 22 23 func addBannerViewToView(_ bannerView: GADBannerView) { 24 bannerView.translatesAutoresizingMaskIntoConstraints = false 25 //toItemを警告が出ていても、bottomLayoutGuideを指定する 26 view.addSubview(bannerView) 27 view.addConstraints( 28 [NSLayoutConstraint(item: bannerView, attribute: .bottom, relatedBy: .equal, toItem: bottomLayoutGuide, attribute: .top, multiplier: 1, constant: 0), 29 NSLayoutConstraint(item: bannerView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0)]) 30 31 }

投稿2020/05/07 14:35

freemann

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問