[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 に以下のように記入。
1import UIKit
2import GoogleMobileAds
3
4class ViewController: UIViewController, GADBannerViewDelegate {
5 // AdMob で発行される Ad unit ID を入力。
6 let AdMobID = "ca-app-pub-##########"
7 // 実機で実行した時にコンソールに表示される ID を入力。
8 let TEST_DEVICE_ID = "##########"
9
10 let AdMobTest:Bool = true
11 let SimulatorTest:Bool = true
12
13
14 override func viewDidLoad() {
15 super.viewDidLoad()
16 // Do any additional setup after loading the view, typically from a nib.
17
18
19 var admobView: GADBannerView = GADBannerView()
20 admobView = GADBannerView(adSize:kGADAdSizeBanner)
21 admobView.frame.origin = CGPoint(x:0, y:20)
22 /* 広告を下部に表示するなら以下のようにする
23 admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height) */
24
25 admobView.frame.size = CGSize(width:self.view.frame.width, height:admobView.frame.height)
26 admobView.adUnitID = AdMobID
27 admobView.delegate = self
28 admobView.rootViewController = self
29
30 let admobRequest:GADRequest = GADRequest()
31
32 if AdMobTest {
33 if SimulatorTest {
34 admobRequest.testDevices = [kGADSimulatorID]
35 }
36 else {
37 admobRequest.testDevices = [TEST_DEVICE_ID]
38 }
39
40 }
41
42 admobView.load(admobRequest)
43
44 self.view.addSubview(admobView)
45
46
47 }
48
49 override func didReceiveMemoryWarning() {
50 super.didReceiveMemoryWarning()
51 // Dispose of any resources that can be recreated.
52 }
53
54
55}
参考:
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 に接続。実機でビルドをする。すると、コンソールに以下のように表示される。
1<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