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:

  1. A RapidoReach publisher account (free — sign up at rapidoreach.com)
  2. Your App API Token (found in your publisher dashboard)
  3. 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.

R

Written By

RapidoReach Team

March 21, 2026

Found this helpful?

Share with your network