Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

環境

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

o_chicchi
AWS、Bluemix、Siwft(iOS)、SAPとか楽しんでる人です。 iPhone用ゲームアプリ公開中: https://itunes.apple.com/jp/app/simoncats/id1078064315?mt=8
http://blog.maripara.org/
iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away