Swift: AdMobで広告配信 - Fuwafuwa's memorandum

Fuwafuwa's memorandum

Data analysis, development, reading, daily feeling.
MENU

Swift: AdMobで広告配信

AdMob登録。
管理画面、収益化タブからアプリを選択し、バナーの種類などを登録、高校ユニットIDを取得。
この広告ユニットIDを下述コード内のAdMobIDとする。

新しい AdMob 管理画面では
広告ユニット ID は ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN の形式になる。
pub-XXXXXXXXXXXXXXXX の形式を使用していると下記のエラーが。
「Invalid unknown request error: Cannot determine request type. Is your ad unit id correct?」

下記ページより最新版をダウンロード。
https://firebase.google.com/docs/admob/ios/download?hl=ja
GoogleMobileAds.frameworkをプロジェクトファイルに入れる。

x-code画面のプロジェクト名→TARGETS→プロジェクト名→Build Phases
Link Binary With Librariesに下記のフレームワークを追加する。

CoreMedia.framework
AdSupport.framework
GoogleMobileAds.framework(上記で手動でプロジェクトに追加したフレームワーク)
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
EventKit.framework
EventKitUI.framework
MessageUI.framework
StoreKit.framework
SystemConfiguration.framework
CoreTelephony.framework
MediaPlayer.framework

ViewControllerに下記を記載。
AdMobTestとSimulaterTestはテスト時にはtrue。
アプリをストアに配信する際にはfalseに書き換える。

import UIKit
import SpriteKit
import GoogleMobileAds

class GameViewController: UIViewController, GADBannerViewDelegate {

    let AdMobID = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXX"
    let TEST_DEVICE_ID = "XXXXXXXXXXXXXXXXXXXXXX"
    let AdMobTest:Bool = false
    let SimulaterTest:Bool = false
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if let scene = TitleScene(fileNamed:"GameScene") {
            let skView = self.view as! SKView
            skView.ignoresSiblingOrder = true
            scene.scaleMode = .AspectFill
            scene.size = skView.frame.size
            skView.presentScene(scene)
            self.banner_ads()
        }
    }
    
    func banner_ads(){
        var admobView: GADBannerView = GADBannerView()
        admobView = GADBannerView(adSize:kGADAdSizeBanner)
        admobView.frame.origin = CGPointMake(0, self.view.frame.size.height - admobView.frame.height)
        admobView.frame.size = CGSizeMake(self.view.frame.width, admobView.frame.height)
        admobView.adUnitID = AdMobID
        admobView.delegate = self
        admobView.rootViewController = self
        
        let admobRequest:GADRequest = GADRequest()
        
        if AdMobTest {
            if SimulaterTest {
                admobRequest.testDevices = [kGADSimulatorID]
            }
            else {
                admobRequest.testDevices = [TEST_DEVICE_ID]
            }
        }
        admobView.loadRequest(admobRequest)
        self.view.addSubview(admobView)
    }
}

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。