Using the React Native SDK
This guide will help you implement Linkrunner functionality in your React Native application.Initialization
To initialize the Linkrunner SDK, add this code to yourApp.tsx
component:
You can find your project token here.
SDK Signing Parameters (Optional)
For enhanced security, the LinkRunner SDK requires the following signing parameters during initialization:secretKey
: A unique secret key used for request signing and authenticationkeyId
: A unique identifier for the key pair used in the signing process
getAttributionData
method.
User Registration
Call thesignup
method once after the user has completed your app’s onboarding process:
It is strongly recommended to use the integrated platform’s identify function to set a persistent user_id once it becomes available (typically after signup or login).
- Mixpanel - ID Management & User Identification
- PostHog - How User Identification Works
- Amplitude - Identify Users Documentation
- mixpanel_distinct_id for Mixpanel
- posthog_distinct_id for PostHog
- amplitude_device_id for Amplitude
Getting Attribution Data
To get attribution data and deeplink information for the current installation, use thegetAttributionData
function:
getAttributionData
function returns:
Setting User Data
CallsetUserData
each time the app opens and the user is logged in:
Setting CleverTap ID
Use thesetAdditionalData
method to set CleverTap ID:
Parameters for linkrunner.setAdditionalData
clevertapId
: string (optional) - CleverTap user identifier
Tracking Custom Events
Track custom events in your app:Revenue Sharing with Ad Networks
To enable revenue sharing with ad networks like Google Ads and Meta, include anamount
parameter as a number in your custom event data. This allows the ad networks to optimize campaigns based on the revenue value of conversions:
For revenue sharing with ad networks to work properly, ensure the
amount
parameter is passed as a number, not as a
string.Revenue Tracking
Capture Payment
Use this method to capture payment information:Parameters for linkrunner.capturePayment
amount
: number (required) - The payment amountuserId
: string (required) - Identifier for the user making the paymentpaymentId
: string (optional) - Unique identifier for the paymenttype
: string (optional) - Type of payment. Available options:FIRST_PAYMENT
- First payment made by the userSECOND_PAYMENT
- Second payment made by the userWALLET_TOPUP
- Adding funds to a walletFUNDS_WITHDRAWAL
- Withdrawing fundsSUBSCRIPTION_CREATED
- New subscription createdSUBSCRIPTION_RENEWED
- Subscription renewalONE_TIME
- One-time paymentRECURRING
- Recurring paymentDEFAULT
- Default type (used if not specified)
status
: string (optional) - Status of the payment. Available options:PAYMENT_INITIATED
- Payment has been initiatedPAYMENT_COMPLETED
- Payment completed successfully (default if not specified)PAYMENT_FAILED
- Payment attempt failedPAYMENT_CANCELLED
- Payment was cancelled
Removing Payments
Remove payment records (for refunds or cancellations):Parameters for Linkrunner.removePayment
userId
: String (required) - Identifier for the user whose payment is being removedpaymentId
: String (optional) - Unique identifier for the payment to be removed
paymentId
or userId
must be provided when calling removePayment
. If only userId
is provided, all payments for that user will be removed.
Enhanced Privacy Controls
The SDK offers options to enhance user privacy:Function Placement Guide
Function | Where to Place | When to Call |
---|---|---|
linkrunner.init | App.tsx within useEffect | Once when app starts |
linkrunner.getAttributionData | Attribution data handling flow | Whenever the attribution data is needed |
linkrunner.setAdditionalData | Integration code | When third-party integration IDs are available |
linkrunner.signup | Onboarding flow | Once after user completes onboarding |
linkrunner.setUserData | Authentication logic | Every time app opens with logged-in user |
linkrunner.trackEvent | Throughout app | When specific user actions occur |
linkrunner.capturePayment | Payment processing | When user makes a payment |
linkrunner.removePayment | Refund flow | When payment needs to be removed |