iAd插页式广告完全没有显示在iPhone模拟器上,并且也没有始终显示在我的iPhone上。我进入了“开发人员”设置,将填充率更改为100%,然后启用了“无限广告展示”。没什么…插页式广告通常会在第一个显示时间,然后几分钟到十五分钟都不会显示。不知道是什么造成时间差异。
此外,似乎还没有一种方法可以跟踪插页式广告是否显示/是否实际显示或不显示。我意识到有一个非页内广告代表,但似乎已不再使用。我称呼非页内广告的方式是使用viewController.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Automatic
谢谢!
因此看来using
requestInterstitialAdPresentation
仅打算在ADInterstitialPresentationPolicy
设置为时使用Automatic
。使用实施插页式广告时,您Manual
ADInterstitialPresentationPolicy
必须presentInView
按自己的时间间隔展示广告。以这种方式展示插页式广告时,它不会加载自己的关闭按钮来关闭自己。因此,我所做的是创建一个,UIView
以展示插页式广告,并使用插页式广告委托方法关闭UIView
。测试时仍然会出现与从iAd网络接收广告不一致的情况。有时您会收到一个广告,有时无法加载,这使我们可以请求一个新广告,有时则什么也没有发生。这似乎只是iAd插页式广告的本质。
import UIKit
import iAd // Import iAd
class ViewController: UIViewController, ADInterstitialAdDelegate { // Include the delegate
var iAdInterstitial = ADInterstitialAd() // Our ad
var iAdInterstitialView = UIView() // View to present our ad in
var adLoaded = false // Bool to keep track if an ad is loaded or not
override func viewDidLoad() {
super.viewDidLoad()
setupAd()
}
func setupAd() {
// Set presentation to manual so we can choose when to present the interstitial
// Setting this will also fetch an interstitial ad for us
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Manual
iAdInterstitial.delegate = self // Set the delegate
// Make our view the same size as the view we will be presenting in
iAdInterstitialView.frame = self.view.bounds
}
func requestNewAd() {
// This will fetch an ad for us
ViewController.prepareInterstitialAds()
println("Requesting new ad")
}
@IBAction func presentAdButton(sender: AnyObject) {
if (adLoaded) {
// We have an ad that is loaded so lets present it
self.view.addSubview(iAdInterstitialView)
iAdInterstitial.presentInView(iAdInterstitialView)
}
else {
// No ad has been loaded
println("Ad not loaded")
}
}
func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
// Kinda works as expected
// Sometimes is called prematurely
// Sometimes takes minutes after ad is dismissed to be called
println("interstitialAdDidUnload")
// Get new ad
adLoaded = false
iAdInterstitialView.removeFromSuperview()
requestNewAd()
}
func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
// Failed to load ad so lets try again
println("didFailWithError: \(error)")
requestNewAd()
}
func interstitialAdWillLoad(interstitialAd: ADInterstitialAd!) {
// There is an ad and it has begun to download
println("interstitialAdWillLoad")
}
func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
// We got an ad
println("interstitialAdDidLoad")
adLoaded = true
}
func interstitialAdActionShouldBegin(interstitialAd: ADInterstitialAd!, willLeaveApplication willLeave: Bool) -> Bool {
println("interstitialAdActionShouldBegin")
return true;
}
func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) {
// Done with this ad. Lets get a new one
println("interstitialAdActionDidFinish")
iAdInterstitialView.removeFromSuperview()
adLoaded = false
requestNewAd()
}
这是调试器在运行代码时输出的内容: 2018-11-07 22:12:42.806497-0600CoverMe[7740:78040]未能在(UITabBar)上设置(keyPath)用户定义的检查属性:[setValue: forUndecedKey:]:此类不符合密钥keyPath的键值编码。2018-11-07 22:12:42.901273-0600CoverMe[7740:78040]
我已经与Admob广告斗争了将近一周,我在互联网上搜索了所有可能的解决方案,但都没有奏效。我的Android应用程序不显示测试广告也不显示实时广告。这是日志: 我的测试间隙负载没有问题,带电的没有。横幅没有显示,测试的和带电的都没有显示。 这是我的xml AdView: 我在横幅上加了: 活动间隙是以这种方式加载的,它是有效的(测试一没有): 我尝试过的事情 > 使用 使用Firebase广告编译
我的代码看起来与原始代码一模一样(https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals?hl=en#play)我确信我正确导入了所有内容,向我的AndroidManifest添加了元数据、活动和权限。 当我在我的设备上启动应用程序时,logcat 会给我以下内容: 找不到此Google Play服务资源和加载广告失
我已经在我的手机上测试了广告功能。只显示测试广告。当我用我从AdMob得到的单位id替换时,真正的广告就不显示了。 问题出在哪里? 下面是我的代码: 对于我使用的xml 用于加载我使用的ad 在manifeast我有 ...。 但我的广告不加载在android设备上。测试广告运作良好。所有这些操作我都用了一个真实的装置。有什么需要帮忙的吗?
我的广告不显示。 我正在开发一个需要广告的应用程序。目前正在进行测试,我在Google Play console的内部测试轨道上对该应用程序进行封闭测试。因此,我无法将其链接到Admob中Play store中的应用程序。 所以,为了测试它们,我一直是示例测试广告单元,特别是间隙广告和奖励视频广告。它们加载良好。 今天,我决定切换到生产广告,因为我想发布该应用程序。所以,我为奖励和互动创建了新的广
这是我的 .Gradle文件 这是主要活动