SwiftでAdmobの広告を埋め込む

SwiftでAdmobを使えるようにするのにハマったのでここにメモしておく。

Admobをダウンロード

Admobのファイルはこちらからダウンロードできます。 次にAdmobを使用するのに必要なフレームワークもプロジェクトに追加してください。 必要なフレームワークは以下のとおりです。
  • AdSupport
  • AudioToolbox
  • AVFoundation
  • CoreGraphics
  • CoreTelephony
  • EventKit
  • EventKitUI
  • MessageUI
  • StoreKit
  • SystemConfiguration

Objective-CのクラスをSwiftで呼べるようにする

Bridge Fileの作成

Xcode → File → New
を選択してAdmobBridge.h というファイルを以下の内容で作成します。
#ifndef AdmobBridge_h
#define AdmobBridge_h
#import "GADBannerView.h"
#endif

AdmobBridge.hへのパスを通す

最後にXCodeのBuildSettingsのObjective-C Bridging HeaderにAdmobBridge.hのファイルのパスを設定します。

AdmobBridge

Other Linker Flagsを編集

Other Linker Flagsに-ObjCを追加します。

otherlinker

Done!

これでSwiftからGADBannerViewを使えるようになりました!

あとはViewControllerに以下のようなコードを書くだけで広告を表示させることができます。

private func getBannerView() -> GADBannerView{
        // return Admob's banner view.
        var bannerView: GADBannerView = GADBannerView();
        
        bannerView = GADBannerView(adSize:kGADAdSizeBanner);
        bannerView.frame.origin = CGPointMake(0, self.view.frame.size.height-50)
        bannerView.frame.size = CGSizeMake(self.view.frame.size.width,50)
        bannerView.adUnitID = "your_admob_id"
        bannerView.delegate = self
        bannerView.rootViewController = self
        
        var request:GADRequest = GADRequest()
        request.testDevices = [GAD_SIMULATOR_ID]
    
        bannerView.loadRequest(request)
     
        return bannerView
        
    }

    override func viewDidLoad() {
        let bannerView:GADBannerView = getBannerView()
        self.view.addSubview(bannerView)
    }

Related Contents

Pickup Contents