You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AdMob原生广告加载成功但GADNativeAdView不显示内容如何解决

修复方案
  • 检查xib属性连线
    这是该场景下最高发的问题:你仅设置了xib子视图的自定义类,但未将GADNativeAdView暴露的官方属性与xib中的子视图做关联。请打开xib文件,选中根层级的GADNativeAdView,在连线检查器中确认headlineView、mediaView、bodyView、callToActionView、iconView、starRatingView、storeView、priceView、advertiserView所有属性都正确连线到对应的子视图,未连线的属性即使赋值也不会渲染内容。
  • 检查布局可见性
    1. 打断点打印nativeAdView的frame属性,确认其位置在屏幕可视区域内,重点检查collectionView4的bottom约束是否生效,若collectionView4本身未正确布局,会导致nativeAdView被推出屏幕外。
    2. 检查nativeAdView、containerView的hidden属性是否被意外设为true、alpha是否为0,以及是否有其他同级视图遮盖了广告视图。
  • 检查xib子视图约束
    确认xib内所有子视图(标题、媒体视图、按钮等)都添加了完整的宽高/位置约束,避免因自适应布局导致子视图尺寸为0不可见。
  • 代码优化建议
    每次加载到新广告时先移除旧的nativeAdView,避免多视图重叠导致内容被遮盖:
    var nativeAdView: GADNativeAdView! {
        willSet {
            nativeAdView?.removeFromSuperview()
        }
        didSet {
            nativeAdView.translatesAutoresizingMaskIntoConstraints = false
            containerView.addSubview(nativeAdView)
            
            nativeAdView.leftAnchor.constraint(equalTo: collectionView4.leftAnchor).isActive = true
            nativeAdView.rightAnchor.constraint(equalTo: collectionView4.rightAnchor).isActive = true
            nativeAdView.topAnchor.constraint(equalTo: collectionView4.bottomAnchor, constant: 10).isActive = true
            nativeAdView.heightAnchor.constraint(equalToConstant: 310).isActive = true
        }
    }
    
    所有UI操作强制放在主队列执行,避免极端情况下回调在非主线程执行导致UI不生效:
    func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
        DispatchQueue.main.async {
            // 原有广告赋值、布局逻辑全部放在这个闭包内
        }
    }
    

内容的提问来源于stack exchange,提问作者Didami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:06:03