猿问

Xamarin.GooglePlayServices.Ads:如何向广告请求添加捆绑包

考虑到我在 Xamarin.Android 项目中有一个 AdView:


private AdView _bannerAd;

我通常这样初始化它:


_bannerAd = new AdView(this)

{

    AdSize = AdSize.SmartBanner,

    AdUnitId = adUnitId,

    Visibility = ViewStates.Visible

};

然后,当我加载横幅时,我必须构建请求。在这种情况下,我想添加一个额外的包,但是当我必须调用 时requestbuilder.AddCustomEventExtrasBundle,我不知道该将什么作为第一个参数。


var requestbuilder = new AdRequest.Builder();

var extras = new Bundle();

extras.PutString("npa", "1");

requestbuilder.AddCustomEventExtrasBundle(***, extras);

_bannerAd.LoadAd(requestbuilder.Build())

通过阅读方法定义,我真的不明白什么是“适配器类”。


[Register("addCustomEventExtrasBundle", "(Ljava/lang/Class;Landroid/os/Bundle;)Lcom/google/android/gms/ads/AdRequest$Builder;", "")]

public Builder AddCustomEventExtrasBundle(Class adapterClass, Bundle customEventExtras);


翻阅古今
浏览 282回答 2
2回答

波斯汪

您需要传递Java.Lang.Class.FromType自定义事件 ( ICustomEventBanner)的 Java 类 (via )。就我而言,我有一个SushiHangoverTextEventBanner已在 AdMob 注册的电话。您需要实现ICustomEventBanner,大概这是一个独立的对象(在我的情况下是),因为 AdMob 将实例化它,从它继承它,Java.Lang.Object因此 Xamarin 将为它创建 ACW(JNI/Java 包装器)。public class SushiHangoverTextEventBanner : Java.Lang.Object, ICustomEventBanner{    SushiHangoverTextAdView customAdView;    public void OnDestroy()    {        customAdView?.Dispose();    }    public void OnPause()    {        ~~~    }    public void OnResume()    {        ~~~    }    public void RequestBannerAd(Context context, ICustomEventBannerListener listener, string serverParameter, AdSize size, IMediationAdRequest mediationAdRequest, Bundle customEventExtras)    {        customAdView = new SushiHangoverTextAdView(context);        ~~~    }}我还有一个在该实现中使用的自定义广告(SushiHangoverAdView基于 a TextView)ICustomEventBanner。注册并实现 AdMob 回调后,您只需将其传递给您的AdRequest.Builder:using (var requestbuilder = new AdRequest.Builder()){    var extras = new Bundle();    extras.PutString("npa", "1");    requestbuilder.AddCustomEventExtrasBundle(Java.Lang.Class.FromType(typeof(SushiHangoverTextEventBanner)), extras);}我帮助推荐通过 Admob 自定义事件示例:https://developers.google.com/admob/android/custom-events

Qyouu

CustomEvent根据文档,它需要一个从 扩展的类public&nbsp;AdRequest.Builder&nbsp;addCustomEventExtrasBundle&nbsp;(Class<?&nbsp;extends CustomEvent>&nbsp;adapterClass,&nbsp;Bundle&nbsp;customEventExtras)这是一个关于自定义事件入门的很棒的教程,直接来自 Google,他们在那里使用CustomEventBanner.&nbsp;它是在 Java 中,但应该很容易移植到 C#
随时随地看视频慕课网APP
我要回答