You need to enable JavaScript to run this app. Swift开发中如何正确修改Google AdMob原生广告的背景颜色
优惠活动
大模型
产品
解决方案
定价
更多

Swift开发中如何正确修改Google AdMob原生广告的背景颜色

AdMob 原生模板广告自定义背景色不生效问题

现存问题描述

  • 接入Google AdMob原生广告时,因原生模板自定义配置门槛较低选择了该形式,但始终没有找到可生效的广告本体背景色修改方案,查阅各类资料、尝试多轮调整操作均未解决问题。
  • 当前应用已切换至深色模式,最终调整目标为广告背景色与应用视图背景色完全统一。
  • 实际运行效果参考:模拟器广告运行效果截图

当前使用的广告样式配置代码

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd) {
    templateView?.nativeAd = nativeAd
    let styles : [GADTNativeTemplateStyleKey: NSObject] = [
        .mainBackgroundColor: UIColor.red,
        .primaryFontColor: UIColor(named: "Primary Text")!,
        .secondaryFontColor: UIColor(named: "Secondary Text")!,
        .tertiaryFontColor: UIColor(named: "Secondary Text")!,
        .primaryFont: UIFont.rounded(ofSize: 17, weight: .semibold),
        .secondaryFont: UIFont.rounded(ofSize: 15, weight: .medium),
        .tertiaryFont: UIFont.rounded(ofSize: 15, weight: .medium),
        .callToActionBackgroundColor: UIColor(.accentColor),
        .cornerRadius: NSNumber(floatLiteral: 10.0)
    ]
    templateView?.styles = styles
    templateView?.layer.borderColor = UIColor.clear.cgColor
}

配置失效原因与修正操作

  • 代码中设置的.mainBackgroundColor是官方支持的全局模板有效配置,未生效的核心原因是GADNativeTemplateView默认开启isOpaque属性,内部广告容器视图会自带一层默认不透明底色,直接遮挡根视图的自定义背景色,表现为无论将mainBackgroundColor设为红色还是其他色值,广告本体始终显示默认底色。
  • 修正1:设置完模板样式后,补充关闭模板视图的不透明属性:
    templateView?.isOpaque = false
  • 修正2:替换硬编码的.mainBackgroundColor配置,传入和应用背景完全一致的动态适配色值,自动匹配深浅色模式的显示效果,示例配置:
    .mainBackgroundColor: UIColor { $0.userInterfaceStyle == .dark ? UIColor(named: "App Dark Background")! : UIColor(named: "App Light Background")! } as NSObject
  • 修正3:完成以上配置后若仍存在残留默认底色,不要仅清空边框颜色,需同步将模板根视图的layer.backgroundColor设为透明,清除AdMob模板自带的默认遮罩层级:
    templateView?.layer.backgroundColor = UIColor.clear.cgColor
  • 排查项:确认模板视图未被嵌套在带有固定不透明背景色的容器视图中,避免容器层级颜色覆盖广告的自定义配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 15:06:08