我想添加和广告横幅,我使用谷歌框架
pod 'Google-Mobile-Ads-SDK'
在我的pod文件中
我在uiViewController中添加了一个视图> GoogleBannerView
这是我的代码
导入GoogleMobileAds
在viewdidLoad中:
GoogleBannerView.adUnitID = "ca-app-pub-5462393278951241/1172515484"
GoogleBannerView.delegate = self
GoogleBannerView.rootViewController = self
GoogleBannerView.load(GADRequest())
但它没有在视图中显示任何内容,并在控制台中给我一条消息:
要在此设备上投放测试广告,请致电:request.testDevices = @ [kGADSimulatorID];
任何帮助表示赞赏! 感谢..
答案 0 :(得分:1)
我会显示一个页脚(320x50)广告,如果有一个广告将从底部出现,如果停止投放则会轻松退出。这是一个繁重的实现,如果您不想隐藏/显示空间,可以简化。
我的UIViewController有一个带有约束的硬编码视图(320宽度,50高度,居中水平,固定到安全区域的底部。我链接以下内容:
请注意,在代码示例中,我使用了您的adUnitID。我们使用DFP时,我们的ID看起来有所不同。
import GoogleMobileAds
class SomeClass: UIViewController
{
@IBOutlet weak var bannerView: DFPBannerView!
@IBOutlet weak var bannerViewHeightConstraint: NSLayoutConstraint!
override func viewDidLoad()
{
super.viewDidLoad()
bannerView.delegate = self
bannerView.adUnitID = "ca-app-pub-5462393278951241/1172515484"
bannerView.rootViewController = self
bannerView.validAdSizes = [ NSValueFromGADAdSize(kGADAdSizeBanner) ]
bannerView.translatesAutoresizingMaskIntoConstraints = false
}
override func viewWillAppear(_ animated: Bool)
{
super.viewWillAppear(animated)
bannerView.frame.origin.y += bannerView.frame.size.height
bannerView.isHidden = true
let request = GADRequest()
//***** NOTE : per Google Documentation (https://developers.google.com/mobile-ads-sdk/docs/dfp/ios/test-ads)
// "iOS simulators are automatically configured as test devices."
// request.testDevices = [ kGADSimulatorID ] //***** This was requried in previous versions, now on automatically done, don't think you can disable it.
bannerView.load(request)
}
}
extension SomeClass : GADBannerViewDelegate
{
/// Tells the delegate an ad request loaded an ad.
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("*** adViewDidReceiveAd for 'Banner' at \(Date())")
if bannerView == self.bannerView
{
if bannerView.isHidden
{
bannerView.frame.origin.y += bannerView.frame.size.height
bannerViewHeightConstraint.constant = 0
bannerView.isHidden = false
UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
bannerView.frame.origin.y -= bannerView.frame.size.height
self.bannerViewHeightConstraint.constant = 50
}, completion: nil )
}
}
}
/// Tells the delegate an ad request failed.
func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) {
print("*** adView:didFailToReceiveAdWithError: \(error.localizedDescription) for 'Banner'")
if bannerView == self.bannerView
{
print("Hidden: \(bannerView.isHidden)")
if !bannerView.isHidden
{
UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
bannerView.frame.origin.y += bannerView.frame.size.height
self.bannerViewHeightConstraint.constant = 0
}, completion: {finished in
if finished
{
bannerView.isHidden = true
}
})
}
}
}
/// Tells the delegate that a full screen view will be presented in response
/// to the user clicking on an ad.
func adViewWillPresentScreen(_ bannerView: GADBannerView) {
print("*** adViewWillPresentScreen for 'Banner'")
}
/// Tells the delegate that the full screen view will be dismissed.
func adViewWillDismissScreen(_ bannerView: GADBannerView) {
print("*** adViewWillDismissScreen for 'Banner'")
}
/// Tells the delegate that the full screen view has been dismissed.
func adViewDidDismissScreen(_ bannerView: GADBannerView) {
print("*** adViewDidDismissScreen for 'Banner'")
}
/// Tells the delegate that a user click will open another app (such as
/// the App Store), backgrounding the current app.
func adViewWillLeaveApplication(_ bannerView: GADBannerView) {
print("*** adViewWillLeaveApplication for 'Banner'")
}
}