如何添加Admob插页式广告

时间:2016-05-08 13:40:48

标签: swift sprite-kit admob

我正在尝试在Swift SpriteKit游戏中添加插页式广告,我看到的大部分问题/灵魂都与横幅广告相关,而不是广告广告的插页式广告。

我所做的是将谷歌中的所有框架和示例代码添加到我的GamveViewController.swift

中,如此处所述Adding interstitial ads to your project
import UIKit
import GoogleMobileAds

class ViewController: UIViewController {

  var interstitial: GADInterstitial!

  override func viewDidLoad() {
super.viewDidLoad()
interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")

let request = GADRequest()
// Requests test ads on test devices.
request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"]
interstitial.loadRequest(request)
}
}

然后我想调用该函数在我的GameScene.swift中显示广告,这会导致错误,我不知道为什么

if (self.interstitialAd.isReady) {
                self.interstitialAd.presentFromRootViewController(self)

            }

我得到的错误代码是: 1.“使用未申报的类型”GADInerstittial“ 2.“GameScene没有成员插页式广告

似乎我需要连接我的GameViewController和游戏场景,但我不知道如何。有帮助的人吗?

1 个答案:

答案 0 :(得分:1)

你不能只在gameScene中展示广告,你需要一个viewController。

最简单的方法是将GameScene中的代码放入ViewController。

所以在ViewController中移动/或创建一个func,如此

func showInterAd() {
   /// code to present inter ad
}

您可以使用类似NSNotificationCenter的内容将消息从GameScene转发到ViewController。

仍在ViewController中,在viewDidLoad

中添加一个观察者
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(showInterAd), name: "ShowAd", object: nil)

当你想要在广告上发布通知时,比在你的GameScene中。

NSNotificationCenter.defaultCenter().postNotificationName("ShowAd", object: nil)

或者,如果你想要一个更干净,更可重用的解决方案,我在gitHub上有一个帮手

https://github.com/crashoverride777/Swift-iAds-AdMob-CustomAds-Helper