How lexilabs-app/basic-ads works
Basic-Ads is a Kotlin Multiplatform AdMob integration for Android and iOS. The principal flow is an app initializing the library, composing or preloading an ad, and receiving readiness and display callbacks. The graph keeps consent, native ads, and the separate ad formats visible alongside that flow. Platform handler behavior is sampled for selected rewarded and native ads; other links reflect README-described capabilities and the source tree, so uncertain internal call wiring is omitted.
Main entry points: basic/ads Android ad handlers · basic/ads iOS ad handlers · AdState.kt Ad readiness state · BasicAds.kt Ads initialization
Components 19
Shared API
- Ads initialization
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/BasicAds.kt - Shared ad API
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads - Ad readiness state
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/AdState.kt
Compose Ads
- Banner composables
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/BannerAd.kt - Remember ad state
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/RememberBannerAd.kt - Fullscreen composables
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/RewardedAd.kt - Fullscreen preload
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/RememberRewardedAd.kt
Platform Handlers
- Android ad handlers
basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads - iOS ad handlers
basic-ads/src/iosMain/kotlin/app/lexilabs/basic/ads
Native Ads
- Native ad UI
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/NativeAd.kt - Native ad handler
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdHandler.kt - Native ad data
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdData.kt - Platform native loaders
basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdHandler.kt
Consent
- Consent composables
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/ConsentPopup.kt - Remember consent
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/composable/RememberConsent.kt - Consent API
basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/Consent.kt
Other components
- Host app
- Google Mobile Ads
- User Messaging Platform
Connections 30
- Host app → Ads initialization: initializes
- Host app → Banner composables: composes
- Host app → Remember ad state: preloads
- Host app → Fullscreen composables: composes
- Host app → Fullscreen preload: preloads
- Host app → Consent composables: requests consent
- Host app → Native ad UI: composes
- Ads initialization → Android ad handlers: initializes
- Ads initialization → iOS ad handlers: initializes
- Banner composables → Android ad handlers: displays via
- Banner composables → iOS ad handlers: displays via
- Remember ad state → Android ad handlers: loads via
- Remember ad state → iOS ad handlers: loads via
- Fullscreen composables → Android ad handlers: displays via
- Fullscreen composables → iOS ad handlers: displays via
- Fullscreen preload → Android ad handlers: loads via
- Fullscreen preload → iOS ad handlers: loads via
- Android ad handlers → Google Mobile Ads: loads and shows
- iOS ad handlers → Google Mobile Ads: loads and shows
- Android ad handlers → Ad readiness state: updates
- iOS ad handlers → Ad readiness state: updates
- Native ad UI → Native ad handler: renders through
- Native ad handler → Platform native loaders: loads via
- Platform native loaders → Google Mobile Ads: requests ads
- Platform native loaders → Native ad data: creates
- Native ad handler → Ad readiness state: updates
- Consent composables → Remember consent: uses
- Remember consent → Consent API: accesses
- Consent API → User Messaging Platform: requests consent
- Shared ad API → Ad readiness state: exposes