如何在 SpriteKit 中的 SKScene 上显示 AdMob 横幅广告?
Posted
技术标签:
【中文标题】如何在 SpriteKit 中的 SKScene 上显示 AdMob 横幅广告?【英文标题】:How to display AdMob Banner Ad on SKScene in SpriteKit? 【发布时间】:2021-04-07 14:20:44 【问题描述】:我想在 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,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
【问题讨论】:
ViewController 的视图被SKView
使用。所以你的视图控制器肯定不会以这种方式显示广告。
【参考方案1】:
这个问题已经解决了。我没有在我的 Admob 帐户中输入我的帐单信息,因此我的帐户验证尚未处理。这导致广告没有出现。如果您遇到同样的问题,我建议:
-
将您的设备注册为测试设备
使用test ad 检查您的代码
如果出现测试广告,请确保您已采取必要措施来验证您的帐户。上面的代码在尝试在 SKScene 上展示广告时完美运行。
【讨论】:
以上是关于如何在 SpriteKit 中的 SKScene 上显示 AdMob 横幅广告?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Swift SpriteKit 中的另一个 SKScene 访问变量
如何在 SpriteKit SKScene 类中启动 ReplayKit 屏幕录制
如果使用编辑器中的场景加载,如何在 SpriteKit 中检测触摸