ironsource-mediation
Version:
IronSource ad mediation React-Native plugin. Monetize apps with rewarded video, interstitial, banner, and native ads.
548 lines (517 loc) • 19.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.IronSource = void 0;
var _reactNative = require("react-native");
var _IronSourceConstants = require("./utils/IronSourceConstants");
var _utils = require("./utils/utils");
var _IronSourceConfig = require("./utils/IronSourceConfig");
/**
* This is the main IronSource bridge module.
*/
/** Extract IronSourceMediation module **/
const {
IronSourceMediation
} = _reactNative.NativeModules;
/** Types =======================================================================**/
/**
* Native Module Type
* Descriptions show the function names of native SDKs.
*/
/**
* These are needed since ReactNative NativeModules does not support function overload or optional arguments.
* @deprecated This method will be removed in 4.0.0 version.
*/
/**
* Exposed Module Type
*/
/** Util =========================================================================**/
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
const getReactNativeVersion = () => {
let version = '';
try {
version = require('react-native/package.json').version;
} catch (e) {
console.warn('IronSource - failed to get the ReactNative version');
} finally {
return version;
}
};
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
const getPluginVersion = () => {
return _IronSourceConstants.PLUGIN_VERSION;
};
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
const getNativeSDKVersion = () => {
return _reactNative.Platform.OS === 'android' ? _IronSourceConstants.ANDROID_SDK_VERSION : _reactNative.Platform.OS === 'ios' ? _IronSourceConstants.IOS_SDK_VERSION : 'unsupported';
};
/** Module =======================================================================**/
const IronSourceNativeModule = IronSourceMediation;
/**
* Proxy Functions
*/
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
const init = async (appKey, adUnits) => {
try {
const reactNativeVersion = getReactNativeVersion();
// set plugin data
await (0, _IronSourceConfig.setPluginData)(_IronSourceConstants.PLUGIN_TYPE, _IronSourceConstants.PLUGIN_VERSION, reactNativeVersion);
} catch (e) {
// log?
console.warn('failed to set plugin data');
}
// init
return adUnits === undefined || adUnits.length === 0 ? IronSourceNativeModule.init(appKey) : IronSourceNativeModule.initWithAdUnits(appKey, adUnits);
};
/**
* @deprecated Use the alternate API {@link LevelPlayRewardedAd#showAd()} instead.
*/
const showRewardedVideo = async placementName => {
return placementName === undefined ? IronSourceNativeModule.showRewardedVideo() : IronSourceNativeModule.showRewardedVideoForPlacement(placementName);
};
/**
* @deprecated Use the alternate API {@link LevelPlayInterstitialAd#showAd()} instead.
*/
const showInterstitial = async placementName => {
return placementName === undefined ? IronSourceNativeModule.showInterstitial() : IronSourceNativeModule.showInterstitialForPlacement(placementName);
};
/**
* iOS specific function stubs for Android.
* No rejects for now in the case of these being called on Android.
*/
const IOSMethodStubs = {
/** iOS ConversionValue API ========================================================**/
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
getConversionValue: () => Promise.resolve(undefined),
/** iOS ConsentView API ============================================================**/
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
loadConsentViewWithType: _ => Promise.resolve(),
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
showConsentViewWithType: _ => Promise.resolve()
};
/** LevelPlay Listeners Setters =================================================================**/
const eventEmitter = new _reactNative.NativeEventEmitter(IronSourceMediation);
// Event Name Constants defined on each platform
const {
// Initialization
ON_INITIALIZATION_COMPLETE,
// ImpressionData
ON_IMPRESSION_SUCCESS,
// ConsentView
CONSENT_VIEW_DID_LOAD_SUCCESS,
CONSENT_VIEW_DID_FAIL_TO_LOAD,
CONSENT_VIEW_DID_SHOW_SUCCESS,
CONSENT_VIEW_DID_FAIL_TO_SHOW,
CONSENT_VIEW_DID_ACCEPT,
// LevelPlayBanner
LP_BN_ON_AD_LOADED,
LP_BN_ON_AD_LOAD_FAILED,
LP_BN_ON_AD_CLICKED,
LP_BN_ON_AD_SCREEN_PRESENTED,
LP_BN_ON_AD_SCREEN_DISMISSED,
LP_BN_ON_AD_LEFT_APPLICATION,
// LevelPlayInterstitial
LP_IS_ON_AD_READY,
LP_IS_ON_AD_LOAD_FAILED,
LP_IS_ON_AD_OPENED,
LP_IS_ON_AD_CLOSED,
LP_IS_ON_AD_SHOW_FAILED,
LP_IS_ON_AD_CLICKED,
LP_IS_ON_AD_SHOW_SUCCEEDED,
// LevelPlayRewardedVideo
LP_RV_ON_AD_AVAILABLE,
LP_RV_ON_AD_UNAVAILABLE,
LP_RV_ON_AD_OPENED,
LP_RV_ON_AD_CLOSED,
LP_RV_ON_AD_REWARDED,
LP_RV_ON_AD_SHOW_FAILED,
LP_RV_ON_AD_CLICKED,
// Manual Load RV Events
LP_MANUAL_RV_ON_AD_READY,
LP_MANUAL_RV_ON_AD_LOAD_FAILED
} = IronSourceMediation.getConstants();
/**
* Sets the setInitializationListener to handle impression data events.
* @param listener The setInitializationListener object containing event handlers.
*
* @deprecated This Listener will be removed in 4.0.0 version.
*/
const setInitializationListener = listener => {
// Remove any existing listeners
eventEmitter.removeAllListeners(ON_INITIALIZATION_COMPLETE);
// Add the new listener if provided
if (listener.onInitializationComplete) {
eventEmitter.addListener(ON_INITIALIZATION_COMPLETE, () => {
listener.onInitializationComplete();
});
}
};
/**
* Sets the setImpressionDataListener to handle impression data events.
* @param listener The setImpressionDataListener object containing event handlers.
*
* @deprecated This Listener will be removed in 4.0.0 version.
*/
const setImpressionDataListener = listener => {
// Remove any existing listeners
eventEmitter.removeAllListeners(ON_IMPRESSION_SUCCESS);
// Add the new listener if provided
if (listener.onImpressionSuccess) {
eventEmitter.addListener(ON_IMPRESSION_SUCCESS, data => {
const impressionData = data ? (0, _utils.impressionDataFromMap)(data) : undefined;
listener.onImpressionSuccess(impressionData);
});
}
};
/**
* Sets the consentViewListener to handle consent view events.
* @param listener The consentViewListener object containing event handlers.
*
* @deprecated This method will be removed in 4.0.0 version.
*/
const setConsentViewListener = listener => {
if (_reactNative.Platform.OS !== 'ios') {
console.error('Only supported for iOS.');
return;
}
// Remove all existing listeners for these events
eventEmitter.removeAllListeners(CONSENT_VIEW_DID_LOAD_SUCCESS);
eventEmitter.removeAllListeners(CONSENT_VIEW_DID_FAIL_TO_LOAD);
eventEmitter.removeAllListeners(CONSENT_VIEW_DID_SHOW_SUCCESS);
eventEmitter.removeAllListeners(CONSENT_VIEW_DID_FAIL_TO_SHOW);
eventEmitter.removeAllListeners(CONSENT_VIEW_DID_ACCEPT);
// Add the new listeners if provided
if (listener.onConsentViewDidLoadSuccess) {
eventEmitter.addListener(CONSENT_VIEW_DID_LOAD_SUCCESS, data => {
const consentViewType = data.consentViewType;
listener.onConsentViewDidLoadSuccess(consentViewType);
});
}
if (listener.onConsentViewDidFailToLoad) {
eventEmitter.addListener(CONSENT_VIEW_DID_FAIL_TO_LOAD, data => {
const error = (0, _utils.conentViewErrorFromMap)(data);
listener.onConsentViewDidFailToLoad(error);
});
}
if (listener.onConsentViewDidShowSuccess) {
eventEmitter.addListener(CONSENT_VIEW_DID_SHOW_SUCCESS, data => {
const consentViewType = data.consentViewType;
listener.onConsentViewDidShowSuccess(consentViewType);
});
}
if (listener.onConsentViewDidFailToShow) {
eventEmitter.addListener(CONSENT_VIEW_DID_FAIL_TO_SHOW, data => {
const error = (0, _utils.conentViewErrorFromMap)(data);
listener.onConsentViewDidFailToShow(error);
});
}
if (listener.onConsentViewDidAccept) {
eventEmitter.addListener(CONSENT_VIEW_DID_ACCEPT, data => {
const consentViewType = data.consentViewType;
listener.onConsentViewDidAccept(consentViewType);
});
}
};
/**
* Sets the setLevelPlayBannerListener to handle banner ad events.
* @param listener The setLevelPlayBannerListener object containing event handlers.
*
* @deprecated This method will be removed in future versions. Please use LevelPlayBannerAdView with LevelPlayBannerAdViewListenr instead.
*/
const setLevelPlayBannerListener = listener => {
// Remove existing listeners
eventEmitter.removeAllListeners(LP_BN_ON_AD_LOADED);
eventEmitter.removeAllListeners(LP_BN_ON_AD_LOAD_FAILED);
eventEmitter.removeAllListeners(LP_BN_ON_AD_CLICKED);
eventEmitter.removeAllListeners(LP_BN_ON_AD_SCREEN_PRESENTED);
eventEmitter.removeAllListeners(LP_BN_ON_AD_SCREEN_DISMISSED);
eventEmitter.removeAllListeners(LP_BN_ON_AD_LEFT_APPLICATION);
// Add new listeners
if (listener.onAdLoaded) {
eventEmitter.addListener(LP_BN_ON_AD_LOADED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdLoaded(ironSourceAdInfo);
});
}
if (listener.onAdLoadFailed) {
eventEmitter.addListener(LP_BN_ON_AD_LOAD_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data);
listener.onAdLoadFailed(ironSourceError);
});
}
if (listener.onAdClicked) {
eventEmitter.addListener(LP_BN_ON_AD_CLICKED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdClicked(ironSourceAdInfo);
});
}
if (listener.onAdScreenPresented) {
eventEmitter.addListener(LP_BN_ON_AD_SCREEN_PRESENTED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdScreenPresented(ironSourceAdInfo);
});
}
if (listener.onAdScreenDismissed) {
eventEmitter.addListener(LP_BN_ON_AD_SCREEN_DISMISSED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdScreenDismissed(ironSourceAdInfo);
});
}
if (listener.onAdLeftApplication) {
eventEmitter.addListener(LP_BN_ON_AD_LEFT_APPLICATION, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdScreenDismissed(ironSourceAdInfo);
});
}
};
/**
* Sets the LevelPlayInterstitialListener to handle interstitial ad events.
* @param listener The LevelPlayInterstitialListener object containing event handlers.
*
* @deprecated Use the alternate API {@link LevelPlayInterstitialAd#setListener(LevelPlayInterstitialAdListener)} instead.
*/
const setLevelPlayInterstitialListener = listener => {
eventEmitter.removeAllListeners(LP_IS_ON_AD_READY);
eventEmitter.removeAllListeners(LP_IS_ON_AD_LOAD_FAILED);
eventEmitter.removeAllListeners(LP_IS_ON_AD_OPENED);
eventEmitter.removeAllListeners(LP_IS_ON_AD_CLOSED);
eventEmitter.removeAllListeners(LP_IS_ON_AD_SHOW_FAILED);
eventEmitter.removeAllListeners(LP_IS_ON_AD_CLICKED);
eventEmitter.removeAllListeners(LP_IS_ON_AD_SHOW_SUCCEEDED);
if (listener.onAdReady) {
eventEmitter.addListener(LP_IS_ON_AD_READY, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdReady(ironSourceAdInfo);
});
}
if (listener.onAdLoadFailed) {
eventEmitter.addListener(LP_IS_ON_AD_LOAD_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data);
listener.onAdLoadFailed(ironSourceError);
});
}
if (listener.onAdOpened) {
eventEmitter.addListener(LP_IS_ON_AD_OPENED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdOpened(ironSourceAdInfo);
});
}
if (listener.onAdClosed) {
eventEmitter.addListener(LP_IS_ON_AD_CLOSED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdClosed(ironSourceAdInfo);
});
}
if (listener.onAdShowFailed) {
eventEmitter.addListener(LP_IS_ON_AD_SHOW_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data.error);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdShowFailed(ironSourceError, ironSourceAdInfo);
});
}
if (listener.onAdClicked) {
eventEmitter.addListener(LP_IS_ON_AD_CLICKED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdClicked(ironSourceAdInfo);
});
}
if (listener.onAdShowSucceeded) {
eventEmitter.addListener(LP_IS_ON_AD_SHOW_SUCCEEDED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdShowSucceeded(ironSourceAdInfo);
});
}
};
/**
* Sets the LevelPlayRewardedVideoListener to handle rewarded video ad events.
* @param listener The LevelPlayRewardedVideoListener object containing event handlers.
*
* @deprecated Use the alternate API {@link LevelPlayRewardedAd#setListener(LevelPlayRewardedAdListener)} instead.
*/
const setLevelPlayRewardedVideoListener = listener => {
eventEmitter.removeAllListeners(LP_RV_ON_AD_AVAILABLE);
eventEmitter.removeAllListeners(LP_RV_ON_AD_UNAVAILABLE);
eventEmitter.removeAllListeners(LP_RV_ON_AD_OPENED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_CLOSED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_REWARDED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_SHOW_FAILED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_CLICKED);
if (listener.onAdAvailable) {
eventEmitter.addListener(LP_RV_ON_AD_AVAILABLE, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdAvailable(ironSourceAdInfo);
});
}
if (listener.onAdUnavailable) {
eventEmitter.addListener(LP_RV_ON_AD_UNAVAILABLE, () => listener.onAdUnavailable());
}
if (listener.onAdOpened) {
eventEmitter.addListener(LP_RV_ON_AD_OPENED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdOpened(ironSourceAdInfo);
});
}
if (listener.onAdClosed) {
eventEmitter.addListener(LP_RV_ON_AD_CLOSED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdClosed(ironSourceAdInfo);
});
}
if (listener.onAdRewarded) {
eventEmitter.addListener(LP_RV_ON_AD_REWARDED, data => {
const ironSourcePlacement = (0, _utils.ironSourceRvPlacementFromMap)(data.placement);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdRewarded(ironSourcePlacement, ironSourceAdInfo);
});
}
if (listener.onAdShowFailed) {
eventEmitter.addListener(LP_RV_ON_AD_SHOW_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data.error);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdShowFailed(ironSourceError, ironSourceAdInfo);
});
}
if (listener.onAdClicked) {
eventEmitter.addListener(LP_RV_ON_AD_CLICKED, data => {
const ironSourcePlacement = (0, _utils.ironSourceRvPlacementFromMap)(data.placement);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdClicked(ironSourcePlacement, ironSourceAdInfo);
});
}
};
/**
* Sets the LevelPlayRewardedVideoManualListener to handle rewarded video ad events.
* @param listener The LevelPlayRewardedVideoManualListener object containing event handlers.
*
* @deprecated Use the alternate API {@link LevelPlayRewardedAd#setListener(LevelPlayRewardedAdListener)} instead.
*/
const setLevelPlayRewardedVideoManualListener = async listener => {
eventEmitter.removeAllListeners(LP_RV_ON_AD_OPENED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_CLOSED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_REWARDED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_SHOW_FAILED);
eventEmitter.removeAllListeners(LP_RV_ON_AD_CLICKED);
eventEmitter.removeAllListeners(LP_MANUAL_RV_ON_AD_READY);
eventEmitter.removeAllListeners(LP_MANUAL_RV_ON_AD_LOAD_FAILED);
await IronSource.setLevelPlayRewardedVideoManual();
if (listener.onAdOpened) {
eventEmitter.addListener(LP_RV_ON_AD_OPENED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdOpened(ironSourceAdInfo);
});
}
if (listener.onAdClosed) {
eventEmitter.addListener(LP_RV_ON_AD_CLOSED, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdClosed(ironSourceAdInfo);
});
}
if (listener.onAdRewarded) {
eventEmitter.addListener(LP_RV_ON_AD_REWARDED, data => {
const ironSourcePlacement = (0, _utils.ironSourceRvPlacementFromMap)(data.placement);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdRewarded(ironSourcePlacement, ironSourceAdInfo);
});
}
if (listener.onAdShowFailed) {
eventEmitter.addListener(LP_RV_ON_AD_SHOW_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data.error);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdShowFailed(ironSourceError, ironSourceAdInfo);
});
}
if (listener.onAdClicked) {
eventEmitter.addListener(LP_RV_ON_AD_CLICKED, data => {
const ironSourcePlacement = (0, _utils.ironSourceRvPlacementFromMap)(data.placement);
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data.adInfo);
listener.onAdClicked(ironSourcePlacement, ironSourceAdInfo);
});
}
if (listener.onAdReady) {
eventEmitter.addListener(LP_MANUAL_RV_ON_AD_READY, data => {
const ironSourceAdInfo = (0, _utils.ironSourceAdInfoFromMap)(data);
listener.onAdReady(ironSourceAdInfo);
});
}
if (listener.onAdLoadFailed) {
eventEmitter.addListener(LP_MANUAL_RV_ON_AD_LOAD_FAILED, data => {
const ironSourceError = (0, _utils.ironSourceErrorFromMap)(data);
listener.onAdLoadFailed(ironSourceError);
});
}
};
/**=======================================================================================**/
/**
* @deprecated This method will be removed in 4.0.0 version.
*/
const IronSource = exports.IronSource = Object.create(_reactNative.Platform.OS === 'ios' ? IronSourceMediation :
// overwrite stub iOS related methods
{
...IronSourceMediation,
...IOSMethodStubs
}, {
getPluginVersion: {
value: getPluginVersion,
enumerable: true
},
getNativeSDKVersion: {
value: getNativeSDKVersion,
enumerable: true
},
init: {
value: init,
enumerable: true
},
showRewardedVideo: {
value: showRewardedVideo,
enumerable: true
},
showInterstitial: {
value: showInterstitial,
enumerable: true
},
setInitializationListener: {
value: setInitializationListener,
enumerable: true
},
setImpressionDataListener: {
value: setImpressionDataListener,
enumerable: true
},
setConsentViewListener: {
value: setConsentViewListener,
enumerable: true
},
setLevelPlayBannerListener: {
value: setLevelPlayBannerListener,
enumerable: true
},
setLevelPlayInterstitialListener: {
value: setLevelPlayInterstitialListener,
enumerable: true
},
setLevelPlayRewardedVideoListener: {
value: setLevelPlayRewardedVideoListener,
enumerable: true
},
setLevelPlayRewardedVideoManualListener: {
value: setLevelPlayRewardedVideoManualListener,
enumerable: true
}
});
//# sourceMappingURL=IronSource.js.map