What It Does
Mobile App Tracking:- iOS SDK (Swift) for native Apple apps
- React Native SDK for cross-platform apps
- Automatic session tracking
- Attribution tracking (App Store, organic)
- SKAdNetwork conversion value encoding
- Offline event queue
- App lifecycle tracking
iOS SDK (Swift)
Installation
Swift Package Manager: Xcode:- File → Add Packages
- Enter:
https://github.com/datalyr/datalyr-ios-sdk - Select version: 1.0.0+
Basic Usage
Initialize SDK:Configuration Options
SKAdNetwork Support
Initialize with SKAdNetwork:"ecommerce": Revenue-based encoding (0-6 brackets)"gaming": Level progression and IAP"subscription": Trial, active, churned states
Auto-Events
Automatically Tracked:app_install: First launchapp_open: App foregroundapp_close: App backgroundsession_start: New sessionsession_end: Session timeout
Attribution
Automatic Attribution: SDK captures attribution data on install:- App Store referrer
- Campaign parameters
- Install timestamp
Session Management
Get Session Info:Advanced Features
Flush Manually:SwiftUI Integration
React Native SDK
Installation
- React Native 0.60+
- iOS 13+ / Android 5.0+
Basic Usage
Initialize SDK:Configuration Options
SKAdNetwork Support (iOS)
Track with Automatic Encoding:Auto-Events
Automatically Tracked:app_install: First launchapp_open: App foregroundapp_close: App backgroundsession_start: New sessionsession_end: Session timeout
Attribution
Get Attribution Data:Session Management
Get Session Info:Advanced Features
Flush Manually:React Navigation Integration
TypeScript Support
Full TypeScript definitions included:Common Use Cases
E-commerce App
Subscription App
Gaming App
Best Practices
Initialize Early: Initialize SDK inAppDelegate (iOS) or index.js (React Native) before any events.
Flush Before Exit:
SDK automatically flushes on app background, but manually call flush() for critical events.
Handle Offline:
SDK queues events offline and sends when connection restored.
Test Conversion Values:
Use getConversionValue() to test SKAdNetwork encoding before production.
Privacy:
Enable respectDoNotTrack and collect user consent before tracking.
Migrating from AppsFlyer / Adjust
DATALYR provides similar functionality to AppsFlyer and Adjust with a simpler integration and bundled platform SDKs.From AppsFlyer
From Adjust
Event Name Mapping
| AppsFlyer Event | Adjust Event | DATALYR Method |
|---|---|---|
af_purchase | PURCHASE | trackPurchase() |
af_add_to_cart | ADD_TO_CART | trackAddToCart() |
af_initiated_checkout | INITIATE_CHECKOUT | trackInitiateCheckout() |
af_complete_registration | COMPLETE_REGISTRATION | trackCompleteRegistration() |
af_content_view | VIEW_CONTENT | trackViewContent() |
af_search | SEARCH | trackSearch() |
af_subscribe | SUBSCRIBE | trackSubscription() |
Migration Benefits
- Bundled SDKs: Meta and TikTok SDKs included, no extra packages
- Unified API: Single SDK for all platforms and ad networks
- Web-to-App: Automatic attribution matching via email
- Flat Pricing: No per-MAU charges
Troubleshooting
Events Not Appearing
Check SDK Status:- Should start with
dk_ - Check Settings → API Keys in dashboard
iOS Build Errors
Android Build Errors
Meta SDK Not Working
Verify Info.plist contains:Datalyr.getPlatformIntegrationStatus()
TikTok SDK Not Working
Ensure both app IDs are provided:Attribution Not Captured
Enable attribution in config:SKAdNetwork Not Working
- iOS 14.0+ required (iOS 16.1+ for SKAN 4.0)
- Set
skadTemplatein config - Use
trackWithSKAdNetwork()for automatic encoding - Test with
getConversionValue()first
App Tracking Transparency (iOS 14.5+)
Platform Requirements
iOS SDK:- iOS 13.0+
- Xcode 14+
- Swift 5.5+
- React Native 0.60+
- iOS 13+ / Android 5.0+
- Node.js 14+