我正在尝试在Swift SpriteKit游戏中添加插页式广告,我看到的大部分问题/灵魂都与横幅广告相关,而不是广告广告的插页式广告。
我所做的是将谷歌中的所有框架和示例代码添加到我的GamveViewController.swift
中,如此处所述Adding interstitial ads to your projectimport 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和游戏场景,但我不知道如何。有帮助的人吗?
答案 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