4
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Organization

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

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

環境

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

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
Sign upLogin
4
Help us understand the problem. What are the problem?