Skip to main content

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

OperationMAX SDKXMediator SDK
SDK InitializationAppLovinSdk.getInstance(context).initializeSdk { ... }XMediatorAds.startWith(activity = context, appKey = appKey, initSettings = initSettings, initCallback = callback)
Set User IDsdkSettings.userIdentifier = "user-id"UserProperties(userId = "user-id")
Set Test ModesdkSettings.testDeviceAdvertisingIds = listOf("YOUR_AD_ID")InitSettings(test = true)
Set Extra ParamssdkSettings.setExtraParameter("key", value)InitSettings(userProperties = UserProperties(customProperties = ...))

Optional Configuration

FeatureMAX SDKXMediator SDK
Set User IDsdkSettings.setUserIdentifier("user-id")UserProperties(userId = "user-id")
Extra Parameters (e.g., tokens)sdkSettings.setExtraParameter("uid2", ...)InitSettings (passed during init)
Enable LoggingsdkSettings.setVerboseLogging(true)InitSettings(verbose = true)
Test ModesdkSettings.setTestDeviceAdvertisingIds(listOf("YOUR_AD_ID"))InitSettings(test = true)
Play Store Family PolicysdkSettings.setIsAgeRestrictedUser(true)InitSettings(ageRestricted = true)

For more details, refer to:


Ad Formats

OperationMAX SDKXMediator SDK
Set ListeneradView.setListener(listener)XMediatorAds.Banner.addListener(listener)
Create BanneradView = MaxAdView(...)XMediatorAds.Banner.create(placementId, size)
Show BanneradView.visibility = View.VISIBLEcontainer.addView(XMediatorAds.Banner.getView(placementId))
Destroy/RemoveadView.destroy()XMediatorAds.Banner.removeListener(listener) or remove the view from the container
Manual RefreshadView.loadAd()XMediatorAds.Banner.load(placementId)
Set Ad Space(not available)XMediatorAds.Banner.setAdSpace(placementId, "ad-space")

Key Differences: Banner Ads

FeatureMAX SDKXMediator SDK
Banner CreationAdd MaxAdView to layoutCall create(placementId, size)
Banner SizesVarious (e.g., BANNER, MREC)Banner.Size.Phone, Tablet, Mrec
Show BannerSet view visibleAdd view to container
Impression CallbackNot available by defaultExplicit callback per placement
Expand/Collapse EventsAvailableNot available
Listener InterfaceMaxAdViewAdListenerBannerListener
Ad IdentifiersAd Unit IDPlacement ID
Retry LogicManualAutomatic (SDK handles retries)

For more details, refer to: X3M Banner MAX Banner


Interstitial Ads

Interstitial API Method Comparison

OperationMAX SDKXMediator SDK
Set ListenerinterstitialAd.setListener(listener)XMediatorAds.Interstitial.addListener(listener)
Load InterstitialinterstitialAd.loadAd()XMediatorAds.Interstitial.load(placementId)
Check ReadyinterstitialAd.isReady()XMediatorAds.Interstitial.isReady() or isReady(placementId)
Show InterstitialinterstitialAd.show()XMediatorAds.Interstitial.show(activity, "ad-space") or .show(placementId, activity, "ad-space")
Destroy/RemoveinterstitialAd.destroy()XMediatorAds.Interstitial.removeListener(listener = interstitialListener)

Listener Method Comparison

EventMAX SDK (MaxInterstitialAdListener)XMediator SDK (InterstitialAds.Listener)
LoadedonAdLoaded(ad)onLoaded(placementId, loadResult)
ShowedonAdDisplayed(ad)onShowed(placementId)
ImpressiononAdDisplayed(ad)onImpression(placementId, impressionData)
ClickedonAdClicked(ad)onClicked(placementId)
Dismissed/HiddenonAdHidden(ad)onDismissed(placementId)
Show FailedonAdDisplayFailed(ad, error)onFailedToShow(placementId, showError)

Key Differences: Interstitial Ads

FeatureMAX SDKXMediator SDK
Impression CallbackOn displayExplicit callback per placement
Listener InterfaceMaxInterstitialAdListenerInterstitialListener
Ad IdentifiersAd Unit IDPlacement ID
Retry LogicManualAutomatic (SDK handles retries)

For more details, refer to: X3M Interstitial MAX Interstitial


Rewarded Ads

Rewarded API Method Comparison

OperationMAX SDKXMediator SDK
Set ListenerrewardedAd.setListener(listener)XMediatorAds.Rewarded.addListener(listener)
Load RewardedrewardedAd.loadAd()XMediatorAds.Rewarded.load(placementId)
Check ReadyrewardedAd.isReady()XMediatorAds.Rewarded.isReady() or isReady(placementId)
Show RewardedrewardedAd.show()XMediatorAds.Rewarded.show(activity, "ad-space") or .show(placementId, activity, "ad-space")
Destroy/RemoverewardedAd.destroy()XMediatorAds.Rewarded.removeListener(listener = rewardedListener)

Listener Method Comparison

EventMAX SDK (MaxRewardedAdListener)XMediator SDK (RewardedAds.Listener)
LoadedonAdLoaded(ad)onLoaded(placementId, loadResult)
ShowedonAdDisplayed(ad)onShowed(placementId)
ImpressiononAdDisplayed(ad)onImpression(placementId, impressionData)
ClickedonAdClicked(ad)onClicked(placementId)
Dismissed/HiddenonAdHidden(ad)onDismissed(placementId)
Show FailedonAdDisplayFailed(ad, error)onFailedToShow(placementId, showError)
Earned RewardonUserRewarded(ad, reward)onEarnedReward(placementId)

Key Differences: Rewarded Ads

FeatureMAX SDKXMediator SDK
Reward CallbackonUserRewarded(ad, reward)onEarnedReward(placementId)
Impression CallbackOn displayExplicit callback per placement
Listener InterfaceMaxRewardedAdListenerRewardedAds.Listener
Ad IdentifiersAd Unit IDPlacement ID
Retry LogicManualAutomatic (SDK handles retries)
Auto-load/Auto-retryManualAutomatic after dismiss/fail

For more details, refer to: X3M Rewarded MAX Rewarded