Getting Started
What is Radar?
What is Radar?
- Background location tracking with configurable battery usage
- Geofencing with entry, exit, and dwell events
- Trip tracking with real-time ETAs
- Location verification and fraud detection
- Rich location context and search APIs
How much does Radar cost?
How much does Radar cost?
- Free tier: Includes monthly free requests for testing and small apps
- Pay-as-you-go: Only pay for what you use with no minimums
- Enterprise: Custom pricing for high-volume applications
What iOS versions are supported?
What iOS versions are supported?
- Minimum iOS version: iOS 12.0 and later
- Recommended: iOS 14.0+ for best features and performance
- Swift: Swift 5.0+
- Objective-C: Fully supported
- Architectures: arm64, x86_64 (simulator)
Can I use Radar with SwiftUI?
Can I use Radar with SwiftUI?
App struct:Do I need a credit card to get started?
Do I need a credit card to get started?
Installation & Configuration
What's the difference between CocoaPods and SPM?
What's the difference between CocoaPods and SPM?
- In Xcode: File → Add Packages
- Repository:
https://github.com/radarlabs/radar-sdk-ios-spm
How do I add Radar to an existing project?
How do I add Radar to an existing project?
What Info.plist keys are required?
What Info.plist keys are required?
Do I need to enable background modes?
Do I need to enable background modes?
- Add Background Modes capability
- Enable Location updates
Can I use Radar in a framework/SDK?
Can I use Radar in a framework/SDK?
- Initialize Radar in your framework’s initialization method
- Use a unique user ID to avoid conflicts
- Document any location permissions requirements
- Consider namespace conflicts if the host app also uses Radar
Location Tracking
What's the difference between tracking presets?
What's the difference between tracking presets?
| Preset | Update Frequency | Battery Usage | Best For |
|---|---|---|---|
| Continuous | ~30 seconds | High ⚡ | Real-time tracking, delivery apps |
| Responsive | ~2.5 minutes moving, shut down when stopped | Medium ⚡⚡ | Most apps, good balance |
| Efficient | Only on visits | Low ⚡⚡⚡ | Simple geofencing, low battery impact |
How accurate is location tracking?
How accurate is location tracking?
- Device GPS capabilities
- Environmental factors (indoors, urban canyons)
- Desired accuracy setting
- Battery level and Low Power Mode
- High: Best accuracy (~5-10m), highest battery usage
- Medium: Balanced (~100m), recommended
- Low: Lower accuracy (~1000m), best battery life
Can tracking work offline?
Can tracking work offline?
- Location updates are collected offline
- Stored locally in a replay buffer
- Automatically synced when connectivity returns
- Failed requests are retried
Why does tracking stop when my app is killed?
Why does tracking stop when my app is killed?
- User force-quits the app (swipe up in app switcher)
- Device restarts
- System needs memory
- Crash or exception occurs
- Use
.efficientpreset with visit monitoring (survives force-quit) - Enable significant location change monitoring
- Prompt users not to force-quit the app
- Consider silent push notifications to relaunch app
How do I track only while app is in use?
How do I track only while app is in use?
trackOnce() instead of startTracking():What's the difference between the delegate methods?
What's the difference between the delegate methods?
Geofencing
How do I create geofences?
How do I create geofences?
- Go to Geofences
- Click “Create Geofence”
- Draw on map or enter coordinates
- Add tag and metadata
- Save
What's the minimum geofence size?
What's the minimum geofence size?
- Delayed entry detection (several seconds or more)
- False positives due to GPS drift
- Reduced battery life
How many geofences can I monitor?
How many geofences can I monitor?
- Monitor thousands of geofences simultaneously
- No client-side limit
- Automatically syncs nearby geofences to device
- More accurate than iOS region monitoring
How do I filter geofence events?
How do I filter geofence events?
What are dwell events?
What are dwell events?
- Detect actual store visits vs. passing by
- Trigger notifications after user settles
- Calculate time spent at locations
Trip Tracking
What is trip tracking?
What is trip tracking?
- Real-time location updates
- Approaching destination events
- Arrival confirmation
- ETA calculations
- Trip status tracking
- Delivery apps
- Ride-sharing
- Curbside pickup
- On-demand services
How do I start a trip?
How do I start a trip?
What trip events are generated?
What trip events are generated?
- user.started_trip: Trip begins
- user.updated_trip: Trip status changes
- user.approaching_trip_destination: Near destination (default 500m)
- user.arrived_at_trip_destination: Entered destination geofence
- user.stopped_trip: Trip completed or cancelled
Can I track multi-stop trips?
Can I track multi-stop trips?
How do I end a trip?
How do I end a trip?
completeTrip() for successful completion or cancelTrip() for cancellation:- Stop trip tracking
- Generate
user.stopped_tripevent - Return to previous tracking options
- Clear trip state
Does trip tracking affect battery life?
Does trip tracking affect battery life?
- More frequent location updates
- Continuous ETA calculations
- Real-time route monitoring
- Only track during active trips
- Call
completeTrip()orcancelTrip()promptly - Use appropriate travel mode (car vs. bike vs. foot)
- Consider custom tracking options with longer intervals
Privacy & Security
How does Radar handle user privacy?
How does Radar handle user privacy?
- User consent: Your app must request permissions
- Data minimization: Only collects necessary location data
- Anonymization: Supports anonymous tracking mode
- GDPR compliant: Data processing agreements available
- CCPA compliant: User data deletion on request
- User control: Users can revoke permissions anytime
What data does Radar collect?
What data does Radar collect?
- Location data: Coordinates, accuracy, speed, heading
- Device data: Device ID (IDFV), OS version, app version
- Optional: User ID, metadata, ad ID (if enabled)
- Personally identifiable information
- Device contacts or photos
- Other app data
Can I delete user data?
Can I delete user data?
- Go to Users
- Find the user
- Click “Delete User”
- Delete all location history
- Remove user metadata
- Clear event history
- Cannot be undone
What is location verification?
What is location verification?
- Device integrity checks: Validates genuine device
- Location signals: Analyzes GPS, network, and sensor data
- Jurisdiction checks: Verifies user is in expected location
- JWT token: Signed proof of location for your server
- Geofenced content
- Sports betting
- Regulatory compliance
- Fraud prevention
Should I use test or live keys in production?
Should I use test or live keys in production?
- Test keys (
prj_test_pk_...): For development and testing- Separate data from production
- No charges for API usage
- Events marked as
live: false
- Live keys (
prj_live_pk_...): For production apps- Real user data
- Billable API usage
- Events marked as
live: true
Performance & Optimization
How do I minimize battery usage?
How do I minimize battery usage?
How do I reduce network usage?
How do I reduce network usage?
Will Radar slow down my app?
Will Radar slow down my app?
- Lightweight (~2MB SDK size)
- Minimal CPU usage
- Efficient memory footprint
- Background processing
- Network request batching
- Initialize in
didFinishLaunchingWithOptions - Start tracking asynchronously
- Don’t call
trackOnce()in tight loops - Use delegate methods instead of polling
How many API requests will my app make?
How many API requests will my app make?
- ~2 requests per minute when moving
- ~120 requests per hour
- ~2,880 requests per day per user
- ~0.4 requests per minute when moving
- ~24 requests per hour when moving
- ~150-300 requests per day per user (varies by user activity)
- Only on visit start/end
- ~2-10 requests per day per user
App Store & Deployment
Will Radar affect my App Store review?
Will Radar affect my App Store review?
- Clearly explain location usage in Info.plist
- Request permissions at appropriate times
- Handle permission denials gracefully
- Provide value to users for location access
- Comply with privacy requirements
- Request Always authorization on first launch
- Use vague permission descriptions
- Track location without user knowledge
- Access location for unrelated features
What should I include in privacy labels?
What should I include in privacy labels?
- Precise Location
- Purpose: App Functionality, Analytics, Product Personalization (as applicable)
- Linked to User: Yes (unless using anonymous mode)
- Purpose: App Functionality, Analytics
- Linked to User: Yes
- Advertising Data (IDFA)
- Purpose: Developer’s Advertising or Marketing
- Linked to User: Yes
How do I test before releasing to production?
How do I test before releasing to production?
Monitor dashboard
- Event logs
- Webhook deliveries
- API usage
- Error rates
Can I use Radar in an enterprise distribution?
Can I use Radar in an enterprise distribution?
- App Store apps
- TestFlight
- Enterprise (in-house) distribution
- Ad-hoc distribution
Getting Help
Where can I find code examples?
Where can I find code examples?
- Example app in the SDK repository
- Documentation with code samples
- API reference with method examples
- Blog tutorials for specific use cases
How do I report a bug?
How do I report a bug?
- Check existing issues first
- Include SDK version, iOS version, device model
- Provide steps to reproduce
- Share relevant logs
- For urgent production issues
- Include account details and app info
Does Radar offer professional services?
Does Radar offer professional services?
- Implementation consulting
- Custom integration development
- Architecture review
- Training sessions
- Dedicated support plans
Where can I learn more?
Where can I learn more?