SDKs built for ad teams who ship.
Integrate once. Bring your own networks. Keep full control.
Naming: Bel Consulting OÜ is the legal entity. ApexMediation is the platform and SDK namespace.
Quickstarts
Get up and running in minutes with platform-specific guides.
SDKs for every platform
All SDKs are fully open-source, consistently designed, and documented.
Android
sdk/core/androidKotlin-first SDK for Android apps targeting API 21+.
- Compose & View support
- Kotlin coroutines
- ProGuard rules included
Android TV
sdk/core/androidLean-back optimized SDK for Android TV and Fire TV.
- D-pad navigation
- Large screen layouts
- Same Kotlin API
iOS
sdk/core/iosSwift SDK for iOS 14+ with full SwiftUI support.
- Swift async/await
- SwiftUI views
- Privacy manifests included
tvOS
sdk/core/iosNative tvOS SDK for Apple TV apps.
- Focus engine support
- Top Shelf integration
- Same Swift API
Unity
sdk/core/unityC# plugin for Unity 2021+ with native bridge.
- IL2CPP support
- Editor testing
- Auto-dependency resolution
Web (JS/TS)
sdk/webTypeScript SDK for web apps and PWAs.
- Tree-shakeable
- Zero dependencies
- Server-side rendering safe
Quick start
Platform-specific examples you can paste into a test app in minutes.
// Android (Kotlin)
ApexMediation.initialize(
context = this,
appId = "your-app-id",
config = ApexConfig.Builder()
.enableTestMode(BuildConfig.DEBUG)
.setLogLevel(LogLevel.DEBUG)
.build()
)
// Load and show an interstitial
val interstitial = ApexInterstitial("zone-id")
interstitial.load()
interstitial.show(activity)// iOS (Swift)
await ApexMediation.shared.initialize(
appId: "your-app-id",
config: ApexConfig(
testMode: ProcessInfo.isDebug,
logLevel: .debug
)
)
// Load and show an interstitial
let interstitial = ApexInterstitial(zoneId: "zone-id")
try await interstitial.load()
interstitial.show(from: self)// Unity (C#)
ApexMediation.Initialize(
appId: "your-app-id",
config: new ApexConfig {
TestMode = Debug.isDebugBuild,
LogLevel = ApexLogLevel.Debug
}
);
// Load and show an interstitial
var interstitial = new ApexInterstitial("zone-id");
await interstitial.LoadAsync();
interstitial.Show();// Web (TypeScript)
await ApexMediation.initialize({
appId: 'your-app-id',
config: {
testMode: process.env.NODE_ENV === 'development',
logLevel: 'debug',
},
});
// Load and show a banner
const banner = new ApexBanner('zone-id');
await banner.load();
banner.show(document.getElementById('ad-container'));Developer tools
Everything you need to build, test, and debug your integration.
Certified playback matrix
20+ platforms and players tested and documented. Know exactly what works before you ship.
Ready to integrate?
Start with our GitHub repo or reach out if you need help.