Dashboard vs. Code
AppDNA splits responsibility between the Console (UI configuration) and your code (SDK calls). Many features require zero code — the SDK handles them automatically based on what you configure in the Console.Quick Reference
What’s Automatic (Zero Code)
The SDK tracks these events automatically. You do not need to calltrack() for any of them.
Session & Lifecycle
session_start,session_end,app_open,app_close
Onboarding
- Flow started, step viewed, step completed, step skipped, flow completed, flow dismissed
Paywalls
- Paywall presented, actions, dismissed, purchase started/completed/failed
Billing
- Purchase started, completed, failed, canceled, restore started/completed
Push
- Token registered, permission granted/denied, delivered, tapped
Experiments
- Exposure tracked once per session on first
getVariant()call
In-App Messages
- Message presented, action taken, dismissed
Surveys
- Survey presented, response submitted, dismissed
For the full list of auto-tracked events with their properties, see the Auto-Tracked Events reference.
Callbacks — When You Want to React
Every SDK module provides a delegate or callback interface so you can respond to events in your own code. Common scenarios:- iOS
- Android
- Flutter
- React Native
Paywalls
AppDNAPaywallDelegate — purchase, dismiss, action callbacks
Onboarding
AppDNAOnboardingDelegate — step, completion, response callbacks
Billing
AppDNABillingDelegate — purchase, restore, entitlement callbacks
Surveys
AppDNASurveyDelegate — presentation, response, dismiss callbacks

