资讯动态

Unity Google Mobile Ads SDK 集成入门:OpenUPM 依赖安装、App ID 配置与 SDK 初始化实战

发布时间:2026/9/13 8:20:10 来源:尧图企业网站定制
Unity Google Mobile Ads SDK 集成入门OpenUPM 依赖安装、App ID 配置与 SDK 初始化实战【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills本篇技术指南以当前仓库中 google-mobile-ads-get-started 技能 的 Unity 平台参考文档unity-get-started.md为核心完整讲解在 Unity 项目中集成 Google Mobile AdsGMASDK 的标准四步流程通过 OpenUPM 添加 SDK 依赖、配置 Android/iOS 应用标识符、完成 SDK 初始化并通过编译验证集成结果。读者学完后可以独立完成 Unity 项目 GMA SDK 的接入并为后续接入横幅、插页式、激励视频等广告格式打下基础。该文档是仓库中google-mobile-ads-get-started技能为 AI 集成代理Agent编写的 Unity 平台操作指引与 Androidandroid-get-started.md、iOSios-get-started.md参考文档并列共同覆盖三类主流移动平台。文中所有命令、代码与配置均以仓库文档为准。一、理解整体集成工作流根据 SKILL.md 的说明google-mobile-ads-get-started技能面向 Android、iOS、Unity 三类项目。执行前需要先确定用户项目所属平台若无法判断应主动询问然后阅读对应的平台参考文档按固定顺序完成以下四个步骤添加 SDK 依赖Add the SDK dependency设置应用标识符Set the application identifier初始化 SDKInitialize the SDK验证集成Verify the integrationSDK 安装完成后技能会引导用户选择一种广告格式Banner、Interstitial 或 Rewarded继续后续集成对应的 Unity 参考文档分别位于 unity-banner.md、unity-interstitial.md 和 unity-rewarded.md。本篇文章聚焦 Unity 平台的入门四步。二、第一步通过 OpenUPM 添加 SDK 依赖Unity 项目的依赖统一声明在Packages/manifest.json文件中。GMA SDK 的 Unity 插件com.google.ads.mobile托管在 OpenUPM 注册中心因此需要同时配置 scoped registry作用域注册表和依赖项。2.1 查询 SDK 最新稳定版本插件以 Git 仓库的 release tag 形式发布版本可以通过 GitHub API 直接查询最新的 release tagcurl -sS https://api.github.com/repos/googleads/googleads-mobile-unity/releases/latest | jq -r .tag_name命令返回的 tag 去掉开头的v前缀即为 GMA SDK 的最新版本号。该命令需要本机装有curl与jq且能访问 GitHub API若无法访问也可以直接访问 OpenUPM 的包页面查看最新版本。2.2 修改 manifest.json将查询到的最新版本号填入依赖中。仓库文档中的示例如下版本号11.2.0仅为示例实际应以 2.1 步骤查询到的最新稳定版为准{ scopedRegistries: [ { name: OpenUPM, url: https://package.openupm.com, scopes: [ com.google ] } ], dependencies: { // Replace 11.2.0 with the latest stable version. com.google.ads.mobile: 11.2.0 } }配置要点scopes必须包含com.google这样 Unity 包管理器才能把com.google.*命名空间下的包包括com.google.ads.mobile从 OpenUPM 注册中心解析而非默认的 Unity 官方注册源dependencies中声明的com.google.ads.mobile即 GMA Unity 插件包JSON 中的//注释仅用于说明实际manifest.json是标准 JSON 格式提交前需移除注释保存文件后Unity 包管理器会自动解析并下载该依赖。2.3 常见问题若scopedRegistries缺失或scopes不包含com.googleUnity 会提示包解析失败或从错误的源获取包版本号务必使用 2.1 步骤查询到的最新稳定版避免依赖过时版本带来的 API 差异例如初始化回调签名、事件枚举的变更。三、第二步设置应用标识符App IDGMA SDK 需要一个 AdMob 应用标识符来标识当前应用。Unity 平台通过Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset文件配置分别设置 Android 与 iOS 两个平台的 App ID。3.1 配置示例修改该 asset 文件中的两个字段adMobAndroidAppIdAndroid 平台 App ID测试值ca-app-pub-3940256099942544~3347511713adMobIOSAppIdiOS 平台 App ID测试值ca-app-pub-3940256099942544~1458002511注意仓库的校验技能 application-id.md 中明确指出Unity 平台应用标识符的键名即为adMobAndroidAppId/adMobIOSAppId位于 Unity 编辑器设置中与 Android 平台在InitializationConfig.Builder中传applicationId、iOS 平台在 Info.plist 中配GADApplicationIdentifier的方式不同。排查 App ID 时可按此键名搜索工程。3.2 测试 App ID 与发布前替换文档强调发布前必须将测试 App ID 替换为开发者自己的真实 AdMob App ID。测试 App ID 仅用于开发阶段验证 SDK 集成与广告加载。仓库的校验技能对此还有更细化的判定规则若检测到工程中使用了官方 Google 测试 App ID会给出Warning状态若 App ID 不匹配正则^(ca-app-pub-[a-zA-Z0-9\-])~(.*)$或同一平台配置了多个 App ID 且无 flavor/环境隔离则判定为Fail参见 application-id.md。因此在开发初期使用测试 App ID、发布前替换为真实 ID是避免上线前校验告警的关键。3.3 关于 App ID 的格式AdMob App ID 形如ca-app-pub-xxxxxxxxxxxx~yyyyyyyyyy由波浪号~分隔发布商 ID 与应用 ID而广告单元 ID 形如ca-app-pub-xxxxxxxxxxxx/yyyyyyyyyy使用斜杠/分隔。两者不要混淆——本步骤配置的是应用级 App ID广告单元 ID 在后续广告格式接入如 unity-banner.md时才用到。四、第三步初始化 SDK初始化是 SDK 所有后续广告请求的前置条件必须且只能执行一次一般在游戏启动场景的脚本中完成。4.1 初始化脚本using GoogleMobileAds.Api; using GoogleMobileAds.Common; using UnityEngine; public class GoogleMobileAdsController : MonoBehaviour { public void Start() { // Initialize the Google Mobile Ads SDK exactly once. MobileAds.Initialize((InitializationStatus initStatus) { Debug.Log(Google Mobile Ads SDK initialized.); MobileAdsEventExecutor.ExecuteInUpdate(() { // Interact with UnityEngine objects on the main thread here. }); }); } }代码要点MobileAds.Initialize接收一个InitializationStatus回调SDK 完成初始化包括各个 mediation adapter 的初始化后回调被触发初始化回调可能运行在非主线程因此任何与UnityEngine对象交互的代码都必须通过MobileAdsEventExecutor.ExecuteInUpdate()显式调度到 Unity 主线程执行因为 Unity API 不是线程安全的文档明确要求不要将MobileAds.RaiseAdEventsOnUnityMainThread设置为true该属性已废弃obsolete。在主线程调度请一律使用MobileAdsEventExecutor.ExecuteInUpdate()。4.2 主线程调度的必要性贯穿后续所有广告格式这条规则并非只针对初始化仓库中所有 Unity 广告参考文档unity-banner.md、unity-interstitial.md、unity-rewarded.md都反复强调同一约束——后台广告回调若涉及操作UnityEngine对象必须通过MobileAdsEventExecutor.ExecuteInUpdate()调度到主线程。示例模式如下bannerView.OnBannerAdLoaded () { MobileAdsEventExecutor.ExecuteInUpdate(() { // Interact with UnityEngine objects on the main thread here. }); };这一模式应当成为 Unity 广告开发者的统一习惯所有广告事件回调内访问UnityEngine对象前先套一层ExecuteInUpdate()。五、第四步验证集成集成完成后需要对工程进行编译验证dotnet build命令会编译 Unity 生成的 csproj 工程文件若存在 GMA SDK 相关的编译错误如命名空间缺失GoogleMobileAds.Api、GoogleMobileAds.Common、API 签名不匹配、版本 API 差异等需要逐一解决直至构建通过。补充说明仓库中各广告格式参考文档在验证实现环节采用了不同手段——Banner 文档同样使用dotnet build而插页式与激励视频文档则建议检查 Unity Console 是否出现 C# 脚本编译错误或缺失GoogleMobileAds命名空间引用见 unity-interstitial.md。两者目标一致确认无编译错误后再继续广告功能开发。六、集成后的下一步选择广告格式按 SKILL.md 的流程SDK 安装成功后应向用户确认要接入的广告格式。当前仓库为 Unity 提供了三份配套参考Banner 广告unity-banner.md通过BannerView类创建支持AdSize.Banner或自适应尺寸Android 测试广告单元 ID 为ca-app-pub-3940256099942544/9214589741iOS 为ca-app-pub-3940256099942544/2435281174插页式广告unity-interstitial.md通过静态方法InterstitialAd.Load()加载Android 测试 ID 为ca-app-pub-3940256099942544/1033173712iOS 为ca-app-pub-3940256099942544/4411468910展示前需检查CanShowAd()激励视频广告unity-rewarded.md通过静态方法RewardedAd.Load()加载Android 测试 ID 为ca-app-pub-3940256099942544/5224354917iOS 为ca-app-pub-3940256099942544/1712485313必须由用户主动点击 UI 按钮触发展示禁止自动弹出。这些广告单元 ID 均为官方测试 ID正式发布前同样需要替换为开发者自己的真实广告单元 ID。七、发布前自查清单结合本入门文档与仓库的 google-mobile-ads-validate 技能上线前建议自查以下事项依赖版本Packages/manifest.json中com.google.ads.mobile是否为最新稳定版scoped registry 是否正确配置App IDGoogleMobileAdsSettings.asset中adMobAndroidAppId/adMobIOSAppId是否已从测试 ID 替换为真实 AdMob App ID且格式匹配^(ca-app-pub-[a-zA-Z0-9\-])~(.*)$初始化MobileAds.Initialize是否只调用一次回调中是否使用MobileAdsEventExecutor.ExecuteInUpdate()调度主线程操作是否误用了已废弃的MobileAds.RaiseAdEventsOnUnityMainThread编译验证dotnet build是否通过Unity Console 无 GMA 相关编译错误广告单元后续接入的广告单元 ID 是否为测试 ID发布前是否已替换。遵循上述流程即可在 Unity 项目中顺利完成 Google Mobile Ads SDK 的安装与初始化并平稳进入具体广告格式的集成阶段。【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价