React Native SDK: Complete Cross-Platform Monetization Guide

·

Offerwall Placement Strategy

React Native SDK: Complete Cross-Platform Monetization Guide

React Native SDK: The Complete Cross-Platform Monetization Guide

React Native powers thousands of monetized apps – but most of them leave money on the table by relying on WebView offerwalls or skipping rewarded monetization entirely. The Perkox React Native SDK is the only native offerwall SDK for React Native, and this guide covers the complete cross-platform monetization story.


Why React Native Monetization Was Broken

Cross-platform developers had two bad options: wrap an offerwall in a WebView (slow, fragile, 300ms+ latency) or hand-roll a native bridge for every monetization SDK (maintenance nightmare). Neither scaled. The Perkox React Native SDK fixes both with a native module that delegates directly to the Android (Kotlin) and iOS (Swift) SDKs.


The Cross-Platform Monetization Stack

One JavaScript API. Two native implementations. Six platforms total:

Platform SDK Language Status
React Native Native module JavaScript/TypeScript ✅ Only native RN offerwall SDK
Flutter MethodChannel Dart ✅ Only native Flutter offerwall SDK
Android AAR Kotlin/Java
iOS Swift Package Swift
Unity Unity package C#
Web JavaScript SDK JavaScript

React Native Integration in 4 Steps

1. Install the Native Module

# Android: add to android/app/libs/ + build.gradle
implementation files('libs/perkox-android-sdk-release.aar')

# iOS: add local Swift Package (PerkoxOfferwall.xcframework) in Xcode

2. Register the Module

// Android (Kotlin)
class PerkoxModule(reactContext: ReactApplicationContext) :
    ReactContextBaseJavaModule(reactContext) {
    override fun getName() = "PerkoxModule"
    @ReactMethod
    fun showOfferwall(appId: String, sdkKey: String, playerId: String) {
        PerkoxOfferwall.create(appId, sdkKey, playerId).launch(currentActivity)
    }
}

// iOS (Swift)
@objc(PerkoxModule)
class PerkoxModule: NSObject {
    @objc func showOfferwall(_ appId: String, sdkKey: String, playerId: String) {
        let offerwall = PerkoxOfferwall.create(appId: appId, sdkKey: sdkKey, playerId: playerId)
        DispatchQueue.main.async {
            offerwall.launch(viewController: UIApplication.shared.keyWindow?.rootViewController)
        }
    }
}

3. Call from JavaScript

import { NativeModules, NativeEventEmitter } from 'react-native';
const { PerkoxModule } = NativeModules;
const emitter = new NativeEventEmitter(PerkoxModule);

PerkoxModule.showOfferwall('APP_ID', 'SDK_KEY', 'player_123');

emitter.addListener('onReward', (reward) => {
  console.log('Reward:', reward.amount, reward.status);
});

4. Validate Server-Side

Configure your postback URL in the Perkox dashboard. Signed postbacks with four statuses – pending, approved, rejected, reversed – flow server-to-server. Credit users only from validated postbacks, never from SDK callbacks.


Cross-Platform Monetization Best Practices

  • One API surface – the create-listen-launch pattern is identical across all six SDKs
  • Stable player IDs – use your internal user ID, never device IDs or emails
  • Init at launch – the offerwall opens instantly when users tap it
  • Idempotent postbacks – deduplicate by click_id to prevent double-crediting
  • Expo note – custom native modules require expo-dev-client or bare workflow

Why Native Beats WebView for Cross-Platform

WebView offerwalls lose revenue at every step: 300ms+ startup latency, broken platform gestures, and connection fragility. Native rendering delivers the offerwall instantly – typically 2-4x faster open-to-first-offer. For monetized apps, that gap is measurable revenue.


Frequently Asked Questions

Is the React Native SDK really native?
Yes – a native module bridging to the Kotlin and Swift SDKs. No WebView anywhere in the flow.

Can I use Expo?
With expo-dev-client custom builds. Managed Expo (expo-go) cannot load custom native modules.

Does the same SDK cover Flutter too?
Perkox ships separate native SDKs for Flutter and React Native – the only platform with both.

What revenue should cross-platform apps expect?
Offerwall CPA/CPI revenue typically converts to $20-$100+ eCPM – 3-5x rewarded video.


Start Monetizing with Perkox

Register as a Perkox publisher and integrate the native React Native offerwall SDK. Read the documentation

Perkox provides rewarded monetization infrastructure – SDKs, tracking, analytics, and reward validation – for mobile apps and games across Android, iOS, Unity, Flutter, React Native, and Web.

Related Articles

Start monetizing your app with Perkox.

One SDK. Android, iOS, React Native, Flutter, Unity. A premium reward layer for your non-paying users — live in about 10 minutes.

Related articles