【Swift5】GoogleAdMob のバナー広告を設置する

本当たまにしかやらないので、忘れちゃうんですよねぇ。Ꮚ’ꈊ’Ꮚ
アプリを新規で作るたびに、実装手順を読んで設定するのめんどくさいので、ざっくりとまとめます。

AdMob の公式ドキュメントはこちらです。
そちらに記載があるとおり、Googleさんは CocoaPods を推奨しているので、それに倣って進めますが、CocoaPods はインストール済みとして進めますので、わからない人はググってください。

CocoaPods で AdMob をインストールする

ターミナルを起動して、以下のコマンドを実行する

// 対象プロジェクトまで移動する(project_path は対象プロジェクトのパス)
cd project_path

// Podfileを作る
touch Podfile

// Podfileを編集する
vi Podfile

Podfile を編集する

以下の内容にするのですが、超絶最低限の内容を記載してるので、もっと詳しく知りたい方はご自分でお調べ下さーい。

use_frameworks!

target 'ProjectName' do
        pod 'Google-Mobile-Ads-SDK'
end

いつも書いてる Podfile とは違うので、気になる方はこちらの記事を読んでください!

インストールを開始する

pod install --repo-update

Pod installation complete! みたいな文字が出てきたら OK です。

Info.plist に アプリID を追加する

バナー広告は作成済みとして進めます。
作成した広告ユニットをタップ → 実装手順 をタップすると、以下のポップアップが表示されます。

上が アプリID となるもので、その下は 広告ユニットID となります。
ここでは アプリID を使うので、コピーして以下のように Info.plist に記載してください。


コピペ用コード (._.)φ

GADApplicationIdentifier
ca-app-pub-3940256099942544~1458002511

GoogleMobileAds を扱うクラスを作成

import GoogleMobileAds をあちこちに書きたくない(めんどくさい)ので、GoogleMobileAds を扱うクラスを作って、それを使いまわします。
さーせーん (∩^o^)⊃━☆゜.*

import GoogleMobileAds

class AdMobHelper: NSObject {

    static let shared = AdMobHelper()

    func initSDK() {
        GADMobileAds.sharedInstance().start(completionHandler: nil)
    }

    func setupBannerAd(adBaseView: UIView, rootVC: UIViewController) {
        let adView = GADBannerView(adSize: kGADAdSizeBanner)
        #if DEBUG
        adView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
        #else
        if rootVC is ViewController {
            adView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
        } else if rootVC is ViewController2 {
            adView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
        }
        #endif
        adView.rootViewController = rootVC
        adView.load(GADRequest())
        adBaseView.addSubview(adView)
        adView.translatesAutoresizingMaskIntoConstraints = false
        adView.centerXAnchor.constraint(equalTo: adBaseView.centerXAnchor).isActive = true
        adView.centerYAnchor.constraint(equalTo: adBaseView.centerYAnchor).isActive = true
        adView.widthAnchor.constraint(equalToConstant: 320.0).isActive = true
        adView.heightAnchor.constraint(equalToConstant: 50.0).isActive = true
    }

}

17,18行目の adUnitID には、広告ユニットID をぶっ込みます!

作成したクラスを使用する

AppDelegate で初期化

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    AdMobHelper.shared.initSDK()

    return true
  }

}

バナー広告を設置

バナー広告を設置したい場所に、高さ固定(50px)の UIView を作成しておきます。
ここでは adBaseView とします。

class ViewController: UIViewController {

    @IBOutlet weak var adBaseView: UIView!

    override func viewDidLoad() {
        AdMobHelper.shared.setupBannerAd(adBaseView: self.adBaseView, rootVC: self)
    }

}

さいごに

毎度毎度、プロジェクトを漁りながら実装するので…w
次からはこの記事を見ながら実装できるぜ… _:(´ཀ`」 ∠):_

違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )

Swift
スポンサーリンク

コメント