[iOS][Swift]Admobの広告をSwiftで表示する

  • 2
    いいね
  • 0
    コメント

個人的なメモ。役立つ人がいれば。
まだまだ、アプリ開発は初心者のという私のような人向け。

環境

Xcode8.1/Swift3.0

広告導入

iAd が使えないし、簡単に広告を入れてみる。

導入は、podfile を書いてみた。コマンドラインで、pod init して、pod install をする。

target 'SaimonCats' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  # use_frameworks!
    pod 'Firebase'
    pod 'Firebase/AdMob'
    pod 'EAIntroView', '~> 2.10.0'

  # Pods for SaimonCats

(略)

end

brigeも書いて定義する。

Bridging-Header.h
#ifndef Bridging_Header_h
#define Bridging_Header_h

#import "EAIntroView/EAIntroView.h"

#endif /* Bridging_Header_h */

ViewController の Delegate を定義する。

ViewController.swift
class ViewController: UIViewController, GADBannerViewDelegate {

ViewController に func を定義する。

ViewController.swift
    // Admob広告表示処理
    func getAdBannerView(_ BannerType: Bool) -> GADBannerView {
        // Admob Version
        print("Google Mobile Ads SDK version: " + GADRequest.sdkVersion())

        // bannerViewの作成
        var bannerView: GADBannerView = GADBannerView()
        bannerView = GADBannerView(adSize:kGADAdSizeBanner)

        // 表示位置計算
        var bannerY:CGFloat = 20
        if BannerType {
            bannerY = UIScreen.main.bounds.size.height - bannerView.frame.height
        }
        let bannerX = (UIScreen.main.bounds.size.width - bannerView.frame.width) / 2

        // 表示位置設定
        bannerView.frame.origin = CGPoint(x: bannerX, y: bannerY)
        bannerView.frame.size = CGSize(width: bannerView.frame.width, height: bannerView.frame.height)

        // 表示バナーのIDを指定
        bannerView.adUnitID = bannerId // Enter Ad's ID here

        // delegate と表示先指定
        bannerView.delegate = ViewController()
        bannerView.rootViewController = self

        // バナーをリクエスト
        let getrequest:GADRequest = GADRequest()

        if debugModeFlag {
            // テスト用バナー
            getrequest.testDevices = [kGADSimulatorID]
        }

        bannerView.load(getrequest)

        // バナーを返す
        return bannerView
    }

別のViewControllerから呼ぶ。

SampleViewController.swift
    let viewController = ViewController()
    let bannerView:GADBannerView = viewController.getAdBannerView(true)
    self.view.addSubview(bannerView)

他に書き方もあるとは思いますが、一例ということで。

自分のアプリに反映

以下のアプリで使っています。スクリーンショット観てみてください。

[AppStore] Simoncats
https://itunes.apple.com/jp/app/simoncats/id1078064315?mt=8