Migrate from AppsFlyer
Complete guide to migrating your AppsFlyer OneLink URLs to LinkForty with zero downtime.
Overview
AppsFlyer is one of the most popular mobile attribution platforms, but it comes with a high price tag. LinkForty provides the same core functionality at a fraction of the cost while giving you complete control over your data.
Why Migrate?
| Feature | AppsFlyer | LinkForty Cloud |
|---|---|---|
| Starting Price | $499+/month | $49/month |
| Self-Hosting | ❌ Not available | ✅ Free & open source |
| Data Ownership | Limited | Complete |
| Vendor Lock-in | High | None |
| Support | Enterprise queue | Direct access |
Prerequisites
Before migrating from AppsFlyer:
- Custom Domain - You must be using a custom domain (e.g.,
go.yourcompany.com) with AppsFlyer OneLink - Export Access - Verify you can export OneLink data from the AppsFlyer dashboard
- DNS Access - Ensure you can update your domain's CNAME records
If you're using AppsFlyer's default domain (e.g., yourcompany.onelink.me), you'll need to set up a custom domain with AppsFlyer first, then migrate to LinkForty after your links have transitioned to the custom domain.
Step 1: Export Links from AppsFlyer
Export OneLink URLs
- Log in to your AppsFlyer dashboard
- Navigate to OneLink → Links
- Click Export or use AppsFlyer's API to export all links
- Download as CSV
CSV Format
Your AppsFlyer export should include:
link_id,shortCode,iosUrl,androidUrl,webUrl,pid,c,af_channel,af_adset,af_ad
abc123,summer-sale,https://apps.apple.com/app/123,https://play.google.com/store/apps/details?id=com.example,https://example.com,facebook,summer2024,paid_social,summer-campaign,creative-1
Required Fields
shortCodeorlink_id- The path after your domainiosUrl- iOS destination URLandroidUrl- Android destination URLwebUrlorfallbackUrl- Web fallback URL
Optional Fields (Preserved)
pid- Media source (mapped toutm_source)corcampaign- Campaign name (mapped toutm_campaign)af_channel- Channel (mapped toutm_medium)af_adset- Ad set (mapped toutm_content)af_ad- Ad name (mapped toutm_term)
Step 2: Import into LinkForty
Using the Migration Wizard
- Log in to LinkForty dashboard
- Navigate to Migration in the sidebar
- Select AppsFlyer as your platform
- Upload your CSV file
- Review the preview
- Choose conflict resolution strategy (if any duplicates)
- Click Import
Using the API
curl -X POST https://api.linkforty.com/migrations/import \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@appsflyer-links.csv" \
-F "platform=appsflyer" \
-F "conflictStrategy=skip"
Parameter Mapping
LinkForty automatically maps AppsFlyer parameters to standard UTM parameters:
| AppsFlyer | LinkForty |
|---|---|
pid | utm_source |
c or campaign | utm_campaign |
af_channel | utm_medium |
af_adset | utm_content |
af_ad | utm_term |
af_id | Stored in migration_metadata |
Any query parameters appended to your links (e.g., ?pid=facebook&c=summer) will be automatically passed through to the destination URL.
Step 3: Test on Temporary Domain
Before switching DNS, test your links on LinkForty's temporary domain:
- Your links are available at:
https://[your-org].linkforty.app/summer-sale - Test iOS, Android, and Web redirects
- Verify UTM parameters are passed correctly
- Check analytics tracking
Testing Checklist
- iOS app opens correctly
- Android app opens correctly
- Web fallback works
- UTM parameters preserved
- Analytics events tracked
- QR codes work (if applicable)
Step 4: DNS Preparation
Lower TTL (24-48 hours before migration)
- Access your DNS provider (GoDaddy, Cloudflare, etc.)
- Find your current CNAME record for your custom domain
- Lower the TTL to 300 seconds (5 minutes)
- Wait 24-48 hours for this change to propagate
Document Current Settings
Note your current AppsFlyer CNAME:
Type: CNAME
Name: go (or your subdomain)
Value: onelink.appsflyer.com
TTL: 3600 (or whatever it currently is)
Step 5: DNS Cutover
Update CNAME Record
When ready to migrate:
- Log in to your DNS provider
- Update the CNAME record:
Type: CNAME
Name: go (your subdomain)
Value: links.linkforty.app
TTL: 300 (keep low for now)
- Save changes
Propagation Time
- With lowered TTL: 5-10 minutes
- Without lowered TTL: Up to 48 hours
After updating DNS, you can verify it's working with:
dig go.yourcompany.com
Look for links.linkforty.app in the CNAME answer section.
Step 6: Verify Migration
Check Traffic
- Monitor LinkForty analytics dashboard
- Verify clicks are being tracked
- Check that device detection works correctly
- Ensure UTM parameters are captured
Test Existing Links
Test links that are "in the wild":
- Old emails sent to customers
- Social media posts
- Website embedded links
- QR codes on printed materials
All should redirect through LinkForty now.
Step 7: Post-Migration
Monitor Period (7-30 days)
- Keep AppsFlyer account active
- Monitor LinkForty analytics
- Compare traffic patterns
- Address any issues
Increase TTL
Once confident (after 7-30 days):
- Update DNS TTL back to normal (3600 seconds)
- This allows caching and improves performance
Cancel AppsFlyer
When everything is working perfectly:
- Export any remaining analytics data from AppsFlyer
- Cancel AppsFlyer subscription
- Celebrate cost savings! 🎉
Troubleshooting
Links Not Redirecting
Problem: Links still going to old destination
Solutions:
- Clear browser cache
- Wait for DNS propagation (up to TTL time)
- Verify DNS change with
digornslookup
Missing Analytics Data
Problem: Clicks not showing in LinkForty dashboard
Solutions:
- Verify links are actually routing through LinkForty (check DNS)
- Check that link exists in LinkForty with correct short code
- Look for errors in browser dev tools
UTM Parameters Not Working
Problem: UTM parameters not reaching destination
Solutions:
- Verify parameters are configured in LinkForty link settings
- Check URL encoding
- Test link directly (not through redirect)
Advanced: AppsFlyer-Specific Features
Deep Link Data
AppsFlyer's custom deep link data can be preserved:
{
"af_dp": "myapp://product/123",
"af_force_deeplink": "true",
"custom_param": "value"
}
Store these as link metadata in LinkForty for reference.
Fractional Attribution
AppsFlyer's fractional attribution is not directly supported in LinkForty. Instead:
- Use UTM parameters for campaign attribution
- Track install events via SDK (if using attribution features)
- Export AppsFlyer historical data before migrating
Need Help?
Migration from AppsFlyer can be complex. We're here to help:
- Email: support@linkforty.com
- Live Chat: Available in dashboard
- Migration Concierge: Enterprise customers get hands-on support