[iOSアプリ開発][Xcode 8] AdMob を導入する
iOS アプリに Google が提供する AdMob を導入する方法。
(0)AdMob アカウントを作っておく。
AdMob
https://apps.admob.com/signup/#home
(1)以下のページから Google Mobile Ads SDK をダウンロードしてくる。
Google Mobile Ads SDK | AdMob by Google | Firebase
https://firebase.google.com/docs/admob/ios/download
(2)1のファイルを解凍し、その中の GoogleMobileAds.framework を Xcode のプロジェクトのルートフォルダーに入れる。
(3)Xcode で File > Add File to “[プロジェクト名]” をクリック。2の GoogleMobileAds.framework を選んで、Add。
(4)Xcode でツリーの一番上にある「Project Navigator」アイコンをクリックし、ツリーのプロジェクト名をクリック。中央ペインの TARGETS > [プロジェクト名] > Build Phases > Link Binary With Libraries をクリック。「+」ボタンを押して、以下を追加する。
AdSupport.framework
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreTelephony.framework
EventKit.framework
EventKitUI.framework
MessageUI.framework
StoreKit.framework
SystemConfiguration.framework
(5)中央ペインの TARGETS > [プロジェクト名] > Build Settings > Framework Search Paths でパスをダブルクリック。$(PROJECT_DIR)/[プロジェクト名] が GoogleMobileAds.framework があるパスになっていることを確認する。
同じく Build Settings の Enable Bitcode を No にする。
参考:
ios – AdMob 7.3.1 and Swift 2.0 – Module not found – Stack Overflow
http://stackoverflow.com/questions/30876363/admob-7-3-1-and-swift-2-0-module-not-found
(6)ViewController.swift に以下のように記入。
import UIKit
import GoogleMobileAds
class ViewController: UIViewController, GADBannerViewDelegate {
// AdMob で発行される Ad unit ID を入力。
let AdMobID = "ca-app-pub-##########"
// 実機で実行した時にコンソールに表示される ID を入力。
let TEST_DEVICE_ID = "##########"
let AdMobTest:Bool = true
let SimulatorTest:Bool = true
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var admobView: GADBannerView = GADBannerView()
admobView = GADBannerView(adSize:kGADAdSizeBanner)
admobView.frame.origin = CGPoint(x:0, y:20)
/* 広告を下部に表示するなら以下のようにする
admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height) */
admobView.frame.size = CGSize(width:self.view.frame.width, height:admobView.frame.height)
admobView.adUnitID = AdMobID
admobView.delegate = self
admobView.rootViewController = self
let admobRequest:GADRequest = GADRequest()
if AdMobTest {
if SimulatorTest {
admobRequest.testDevices = [kGADSimulatorID]
}
else {
admobRequest.testDevices = [TEST_DEVICE_ID]
}
}
admobView.load(admobRequest)
self.view.addSubview(admobView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
参考:
Google Mobile Ads SDK に関するよくある質問 | Google Mobile Ads SDK | Google Developers
https://developers.google.com/mobile-ads-sdk/kb/?hl=ja
ios – ‘CGPointMake’ is unavailable in swift – Stack Overflow
http://stackoverflow.com/questions/39336793/cgpointmake-is-unavailable-in-swift
uikit – CGRectMake , CGPointMake, CGSizeMake, CGRectZero, CGPointZero is unavailable in Swift – Stack Overflow
http://stackoverflow.com/questions/37946990/cgrectmake-cgpointmake-cgsizemake-cgrectzero-cgpointzero-is-unavailable-in
(7)ロックを解除した iPhone 等の実機を Mac に接続。実機でビルドをする。すると、コンソールに以下のように表示される。
<Google> To get test ads on this device, call: request.testDevices = @[ @"##########" ];
この ########## が TEST_DEVICE_ID なので、6の let TEST_DEVICE_ID = “##########” を記入する。
参考:
【iOSアプリ開発】-swift2- AdMobで広告を表示する : 実装編<バナー広告> – あれは、魔法だろうか?
http://amazarashi.me/archives/522
Cocos2d-x 3.5 AdMobのバナー広告を実装する(iOS, Android) | cretia studio
http://studio.cretia.net/blog/344
これでビルドすると広告が表示されるはずだ。ただし、なぜかシミュレーター上で広告が表示されるのに、実機では表示されなかったりすが、表示されるまで時間が掛かるようだ。
参考:
[iPhone] アプリにAdMob広告を貼る | iPhoneアプリ開発
https://iphone-app-tec.com/ios/admob.html
【Swift】admobを導入する方法 – とりあえず何でも書く
http://gokexn.blog.fc2.com/blog-entry-128.html
Recent Posts
Archives