我想创建一个CustomEventBanner,但有一些问题。我不确定我是否在正确的地方做正确的事情。我应该在哪里添加横幅到我的布局?我是否必须调用CustomEventBannerListener的每个方法?哪些是绝对必要的?我怎么知道是否没有广告要显示(没有响亮)?
我实际上可以使用admob显示广告但不使用我的CustomAd :(
这是我的代码:
public class CustomAd implements CustomEventBanner, AdResponseHandler {
private CustomEventBannerListener bannerListener;
protected SASBannerView mBannerView;
@Override
public void requestBannerAd(final CustomEventBannerListener listener,
final Activity activity, String label, String serverParameter,
AdSize adSize, MediationAdRequest mediationAdRequest, Object extra) {
// Keep the custom event listener for use later.
this.bannerListener = listener;
// Determine the best ad format to use given the adSize. If the adSize
// isn't appropriate for any format, an ad will not fill.
// Create banner instance
mBannerView = new SASBannerView(activity);
// Set the listener to register for events.
this.mBannerView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
listener.onClick();
} catch (Throwable t) {
}
}
});
// Load the ad with the ad request giving an AdResponseHandler
mBannerView.loadAd(42295, "286177", 18008, true, "", this);
}
@Override
public void destroy() { // The destroy method gets called when the mediation
// framework refreshes
// and removes the custom event. Perform any necessary cleanup here.
if (this.mBannerView != null) {
this.mBannerView.onDestroy();
}
}
@Override
public void adLoadingCompleted(SASAdElement arg0) {
this.bannerListener.onReceivedAd(this.mBannerView);
}
@Override
public void adLoadingFailed(Exception arg0) {
this.bannerListener.onFailedToReceiveAd();
}
}
答案 0 :(得分:1)
代码看起来很不错。虽然您的横幅广告似乎没有通过点击进行任何操作,只需通知onClick()
。如果你的横幅最终到达外部网络浏览器或游戏商店,你也可以在onClickListener中调用onPresentScreen()
和onLeaveApplication()
。
请注意,这只是应用中用于实施SAS网络的自定义事件组件。您的主要活动仍需要创建AdView(设置了调解ID以定位您的自定义事件)并将广告加载到其中。
只有onReceivedAd
和onFailedToReceiveAd
才能运行中介。其他的很有用,因此您的主AdView的AdListener可以监听这些事件。