React Native SDK 12.0.2 upgrades the Android core SDK and the optional GAM,
VAST and IMA modules to native version 12.0.2. iOS core, GAM and VAST
use native version 11.7.1. IMA remains Android-only.
Use Kotlin 2.1.0 and a matching Kotlin Compose compiler plugin. Android
dependencies use Compose BOM 2026.06.01. Update any host overrides that
still select Kotlin 2.0.x or older Storyteller artifacts.
For a React Native host with a Groovy root android/build.gradle:
Keep the rest of your React Native build configuration. If your app directly
uses Compose, apply org.jetbrains.kotlin.plugin.compose at the same version
as Kotlin and align its Compose dependencies through BOM 2026.06.01. The
Storyteller core and GAM packages already configure their own Compose plugin.
Do not add an old kotlinCompilerExtensionVersion workaround.
The React Native minimum Android API remains 24. The repository consumer
baseline uses React Native 0.79.5, compile SDK 35, AGP 8.8.2, and
Gradle 8.10.2 or 8.13. Use a JDK supported by that Gradle version; CI uses
JDK 17. Preserve your existing target SDK policy independently of the
minimum SDK and compile SDK requirements.
All installed Android Storyteller artifact families must resolve to 12.0.2:
React Native package
Native Maven artifact
Core
com.getstoryteller:sdk:12.0.2
GAM
com.getstoryteller:ads:12.0.2
VAST
com.getstoryteller:ads-vast:12.0.2
IMA
com.getstoryteller:ads-ima:12.0.2
Use mavenCentral() and google() in your repositories. The GAM integration
continues to use classic Google Mobile Ads 23.4.0; no migration to
ads24 or adsnextgen is required. IMA remains Android-only. Optional ad
modules can coexist; retain your current module setup and provider ordering.
Remove old root sdkVersion overrides or update them to 12.0.2. Inspect the
resolved graph from your Android project with:
setupVASTModule and setupGAMVASTModule now preserve an existing GAM or
AdMob module. If your app relied on VAST setup removing the Google ads module,
call disableGoogleAdsModule() before configuring VAST. See
Ads for module setup and removal examples.
Rebuild your app after updating native dependencies. Check Stories, Search,
full-screen and Embedded Clips, callbacks, and your installed ad modules.
Include Clips scrubbing and opening links because the Android upgrade also
changes the underlying Compose stack. See Ads,
Themes and Analytics for optional API additions.
{"slug": "getting-started-migration-v11-to-v12", "page_title": "Migrating from v11 to v12", "page_url": "getting-started/migration-v11-to-v12/", "canonical_url": "/react-native/getting-started/migration-v11-to-v12/", "markdown": "# Migrating from v11 to v12\n\nReact Native SDK 12.0.2 upgrades the Android core SDK and the optional GAM,\nVAST and IMA modules to native version **12.0.2**. iOS core, GAM and VAST\nuse native version **11.7.1**. IMA remains Android-only.\n\n## Android build configuration\n\nUse Kotlin **2.1.0** and a matching Kotlin Compose compiler plugin. Android\ndependencies use Compose BOM **2026.06.01**. Update any host overrides that\nstill select Kotlin 2.0.x or older Storyteller artifacts.\n\nFor a React Native host with a Groovy root `android/build.gradle`:\n\n```groovy\nbuildscript {\n ext {\n kotlinVersion = \"2.1.0\"\n minSdkVersion = 24\n compileSdkVersion = 35\n }\n dependencies {\n classpath(\"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion\")\n }\n}\n```\n\nKeep the rest of your React Native build configuration. If your app directly\nuses Compose, apply `org.jetbrains.kotlin.plugin.compose` at the same version\nas Kotlin and align its Compose dependencies through BOM `2026.06.01`. The\nStoryteller core and GAM packages already configure their own Compose plugin.\nDo not add an old `kotlinCompilerExtensionVersion` workaround.\n\nThe React Native minimum Android API remains **24**. The repository consumer\nbaseline uses React Native **0.79.5**, compile SDK **35**, AGP **8.8.2**, and\nGradle **8.10.2 or 8.13**. Use a JDK supported by that Gradle version; CI uses\nJDK **17**. Preserve your existing target SDK policy independently of the\nminimum SDK and compile SDK requirements.\n\n## Native SDK and ads versions\n\nAll installed Android Storyteller artifact families must resolve to 12.0.2:\n\n| React Native package | Native Maven artifact |\n| --- | --- |\n| Core | `com.getstoryteller:sdk:12.0.2` |\n| GAM | `com.getstoryteller:ads:12.0.2` |\n| VAST | `com.getstoryteller:ads-vast:12.0.2` |\n| IMA | `com.getstoryteller:ads-ima:12.0.2` |\n\nUse `mavenCentral()` and `google()` in your repositories. The GAM integration\ncontinues to use classic Google Mobile Ads **23.4.0**; no migration to\n`ads24` or `adsnextgen` is required. IMA remains Android-only. Optional ad\nmodules can coexist; retain your current module setup and provider ordering.\n\nRemove old root `sdkVersion` overrides or update them to 12.0.2. Inspect the\nresolved graph from your Android project with:\n\n```bash\n./gradlew :app:dependencyInsight \\\n --configuration debugRuntimeClasspath \\\n --dependency com.getstoryteller\n```\n\n## iOS VAST setup\n\n`setupVASTModule` and `setupGAMVASTModule` now preserve an existing GAM or\nAdMob module. If your app relied on VAST setup removing the Google ads module,\ncall `disableGoogleAdsModule()` before configuring VAST. See\n[Ads](../Ads.md) for module setup and removal examples.\n\n## Validate the upgrade\n\nRebuild your app after updating native dependencies. Check Stories, Search,\nfull-screen and Embedded Clips, callbacks, and your installed ad modules.\nInclude Clips scrubbing and opening links because the Android upgrade also\nchanges the underlying Compose stack. See [Ads](../Ads.md),\n[Themes](../Themes.md) and [Analytics](../Analytics.md) for optional API additions.\n", "copy_markdown_include_header": false, "base_path": "", "ai_dir": "ai", "missing_payload_behavior": "empty"}