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

Xamarin.Forms项目中Google AdMob横幅广告无法显示求助

解决Xamarin.Forms集成AdMob横幅广告仅显示占位模板的问题

看起来你在Xamarin.Forms里集成AdMob横幅广告时踩了常见的坑——只显示彩色占位模板,连测试ID都不管用。结合你贴的代码,咱们来一步步排查修复:

1. 替换无效的广告单元ID

你的Android渲染器里写的adView.AdUnitId = "ca-app-p";是完全无效的占位符。哪怕是测试阶段,也得用Google官方提供的测试广告单元ID(自定义ID需要先在AdMob后台创建并通过审核,测试用官方ID更稳妥)。

Android横幅广告的官方测试ID如下,直接替换即可:

adView.AdUnitId = "ca-app-pub-3940256099942544/6300978111";

2. 补全Android项目的权限与配置

打开Android项目的AndroidManifest.xml,必须添加以下必要配置,否则广告无法正常加载:

<!-- 广告需要联网权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- AdMob应用ID配置,测试用官方ID,后续替换成你自己的 -->
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" 
           android:value="ca-app-pub-3940256099942544~3347511713"/>

3. 添加测试设备(避免触发AdMob限制)

为了防止误触发AdMob的流量限制,建议在广告请求中明确添加你的测试设备和模拟器:

  1. 运行应用后,在Android Studio的Logcat中搜索Use AdRequest.Builder.addTestDevice("DEVICE_ID"),找到你的设备ID
  2. 修改请求代码:
var requestbuilder = new AdRequest.Builder()
    .AddTestDevice("你的测试设备ID") // 替换成你拿到的ID
    .AddTestDevice(AdRequest.DeviceIdEmulator); // 适配模拟器
adView.LoadAd(requestbuilder.Build());

4. 检查渲染器与控件尺寸匹配

你在XAML里给AdBanner设置了WidthRequest="320" HeightRequest="50",这个尺寸要和你在渲染器中设置的AdSize对应。比如你默认用的AdSize.Banner正好是320x50,这个是对的;如果后续切换到LargeBanner(320x100),记得同步调整XAML里的尺寸参数。

另外,确认你的Android项目已经安装了兼容版本的Xamarin.GooglePlayServices.Ads NuGet包,版本不匹配也会导致广告加载失败。

5. 自定义ID的额外检查(若后续使用自己的ID)

如果之后要切换到自己的广告单元ID,需要确保:

  • 你的AdMob账号已通过审核
  • 广告单元已创建,且关联的应用ID与项目包名完全一致
  • 项目的包名和AdMob后台配置的应用包名完全匹配

修改完以上配置后,清理项目、重新生成并运行,应该就能正常加载测试广告了。

内容的提问来源于stack exchange,提问作者Burak Çetin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:12:50