admob의 삽입 광고는 사용자가 사망하거나 매 x 번 사용자가 버튼을 누를 때마다 표시하는 방법은 무엇입니까? 이것이 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의 하단에 두 가지 기능을 만듭니다
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으로 이동하여 버튼이 눌려 졌을 때 버튼에 액션을 추가하는 위치를 찾으십시오. 예를 들어, 재설정 게임 버튼은 장면을 재설정합니다. 거기에 이것을 추가하고 다음과 같이 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() 기능을 호출하는 것을 잊어 버렸습니다. 플레이어가 사망 할 때마다이 기능을 호출하십시오. 따라서 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
}
}
GADInterstitialDelegate –
을가있는 UIViewController를 말한다 어디 클래스 GameViewController까지 가서 추가 롤 나는 것을 선언하는 것을 잊었다 생각하지 못할! 하하 Thankyou – Vic
게시물이 어떻게이 질문에 대한 답을 설명하는지 편집 할 수 있습니까? StackOverflow에서는 코드 덤프가 권장되지 않습니다. 이들은 사람들에게 문제 해결 방법을 가르치지 않기 때문에별로 도움이되지 않습니다. 그들은 단지 복사 - 붙여 넣기 코딩을 권장합니다. 감사! –