Skip to main content
Breaking Changes in v4:
  • presentUpsell() renamed to presentPaywall() with new signature
  • hideUpsell() renamed to hidePaywall()
  • hideAllUpsells() renamed to hideAllPaywalls()
  • Initialize parameters moved to Helium.identity and Helium.config namespaces
  • HeliumFallbackConfig removed - use Helium.config properties instead
What’s New:
  • Simplified initialize() - just pass context and API key
  • Automatic PlayStorePaywallDelegate setup if not explicitly configured
  • Cleaner namespaced APIs: Helium.identity, Helium.config
  • New PaywallPresentationConfig consolidates presentation options
  • New PaywallNotShownReason for handling paywall failures

Installation Update

Update your version constraint to 4.x:
Then sync your Gradle files.

Initialize Migration

The biggest change in v4 is the simplified initialization. Configuration that was previously passed to initialize() is now set on dedicated namespaces beforehand. v0 (many parameters):
v4 (simplified):
Set identity and configuration values before calling initialize() for best results.
See the quickstart for more details.

presentUpsell to presentPaywall

The method has been renamed and the signature has changed significantly. Parameters are now consolidated into PaywallPresentationConfig.

Full Example with All Parameters

v4:

Method Renames

API Namespace Migration

Helium.identity

Helium.config

Fallback Changes

v4 removes HeliumFallbackConfig and simplifies fallback configuration.

What’s Changed

  • No more HeliumFallbackConfig class - Use Helium.config properties directly
  • No more fallback views - Use fallback bundles exclusively
  • No more per-trigger config - Use global settings only
  • Automatic detection - SDK auto-detects helium-fallbacks.json in your assets

Migration

v0:
v4:

Configuration Property Mapping

Download your fallbacks from the Helium dashboard. See the Fallback Bundle Guide for details.

New Classes

PaywallPresentationConfig

Consolidates all paywall presentation options into a single data class:

PaywallNotShownReason

Sealed class for handling paywall presentation failures:

Quick Migration Checklist

Use this checklist to ensure you’ve covered all migration steps:
  • Update SDK to 4.x
  • Move user ID/traits to Helium.identity.* before initialize()
  • Move delegate to Helium.config.* before initialize() (or let SDK auto-create)
  • Replace presentUpsell() with presentPaywall() and update parameters
  • Replace hideUpsell() with hidePaywall()
  • Replace hideAllUpsells() with hideAllPaywalls()
  • Remove HeliumFallbackConfig usage, migrate to Helium.config.* properties
  • Set up fallback bundle (download from dashboard, add as helium-fallbacks.json)
  • Add onPaywallNotShown handler to presentPaywall() calls
  • Test paywall presentation and purchases

Need Help?