Migration Guide from MAX to XMediator
This guide will help you migrate your Unity project from AppLovin MAX SDK to XMediator SDK for Banner, Interstitial, and Rewarded ads. It covers API method comparisons, key differences, and event/listener mappings for each ad format.
For official documentation:
Banner Ads
API Method Comparison
Operation | MAX | XMediator |
---|---|---|
Create Banner | MaxSdk.CreateBanner("<ad-unit-id>", MaxSdkBase.BannerPosition.BottomCenter); | XMediatorAds.Banner.Create("<placement-id>", size, position) |
Show Banner | MaxSdk.ShowBanner("<ad-unit-id>"); | XMediatorAds.Banner.Show("<placement-id>") |
Hide Banner | MaxSdk.HideBanner("<ad-unit-id>"); | XMediatorAds.Banner.Hide("<placement-id>") |
Destroy Banner | MaxSdk.DestroyBanner("<ad-unit-id>"); | Remove listener or view |
Set Ad Space | (Not available) | XMediatorAds.Banner.SetAdSpace("<placement-id>", "banner-ad-space") |
Set Listener | MaxSdkCallbacks.Banner.OnAdLoadedEvent += ... | XMediatorAds.Banner.OnLoaded += (placementId, result) => {} |
Key Differences
Feature | MAX | XMediator SDK |
---|---|---|
Ad Unit ID | Yes | Placement ID |
Ad Space | No | Yes (for analytics/tracking) |
Auto Refresh | Yes (configurable) | Yes (admin tool, default enabled) |
Auto Retry | No (manual) | Yes (exponential backoff) |
Manual Refresh | Yes | Yes |
Destroy/Remove | Explicit | Remove listener or view |
Callback Comparison
Event | MAX | XMediator |
---|---|---|
Loaded | MaxSdkCallbacks.Banner.OnAdLoadedEvent += OnBannerAdLoadedEvent; | OnLoaded (placementId, result) => {} |
Load Failed | MaxSdkCallbacks.Banner.OnAdLoadFailedEvent += OnBannerAdLoadFailedEvent; | No explicit, handled by SDK |
Clicked | MaxSdkCallbacks.Banner.OnAdClickedEvent += OnBannerAdClickedEvent; | OnClicked += placementId => {} |
Displayed | MaxSdkCallbacks.Banner.OnAdDisplayedEvent += OnBannerAdDisplayedEvent; | OnImpression += (placementId, impressionData) => {} |
Hidden | MaxSdkCallbacks.Banner.OnAdHiddenEvent += OnBannerAdHiddenEvent; | OnHide/Hide |
For official documentation:
Interstitial Ads
API Method Comparison
Operation | MAX | XMediator |
---|---|---|
Load Interstitial | MaxSdk.LoadInterstitial("<ad-unit-id>"); | XMediatorAds.Interstitial.Load("<placement-id>") |
Show Interstitial | MaxSdk.ShowInterstitial("<ad-unit-id>"); | XMediatorAds.Interstitial.ShowFromAdSpace("<placement-id>") or ShowFromAdSpace("<placement-id>", "interstitial-ad-space") |
Is Ready | MaxSdk.IsInterstitialReady("<ad-unit-id>"); | XMediatorAds.Interstitial.IsReady() or IsReady("<placement-id>") |
Set Listener | MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += ... | XMediatorAds.Interstitial.OnLoaded += (placementId, result) => {} |
Key Differences
Feature | MAX | XMediator SDK |
---|---|---|
Auto Load | No | Yes (after dismiss/fail) |
Auto Retry | No (manual) | Yes (exponential backoff) |
Ad Space | No | Yes |
Destroy/Remove | Explicit | Remove listener |
Callback Comparison
Event | MAX (MaxSdkCallbacks.Interstitial ) | XMediator (XMediatorAds.Interstitial ) |
---|---|---|
Loaded | MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialAdLoadedEvent; | XMediatorAds.Interstitial.OnLoaded += (placementId, result) => {} |
Load Failed | MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialAdLoadFailedEvent; | No explicit, handled by SDK |
Displayed | MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialAdDisplayedEvent; | XMediatorAds.Interstitial.OnShowed += (placementId) => {} |
Clicked | MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialAdClickedEvent; | XMediatorAds.Interstitial.OnClicked += placementId => {} |
Hidden | MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialAdHiddenEvent; | XMediatorAds.Interstitial.OnDismissed += placementId => {} |
Failed to Show | MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdDisplayFailedEvent; | XMediatorAds.Interstitial.OnFailedToShow += (placementId, error) => {} |
Impression | OnAdDisplayedEvent | OnImpression += (placementId, impressionData) => |
For official documentation:
Rewarded Ads
API Method Comparison
Operation | MAX | XMediator |
---|---|---|
Load Rewarded | MaxSdk.LoadRewardedAd("<ad-unit-id>"); | XMediatorAds.Rewarded.Load(placementId) |
Show Rewarded | MaxSdk.ShowRewardedAd("<ad-unit-id>"); | XMediatorAds.Rewarded.Show(placementId) or ShowFromAdSpace(placementId, "rewarded-ad-space") |
Is Ready | MaxSdk.IsRewardedAdReady("<ad-unit-id>"); | XMediatorAds.Rewarded.IsReady() or IsReady(placementId) |
Set Listener | MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += ... | XMediatorAds.Rewarded.OnLoaded += (placementId, result) => {} |
Key Differences
Feature | MAX | XMediator |
---|---|---|
Reward Callback | OnAdReceivedRewardEvent | OnEarnedReward |
Auto Load | No | Yes (after dismiss/fail) |
Auto Retry | No (manual) | Yes (exponential backoff) |
Ad Space | No | Yes |
Destroy/Remove | Explicit | Remove listener |
Callback Comparison
Event | MAX | XMediator |
---|---|---|
Loaded | MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent; | XMediatorAds.Rewarded.OnLoaded += (placementId, result) => {} |
Load Failed | MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent; | No explicit, handled by SDK |
Displayed | MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent; | XMediatorAds.Rewarded.OnShowed += placementId => {} |
Clicked | MaxSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardedAdClickedEvent; | XMediatorAds.Rewarded.OnClicked += (placementId) => {} |
Hidden | MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent; | XMediatorAds.Rewarded.OnDismissed += (placementId) => {} |
Failed to Show | MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdDisplayFailedEvent; | XMediatorAds.Rewarded.OnFailedToShow += (placementId, error) => {} |
Impression | MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent; | XMediatorAds.Rewarded.OnImpression += (placementId, impressionData) => {} |
Rewarded | MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent; | XMediatorAds.Rewarded.OnEarnedReward += placementId => {} |
For official documentation:
Additional Notes
- XMediator SDK auto-loads and retries ads after dismiss/fail (no manual retry logic needed).
- Ad Space is available for analytics/tracking in XMediator.
- Remove listeners to clean up ads in XMediator; explicit destroy is not needed.
- Use the official documentation for the latest updates and best practices.