Вам необходимо передать Java-класс (через Java.Lang.Class.FromType
) вашего пользовательского события (ICustomEventBanner
).
В моем случае у меня есть один с именем 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
на основе 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: