Android Mopub Interstitial

出自TAMedia
於 2017年9月6日 (三) 05:25 由 imported>Wikiuser 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

請建立一個Class並繼承Mopub所提供的CustomEventInterstitial

Class實作內容如下:

 package com.taiwanmobile.pt.adp.mediation;
 
 import android.app.Activity;
 import android.content.Context;
 import android.util.Log;
 
 import com.mopub.mobileads.CustomEventInterstitial;
 import com.mopub.mobileads.MoPubErrorCode;
 import com.taiwanmobile.pt.adp.view.TWMAd;
 import com.taiwanmobile.pt.adp.view.TWMAdRequest;
 import com.taiwanmobile.pt.adp.view.TWMAdViewListener;
 import com.taiwanmobile.pt.adp.view.TWMInterstitialAd;
 
 import java.util.Map;
 
 // 需將本class的完整類別名稱 com.taiwanmobile.pt.adp.mediation.TAMediaMopubInterstitial 填入後台的Custom Event Class欄位
 public class TAMediaMopubInterstitial extends CustomEventInterstitial {
     private static final String TAG = "TAMediaInterstitial";
 
     private TWMInterstitialAd interstitialAd  = null;
     private CustomEventInterstitialListener mInterstitialListener;
 
     @Override
     protected void loadInterstitial(final Context context,
                                     final CustomEventInterstitialListener customEventInterstitialListener,
                                     final Map<String, Object> localExtras,
                                     final Map<String, String> serverExtras) {
         Log.d(TAG, "loadInterstitial(" + serverExtras.get("adUnitId") + ") invoked!!");
 
         mInterstitialListener = customEventInterstitialListener;
 
         String adUnitId = serverExtras.get("adUnitId"); //後台設定的adUnitId會透過此Key值取得
         interstitialAd = new TWMInterstitialAd( (Activity)context, adUnitId );
         interstitialAd.setAdListener(new TWMAdViewListener(){
             @Override
             public void onReceiveAd(TWMAd ad) {
                 if(mInterstitialListener != null)
                     mInterstitialListener.onInterstitialLoaded();
             }
 
             @Override
             public void onFailedToReceiveAd(TWMAd ad, TWMAdRequest.ErrorCode errorCode) {
                 if(mInterstitialListener != null)
                     mInterstitialListener.onInterstitialFailed(MoPubErrorCode.NETWORK_NO_FILL);
             }
 
             @Override
             public void onPresentScreen(TWMAd ad) {
                 if(mInterstitialListener != null)
                     mInterstitialListener.onInterstitialShown();
             }
 
             @Override
             public void onDismissScreen(TWMAd ad) {
                 if(mInterstitialListener != null)
                     mInterstitialListener.onInterstitialDismissed();
             }
 
             @Override
             public void onLeaveApplication(TWMAd ad) {
                 if(mInterstitialListener != null)
                     mInterstitialListener.onInterstitialClicked();
             }
 
         });
         interstitialAd.loadAd(new TWMAdRequest());
 
     }
 
     @Override
     protected void showInterstitial() {
         // Called when MoPubInterstitial Object called show()
         if (interstitialAd != null) {
             interstitialAd.show();
         }
     }
 
     @Override
     protected void onInvalidate() {
         // Called when MoPubInterstitial is being invalidated or destroyed.
         if(interstitialAd != null)
             interstitialAd.setAdListener(null);
     }
 
 }



回MoPub教學