Migrate to Playtime SDK v4
This guide explains how to migrate from older Playtime SDK versions to SDK v4. If you're starting a new integration, follow the SDK integration guide instead.
SDK v4 introduces a unified architecture and improved performance across all supported platforms.
Who Should Migrate
You should migrate if you are using:
SDK ≤ v3.4.0 on Android, React Native, Flutter or Unity
SDK 1.9.1 on iOS or React Native
Important Notice: SDK Version Deprecation
Starting August 2026, we will deprecate and fully remove support for the following SDK versions. Failure to upgrade in time may result in build failures for your app.
Android: ≤ 3.4.0
iOS ≤ v1.9.1
What Changed in v4
1. Unified SDK Architecture
SDK v4 introduces a more consistent structure across platforms.
This means:
Similar method names
Similar initialization flow
Shared concepts
Easier cross-platform support
Unified versioning between iOS and Android
This affects:
Android
iOS
Unity
Flutter
React Native
We've deprecated Support for Cordova and Capacitor Frameworks
2. Initialization Changes
Initialization has been simplified and standardized.
Deprecated
Android / React Native / Flutter / Unity:
All init functions and their overloads have been deprecated, including:
Playtime.init(sdkHash, options)
iOS:
Playtime.initialize(sdkHash, options)
New Method
Only use this method to warm-up the SDK for faster execution of
showCatalog. Otherwise, you can skip this step:Playtime.setPlaytimeOptions(options: PlaytimeOptions)
3. Launching the Catalog
The catalog (offerwall) is now launched using a standardized method.
New Methods
Android/iOS: Playtime.showCatalog(PlaytimeOptions: options)
Flutter /React Native / Unity: Playtime.showCatalogWithOptions(PlaytimeOptions: options)
Android only:
Consider using showCatalog over getCatalogIntent, as it supports a listener for improved error handling and crash prevention. See the implementation code here.
4. Improved Validation
SDK v4 adds stricter validation.
This means:
(iOS only) Your Entitlements file must be set to
Production.Your adjoe application must use the correct App ID and correct App Bundle ID for both Sandbox and Production environments.
Migration Steps
Most integrations can migrate in these steps.
Step 1: Update SDK Version
Update to the latest SDK version. Find the latest version here.
Step 2: Update minSdkVersion Version (Android Only)
minSdkVersion Version (Android Only)We've bumped our Android and
minSdkVersionto 21+.
Step 3: Update Entitlements (iOS Only)
Entitlements (iOS Only)Make sure your Entitlements file is set to
Production.
Step 4: Update Initialization
Safely remove additional and unnecessary calls to
Playtime.initorPlaytime.initializeat app start or when foregrounding the application.
Step 5: Update Catalog Launch
Update code to use
showCatalogorshowCatalogWithOptionsEnsure that you always pass in
PlaytimeOptionswith theuserIdandSDKHashwhen callingshowCatalogorshowCatalogWithOptions.Ensure the catalog launches correctly.
When you pass a parameter like uaNetwork or placement in one request and nil in the next, the SDK retains the last set value. Ensure PlaytimeOptions is always constructed with all necessary parameters.
Step 6: Test the Integration
Check that old and new users can access the catalog without any issues.
Check that users are able to install games and get rewards.
Integration Guides
For a full example, check the implementation code in the Integration Guides:
Last updated
