01 · AFFILIATE LINK
Create the connection
Give an affiliate a rate and a tracking link to your app’s store listing.
AFFILIATE INFRASTRUCTURE FOR SUBSCRIPTION APPS
Connect the affiliate who drove the install to the subscription—and every qualifying renewal after it.
React Native SDK · RevenueCat integration
Original source
Affiliate Aclick recordedAn opaque click token connects this acquisition to Affiliate A.
01 / FOLLOW THE THREAD
An install is only the beginning. Keep the original affiliate connected as a user becomes a subscriber.
01 · AFFILIATE LINK
Give an affiliate a rate and a tracking link to your app’s store listing.
02 · ATTRIBUTION
Retrieve Android Install Referrer evidence through the React Native SDK.
03 · VERIFIED IDENTITY
Your trusted server binds the authenticated user and RevenueCat customer.
04 · RECURRING REVENUE
Eligible purchases and renewals become transactions and commission accruals.
02 / THE WORKSPACE
Manage partners, share links, and see the revenue behind each relationship. No spreadsheet archaeology.
A single view of acquisition and recorded revenue. Production and sandbox reporting stay separate.
Active partner · 20% commission
/r/ExampleReferral234ZAndroidCreate a partner, assign a rate, generate a link, and inspect performance. New rates never rewrite existing accruals.
| Subscription event | Type | Gross revenue | Status |
|---|---|---|---|
| Initial purchase | Initial | $6.99 | Accrued |
| Monthly renewal | Renewal | $6.99 | Accrued |
| Monthly renewal | Renewal | $6.99 | Accrued |
| Affiliate | Type | Commission | Status |
|---|---|---|---|
| Affiliate A | 20% original rate | +$1.398 | Accrued |
| Affiliate A | 20% original rate | +$1.398 | Accrued |
| Affiliate A | 20% original rate | +$1.398 | Accrued |
Full refunds add a separate reversal. Original records remain intact. Automatic payouts are not included.
BUILT FOR THE PEOPLE BUILDING APPS
A focused SDK for referral evidence. Your backend stays in control of identity. Relay Track handles attribution and commissions.
Expo 54 · React Native 0.81
React 19.1 · Android & iOS
The package is unpublished. Build the local archive from the Relay Track repository. Android referrer recovery requires a custom native build, not Expo Go.
Read the integration guide# From the Relay Track repository
cd sdk/react-native
npm ci
npm pack
# In your Expo 54 / React Native 0.81 app
npx expo install expo-crypto @react-native-async-storage/async-storage
npm install /path/to/relay-track-react-native-0.1.0.tgz
npx expo run:android
import { RelayTrack } from '@relay-track/react-native';
await RelayTrack.initialize({
applicationId: 'YOUR_PUBLIC_APPLICATION_UUID',
apiBaseUrl: 'https://YOUR_API_HOST',
allowedLinkUrls: [], // Android referrer still enabled
});
const installationId = await RelayTrack.getInstallationId();
const attribution = await RelayTrack.getAttribution();
iOS 15.1+ · Swift Package Manager
Install from the repository. No package registry publication. Native delivery engines require focused device acceptance before release.
Read the integration guideimport RelayTrack
let config = try RelayConfiguration(
applicationID: "YOUR_PUBLIC_APPLICATION_UUID",
apiBaseURL: "https://YOUR_API_HOST",
iosLinkOrigin: "https://YOUR_PUBLIC_APPLICATION_UUID.YOUR_LINK_DOMAIN"
)
try await RelayTrack.shared.initialize(config)
let attribution = try await RelayTrack.shared.attribution()
try await RelayTrack.shared.retryPending()
// Forward cold/warm links and scene lifecycle; see the package README.
Android API 24+ · Gradle library / AAR
Install from the repository. No package registry publication. Native delivery engines require focused device acceptance before release.
Read the integration guideimport com.relaytrack.sdk.RelayTrack
import com.relaytrack.sdk.RelayConfiguration
// Inside a host coroutine:
RelayTrack.initialize(applicationContext, RelayConfiguration(
applicationId = "YOUR_PUBLIC_APPLICATION_UUID",
apiBaseUrl = "https://YOUR_API_HOST"
))
val attribution = RelayTrack.getAttribution()
RelayTrack.retryPending()
// Forward Activity lifecycle with setActive; Play Referrer is native.
Android & iOS · Dart API backed by native engines
Install from the repository. No package registry publication. Native delivery engines require focused device acceptance before release.
Read the integration guideimport 'package:relay_track/relay_track.dart';
await RelayTrack.initialize(const RelayConfiguration(
applicationId: 'YOUR_PUBLIC_APPLICATION_UUID',
apiBaseUrl: 'https://YOUR_API_HOST',
iosLinkOrigin: 'https://YOUR_PUBLIC_APPLICATION_UUID.YOUR_LINK_DOMAIN',
));
final attribution = await RelayTrack.getAttribution();
await RelayTrack.retryPending();
// iOS: offer RelayReferralPasteButton after initialization.
// Forward host lifecycle and incoming links; see the example.
Public application ID in the app. Server credentials on your backend. A clear boundary from day one.
03 / SUBSCRIPTION-AWARE BY DESIGN
Keep your billing stack. Add the affiliate connection. RevenueCat purchase and renewal webhooks become traceable transactions and recurring commissions.
See the integration stepsINITIAL_PURCHASERENEWALCANCELLATIONIllustrative USD example · not a live event
THE RECURRING PART MATTERS
One $6.99 subscription. A 20% affiliate rate. Explore how renewals and a full refund affect the commission ledger.
ONE SUBSCRIBER · 20% RATE
Net commission accrued
$4.194USDIllustrative ledger · not a payout balance
A PRECISE CONNECTION, NOT A DEVICE PROFILE
Android Install Referrer supplies the referral evidence. An application-local installation ID keeps continuity. Your backend makes the attribution decision.
iOS referral handoff requires an explicit paste action and native setup. Physical-device acceptance remains pending.
A CLEAR PICTURE
A focused foundation for mobile referral programs. Here’s exactly where the product stands.
ONE WORKSPACE. ONE PLAN.
Explore Relay Track with your subscription app.
$29.99 USD per month per workspace.
For businesses running affiliate programs. No per-member charges. Affiliates always join for free.
THE DETAILS
Relay Track connects an affiliate link and eligible install attribution to a verified user, RevenueCat billing events, transactions, and commission accruals. The dashboard lets you manage partners and inspect that financial history.
No. RevenueCat remains your subscription infrastructure. Relay Track receives its webhooks and connects eligible purchases and renewals to the originating affiliate. RevenueCat is the first supported billing provider.
The React Native SDK is available from source as an unpublished package, targeting Expo 54, React Native 0.81 and React 19.1. Swift, Kotlin and Flutter SDKs are also available as unpublished source previews. Flutter uses the native engines; no standalone Dart SDK is offered.
A referral link redirects to Google Play with a click referrer. After installation, the native Play Install Referrer bridge retrieves that evidence and the backend evaluates attribution. This flow has passed real Google Play testing. Use a custom native build; Expo Go and sideloading do not validate the Play acquisition flow.
The React Native SDK includes iOS Universal Links and user-mediated referral paste. Fresh-install handoff requires copying the referral before installation and pasting it in the app. Native domain configuration and physical-device testing are required; skipped paste or expired referrals remain unattributed.
Relay Track supports commission accounting, payout eligibility, and manual or automatic affiliate payments through Stripe in test mode. Live payments are not available yet.
Yes. Affiliate rates are managed within your workspace. New rates apply to future eligible processing across its applications. Existing commission snapshots retain their original rates.
Ordinary cancellation and expiration do not reverse commissions. A supported full refund adds a separate negative adjustment using the original commission amount. Partial or conflicting refunds require operator reconciliation.
Relay Track is $29.99 USD per month per workspace for businesses running affiliate programs. One subscription covers the team; affiliates use their portal for free. SDKs are currently available from source.
EVERY RENEWAL HAS AN ORIGIN
From the first referral to the next renewal.
Build an affiliate program you can trace.