为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
翻阅古今 2021-07-02 14:53:24
考虑到我在 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);
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您需要传递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


查看完整回答
反对 回复 2021-07-10
?
Qyouu

TA贡献1786条经验 获得超11个赞

CustomEvent根据文档,它需要一个从 扩展的类

public AdRequest.Builder addCustomEventExtrasBundle (Class<? extends
CustomEvent> adapterClass, Bundle customEventExtras)

这是一个关于自定义事件入门的很棒的教程,直接来自 Google,他们在那里使用CustomEventBanner. 它是在 Java 中,但应该很容易移植到 C#


查看完整回答
反对 回复 2021-07-10
  • 2 回答
  • 0 关注
  • 281 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号