我在TableView单元格中有一个Admob横幅。一切似乎都正常,但是当我尝试使func adViewDidReceiveAd(_ bannerView: GADBannerView!)正常工作时。到目前为止,这是我的代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Ad_Cell", for: indexPath) as! Native_Ad_TableViewCell

        cell.bannerView.adUnitID = "xx-xxx-xxx-xxxxxxxxxxxxxxxxx"
        cell.bannerView.rootViewController = self
        cell.bannerView.load(GADRequest())
        cell.bannerView.delegate = self

        return cell
}


在我的tableviewCell中:

class Native_Ad_TableViewCell: UITableViewCell, GADBannerViewDelegate {

    @IBOutlet weak var bannerView: GADBannerView!

    override func awakeFromNib() {
        super.awakeFromNib()
        bannerView.isHidden = true
    }

    func adViewDidReceiveAd(_ bannerView: GADBannerView!) {
        bannerView.isHidden = false
        print("Ad Loaded")
    }
}


即使我知道广告已加载,也不会随时调用func adViewDidReceiveAd(_ bannerView: GADBannerView!)。有人知道这个问题的解决方案吗?

最佳答案

如果未调用func adViewDidReceiveAd(_ bannerView: GADBannerView!),请检查GADBannerView框架的尺寸。您的帧不应等于.zero,我最近遇到了与您相同的问题。

如果您的bannerView有框架,请检查AdManager帐户中的尺寸。该尺寸应与bannerView的框架完全相同。

为了进行测试,您可以使用以下AdUnitId进行测试:ca-app-pub-3940256099942544/2934735716
More AdUnitId here

10-08 15:34