RapidoReach
Build a working reward flow

React Native offerwall

Connect a native rewarded survey wall to your React Native app with the published JavaScript wrapper and native platform dependencies.

React Native wrapper 1.0.9 · Guide reviewed October 15, 2026

RapidoReach public web playground showing sample survey cardsPublic web playground · Sample inventory · Native presentation varies

From install to the first open.

Place the entry point in your rewards screen. Await initialization, check availability and remove reward listeners when the screen unmounts.

1. Install the released package

Run npm install @rapidoreachsdk/react-native-rapidoreach@1.0.9, then run pod install from ios for an iOS build. Rebuild the native app after installation.

Package and source reference

2. Configure your app

Use a native Android or iOS build with the package’s native dependencies. A JavaScript reload alone does not install the native module.

Create a publisher app in the dashboard and use its SDK token with a stable, non-personal app user ID. The web UID signing App Key stays on your backend.

React Native integration reference

3. Connect your opt-in entry point

Replace the placeholders in your own app. Catch SDK errors in the calling screen, handle unavailable inventory and refresh balances from your server.

JavaScript / integration example
import RapidoReach, { RapidoReachEventEmitter }
  from '@rapidoreachsdk/react-native-rapidoreach';

export async function initializeRewards(refreshBalance) {
  await RapidoReach.initWithApiKeyAndUserId(
    'YOUR_API_TOKEN', 'YOUR_USER_ID'
  );
  const listener = RapidoReachEventEmitter.addListener(
    'onReward', () => refreshBalance()
  );
  return () => listener.remove(); // Call on unmount.
}

export function openRewards(showEmptyState) {
  RapidoReach.isSurveyAvailable((available) => {
    if (available) RapidoReach.showRewardCenter();
    else showEmptyState();
  });
}

Inspect the wall. Try the return flow.

These are screenshots of the public web playground, captured October 15, 2026. They show sample survey cards shared as a visual reference, not screenshots of a React Native native build or a guarantee of inventory.

Mobile layout of the public web demo with four sample survey cards
Mobile web demo. Open image to inspect the full capture.
React Native reward journeySimulation

This local interaction illustrates presentation states. It does not call the SDK, load live surveys or issue rewards.

Ready to explore

A survey is available in this simulated placement.

Open the public widget playground ↗

The playground previews layout and themes. To validate React Native SDK behavior, use the package example and your own development app on a supported device.

Get the React Native package / example

Make the first reward traceable.

Set up a test user

Use a development publisher app. In the app’s Test users section, add the raw app user ID exactly as your SDK sends it and enable Test mode for that test user. For web, generate the signed UID from that same raw user ID.

The test survey helps verify the journey. Keep test activity separate from live earnings.

Open the integration testing guide

Verify your server ledger

Configure the app’s server callback and send a Test Callback from the dashboard. Verify the documented hash, attribute the transaction to the correct user and store it once. Repeat the same transaction to check duplicate handling.

Client reward notifications should refresh UI. They should not create a second credit.

Callback verification reference

React Native acceptance checklist

  1. Install and rebuild each native target; test a fresh install rather than only a hot reload.
  2. Navigate away and back repeatedly to detect duplicate event subscriptions.
  3. Refresh the server balance after a reward event and after returning from the wall.
  4. Test loading, no inventory, offline, invalid credentials and retry. Reopen for the same user and verify attribution stays consistent.
  5. Confirm your backend handles duplicate and invalid callback hashes, then review reversal handling before enabling live traffic.

Find the failing boundary.

Native module is unavailable

Install the package, install iOS pods where applicable and rebuild the native binary. Verify the module is linked in your actual app target.

CocoaPods cannot find RapidoReach 1.0.9

Refresh the CocoaPods spec repository with pod repo update and run pod install again. Open the workspace rather than the project.

Repeated reward notifications

Remove event listeners on unmount. Refresh from the server ledger instead of adding currency for every client event.

The user completed a survey but the balance is unchanged

Trace the same app user ID and transaction through your callback receiver and reward ledger. Check hash verification, duplicate detection and currency conversion. Use redacted diagnostics when contacting support.

Build your react native offerwall pilot.

Create a publisher account, register your app and connect the first test user. Review the reward flow before opening the placement to live users.

Choose another integration path.