Writing Custom Events - mobfox/MobFox-Android-SDK GitHub Wiki

Banner

You must implement the following interface:

package com.mobfox.sdk.customevents;

import android.content.Context;
import java.util.Map;

public interface CustomEventBanner {
    void loadAd(Context context, CustomEventBannerListener listener, String networkID, Map<String, Object> params);
}

If the name of the network you are writing the custom event to is XXX your custom event class must be named com.mobfox.sdk.customevents.XXX.

Reporting Events

You must also call the methods of the supplied CustomEventBannerListener when appropriate:

package com.mobfox.sdk.customevents;

import android.view.View;

public interface CustomEventBannerListener {
    void onBannerError(View banner, Exception e);
    void onBannerLoaded(View banner);
    void onBannerClosed(View banner);
    void onBannerFinished();
    void onBannerClicked(View banner);
}

MoPub Custom Event Example

MoPub.java

package com.mobfox.sdk.customevents;

import android.content.Context;
import android.util.Log;

import com.mopub.mobileads.MoPubErrorCode;
import com.mopub.mobileads.MoPubView;

import java.util.Map;

public class MoPub implements CustomEventBanner {
    String tag = "MobFoxAdapter";
    public MoPub() {
        Log.d(tag, "MobFox AdMob Custom >> constructor");
    }

    @Override
    public void loadAd(Context context, final CustomEventBannerListener listener, String networkID, Map<String, Object> params) {
        Log.d(tag, "MobFox AdMob Custom >> loadAd");

        MoPubView moPubView = new MoPubView(context);

        int width;
        int height;
        try {
            height = (int) params.get("height");
            width = (int) params.get("width");
        } catch (Exception e) {
            Log.e(tag, "MobFox AdMob Custom >> error", e);
            listener.onBannerError(null, e);
        }

        moPubView.setAdUnitId(networkID);
        moPubView.setBannerAdListener(new MoPubView.BannerAdListener() {
            @Override
            public void onBannerLoaded(MoPubView banner) {
                Log.d(tag, "MobFox AdMob Custom >> loaded");
                listener.onBannerLoaded(banner);
            }

            @Override
            public void onBannerFailed(MoPubView banner, MoPubErrorCode errorCode) {
                Log.e(tag, "MobFox AdMob Custom >> error");
                listener.onBannerError(banner, new Exception("errorCode: " + errorCode));
            }

            @Override
            public void onBannerClicked(MoPubView banner) {
                Log.d(tag, "MobFox AdMob Custom >> clicked");
                listener.onBannerClicked(banner);
            }

            @Override
            public void onBannerExpanded(MoPubView banner) {
                Log.d(tag, "MobFox AdMob Custom >> expanded");
            }

            @Override
            public void onBannerCollapsed(MoPubView banner) {
                Log.d(tag, "MobFox AdMob Custom >> collapsed");
                listener.onBannerClosed(banner);
            }
        });
        moPubView.loadAd();
    }
}

Interstitial

You must implement the following interface:

package com.mobfox.sdk.customevents;

import android.content.Context;

import java.util.Map;

public interface CustomEventInterstitial {
    void loadInterstitial(Context context, CustomEventInterstitialListener listener, String networkID, Map<String, Object> params);
    void showInterstitial();
}

If the name of the network you are writing the custom event to is XXX your custom event class must be named com.mobfox.sdk.customevents.XXXInterstitial.

Reporting Events

You must also call the methods of the supplied CustomEventInterstitialListener when appropriate:

package com.mobfox.sdk.customevents;

public interface CustomEventInterstitialListener {
    void onInterstitialLoaded(CustomEventInterstitial interstitial);
    void onInterstitialFailed(CustomEventInterstitial interstitial, Exception e);
    void onInterstitialClosed(CustomEventInterstitial interstitial);
    void onInterstitialFinished();
    void onInterstitialClicked(CustomEventInterstitial interstitial);
    void onInterstitialShown(CustomEventInterstitial interstitial);
}

MoPub Custom Event Interstitial Example

MoPubInterstitial.java

package com.mobfox.sdk.customevents;

import android.app.Activity;
import android.content.Context;
import android.util.Log;

import com.mopub.mobileads.MoPubErrorCode;

import java.util.Map;

public class MoPubInterstitial implements CustomEventInterstitial {
    String tag = "MobFoxAdapter";
    com.mopub.mobileads.MoPubInterstitial mInterstitial;
    MoPubInterstitial self;

    public MoPubInterstitial() {
        Log.d(tag, "MobFox AdMob Custom >> constructor");
    }

    @Override
    public void loadInterstitial(Context context, final CustomEventInterstitialListener listener, String networkID, Map<String, Object> params) {
        Log.d(tag, "MobFox AdMob Custom >> loadInterstitial");
        self = this;
        mInterstitial = new com.mopub.mobileads.MoPubInterstitial((Activity)context, networkID);
        mInterstitial.setInterstitialAdListener(new com.mopub.mobileads.MoPubInterstitial.InterstitialAdListener() {
            @Override
            public void onInterstitialLoaded(com.mopub.mobileads.MoPubInterstitial interstitial) {
                Log.d(tag, "MobFox AdMob Custom >> loaded");
                listener.onInterstitialLoaded(self);
            }

            @Override
            public void onInterstitialFailed(com.mopub.mobileads.MoPubInterstitial interstitial, MoPubErrorCode errorCode) {
                Log.d(tag, "MobFox AdMob Custom >> failed");
                listener.onInterstitialFailed(self, new Exception("errorCode: " + errorCode));
            }

            @Override
            public void onInterstitialShown(com.mopub.mobileads.MoPubInterstitial interstitial) {
                Log.d(tag, "MobFox AdMob Custom >> shown");
                listener.onInterstitialShown(self);
            }

            @Override
            public void onInterstitialClicked(com.mopub.mobileads.MoPubInterstitial interstitial) {
                Log.d(tag, "MobFox AdMob Custom >> clicked");
                listener.onInterstitialClicked(self);
            }

            @Override
            public void onInterstitialDismissed(com.mopub.mobileads.MoPubInterstitial interstitial) {
                Log.d(tag, "MobFox AdMob Custom >> dismissed");
                listener.onInterstitialClosed(self);
            }
        });
        mInterstitial.load();
    }

    @Override
    public void showInterstitial() {
        if (mInterstitial == null)
            return;
        mInterstitial.show();
    }
}