问题描述
我想在 SKScene 上显示 AdMob 横幅广告。现在,我在 GameViewController
中有以下代码,但 SKScene 中没有出现任何内容。我是否需要在 SKScene 的 didMove
方法中包含代码,或者我只是在我的 GameViewController
中遗漏了什么?
import UIKit
import SpriteKit
import GoogleMobileAds
class GameViewController: UIViewController {
var bannerView: GADBannerView!
override var prefeRSStatusBarHidden: Bool {
return true
}
override func viewDidLoad() {
if view.frame.height > 736 {
Screen.hasNotch = true
}
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
let scene = MenuScene(size: UIScreen.main.bounds.size)
// Set the scale mode to scale to fit the window
scene.scaleMode = .fill
// Present the scene
view.presentScene(scene)
view.ignoresSiblingOrder = true
view.showsFPS = false
view.showsNodeCount = false
}
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
addBannerViewToView(bannerView)
bannerView.adUnitID = AdMob.bannerid
bannerView.rootViewController = self
bannerView.load(GADRequest())
}
//MARK: - AdMob
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
bannerView.alpha = 0
UIView.animate(withDuration: 1,animations: {
bannerView.alpha = 1
})
}
func addBannerViewToView(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,attribute: .bottom,relatedBy: .equal,toItem: view.safeAreaLayoutGuide.bottomAnchor,attribute: .top,multiplier: 1,constant: 0),NSLayoutConstraint(item: bannerView,attribute: .centerX,toItem: view,constant: 0)
])
}
}
解决方法
这个问题已经解决。我没有在 Admob 帐户中输入帐单信息,因此尚未处理我的帐户验证。这导致广告没有出现。如果您遇到同样的问题,我建议:
- 将您的设备注册为测试设备
- 使用 test ad 检查您的代码
如果测试广告出现,请确保您已采取必要措施来验证您的帐户。尝试在 SKScene 上展示广告时,上述代码完美运行。