无法在我的iOS swift应用中添加Google原生广告

时间:2019-04-25 06:09:03

标签: ios swift admob native

我有一个使用快速语言的iOS应用。我已经在我的应用中添加了Google AdMob广告。我已经实施了横幅广告和插页式广告,但是无法为原生广告生成广告ID。我找到了一个Ad Sense自定义搜索原生广告,但是我不知道这些广告用于什么目的。我可以在移动应用中使用AdSense原生广告吗?请建议我该怎么做以及如何进步?

1 个答案:

答案 0 :(得分:0)

以下是我在添加Google Admob广告时始终遵循的步骤。请注意,以下示例将在表格视图中实现Google Admob。

  1. 通过pod pod 'Google-Mobile-Ads-SDK'安装Google Admob广告
  2. AppDelegate > didFinishLaunchingWithOptions中,设置/配置Google Admob GADMobileAds.configure(withApplicationID: Constant.googleAdmobAppID)

  3. 接下来,为Google Admob Banner创建一个类。

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)
    }

}
  1. 在所需的类中声明一个延迟加载的admob标语。
class MyController: UITableViewController {

    lazy var googleAdMobBanner: GoogleAdMobBanner = {
        return GoogleAdMobBanner(sourceTableViewController: self)
    }()

}
  1. 最后,将Google Admob加载到viewDidLoad
override func viewDidLoad() {
    super.viewDidLoad()

    googleAdMobBanner.loadAdMob()
}