ぼくの薄い本

技術的なメモを残していく薄い本的なものです

AdMob を画面下に配置する設定

Firebase の AdMob でバナー広告を試しに使ってみました。

Firebase 公式サイトの手順で行うと画面上の左端に配置されてしまうので、画面下のセンターに配置するようにしました。

前提

  • swift4
  • Xcode 8
  • Firebase はインストール済み

Constraints を追加することで画面下に配置

Firebase 公式のバナー追加の手順に従うとviewDidLoad()の中身がこんな感じになっているはず。

bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "自分のadUnitID"
bannerView.rootViewController = self
bannerView.load(GADRequest())
bannerView.delegate = self
view.addSubview(bannerView)

このままだと画面上に表示されてしまい、ステータスバーも隠れてしまいます。

Constrains を追加して、画面下に配置するように下記コードを追加しましょう。

// Autoresizing は使わないから false
bannerView.translatesAutoresizingMaskIntoConstraints = false

self.view.addConstraints([
        // バナーの下部を、親viewの下部に合わせる
        NSLayoutConstraint(item: bannerView,
                           attribute: .bottom,
                           relatedBy: .equal,
                           toItem: self.view,
                           attribute: .bottom,
                           multiplier: 1.0,
                           constant: 0),
        // バナーのX軸のセンターを、親viewのX軸のセンターに合わせる
        NSLayoutConstraint(item: bannerView,
                           attribute: .centerX,
                           relatedBy: .equal,
                           toItem: view,
                           attribute: .centerX,
                           multiplier: 1.0,
                           constant: 0),
])

実際のサンプルは、下記リポジトリの Knock05 に入っています。

github.com

おわりに

アプリによって広告を入れる場所は変わると思いますが、今回は常に画面下に配置するような設定にしました。 Constraints を変えて色々工夫してみましょう。