如何为google_mobile_ads设置locale使广告匹配设备系统语言?
iOS端google_mobile_ads包广告语言不匹配设备locale的解决方法
- 修正Info.plist本地化配置
iOS系统默认会限制应用读取未声明的系统语言配置,你需要在项目ios/Runner/Info.plist中添加CFBundleLocalizations字段,声明应用支持的所有语言代码,示例配置如下(可根据实际支持的语言增减数组项):<key>CFBundleLocalizations</key> <array> <string>en</string> <string>es</string> <string>zh-Hans</string> </array> - 构建广告请求时显式传入locale参数
你可以主动获取当前设备的locale标识,在构建AdRequest时通过额外参数传入,强制SDK按指定语言拉取广告,Flutter侧示例代码如下:import 'dart:io'; final adRequest = AdRequest( keywords: <String>['flutter', 'mobile app'], contentUrl: 'https://your-app-content-url.com', // 新增如下行传入当前设备locale additionalParameters: {'locale': Platform.localeName}, ); - 检查AdMob后台广告投放配置
登录你的AdMob后台,进入对应应用的广告单元设置页面,确认「语言定位」选项未强制指定西班牙语,调整为匹配用户设备语言即可。 - 清理缓存重新测试
如果你此前使用过测试广告ID拉取过西班牙语广告,SDK会缓存广告资源,修改配置后需要完全卸载设备上的测试应用,重新打包安装后再验证广告语言。
提示:官方提供的固定测试广告ID的展示语言是预设固定的,不受locale参数控制,建议使用开启了测试权限的正式广告单元ID进行验证。
内容的提问来源于stack exchange,提问作者anonymous-dev
相关产品推荐
相关产品推荐

