Mobile SDKDeep Link
React Native
AdStage DeepLink Integration Guide (React Native)
Table of Contents
- Overview
- Installation
- Platform Configuration
- SDK Initialization
- Deep Link Handling
- Creating Deep Links
- Troubleshooting
Overview
AdStage DeepLink SDK for React Native provides the following features:
- Real-time Deep Links: Instant processing via URL Scheme, App Link/Universal Links
- Deferred Deep Links: Automatic restoration on first launch after app installation
- Dynamic Deep Link Creation: Trackable link generation through server API
- Attribution Tracking: Marketing analytics based on UTM parameters
- Cross-Platform: Same API for Android/iOS
Supported Deep Link Types
- URL Scheme:
myapp://promo/summer - Android App Links:
https://go.myapp.com/abc123 - iOS Universal Links:
https://go.myapp.com/abc123 - Deferred Deep Links: App not installed → Store → Install → Restored on app launch
Installation
npm / yarn Installation
iOS Dependency Installation
Platform Configuration
iOS Configuration
1. ATT (App Tracking Transparency) Permission (Required)
Add the following to ios/YourApp/Info.plist:
2. URL Scheme Configuration
Add the following to ios/YourApp/Info.plist:
3. Universal Links Configuration (Optional)
Add the following to ios/YourApp/YourApp.entitlements:
4. AppDelegate.mm Modification
Add deep link handling methods to ios/YourApp/AppDelegate.mm:
Android Configuration
1. Add Maven Repository (Required)
Add to android/settings.gradle or android/build.gradle:
2. minSdkVersion Configuration
Verify in android/build.gradle:
3. AndroidManifest.xml Configuration
Add Intent Filter to android/app/src/main/AndroidManifest.xml:
4. launchMode Important Notes
- ✅ singleTask: Reuses existing Activity (Recommended)
- ⚠️ singleTop: Reuses only when at top of stack
- ❌ standard: Creates new instance each time (causes duplicate deep links)
SDK Initialization
Basic Initialization
Deep Link Handling
1. Setting Up Deep Link Listener
2. DeepLinkData Structure
3. Pending Deep Link Handling
When the app is launched from a deep link while completely terminated:
4. Practical Example: React Navigation Integration
Creating Deep Links
Basic Deep Link Creation
CreateDeepLinkRequest Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Deep link name |
description | string | - | Deep link description |
campaign | string | - | UTM campaign |
source | string | - | UTM source |
medium | string | - | UTM medium |
parameters | object | - | Custom parameters |
redirectType | string | - | Redirect type (app/store/web) |
androidConfig | object | - | Android settings |
iosConfig | object | - | iOS settings |
webConfig | object | - | Web settings |
RedirectType Description
| Type | App Installed | App Not Installed |
|---|---|---|
store | Go to Store | Go to Store |
app | Launch App (real-time deep link) | Go to Store → Install → Deferred deep link |
web | Go to Web URL | Go to Web URL |
Utility Functions
Extract Short Path
Manual Android Intent Handling
Troubleshooting
iOS Issues
Deep links are not received
- Verify URL Scheme is correctly configured in Info.plist
- Verify deep link handling methods are added to AppDelegate.mm
- For Universal Links, verify Associated Domains are configured
ATT permission popup not showing
- Verify
NSUserTrackingUsageDescriptionkey exists in Info.plist
Android Issues
Duplicate deep link reception
- Verify
android:launchMode="singleTask"setting
Deep links are not received
- Verify Intent Filter in AndroidManifest.xml
- Verify
android:exported="true"setting - For App Links, verify Digital Asset Links file
Common Issues
Deferred deep links not working
- Verify listener is set after SDK initialization is complete
- Verify
checkPendingDeepLink()is called - Check network connection status
Parameters not being passed
- Verify values are correctly set in the
parametersobject when creating deep links

