RapidoReach SDK Integration Guide: iOS, Android, Unity & React Native
RapidoReach SDK Integration Guide: iOS, Android, Unity & React Native
Integrating the RapidoReach SDK into your mobile app is straightforward and typically takes under 30 minutes. This guide covers everything you need to know to get up and running across all major platforms: iOS, Android, Unity, and React Native.
Once integrated, your app will have access to the RapidoReach survey offerwall, enabling you to earn revenue every time a user completes a survey.
Before You Start
To integrate RapidoReach, you'll need:
- A RapidoReach publisher account (free — sign up at rapidoreach.com)
- Your App API Token (found in your publisher dashboard)
- A unique User ID for each user in your app (your own user identifier system)
Android SDK Integration
Step 1: Add the Dependency
Add the RapidoReach AAR to your project. Download the latest AAR from the publisher portal and add it to your libs folder.
// In your app-level build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
// Required dependencies
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.github.bumptech.glide:glide:4.13.2'
}
Step 2: Initialize the SDK
// In your Application class or main Activity
import com.rapidoreach.sdk.RapidoReach;
// Initialize with your API token and user ID
RapidoReach.getInstance().initWithApiToken(
"YOUR_API_TOKEN",
"UNIQUE_USER_ID",
this // Activity context
);
// Optional: Set reward listener
RapidoReach.getInstance().setRapidoReachRewardListener(reward -> {
// Grant the user their reward in your app
int rewardAmount = reward.getAmount();
Log.d("RapidoReach", "User earned: " + rewardAmount + " coins");
grantUserReward(rewardAmount);
});
Step 3: Show the Survey Wall
// Show the survey wall (call from a button or natural trigger point)
if (RapidoReach.getInstance().isSurveyAvailable()) {
RapidoReach.getInstance().showSurveyWall(activity);
} else {
// No surveys available right now — try again later
Toast.makeText(this, "No surveys available. Check back soon!", Toast.LENGTH_SHORT).show();
}
Step 4: Add Required Permissions
<!-- In AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
iOS SDK Integration
Step 1: Install via CocoaPods
# Add to your Podfile
pod 'RapidoReach', '~> 1.0'
# Then run:
pod install
Step 2: Initialize in AppDelegate
import RapidoReach
// In didFinishLaunchingWithOptions:
RapidoReach.configure(
withApiToken: "YOUR_API_TOKEN",
andUserID: "UNIQUE_USER_ID"
)
// Set up reward callback
RapidoReach.shared().setRewardBlock { reward in
let amount = reward?.amount ?? 0
print("User earned \(amount) coins")
self.grantUserReward(amount)
}
Step 3: Display the Survey Wall
// Check availability and show
if RapidoReach.shared().isSurveyAvailable() {
RapidoReach.shared().showSurveyWall(from: self) // self = UIViewController
} else {
showAlert("No surveys available right now. Check back soon!")
}
Unity SDK Integration
Step 1: Import the Unity Package
Download the RapidoReach.unitypackage from the publisher portal and import it via Assets → Import Package → Custom Package.
Step 2: Initialize
using RapidoReachSDK;
// In your Start() or initialization script
RapidoReach.Instance.Initialize(
apiToken: "YOUR_API_TOKEN",
userId: "UNIQUE_USER_ID"
);
// Handle rewards
RapidoReach.Instance.OnRewardGranted += (rewardAmount) => {
Debug.Log($"User earned {rewardAmount} coins");
PlayerPrefs.SetInt("coins", PlayerPrefs.GetInt("coins") + rewardAmount);
};
Step 3: Show Survey Wall
// Trigger from a button press
public void OnEarnCoinsButtonClicked() {
if (RapidoReach.Instance.IsSurveyAvailable()) {
RapidoReach.Instance.ShowSurveyWall();
}
}
React Native Integration
Step 1: Install the Package
npm install react-native-rapidoreach
# or
yarn add react-native-rapidoreach
# Link (React Native 0.60+ auto-links)
npx pod-install # iOS only
Step 2: Initialize and Use
import RapidoReach from 'react-native-rapidoreach';
// Initialize
await RapidoReach.initialize({
apiToken: 'YOUR_API_TOKEN',
userId: 'UNIQUE_USER_ID',
});
// Listen for rewards
RapidoReach.onReward((reward) => {
console.log('User earned:', reward.amount);
dispatch(addCoins(reward.amount));
});
// Show survey wall
const handleEarnCoins = async () => {
const available = await RapidoReach.isSurveyAvailable();
if (available) {
await RapidoReach.showSurveyWall();
}
};
Best Practices for Integration
- Always check survey availability before showing the button — hide the earn button if no surveys are available.
- Use meaningful user IDs — use your own user identifier to ensure rewards are correctly attributed.
- Place the offerwall strategically — post-achievement moments convert best.
- Test with your own account before going live to verify reward delivery.
- Handle the reward callback — always implement the reward listener to credit users properly.
Testing Your Integration
Enable test mode during development by calling:
// Android
RapidoReach.getInstance().setTestMode(true);
// iOS
RapidoReach.shared().setTestMode(true)
Test mode provides mock surveys so you can verify the full flow without real survey inventory.
Need Help?
The RapidoReach publisher team is available to help with integration questions. Visit the publisher support portal or reach out directly from your dashboard. Most integrations are completed in less than a day with team support.
RapidoReach Monetization
Turn your app traffic into real revenue
Join 2,000+ publishers already boosting ARPU by up to 40% with in-app surveys. No SDK headaches — integrate in minutes.
Written By
RapidoReach Team
March 21, 2026
