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

triangle-exclamation

Important Notice: SDK Version Deprecation


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

circle-exclamation

2. Initialization Changes

Initialization has been simplified and standardized.

Before

Initialization often required:

  • Multiple calls at app start and when foregrounding the app

  • Conditional initialization before launching the catalog

  • Manual state checks

Now

Initialization is:

  • Validated by the SDK; no need to use isInitialized to check the SDK status

  • Happens implicitly when PlaytimeOptions is used with showCatalog. No explicit initialization required.

  • More consistent between platforms

circle-exclamation

Deprecated

circle-check

New Method


3. Launching the Catalog

The catalog (offerwall) is now launched using a standardized method.

Before

  • Multi-step process

  • Dependent on an explicit initialization

Now

  • Set-up reduced to two steps

  • No explicit initialization required; initialization occurs implicitly when PlaytimeOptions is used with showCatalog.

circle-check

New Methods

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)

  • We've bumped our Android and minSdkVersion to 21+.

Step 3: Update Entitlements (iOS Only)

  • Make sure your Entitlements file is set to Production .

Step 4: Update Initialization

  • Safely remove additional and unnecessary calls to Playtime.init or Playtime.initialize at app start or when foregrounding the application.

Step 5: Update Catalog Launch

  • Update code to use showCatalog or showCatalogWithOptions

  • Ensure that you always pass in PlaytimeOptions with the userId and SDKHash when calling showCatalog or showCatalogWithOptions .

  • Ensure the catalog launches correctly.

circle-exclamation

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