今天我注册了adMob,我开始在我的应用程序中处理adMob广告。第一个是游戏(带有viewcontrollers),我想在游戏结束后立即在屏幕上显示插页式广告,所以我想加载游戏结束后加载的间隙(此视图只有在游戏结束后才能访问,游戏持续一分钟,因此不应经常显示)
我在youtube和admob网站上看过很多教程,我有很多问题,比如: 即使我导入它也找不到admob框架, 当我构建时,我禁用了bitcode以避免链接器错误, 但我仍然无法在我的应用上,模拟器和真实设备上看到测试广告。
我导入了admob所需的所有框架,而在xcode中我在GoogleMobileAds框架附近有一个问号,这是什么意思? 关于admob的第一行是:
import GoogleMobileAds
在viewcontroller内部
var interstitial: GADInterstitial!
func createNloadAd () -> GADInterstitial
{
var ad = GADInterstitial(adUnitID: "XXX")
var request = GADRequest()
request.testDevices = [kGADSimulatorID]
ad!.loadRequest(request)
return ad
}
在viewdidload中
self.interstitial = self.createNloadAd()
if(self.interstitial!.isReady)
{
self.interstitial!.presentFromRootViewController(self)
self.interstitial! = self.createNloadAd()
}
在adUnitID中我尝试了在admob网站上创建的插页式广告的ID,以及在教程中找到的其他字符串,但都没有用
在testdevices中我在输出中看到消息后添加了我的iphone的UDID,但我看不到任何测试广告,而且我根本没有错误
我没有触及故事板,我是否必须在故事板中创建一些内容?
在将应用程序提交到appstore之前,我必须删除testdevices行吗?当然还有我真正的AdUnitID
也许代码是正确的,但如果应用程序未发布,则admob不会加载,或者我可能需要等待一天才能让我的admob id开始工作
我可以在哪里找到最近的admob ID进行测试? 所以我测试应用程序,如果有效,我改变了ID并提交
我正在使用Xcode 7.1,AdMob 7.5.2,我的应用程序部署目标是iOS7,我在带有iOS的模拟器和iOS7的旧iPhone4上进行了测试,这应该不是问题,因为admob甚至支持iOS6
关于admob指南的另一个问题,在其他应用程序中,我可以在视图中使用iAd,在另一个应用程序中使用Admob吗?我可以禁止这个吗?屏幕下方只有横幅广告
答案 0 :(得分:9)
即使我导入了AdMob框架
也找不到
删除框架并再次导入。确保您正在检查"如果需要复制项目"。另外,检查项目设置下的库搜索路径并构建阶段以查看框架是否包含。
我导入了AdMob所需的所有框架
这不是必需的。一旦包含import GoogleMobileAds
,AdMob框架将导入所需的框架。
我没有碰到故事板。我是否必须在故事板中创建一些内容?
没有
在将应用程序提交到App Store之前,我必须删除测试设备行并放入真正的AdUnitID吗?
是。立即尝试使用真实的AdUnitID来查看您的测试ID是否导致问题。
也许代码是正确的,但如果应用程序未发布,AdMob将无法加载,或者我可能需要等待一天才能开始使用我的AdMob ID
没有。该应用程序无需发布即可接收实时广告。
我可以在哪里找到最近的AdMob ID进行测试?所以我测试了应用程序,如果有效,我会更改ID并提交
无处。提供您的AdUnitID是不明智的。
关于AdMob指南的另一个问题,在其他应用中,我可以在视图中使用iAd,在其他应用中使用AdMob吗?我可以被禁止吗?仅在屏幕下方显示横幅广告
在您的应用中使用尽可能多的广告网络。没有什么可以说明你是不允许的。
听起来你正走在正确的轨道上。您应该设置并包含插页式广告的委托方法,以查看您是否收到任何错误消息。您还需要在.plist
中允许任意加载。检查AdMob's iOS 9 Considerations。
在尝试在createNloadAd()
中展示插页式广告之前,您是否在呼叫viewDidLoad
?下载广告需要时间。
确保AdMob提供的AdUnitID与您正在使用的AdUnit ID相同。
另外,将演示文稿从viewDidLoad
移至viewDidAppear
。
以下是我们AppDelegate.swift
中创建插页式广告然后在ViewController.swift
中展示插页式广告的示例:
<强> AppDelegate.swift 强>
import UIKit
import GoogleMobileAds // Import AdMob
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GADInterstitialDelegate { // Include delegate
var window: UIWindow?
var myInterstitial : GADInterstitial?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// App launched
// Load interstitial
myInterstitial = createAndLoadInterstitial()
return true
}
func createAndLoadInterstitial()->GADInterstitial {
let interstitial = GADInterstitial(adUnitID: "Your Ad Unit ID")
interstitial.delegate = self
interstitial?.loadRequest(GADRequest())
return interstitial
}
func interstitialDidReceiveAd(ad: GADInterstitial!) {
print("interstitialDidReceiveAd")
}
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
print(error.localizedDescription)
}
func interstitialDidDismissScreen(ad: GADInterstitial!) {
print("interstitialDidDismissScreen")
myInterstitial = createAndLoadInterstitial()
}
ViewController.swift (这将是您在视图控制器上的游戏)
import UIKit
class ViewController: UIViewController {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate // Create reference to our app delegate
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
appDelegate.myInterstitial?.presentFromRootViewController(self)
}