为什么我的 AdMob 插页式广告在 Xcode 模拟器中运行良好,但在我的测试设备上却不行?
Why is my AdMob interstitial working fine in Xcode Simulator but not on my test devices?
所以我有这个应用程序,它有一个 admob 横幅广告和一个插页式广告。横幅 运行 在所有屏幕上都很好。
插页式广告只应在一个屏幕上加载 - 当我在 Xcode 模拟器中测试它时它加载正常。但是,当我在我的 iPhone 4S 和 iPod Touch 5th Gen 上进行测试时,插页式广告无法加载,并且出现以下错误:
<Google> Request Error: Received invalid response.
interstitialDidFailToReceiveAdWithError:
Request Error: Received invalid response.
有没有人运行以前参与过这个或者可能知道为什么会这样?
这是我正在使用的代码:
// interstitial ad variable...
var interstitial: GADInterstitial?
var timer:NSTimer?
var loadRequestAllowed = true
let screen = UIScreen.mainScreen().bounds
let IS_IPAD = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad
var buttonHeight:CGFloat = 0.0
var buttonOffsetY:CGFloat = 0.0
let statusbarHeight:CGFloat = 20.0
var iAdSupported = false
// load the interstitial
//Admob Interstitial
buttonHeight = IS_IPAD ? 30 : 20
buttonOffsetY = statusbarHeight
if !iAdSupported {
interstitial = createAndLoadInterstitial()
} // closes if !iAdSupported
// presentInterstitial()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target:self, selector: Selector("presentInterstitial"), userInfo: nil, repeats: false)
println("the timer made presentInterstitial run")
//Interstitial func
func createAndLoadInterstitial()->GADInterstitial {
println("createAndLoadInterstitial")
var interstitial = GADInterstitial(adUnitID: "ca-app-pub-4471013071748494/2225255714")
interstitial.delegate = self
interstitial.loadRequest(GADRequest())
return interstitial
} // closes createAndLoadInterstitial …
func presentInterstitial() {
if let isReady = interstitial?.isReady {
interstitial?.presentFromRootViewController(self)
println("presentInterstitial function ran")
} // closes if let isReady
} // closes presentInterstitial …
//Interstitial delegate
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
println("interstitialDidFailToReceiveAdWithError:\(error.localizedDescription)")
// ResultsBtn?.enabled = false
interstitial = createAndLoadInterstitial()
} // closes interstitial …
您正试图在插页式广告有机会加载之前展示它。你的 timer
一秒钟后触发 func presentInterstitial
。将其更改为更大的数字以提供加载间隙时间。
import UIKit
import GoogleMobileAds
class ViewController: UIViewController, GADInterstitialDelegate {
var admobInterstitial : GADInterstitial?
var timer : NSTimer?
override func viewDidLoad() {
super.viewDidLoad()
admobInterstitial = createAndLoadInterstitial()
timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target:self, selector: Selector("presentInterstitial"), userInfo: nil, repeats: false)
}
func createAndLoadInterstitial()->GADInterstitial {
var interstitial = GADInterstitial(adUnitID: "yourAdMobADUnitID")
interstitial.delegate = self
interstitial.loadRequest(GADRequest())
return interstitial
}
func presentInterstitial() {
if let isReady = admobInterstitial?.isReady {
admobInterstitial?.presentFromRootViewController(self)
}
}
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
println("interstitialDidFailToReceiveAdWithError:\(error.localizedDescription)")
admobInterstitial = createAndLoadInterstitial()
}
所以我有这个应用程序,它有一个 admob 横幅广告和一个插页式广告。横幅 运行 在所有屏幕上都很好。
插页式广告只应在一个屏幕上加载 - 当我在 Xcode 模拟器中测试它时它加载正常。但是,当我在我的 iPhone 4S 和 iPod Touch 5th Gen 上进行测试时,插页式广告无法加载,并且出现以下错误:
<Google> Request Error: Received invalid response.
interstitialDidFailToReceiveAdWithError:
Request Error: Received invalid response.
有没有人运行以前参与过这个或者可能知道为什么会这样?
这是我正在使用的代码:
// interstitial ad variable...
var interstitial: GADInterstitial?
var timer:NSTimer?
var loadRequestAllowed = true
let screen = UIScreen.mainScreen().bounds
let IS_IPAD = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad
var buttonHeight:CGFloat = 0.0
var buttonOffsetY:CGFloat = 0.0
let statusbarHeight:CGFloat = 20.0
var iAdSupported = false
// load the interstitial
//Admob Interstitial
buttonHeight = IS_IPAD ? 30 : 20
buttonOffsetY = statusbarHeight
if !iAdSupported {
interstitial = createAndLoadInterstitial()
} // closes if !iAdSupported
// presentInterstitial()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target:self, selector: Selector("presentInterstitial"), userInfo: nil, repeats: false)
println("the timer made presentInterstitial run")
//Interstitial func
func createAndLoadInterstitial()->GADInterstitial {
println("createAndLoadInterstitial")
var interstitial = GADInterstitial(adUnitID: "ca-app-pub-4471013071748494/2225255714")
interstitial.delegate = self
interstitial.loadRequest(GADRequest())
return interstitial
} // closes createAndLoadInterstitial …
func presentInterstitial() {
if let isReady = interstitial?.isReady {
interstitial?.presentFromRootViewController(self)
println("presentInterstitial function ran")
} // closes if let isReady
} // closes presentInterstitial …
//Interstitial delegate
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
println("interstitialDidFailToReceiveAdWithError:\(error.localizedDescription)")
// ResultsBtn?.enabled = false
interstitial = createAndLoadInterstitial()
} // closes interstitial …
您正试图在插页式广告有机会加载之前展示它。你的 timer
一秒钟后触发 func presentInterstitial
。将其更改为更大的数字以提供加载间隙时间。
import UIKit
import GoogleMobileAds
class ViewController: UIViewController, GADInterstitialDelegate {
var admobInterstitial : GADInterstitial?
var timer : NSTimer?
override func viewDidLoad() {
super.viewDidLoad()
admobInterstitial = createAndLoadInterstitial()
timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target:self, selector: Selector("presentInterstitial"), userInfo: nil, repeats: false)
}
func createAndLoadInterstitial()->GADInterstitial {
var interstitial = GADInterstitial(adUnitID: "yourAdMobADUnitID")
interstitial.delegate = self
interstitial.loadRequest(GADRequest())
return interstitial
}
func presentInterstitial() {
if let isReady = admobInterstitial?.isReady {
admobInterstitial?.presentFromRootViewController(self)
}
}
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
println("interstitialDidFailToReceiveAdWithError:\(error.localizedDescription)")
admobInterstitial = createAndLoadInterstitial()
}