0

我刚刚在 IOS 应用程序中集成了横幅广告。我使用了一个名为“adContainerView”的容器视图,当广告准备就绪时,我将 GADBannerView 实例添加到 adContainerView。

加载横幅广告的代码片段是

var bannerView = GADBannerView(adSize: kGADAdSizeBanner)

func createAndLoadBannerAd() {
        bannerView.adUnitID = "ca-app-pub-xxxxxxxxxxxx"
        bannerView.rootViewController = self
        bannerView.delegate = self
        bannerView.load(GADRequest())
    }

当广告在下面加载时,事件被调用,我将 adContainerView 视图的高度和宽度设置为广告尺寸。

func adViewDidReceiveAd(_ bannerView: GADBannerView) {
        adViewHeightConstraint.constant = bannerView.adSize.size.height
        adViewWidthConstraint.constant = bannerView.adSize.size.width
        
         bannerView.translatesAutoresizingMaskIntoConstraints = false
         adContainerView.addSubview(bannerView)
         NSLayoutConstraint.activate([
             bannerView.leadingAnchor.constraint(equalTo: adContainerView.leadingAnchor),
             bannerView.trailingAnchor.constraint(equalTo: adContainerView.trailingAnchor),
             bannerView.topAnchor.constraint(equalTo: adContainerView.topAnchor),
             bannerView.bottomAnchor.constraint(equalTo: adContainerView.bottomAnchor)
         ])
    }

但是,广告有时会奇怪地出现。它有时如下所示,这是我所期待的预期的广告外观

当我来回访问同一页面时,它随机显示如下。e没想到会这样

我想了解为什么我会在广告视图的顶部和底部看到黑条。adContainerView 采用 GDBannerView 的确切大小,它是 adContainerView 的子级。因此,从技术上讲,它不应该在广告的顶部和底部显示暗条。

为什么会发生这种情况的任何指示。

4

1 回答 1

0

BannerView 可以直接添加到主视图中,而不是添加另一个 adContainerView 以适应bannerView的大小

并且最好在bannerView.load(GADRequest())之前在func createAndLoadBannerAd()中添加任何约束

var bannerView = GADBannerView(adSize: kGADAdSizeBanner)

func createAndLoadBannerAd() {
    bannerView.adUnitID = "ca-app-pub-xxxxxxxxxxxx"
    bannerView.rootViewController = self
    bannerView.delegate = self
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    mainView.addSubview(bannerView)
    bannerView.bottomAnchor.constraint(equalTo: mainView.bottomAnchor).isActive = true
    bannerView.centerXAnchor.constraint(equalTo: mainView.centerXAnchor).isActive = true
    bannerView.load(GADRequest())
}

上面的代码会将bannerView放在mainView的底部。

编辑:我使用了 320x100 大横幅 kGADAdSizeLargeBanner 并按上述方式实施,我的广告图片也具有相同的尺寸,到目前为止我在实时版本中没有遇到任何此类问题。在测试模式下,我也不记得遇到过这样的问题。

于 2020-07-27T22:03:20.660 回答