【问题标题】:Not able to add Google native ads in my iOS swift app无法在我的 iOS swift 应用中添加 Google 原生广告
【发布时间】:2019-04-25 06:09:03
【问题描述】:

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

【问题讨论】:

标签: ios swift admob native


【解决方案1】:

以下是我在添加 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. 最后,在viewDidLoad 中加载 Google Admob
override func viewDidLoad() {
    super.viewDidLoad()

    googleAdMobBanner.loadAdMob()
}

【讨论】:

  • 感谢您的回答!!但这适用于横幅广告。您是否在表格视图行之间显示这些广告?我正在寻找在表格视图行之间显示的原生广告..
  • @AadharMathur 我上面展示的示例将在表格视图的顶部无缝显示广告
猜你喜欢
  • 2022-09-30
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
相关资源
最近更新 更多