Menu

Banner Ad

  1. Banner Ad Abstract Method Implementation and Ad Event Callbacks

Abstract Method Parameter Description Return Value Purpose Required
getBannerView - View Needs to return the BannerView object that has already been loaded successfully. Yes

Use the CustomBannerEventListener member variable of CustomBannerAdapter to implement ad event callbacks.

Callback Method Parameter Description Description
onBannerAdClicked - Callback to the developer when the ad is clicked.
onBannerAdShow - Callback to the developer when the ad is displayed.
onBannerAdClose - Callback to the developer when the ad is closed.

Note: When using the member variable CustomBannerEventListener, null-check handling is required, because the Mediation SDK may internally reclaim this Listener object.

1.3 Sample Code

java Copy
public class FacebookBannerAdapter extends CustomBannerAdapter {

    private String unitid = "";
    AdView mBannerView;
    String size = "";

    @Override
    public void loadCustomNetworkAd(final Context activity, Map<String, Object> serverExtras, Map<String, Object> localExtras) {

        if (serverExtras.containsKey("unit_id")) {
            unitid = (String) serverExtras.get("unit_id");

        } else {
            if (mLoadListener != null) {
                mLoadListener.onAdLoadError("", "facebook unitid is empty.");
            }
            return;
        }

        FacebookInitManager.getInstance().initSDK(activity.getApplicationContext(), serverExtras);

        if (serverExtras.containsKey("size")) {
            size = serverExtras.get("size").toString();
        }

        final AdListener adListener = new AdListener() {
            @Override
            public void onAdLoaded(Ad ad) {
                mBannerView = (AdView) ad;
                if (mLoadListener != null) {
                    mLoadListener.onAdCacheLoaded();

                }
            }

            @Override
            public void onError(Ad ad, AdError adError) {
                if (mLoadListener != null) {
                    mLoadListener.onAdLoadError(adError.getErrorCode() + "", adError.getErrorMessage());
                }
            }

            @Override
            public void onAdClicked(Ad ad) {
                if (mImpressionEventListener != null) {
                    mImpressionEventListener.onBannerAdClicked();
                }
            }

            @Override
            public void onLoggingImpression(Ad ad) {
                if (mImpressionEventListener != null) {
                    mImpressionEventListener.onBannerAdShow();
                }
            }
        };

        AdView adView = null;
        switch (size) {
            case "320x50":
                adView = new AdView(activity, unitid, AdSize.BANNER_HEIGHT_50);
                break;
            case "320x90":
                adView = new AdView(activity, unitid, AdSize.BANNER_HEIGHT_90);
                break;
            case "300x250":
                adView = new AdView(activity, unitid, AdSize.RECTANGLE_HEIGHT_250);
                break;
            default:
                adView = new AdView(activity, unitid, AdSize.BANNER_HEIGHT_50);
                break;
        }
        adView.loadAd(adView.buildLoadAdConfig().withAdListener(adListener).build());
    }

    @Override
    public View getBannerView() {
        return mBannerView;
    }

    @Override
    public void destory() {
        if (mBannerView != null) {
            mBannerView.destroy();
            mBannerView = null;
        }
    }

    @Override
    public String getNetworkSDKVersion() {
        return FacebookInitManager.getInstance().getNetworkVersion();
    }

    @Override
    public String getNetworkName() {
        return FacebookInitManager.getInstance().getNetworkName();
    }

    @Override
    public boolean setUserDataConsent(Context context, boolean isConsent, boolean isEUTraffic) {
        return false;
    }

    @Override
    public String getNetworkPlacementId() {
        return unitid;
    }
}
Previous
Base Flow
Next
Custom Client Bidding Ad
Last modified: 2026-07-08Powered by