Skip to content

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.

SDKs for every platform

All SDKs are fully open-source, consistently designed, and documented.

Kotlin-first SDK for Android apps targeting API 21+.

  • Compose & View support
  • Kotlin coroutines
  • ProGuard rules included

Lean-back optimized SDK for Android TV and Fire TV.

  • D-pad navigation
  • Large screen layouts
  • Same Kotlin API

Swift SDK for iOS 14+ with full SwiftUI support.

  • Swift async/await
  • SwiftUI views
  • Privacy manifests included

Native tvOS SDK for Apple TV apps.

  • Focus engine support
  • Top Shelf integration
  • Same Swift API

C# plugin for Unity 2021+ with native bridge.

  • IL2CPP support
  • Editor testing
  • Auto-dependency resolution

Web (JS/TS)

sdk/web

TypeScript 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
// 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
// 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
// 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
// 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'));

Certified playback matrix

20+ platforms and players tested and documented. Know exactly what works before you ship.

6
SDK platforms
iOS, tvOS, Android, Android TV, Unity, Web
8+
Video players
hls.js, dash.js, ExoPlayer, AVPlayer, Video.js
4
Stream formats
HLS, DASH, TS, CMAF

Ready to integrate?

Start with our GitHub repo or reach out if you need help.