Ниже приведены шаги, которые я всегда выполняю при добавлении объявлений Google Admob.Обратите внимание, что в приведенном ниже примере Google Admob будет реализован в виде таблицы.
- Установите Google Admob Ads через pod
pod 'Google-Mobile-Ads-SDK'
In AppDelegate > didFinishLaunchingWithOptions
, setup /настроить Google Admob GADMobileAds.configure(withApplicationID: Constant.googleAdmobAppID)
Далее создайте класс для баннера Google Admob.
import Foundation
import GoogleMobileAds
class GoogleAdMobBanner: NSObject, GADBannerViewDelegate {
unowned var sourceTableViewController: UITableViewController
var adBannerView: GADBannerView
init(sourceTableViewController: UITableViewController) {
self.sourceTableViewController = sourceTableViewController
adBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
super.init()
adBannerView.adUnitID = Constant.googleAdmobBannerID
adBannerView.delegate = self
adBannerView.rootViewController = sourceTableViewController
}
// MARK:- Google Admob
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("Banner loaded successfully")
// Reposition the banner ad to create a slide up effect
let translateTransform = CGAffineTransform(translationX: 0, y: -bannerView.bounds.size.height)
bannerView.transform = translateTransform
UIView.animate(withDuration: 0.5) {
bannerView.transform = CGAffineTransform.identity
self.sourceTableViewController.tableView.tableHeaderView = bannerView
}
}
func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) {
print("Fail to receive ads")
print(error)
}
func loadAdMob() {
let request = GADRequest()
request.testDevices = [kGADSimulatorID]
adBannerView.load(request)
}
}
Объявите ленивый загруженный баннер admob в желаемом классе.
class MyController: UITableViewController {
lazy var googleAdMobBanner: GoogleAdMobBanner = {
return GoogleAdMobBanner(sourceTableViewController: self)
}()
}
Наконец, загрузите Google Admob в
viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
googleAdMobBanner.loadAdMob()
}