IronSource Network Integration in Mobile Application
IronSource in 2023 became part of Unity under brand Unity LevelPlay — but SDK, documentation and adapters still live under old name in most production projects. If you are connecting it for the first time or migrating from old com.ironsource.sdk, it is important to understand that LevelPlay architecture is built around single IronSource.init() with sequential initialization, not parallel — and violating this order gives IronSourceError code 510 on Android at first ad request.
Typical Connection Problems
Most common support question: "Banner loads, but rewarded doesn't show." Reason almost always the same — didn't wait for onInitializationComplete event before calling IronSource.loadRewardedVideo(). SDK is asynchronous, initialization on weak devices takes 1.5–3 seconds, and if you load it right after Application.onCreate(), AdMob or Meta adapter doesn't have time to register.
On iOS picture is different: ISInitializationDelegate works quickly, but ISRewardedVideoDelegate must be attached before IronSource.init(), otherwise you miss first rewardedVideoHasChangedAvailability(true) and get blank screen where ad should be.
Another pitfall — GDPR and ATT. IronSource requires passing consent before initialization via IronSource.setMetaData("do_not_sell", "true") and IronSource.setConsent(true/false). If consent screen is shown after init(), some networks in mediation get wrong flag and simply don't return ads — without any errors in logs.
How We Connect IronSource
Process starts with audit of current state: which ad SDKs already exist in app, are there conflicts with com.google.android.gms:play-services-ads or Meta Audience Network by versions. IronSource requires strict adapter versions — mismatch by minor version breaks mediation silently.
Stack for Android:
implementation 'com.ironsource.sdk:mediationsdk:7.9.0'
implementation 'com.ironsource.adapters:admobadapter:4.3.40'
implementation 'com.ironsource.adapters:metaadapter:4.3.43'
Add IronSourceInitListener to Application class, not to Activity — allows reusing already initialized instance when changing screens. For Unity projects approach is different: IronSourceUnityWrapper.CallStaticAndroid blocks main thread with incorrect threading model setup.
Server verification of rewarded is implemented via Rewarded Video Server-Side Verification (SSV): IronSource makes GET-request to your endpoint with hmac-sha256 signature, you verify and award. Without SSV rewards can be hacked through Charles Proxy in 10 minutes — real attack vector in games.
Analytics connected via ISImpressionDataDelegate: each impression passes revenue, ad_unit, country, instance_name — enough to build eCPM dashboard by networks in real time.
Stages of Work
- Audit of dependencies and SDK versions in project
- App registration in Unity LevelPlay console, get App Key
- Ad block setup (placement ID) for each format
- SDK integration with correct initialization order and consent flags
- Connection of needed network adapters (AdMob, Meta, Applovin, Unity Ads)
- SSV endpoint implementation for rewarded (if needed)
- Testing on real devices with enabled test device IDs
- Monitoring fill rate and eCPM after publication
Timelines
Basic integration with one ad format — 1–2 days. Full connection with mediation, SSV and analytics — 2–3 days. Cost calculated individually after analyzing current project stack.







