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
相关产品推荐
相关产品推荐

