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

Xamarin.Android Ads:广告请求添加Bundle时AddCustomEventExtrasBundle参数困惑

解决Xamarin.Android中AdMob设置npa参数的问题

Hey there! Let's clear up your confusion step by step:

一、先搞懂AddCustomEventExtrasBundle的adapterClass到底是什么

这个方法是专门为广告中介场景下的自定义事件适配器设计的:

  • 当你集成了AdMob官方中介之外的广告平台,并且需要用自定义的适配器类来处理该平台的广告请求时,才需要传入这个适配器的Class对象——它的作用是把你创建的Bundle参数传递给这个自定义适配器使用。
  • 简单说:如果只是用原生AdMob广告,完全不需要调用这个方法!

二、设置npa="1"的正确方式

你的需求是请求非个性化广告(npa="1"),直接用AdRequest.Builder的AddExtra方法就能实现,根本不需要绕到AddCustomEventExtrasBundle。修改后的代码如下:

private AdView _bannerAd;
_bannerAd = new AdView(this) { AdSize = AdSize.SmartBanner, AdUnitId = adUnitId, Visibility = ViewStates.Visible };

// 构建广告请求的正确写法
var requestBuilder = new AdRequest.Builder();
// 直接添加npa参数
requestBuilder.AddExtra("npa", "1");
// 加载广告
_bannerAd.LoadAd(requestBuilder.Build());

三、如果真的需要使用AddCustomEventExtrasBundle(拓展知识)

假设你确实有自定义广告适配器的场景,在Xamarin.Android中传递adapterClass需要把C#的类型转换成Android的Class对象,示例代码如下:

// 假设你的自定义适配器类是MyCustomAdAdapter
var adapterClass = Java.Lang.Class.FromType(typeof(MyCustomAdAdapter));
var extras = new Bundle();
extras.PutString("your_custom_key", "your_value");
requestBuilder.AddCustomEventExtrasBundle(adapterClass, extras);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:44:23