admobからインタースティシャル広告を表示するにはどうすればいいですか?これは、GameSceneにインタースティシャル広告を表示し、単純なif文で広告の表示回数を制限した方法です。他の場面でインタースティシャルを表示 - Admob、SpriteKit、Swift
2
A
答えて
2
これは、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の下部にある2つの関数を作成します
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型変数を作成します。あなたのDidMoveToViewで
var playCount = Int()
は言う:
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
}
最後のステップ。あなたが間質広告を表示したいシーンの底にこの2つの機能を追加します。
は今func displayAd() {
NSNotificationCenter.defaultCenter().postNotificationName("loadAndShow", object: nil)
}
func checkAd() {
if playCount % 4 == 0 {
displayAd()
}
}
}
ユーザーがリセットゲームのボタンを押すか、死ぬことを、すべての第四時間、インタースティシャル広告が表示されるはずです。私はこれが役立つことを願っています
EDIT:checkAd()関数を呼び出すことを忘れてしまいました。あなたのプレイヤーが死んでもどこでもこの機能を呼び出してください。 Bool変数が死亡またはゲームオーバーと呼ばれる場合は、同じ場所で呼び出します。たとえば...
if died == true {
checkAd()
}
0
import UIKit
import SpriteKit
import GoogleMobileAds
var playCount = Int()
class GameViewController: UIViewController, GADBannerViewDelegate {
@IBOutlet var banner: GADBannerView!
var myAd = GADInterstitial()
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.loadAndShow), name: "loadAndShow", object: nil)
let scene = MainScene(size: CGSize(width: 1536, height: 2048))
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = false
skView.showsNodeCount = false
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
banner.hidden = true
banner.delegate = self
banner.adUnitID = "ca-app-pub-8889875503423788/7902691359"
banner.rootViewController = self
banner.loadRequest(GADRequest())
}
func loadAndShow() {
myAd = GADInterstitial()
let request = GADRequest()
myAd.setAdUnitID("ca-app-pub-8889875503423788/7902691359")
myAd.delegate = self
myAd.loadRequest(request)
}
func interstitialDidReceiveAd(ad: GADInterstitial!) {
if (self.myAd.isReady) {
myAd.presentFromRootViewController(self)
}
}
func adViewDidReceiveAd(bannerView: GADBannerView!) {
banner.hidden = false
}
func adView(bannerView: GADBannerView!, didFailToReceiveAdWithError error: GADRequestError!) {
banner.hidden = true
}
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
関連する問題
- 1. Swift/XCode - disMissViewController中のAdMobインタースティシャル
- 2. Admobはセグメントの前にインタースティシャルを表示します - Swift
- 3. Admobインタースティシャル広告の表示を取得する
- 4. Admobインタースティシャル広告を表示する端末IDの取得
- 5. iOSゲームアプリケーションとSwiftでAdMobインタースティシャル広告を使用する
- 6. AdMobインタースティシャル未掲載
- 7. AdMob - インタースティシャル広告が実際のデバイスに表示されない
- 8. AdMobインタースティシャル広告は一度のみ表示されます
- 9. インタースティシャル広告にadmobプラグインが表示されない
- 10. admobインタースティシャル広告の問題?
- 11. コルドーバークリックでインタースティシャル広告を表示
- 12. ゲームがスプライトキットとiOSで終了したときにインタースティシャルのadmobを表示
- 13. Unityゲームでadmobインタースティシャル広告と報酬広告を表示するには
- 14. Swift Admobインタースティシャルエラー
- 15. AdMobインタースティシャル広告をViewPagerに配置する場所
- 16. SpriteKit&Swift Ball Speed
- 17. ボタンが押されるたびにAdmobインタースティシャルを表示する方法
- 18. AdMobインタースティシャル広告繰り返しのonResume
- 19. インタースティシャルDFP広告が画面に表示されない
- 20. (SWIFT +のSpriteKitベース)
- 21. SpriteKitのMKMapView - Swift
- 22. Swift Spritekit背景画像
- 23. SpriteKit Swiftでカメラを移動
- 24. PhonegapでAdmobインタースティシャルをプログラムで読み込み
- 25. AdMobバナー広告が表示されないSwift 3
- 26. Swift&Admob:表示する広告がありません
- 27. SpriteKit - Swiftの別のシーンのブール値を使用する
- 28. デバイスにインタースティシャル広告が表示されない理由
- 29. Swift + SpriteKit - 表示されていなくてもボタンをクリックできます
- 30. spritekit + swift、change scene doesnot good
行くそれはのUIViewControllerを言うあなたのクラスGameViewControllerまでとGADInterstitialDelegate –
を追加笑私はそれを宣言するのを忘れ信じてカント!こんにちはThankyou – Vic
あなたの投稿を編集して、これが質問にどのように答えられるかを説明できますか? StackOverflowでは、コードダンプは推奨されません。問題を解決する方法を人々に教えるわけではありません。彼らはコピー・ペースト・コーディングを推奨しています。ありがとう! –