Я пытаюсь интегрировать Mopub в свое приложение Ionic / Cordova через специальный плагин. Я могу инициализировать SDK и получить рекламу, как я вижу в logcat. Просто я не могу создать вид для показа баннерной рекламы. Объявления загружены, но они не отображаются. Пожалуйста, помогите.
Вот мой класс:
package com.cordova.plugins;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaWebView;
import android.util.DisplayMetrics;
import android.view.View;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.mopub.mobileads.MoPubErrorCode;
import com.mopub.mobileads.MoPubView;
import com.mopub.mobileads.MoPubView.BannerAdListener;
import com.mopub.common.SdkConfiguration;
import com.mopub.common.SdkInitializationListener;
import com.mopub.common.MoPub;
import com.mopub.common.logging.MoPubLog;
/**
* This class echoes a string called from JavaScript.
*/
public class MopubMediation extends CordovaPlugin {
private final static String TAG = "MopubMediation";
private final static String TEST_BANNER_ID = "b195f8dd8ded45fe847ad89ed1d016da";
private MoPubView moPubView;
private float screenDensity = 1.0f;
private SdkConfiguration sdkConfiguration;
private MoPubView.MoPubAdSize adsize;
@Override
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
}
private SdkInitializationListener initSdkListener() {
return new SdkInitializationListener() {
@Override
public void onInitializationFinished() {
adsize = MoPubView.MoPubAdSize.HEIGHT_50;
moPubView = new MoPubView(cordova.getActivity());
moPubView.setAdUnitId(TEST_BANNER_ID);
moPubView.loadAd(adsize);
moPubView.setBannerAdListener(new BannerAdListener() {
@Override
public void onBannerClicked(MoPubView arg0) {
Log.d("MoPub","Banner ad has expanded.");
}
@Override
public void onBannerCollapsed(MoPubView arg0) {
Log.d("MoPub","Banner ad has expanded.");
}
@Override
public void onBannerExpanded(MoPubView arg0) {
Log.d("MoPub","Banner ad has expanded.");
}
@Override
public void onBannerFailed(MoPubView arg0, MoPubErrorCode arg1) {
Log.d("MoPub","Banner ad failed to load with error:"+arg1);
}
@Override
public void onBannerLoaded(MoPubView arg0) {
Log.d("MoPub","Banner ad failed to load with error:$errorCode");
}
});
}
};
}
@Override
public boolean execute(final String action, final JSONArray args, final CallbackContext callbackContext)
throws JSONException {
if (action.equals("showAD")) {
final String message = args.getString(0);
this.initAd(action, args, callbackContext);
return true;
}
return false;
}
private void initAd(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
final String id = args.getString(0);
Log.d(TAG, String.format("%s", id));
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
_initAd(id);
}
});
}
private void _initAd(String bannerID) {
sdkConfiguration = new SdkConfiguration.Builder(TEST_BANNER_ID)
.withLogLevel(MoPubLog.LogLevel.DEBUG)
.withLegitimateInterestAllowed(false)
.build();
MoPub.initializeSdk(cordova.getActivity(), sdkConfiguration, initSdkListener());
}
@Override
public void onDestroy() {
moPubView.destroy();
super.onDestroy();
}
}