ios - 在其他场景中显示插页式广告 - Admob、SpriteKit、Swift

标签 ios swift sprite-kit admob interstitial

如何在用户每 x 次死亡或每 x 次用户执行诸如按下按钮之类的操作时显示来自 admob 的插页式广告?这就是我在 GameScene 上展示插页式广告并通过简单的 if 语句限制广告展示次数的方式。

最佳答案

仅当您拥有 GoogleMobileAds.sdk 并将 googlemobileads 模块导入您的 GameViewController、GameScene 或 GameOverScene 时,此功能才有效。

我将向您展示跨场景广告实现以及以编程方式限制广告展示次数。

首先,在您的 GameViewController 中:

import GoogleMobileAds


class GameViewController: UIViewController, GADInterstitialDelegate {



var myAd = GADInterstitial()


override func viewDidLoad() {
    super.viewDidLoad()


    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.loadAndShow), name: "loadAndShow", object: nil)

}

在 GameViewController 底部创建两个函数:

func loadAndShow() {



    myAd = GADInterstitial()
    let request = GADRequest()
    myAd.setAdUnitID("ca-app-pub-3940256099942544/4411468910")
    myAd.delegate = self
    myAd.loadRequest(request)



}

func interstitialDidReceiveAd(ad: GADInterstitial!) {

    if (self.myAd.isReady) {

        myAd.presentFromRootViewController(self)



    }



}

您已经完成了 GameViewController 的操作。现在前往 GameOverScene 或 GameScene,无论您需要什么。

创建全局 int 变量:

var playCount = Int()

在你的 DidMoveToView 中说:

playCount = 1

这部分有点令人困惑,有点,不是真的。转到您的 TouchesBegan 并找到在按下按钮时向按钮添加操作的位置。例如,resetGame 按钮会重置场景。在那里添加它并增加 playButton Int,如下所示:

  override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

    for touch in touches{



        let location = touch.locationInNode(self)
        if resetGame.containsPoint(location) {
            restartScene()

            playCount += 1


        }

最后一步。将这两个函数添加到您要显示插页式广告的场景底部:

func displayAd() {



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


}

func checkAd() {


    if playCount % 4 == 0 {

        displayAd()

    }

}

}

现在,用户每四次按下重置游戏按钮或死亡,就会显示一个插页式广告。我希望这会有所帮助。

编辑:我忘了告诉你调用 checkAd() 函数。当你的玩家死亡时,调用这个函数。因此,如果您有一个名为 dead 或 gameover 的 Bool 变量,请在同一位置调用它。例如..

if died == true {
  checkAd()
}

关于ios - 在其他场景中显示插页式广告 - Admob、SpriteKit、Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690427/

相关文章:

ios - iOS 上的 Material Design Lite 和 dialog-polyfill 模态对话框

ios - Xcode 6 - 用于通用图像支持的 xcassets

ios - SwiftUI Firebase - 在 Firebase 中加减整数

ios - SpriteKit——SKTexture PreloadTextures EXC_BAD_ACCESS 崩溃

ios - 带有 SpriteKit 的 UITableView

ios - 更改扩展名后,base64 字符串未打开视频文件

ios - 为 Facebook 应用程序构建模拟器

ios - 让 UIImageView 上升然后下降 Swift

ios - 从搜索 Controller 导航后缺少导航栏

swift - 可选类型 'SKSpriteNode?' 的值未展开;你的意思是使用!或者?