Start integrating RapidoReach
Choose the path that matches your product. You can add an SDK and open a test offerwall in a few minutes once your publisher app is ready. Approval, live inventory, and reward callback setup take additional time.
Before you start
- Create a publisher account and add a survey app or website in the dashboard.
- Copy the API token for a mobile SDK, or the App ID and App Key for a web iframe. Use a stable user ID from your own system for each signed-in user.
- Keep the web UID signing key and callback secret on your server. Never put them in HTML, browser JavaScript, or a public repository. Follow the platform guide for the mobile SDK API token.
Pick an integration
| Platform | Install or embed | Continue |
|---|---|---|
| Android | implementation "com.rapidoreach:cbofferwallsdk:1.1.0" with mavenCentral() | Android setup |
| iOS | pod 'RapidoReach', '~> 1.0.9' | iOS setup |
| Flutter | flutter pub add rapidoreach | Flutter setup |
| React Native | npm install @rapidoreachsdk/react-native-rapidoreach | React Native setup |
| Unity | Import the current Unity package and native plugins | Unity setup |
| Web | Create a signed UID on your server, then embed /ofw/ | Web iframe setup |
The release matrix records the versions used by these guides. For Offers V2 placements and slots, start with publisher placements before using the integration flow.
Web: show your first offerwall
This Node.js example runs on your server. Replace the environment variables with your publisher app's values. The App Key must never be sent to the browser.
import { createHash } from 'node:crypto';
function offerwallUrl(internalUserId) {
const appId = process.env.RAPIDOREACH_APP_ID;
const appKey = process.env.RAPIDOREACH_APP_KEY;
if (!appId || !appKey || !internalUserId) throw new Error('Missing offerwall input');
const checksum = createHash('md5')
.update(`${internalUserId}-${appId}-${appKey}`)
.digest('hex');
const uid = `${internalUserId}-${appId}-${checksum}`;
return `https://www.rapidoreach.com/ofw/?userId=${encodeURIComponent(uid)}`;
}
Render the returned URL into an iframe for the signed-in user:
<iframe title="Earn rewards" src="{{SERVER_GENERATED_OFFERWALL_URL}}"
style="width:100%;min-height:700px;border:0" loading="lazy"></iframe>
See UID generation and the iframe guide for the full format. The JavaScript widget is another web presentation option; review its UID endpoint and trust requirements before using it.
Verify before going live
- Follow the testing checklist for your platform and a test user.
- Configure a server-to-server callback so your backend can verify and credit rewards. An open or close event in the app is not proof of a completed reward.
- Confirm the placement and callback are approved, then move the app out of test mode in the publisher dashboard.
Need help? Contact developers@rapidoreach.com with your platform, SDK version, and a redacted error message.
You can also use the RapidoReach Agent Skills with Codex or Claude Code to implement and verify these steps in your own repository.