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.
