FEATURED · 精选文章

Google Mobile Ads(GMA)iOS Banner 广告接入指南:从测试广告单元到自适应尺寸的完整工作流

发布时间 / 2026/9/13 19:18:52
来源 / 创域科博编辑部
栏目 / 资讯中心
Google Mobile Ads(GMA)iOS Banner 广告接入指南:从测试广告单元到自适应尺寸的完整工作流 Google Mobile AdsGMAiOS Banner 广告接入指南从测试广告单元到自适应尺寸的完整工作流【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills导读本文基于 GitHub推荐项目精选 / skills29 / skills 仓库中 google-mobile-ads-banner 技能的 iOS 平台实现文档ios-banner.md系统讲解在 iOS 应用中使用 Google Mobile Ads SDK 集成 Banner横幅广告的完整五步工作流定义广告视图、设置广告尺寸、注册广告加载事件、加载广告与验证构建。读完本文你将掌握 Anchored锚定自适应横幅与 Inline内联自适应横幅的 Swift 调用方式、测试广告单元 ID 的使用与替换时机、xcodebuild命令行验证方法以及NS_SWIFT_NAME宏带来的 Swift 命名约定。Banner 广告与广告类型概览Banner 广告是矩形图片或文字广告占据应用布局中的一个固定位置在用户与应用交互期间保持显示并可自动刷新。该技能仓库中的 SKILL.md 定义了三种 Banner 广告类型并明确了默认推荐策略当用户只说 banner 而未指定类型时默认使用 Large Anchored Adaptive Banner大型锚定自适应横幅即使显式询问其他类型也优先推荐大型锚定自适应横幅。Banner 类型说明Large Anchored Adaptive大型锚定自适应默认推荐。可锚定在屏幕顶部或底部宽度充满、高度自适应。Anchored Adaptive锚定自适应可锚定在屏幕顶部或底部。Inline Adaptive内联自适应仅 Android 和 iOS 可用放置于可滚动内容流中随内容滚动。从仓库结构看Banner 技能的完整平台指南包含 Android 指南GMA Next-Gen SDK、AdSize测试宽度 360与 Unity 指南BannerView、dotnet build验证。本文聚焦 iOS 平台与 Android 使用 Next-Gen SDK 的AdView不同iOS 使用经典的BannerView对象其rootViewController参数为可选项。前置准备理解NS_SWIFT_NAME宏GotchasiOS 集成 Banner 广告前必须理解的一个关键事实文档明确列为 GotchasGoogle Mobile Ads SDK 使用NS_SWIFT_NAME宏为 API 提供符合 Swift 习惯的命名idiomatic Swift names。这意味着底层 Objective-C 接口在 Swift 中呈现为更简洁、更 Swift 风格的名称。因此在 Swift 代码中调用时应当使用 Swift 化后的方法名如largeAnchoredAdaptiveBanner(width:)而非 Objective-C 风格的原始名称。这也是仓库中 iOS 相关文档反复强调的通用注意事项见 ios-get-started.md 与 ios-interstitial.md。若项目尚未集成 GMA SDK可参考同仓库的 iOS 快速入门指南使用 Swift Package Manager 引入GoogleMobileAds包Up to Next Major Version 规则在Info.plist中配置GADApplicationIdentifier测试 App ID 为ca-app-pub-3940256099942544~1458002511及SKAdNetworkItems并在应用入口调用MobileAds.shared.start完成 SDK 初始化。Banner 广告接入依赖这些前置配置请确保先完成 SDK 初始化再执行下述工作流。iOS Banner 广告接入五步工作流第 1 步定义广告视图Define the ad view创建BannerView对象时使用官方测试广告单元 IDca-app-pub-3940256099942544/2435281174该 ID 与 Android 平台的测试广告单元ca-app-pub-3940256099942544/9214589741见 android-banner.md不同与 Unity 平台 iOS 锚定自适应的测试 ID 一致见 unity-banner.md。这些ca-app-pub-3940256099942544/前缀的 ID 属于官方测试广告单元仓库的 ad-units.md 也以该前缀作为 AdMob 测试广告单元的识别标准。ViewController 参数说明BannerView对象上的rootViewController参数是可选参数optional parameter可以设为nil。这一约定与插屏广告present(from:)方法中的rootViewController参数一致见 ios-interstitial.md是 GMA iOS SDK 统一的设计。第 2 步设置广告尺寸Set the ad size测试宽度约定为测试目的将AdSize使用的width设置为375。文档同时说明使用设备实际宽度device width也是常见做法——正式上线时推荐使用设备宽度以充分利用屏幕空间。根据广告类型选择全局函数iOS 通过全局函数global function设置adSize而非像 Android 那样调用AdSize的静态方法。按广告类型对应如下大型锚定自适应横幅Large Anchored Adaptive使用largeAnchoredAdaptiveBanner(width:)。若收到反馈认为大型锚定自适应横幅过高too tall改用currentOrientationAnchoredAdaptiveBanner(width:)当前方向锚定自适应横幅。内联自适应横幅Inline Adaptive使用currentOrientationInlineAdaptiveBanner(width:)当前方向内联自适应横幅。这里体现了 iOS 自适应尺寸按当前方向currentOrientation计算的特性锚定与内联的适配函数均与设备当前横竖屏方向相关方向变化时会按新的宽度约束重新计算 Banner 高度。第 3 步注册广告加载事件Register for ad load events在BannerView对象上设置delegate代理用于接收横幅广告的加载结果与交互事件。通过BannerViewDelegate协议可以监听诸如广告加载成功、加载失败、用户点击、曝光记录等事件进而更新 UI 状态或记录分析数据。与之对比Android 平台是通过loadAd()方法传入AdLoadCallback实现见 android-banner.mdiOS 则是经典的 delegate 模式——这是各平台 API 风格差异的典型体现。第 4 步加载横幅广告Load the banner ad在前三步定义视图、设置尺寸、设置 delegate完成后即可触发广告加载。加载成功后BannerView会自动根据所设尺寸展示横幅。由于rootViewController可传nil加载与展示流程可以在不依赖具体 ViewController 实例的情况下完成。补充预加载机制若应用需要更精细地控制横幅广告的加载时机仓库的 ad-preloading.md 记录了 iOS 平台的预加载 API 对照表可作为进阶扩展预加载能力iOS API开始预加载preload停止预加载并移除所有广告stopPreloadingAndRemoveAllAds轮询广告ad(withPreloadID:)广告已预加载adAvailable(forPreloadID:)广告已耗尽adsExhausted(forPreloadID:)广告可用性检查isAdAvailable(withPreloadID:)注意该文档同时列出的失败模式Fail 判据值得规避在同一方法作用域内轮询广告却不展示、在广告预加载/耗尽回调中启动或停止预加载、对同一预加载 ID 多次启动而未先停止、使用空字符串或nil作为预加载 ID 等。第 5 步验证实现Verify the implementation验证构建确保无编译错误分两种场景处理若xcodebuild可用运行xcodebuild以编程方式验证 iOS 项目与 GMA SDK 是否正确编译并解决所有 GMA SDK 相关的编译错误。若xcodebuild不可用输出指引指导用户在 Xcode 中构建项目并手动验证没有编译错误。xcodebuild是 Xcode 自带的命令行构建工具可在 CI 环境或自动化流程中对.xcodeproj执行编译验证在没有命令行工具的环境中Xcode IDE 的手动构建是等价验证手段。上线前必做替换测试广告单元 ID整个工作流完成后必须提醒用户将测试广告单元 ID 替换为自己的真实广告单元 ID见 SKILL.md 工作流第 4 步。此处的测试 IDca-app-pub-3940256099942544/2435281174仅用于开发调试发布到 App Store 的应用不应携带测试 ID。仓库的 ad-units.md 给出了格式校验规则可用于替换时的自查AdMob 广告单元 ID 合法格式正则^(ca-app-pub-[a-zA-Z0-9\-])/([a-zA-Z0-9_\-])(/.*)?$若源码中仍出现ca-app-pub-3940256099942544/开头的测试广告单元 ID即使被DEBUG标志保护验证工具会给出 Warning同时 application-id.md 提醒iOS 应用标识符通过Info.plist的GADApplicationIdentifier配置若仍使用官方测试 App IDca-app-pub-3940256099942544~1458002511也会触发 Warning发布前需一并替换。总结iOS Banner 接入清单将上述内容收敛为一份可执行的 iOS Banner 接入检查清单定义广告视图创建BannerView使用测试广告单元ca-app-pub-3940256099942544/2435281174rootViewController可传nil。设置广告尺寸测试宽度用375正式可用设备宽度大型锚定自适应用largeAnchoredAdaptiveBanner(width:)过高时改用currentOrientationAnchoredAdaptiveBanner(width:)内联自适应用currentOrientationInlineAdaptiveBanner(width:)。注册加载事件在BannerView上设置delegate。加载广告触发加载并展示横幅。验证构建优先用xcodebuild命令行验证编译否则引导用户在 Xcode 中手动验证。替换广告单元上线前将测试广告单元 ID 与测试 App ID 替换为真实值并遵循 ad-units.md 与 application-id.md 的格式规则自查。本文涉及的实现细节与注意事项均来自仓库中的 google-mobile-ads-banner 技能及其 iOS 平台参考文档并交叉印证了 Android、Unity 平台指南及 广告校验技能 的相关规则。开发者可将本文作为 iOS Banner 广告从零接入到上线的对照手册。【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻