Migration Guide from LevelPlay to XMediator (Unity)
This guide will help you migrate your Unity project from ironSource LevelPlay 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.
Initialize the SDK Comparison
Operation | LevelPlay | XMediator |
---|---|---|
SDK Initialization | LevelPlay.Init(appKey,legacyAdFormats, "UserId"); | XMediatorAds.startWith(appKey:"appKey"initSettings:InitSettings(...)) |
Set User ID | UserProperties(userId: "user-id") | |
Set Test Mode | InitSettings(test: true) | |
Verbose Logging | InitSettings(verbose: true) | |
Set Extra Params | InitSettings(userProperties: UserProperties(customProperties: ...)) |
For official documentation:
Banner Ads
API Method Comparison
Operation | LevelPlay | XMediator |
---|---|---|
Create Banner | bannerAd = new LevelPlayBannerAd(adUnitId, size, position); | XMediatorAds.Banner.Create("<placement-id>", size, position) |
Size | size = LevelPlayAdSize. | size = BannerAds.Size. |
Position | position = LevelPlayBannerPosition. | position = BannerAds.Position. |
Load Banner | bannerAd.LoadAd(); | Load start when banner is created, optionally manually refresh banner Ad calling XMediatorAds.Banner.Load("<placement-id>"); |
Show Banner | bannerAd.ShowAd(); | XMediatorAds.Banner.Show("<placement-id>") |
Hide Banner | bannerAd.HideAd(); | XMediatorAds.Banner.Hide("<placement-id>") |
Destroy Banner | bannerAd.DestroyAd(); | Remove listener or view |
Set Ad Space | Not available | XMediatorAds.Banner.SetAdSpace("<placement-id>", "banner-ad-space") |
Key Differences
Feature | LevelPlay | XMediator |
---|---|---|
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 | LevelPlay | XMediator |
---|---|---|
Loaded | bannerAd.OnAdLoaded += BannerOnAdLoadedEvent; | XMediatorAds.Banner.OnLoaded += (placementId, result) => {} |
Load Failed | bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent; | No explicit, handled by SDK |
Clicked | bannerAd.OnAdClicked += BannerOnAdClickedEvent; | XMediatorAds.Banner.OnClicked += placementId => {} |
Displayed | bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent; | XMediatorAds.Banner.OnImpression += (placementId, impressionData) => {} |
Hidden | bannerAd.OnAdHidden += BannerOnAdHiddenEvent; |
For official documentation:
Interstitial Ads
API Method Comparison
Operation | LevelPlay | XMediator |
---|---|---|
Create | interstitialAd = new LevelPlayInterstitialAd("<ad-unit-id>"); | |
Load | interstitialAd.loadAd() | XMediatorAds.Interstitial.Load("<placement-id>") |
Show | interstitialAd.showAd() or interstitialAd.ShowAd(placementName: "<placement-name>") | XMediatorAds.Interstitial.ShowFromAdSpace("<placement-id>") or ShowFromAdSpace("<placement-id>", "interstitial-ad-space") |
Is Ready | interstitialAd.IsAdReady() | XMediatorAds.Interstitial.IsReady() or IsReady("<placement-id>") |
Key Differences
Feature | LevelPlay | XMediator |
---|---|---|
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 | LevelPlay | XMediator |
---|---|---|
Loaded | interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent; | XMediatorAds.Interstitial.OnLoaded += (placementId, result) => {} |
Load Failed | interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent; | No explicit, handled by SDK |
Displayed | interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent; | XMediatorAds.Interstitial.OnShowed += placementId => {} |
Clicked | interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent; | XMediatorAds.Interstitial.OnClicked += placementId => {} |
Hidden | interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent; | XMediatorAds.Interstitial.OnDismissed += placementId => {} |
Failed to Show | interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent; | XMediatorAds.Interstitial.OnFailedToShow += (placementId, error) => {} |
Impression | OnAdDisplayedEvent | XMediatorAds.Interstitial.OnImpression += (placementId, impressionData) => {} |
For official documentation:
Rewarded Ads
API Method Comparison
Operation | LevelPlay | XMediator |
---|---|---|
Create | LevelPlayRewardedAd rewardedAd = new LevelPlayRewardedAd("<ad-unit-id>"); | |
Load | rewardedAd.loadAd() | XMediatorAds.Rewarded.Load(placementId) |
Show | rewardedAd.showAd() or rewardedAd.ShowAd(placementName: "<placement-name>") | XMediatorAds.Rewarded.Show(placementId) or ShowFromAdSpace(placementId, "rewarded-ad-space") |
Is Ready | rewardedAd.IsAdReady() | XMediatorAds.Rewarded.IsReady() or IsReady(placementId) |
Key Differences
Feature | LevelPlay | 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 | LevelPlay | XMediator |
---|---|---|
Loaded | rewardedAd.OnAdLoaded += RewardedOnAdLoadedEvent; | XMediatorAds.Rewarded.OnLoaded += (placementId, result) => {} |
Load Failed | rewardedAd.OnAdLoadFailed += RewardedOnAdLoadFailedEvent; | No explicit, handled by SDK |
Displayed | rewardedAd.OnAdDisplayed += RewardedOnAdDisplayedEvent; | XMediatorAds.Rewarded.OnShowed += (placementId) => {} |
Clicked | rewardedAd.OnAdClicked += RewardedOnAdClickedEvent | XMediatorAds.Rewarded.OnClicked += (placementId) => {} |
Hidden | rewardedAd.OnAdClose += RewardedOnAdCloseEvent | XMediatorAds.Rewarded.OnDismissed += (placementId) => {} |
Failed to Show | rewardedAd.OnAdDisplayFailed += RewardedOnAdDisplayFailedEvent | XMediatorAds.Rewarded.OnFailedToShow += (placementId, error) => {} |
Impression | rewardedAd.OnAdDisplayedEvent += RewardedOnAdImpressionEvent | XMediatorAds.Rewarded.OnImpression += (placementId, impressionData) => {} |
Rewarded | rewardedAd.OnRewarded += RewardedOnAdRewardedEvent | 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.