RapidoReach
Build a working reward flow

iOS survey monetization

Present optional rewarded surveys from your iOS app with the RapidoReach CocoaPod and a server-verified currency flow.

RapidoReach CocoaPod 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.

Add the survey entry point to a visible UIKit screen or present it through your SwiftUI hosting controller. Configure privacy requirements before using advertising identifiers.

1. Install the released package

Add pod 'RapidoReach', '1.0.9' to your Podfile target, run pod install and open the generated .xcworkspace. Import RapidoReach in Swift.

Package and source reference

2. Configure your app

The SDK requires iOS 12.0 or later. Review privacy disclosures and request ATT permission before using IDFA when required by your app’s data use.

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.

iOS 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.

Swift / integration example
import UIKit
import RapidoReach

// Configure once after you know the signed-in user.
func initializeRewards() {
    RapidoReach.shared.configure(
        apiKey: "YOUR_API_TOKEN", user: "YOUR_USER_ID"
    )
    RapidoReach.shared.fetchAppUserID()
}

// Call from your visible UIViewController after readiness.
func openRewards(from controller: UIViewController) {
    RapidoReach.shared.presentOfferwall(
        from: controller, title: "Earn Rewards"
    )
}

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 iOS 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.
iOS 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 iOS SDK behavior, use the package example and your own development app on a supported device.

Get the iOS 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

iOS acceptance checklist

  1. Install pods and test from the generated workspace on an iOS device.
  2. Present, dismiss and reopen from the active controller without overlapping transitions.
  3. Check privacy permission outcomes and verify that missing inventory has a clear UI state.
  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.

No such module RapidoReach

Install pods for the correct target and open the generated workspace. The public pod and import are RapidoReach.

Offerwall fails to present

Use a visible view controller, wait for registration and availability, and present on the main thread. Avoid presenting over another transition.

Reward does not appear after dismissing

Use the SDK delegates for UI refresh and inspect your verified server callback. Closing a view is not proof of survey completion.

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 ios survey monetization 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.