Migration Guide from MAX to XMediator
Integration
This section helps you migrate from the AppLovin MAX SDK to the XMediator SDK in your Android project.
Initialize the SDK Comparison
Operation | MAX SDK | XMediator SDK |
---|
SDK Initialization | AppLovinSdk.getInstance(context).initializeSdk { ... } | XMediatorAds.startWith(activity = context, appKey = appKey, initSettings = initSettings, initCallback = callback) |
Set User ID | sdkSettings.userIdentifier = "user-id" | UserProperties(userId = "user-id") |
Set Test Mode | sdkSettings.testDeviceAdvertisingIds = listOf("YOUR_AD_ID") | InitSettings(test = true) |
Set Extra Params | sdkSettings.setExtraParameter("key", value) | InitSettings(userProperties = UserProperties(customProperties = ...)) |
Operation | MAX SDK | XMediator SDK |
---|
SDK Initialization | AppLovinSdk.getInstance(context).initializeSdk(new SdkInitializationListener() { ... }); | XMediatorAds.startWith(activity, appKey, initSettings, initCallback); |
Set User ID | sdkSettings.setUserIdentifier("user-id"); | userProperties.setUserId("user-id"); |
Set Test Mode | sdkSettings.setTestDeviceAdvertisingIds(Arrays.asList("YOUR_AD_ID")); | initSettings.setTest(true); |
Set Extra Params | sdkSettings.setExtraParameter("key", value); | userProperties.setCustomProperties(...); |
Optional Configuration
Feature | MAX SDK | XMediator SDK |
---|
Set User ID | sdkSettings.setUserIdentifier("user-id") | UserProperties(userId = "user-id") |
Extra Parameters (e.g., tokens) | sdkSettings.setExtraParameter("uid2", ...) | InitSettings (passed during init) |
Enable Logging | sdkSettings.setVerboseLogging(true) | InitSettings(verbose = true) |
Test Mode | sdkSettings.setTestDeviceAdvertisingIds(listOf("YOUR_AD_ID")) | InitSettings(test = true) |
Play Store Family Policy | sdkSettings.setIsAgeRestrictedUser(true) | InitSettings(ageRestricted = true) |
For more details, refer to:
Banner Ads
Banner API Method Comparison
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | adView.setListener(listener) | XMediatorAds.Banner.addListener(listener) |
Create Banner | adView = MaxAdView(...) | XMediatorAds.Banner.create(placementId, size) |
Show Banner | adView.visibility = View.VISIBLE | container.addView(XMediatorAds.Banner.getView(placementId)) |
Destroy/Remove | adView.destroy() | XMediatorAds.Banner.removeListener(listener) or remove the view from the container |
Manual Refresh | adView.loadAd() | XMediatorAds.Banner.load(placementId) |
Set Ad Space | (not available) | XMediatorAds.Banner.setAdSpace(placementId, "ad-space") |
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | adView.setListener(listener); | XMediatorAds.getBanner().addListener(listener); |
Create Banner | adView = new MaxAdView(...) | XMediatorAds.getBanner().create(placementId, size); |
Show Banner | adView.setVisibility(View.VISIBLE); | container.addView(XMediatorAds.getBanner().getView(placementId)); |
Destroy/Remove | adView.destroy(); | XMediatorAds.getBanner().removeListener(listener); or remove the view from the container |
Manual Refresh | adView.loadAd(); | XMediatorAds.getBanner().load(placementId); |
Set Ad Space | (not available) | XMediatorAds.getBanner().setAdSpace(placementId, "ad-space"); |
Key Differences: Banner Ads
Feature | MAX SDK | XMediator SDK |
---|
Banner Creation | Add MaxAdView to layout | Call create(placementId, size) |
Banner Sizes | Various (e.g., BANNER, MREC) | Banner.Size.Phone , Tablet , Mrec |
Show Banner | Set view visible | Add view to container |
Impression Callback | Not available by default | Explicit callback per placement |
Expand/Collapse Events | Available | Not available |
Listener Interface | MaxAdViewAdListener | BannerListener |
Ad Identifiers | Ad Unit ID | Placement ID |
Retry Logic | Manual | Automatic (SDK handles retries) |
For more details, refer to:
X3M Banner
MAX Banner
Interstitial Ads
Interstitial API Method Comparison
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | interstitialAd.setListener(listener) | XMediatorAds.Interstitial.addListener(listener) |
Load Interstitial | interstitialAd.loadAd() | XMediatorAds.Interstitial.load(placementId) |
Check Ready | interstitialAd.isReady() | XMediatorAds.Interstitial.isReady() or isReady(placementId) |
Show Interstitial | interstitialAd.show() | XMediatorAds.Interstitial.show(activity, "ad-space") or .show(placementId, activity, "ad-space") |
Destroy/Remove | interstitialAd.destroy() | XMediatorAds.Interstitial.removeListener(listener = interstitialListener) |
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | interstitialAd.setListener(listener); | XMediatorAds.getInterstitial().addListener(listener); |
Load Interstitial | interstitialAd.loadAd(); | XMediatorAds.getInterstitial().load(placementId); |
Check Ready | interstitialAd.isReady(); | XMediatorAds.getInterstitial().isReady(); or .isReady(placementId); |
Show Interstitial | interstitialAd.show(); | XMediatorAds.getInterstitial().show(activity, "ad-space"); or .show(placementId, activity, "ad-space"); |
Destroy/Remove | interstitialAd.destroy(); | XMediatorAds.getInterstitial().removeListener(listener = interstitialListener) |
Listener Method Comparison
Event | MAX SDK (MaxInterstitialAdListener ) | XMediator SDK (InterstitialAds.Listener ) |
---|
Loaded | onAdLoaded(ad) | onLoaded(placementId, loadResult) |
Showed | onAdDisplayed(ad) | onShowed(placementId) |
Impression | onAdDisplayed(ad) | onImpression(placementId, impressionData) |
Clicked | onAdClicked(ad) | onClicked(placementId) |
Dismissed/Hidden | onAdHidden(ad) | onDismissed(placementId) |
Show Failed | onAdDisplayFailed(ad, error) | onFailedToShow(placementId, showError) |
Event | MAX SDK (MaxInterstitialAdListener ) | XMediator SDK (InterstitialAds.Listener ) |
---|
Loaded | onAdLoaded(MaxAd ad) | onLoaded(String placementId, LoadResult loadResult) |
Showed | onAdDisplayed(MaxAd ad) | onShowed(String placementId) |
Impression | onAdDisplayed(MaxAd ad) | onImpression(String placementId, ImpressionData impressionData) |
Clicked | onAdClicked(MaxAd ad) | onClicked(String placementId) |
Dismissed/Hidden | onAdHidden(MaxAd ad) | onDismissed(String placementId) |
Show Failed | onAdDisplayFailed(MaxAd ad, MaxError error) | onFailedToShow(String placementId, ShowError showError) |
Key Differences: Interstitial Ads
Feature | MAX SDK | XMediator SDK |
---|
Impression Callback | On display | Explicit callback per placement |
Listener Interface | MaxInterstitialAdListener | InterstitialListener |
Ad Identifiers | Ad Unit ID | Placement ID |
Retry Logic | Manual | Automatic (SDK handles retries) |
For more details, refer to:
X3M Interstitial
MAX Interstitial
Rewarded Ads
Rewarded API Method Comparison
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | rewardedAd.setListener(listener) | XMediatorAds.Rewarded.addListener(listener) |
Load Rewarded | rewardedAd.loadAd() | XMediatorAds.Rewarded.load(placementId) |
Check Ready | rewardedAd.isReady() | XMediatorAds.Rewarded.isReady() or isReady(placementId) |
Show Rewarded | rewardedAd.show() | XMediatorAds.Rewarded.show(activity, "ad-space") or .show(placementId, activity, "ad-space") |
Destroy/Remove | rewardedAd.destroy() | XMediatorAds.Rewarded.removeListener(listener = rewardedListener) |
Operation | MAX SDK | XMediator SDK |
---|
Set Listener | rewardedAd.setListener(listener); | XMediatorAds.getRewarded().addListener(listener); |
Load Rewarded | rewardedAd.loadAd(); | XMediatorAds.getRewarded().load(placementId); |
Check Ready | rewardedAd.isReady(); | XMediatorAds.getRewarded().isReady(); or .isReady(placementId); |
Show Rewarded | rewardedAd.show(); | XMediatorAds.getRewarded().show(activity, "ad-space"); or .show(placementId, activity, "ad-space"); |
Destroy/Remove | rewardedAd.destroy(); | XMediatorAds.getRewarded().removeListener(listener = rewardedListener) |
Listener Method Comparison
Event | MAX SDK (MaxRewardedAdListener ) | XMediator SDK (RewardedAds.Listener ) |
---|
Loaded | onAdLoaded(ad) | onLoaded(placementId, loadResult) |
Showed | onAdDisplayed(ad) | onShowed(placementId) |
Impression | onAdDisplayed(ad) | onImpression(placementId, impressionData) |
Clicked | onAdClicked(ad) | onClicked(placementId) |
Dismissed/Hidden | onAdHidden(ad) | onDismissed(placementId) |
Show Failed | onAdDisplayFailed(ad, error) | onFailedToShow(placementId, showError) |
Earned Reward | onUserRewarded(ad, reward) | onEarnedReward(placementId) |
Event | MAX SDK (MaxRewardedAdListener ) | XMediator SDK (RewardedAds.Listener ) |
---|
Loaded | onAdLoaded(MaxAd ad) | onLoaded(String placementId, LoadResult loadResult) |
Showed | onAdDisplayed(MaxAd ad) | onShowed(String placementId) |
Impression | onAdDisplayed(MaxAd ad) | onImpression(String placementId, ImpressionData impressionData) |
Clicked | onAdClicked(MaxAd ad) | onClicked(String placementId) |
Dismissed/Hidden | onAdHidden(MaxAd ad) | onDismissed(String placementId) |
Show Failed | onAdDisplayFailed(MaxAd ad, MaxError error) | onFailedToShow(String placementId, ShowError showError) |
Earned Reward | onUserRewarded(MaxAd ad, MaxReward reward) | onEarnedReward(String placementId) |
Key Differences: Rewarded Ads
Feature | MAX SDK | XMediator SDK |
---|
Reward Callback | onUserRewarded(ad, reward) | onEarnedReward(placementId) |
Impression Callback | On display | Explicit callback per placement |
Listener Interface | MaxRewardedAdListener | RewardedAds.Listener |
Ad Identifiers | Ad Unit ID | Placement ID |
Retry Logic | Manual | Automatic (SDK handles retries) |
Auto-load/Auto-retry | Manual | Automatic after dismiss/fail |