• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - AdMob 横幅广告未显示 Swift 3

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:31:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在开发一款 SpriteKit 游戏,并正在通过 AdMob (Google Firebase) 实现横幅广告。我已经按照 Google 的教程 herehere在设置您的第一个广告请求时,但是当我在 sim 卡或我的设备 (iPhone 6s) 上运行该应用程序时,横幅不显示。根据教程,我通过 Storyboard 实现了横幅 View ,其余部分以编程方式设置。下面是我的 View Controller 的代码。

问:为什么我的横幅没有显示?

跟进问:是否可以只在某些SKScene上显示banner?

import UIKit
import SpriteKit
import GoogleMobileAds

class GameViewController: UIViewController, GADBannerViewDelegate {

    @IBOutlet weak var bannerView: GADBannerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        print("Google Mobile Ads SDK version: " + GADRequest.sdkVersion())
        bannerView.delegate = self
        bannerView.adUnitID = "ca-app-pub-9474695450721030/1823667708"
        bannerView.rootViewController = self
        let req = GADRequest()
        req.testDevices = ["91fbd46dff1179ce0a5e7226cea1ee0b", kGADSimulatorID]
        req.tag(forChildDirectedTreatment: true)
        bannerView.load(GADRequest())
        view.addSubview(bannerView)
        showBanner()
    }

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        if let skView = self.view as? SKView {
            if skView.scene == nil {

                let aspectRatio = view.bounds.size.height / view.bounds.size.width
                let scene = MenuScene(size: CGSize(width: 750, height: 750 * aspectRatio))

                scene.scaleMode = .aspectFill
                skView.ignoresSiblingOrder = true

                if kDebug {
                    skView.showsFPS = true
                    skView.showsDrawCount = true
                    skView.showsNodeCount = true
                    skView.showsPhysics = true
                }

                let transition = SKTransition.fade(with: SKColor.black, duration: 0.5)

                skView.presentScene(scene, transition: transition)
            }
        }
    }

    func showBanner() {
        bannerView.isHidden = false
        let request = GADRequest()
        request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"]
        bannerView.load(request)
    }

    func hideBanner() {
        bannerView.isHidden = true
    }
}



Best Answer-推荐答案


首先,您不需要在每次运行 showAd() 时都请求新的横幅。简单地取消隐藏它。您在启动时加载的广告将在整个生命周期内保留,并自动刷新。

其次,在您的 viewDidLoad 代码中,您正在初始化一个横幅广告,然后加载一个全新的广告。确保您加载的请求与您设置的请求相同。

至于从 SKScene 调用 GameViewController 内的函数,请看:Call GameViewController function from SKScene

关于ios - AdMob 横幅广告未显示 Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982302/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap