Supported on: iOS SDK
1.0.61+How It Works
Surveys are configured in the Console with content, question types, and trigger rules. Like in-app messages, they can appear automatically when trigger conditions are met — no code required for trigger-based surveys.Present a Survey Manually
Module Access
Module Methods
| Method | Signature | Description |
|---|---|---|
present | present(_ surveyId: String) | Present a survey manually |
setDelegate | setDelegate(_ delegate: AppDNASurveyDelegate?) | Set a delegate for survey callbacks |
8 Question Types
Surveys support the following question types, configured in the Console:| Type | Display | Response |
|---|---|---|
nps | 0-10 numeric scale | Integer 0-10 |
csat | 1-5 satisfaction scale | Integer 1-5 |
rating | Star rating | Integer 1-5 |
emoji_scale | Emoji options | Selected emoji value |
yes_no | Binary choice | Boolean |
single_choice | Radio button options | Selected option string |
multi_choice | Checkbox options | Array of selected strings |
free_text | Text input field | Free-form string |
Question types and their content are defined entirely in the Console. The SDK renders them automatically based on the survey configuration.
AppDNASurveyDelegate
All 3 methods on this delegate fire fromSurveyManager alongside the existing analytics events. Register your delegate via AppDNA.surveys.setDelegate(...).
onSurveyPresented(surveyId:)— fires when the survey view appears (alongside thesurvey_shownevent).onSurveyCompleted(surveyId:, responses:)— fires when the user submits the final question.responsesis the public[SurveyResponse]array (one entry per answered question withquestionId+answer), suitable for forwarding to your own analytics or CRM.onSurveyDismissed(surveyId:)— fires when the user closes the survey before completing it (X button, swipe-to-dismiss, outside tap).
SurveyResponse
Example Implementation
Rich Media
Survey questions support rich media content configured in the Console:- Header images — add images above survey questions
- Icons in options — use icon references in choice options (Lucide, SF Symbols, Material, or emoji)
- Thank-you animations — Lottie or confetti effects on survey completion
- Haptic feedback — triggered on option selection and submission
Auto-Tracked Events
| Event | Trigger |
|---|---|
survey_presented | A survey is displayed |
survey_response_submitted | User submits a survey response |
survey_dismissed | Survey is closed without completing |
Full Example
Surveys are created in the Console under Feedback > Surveys. Trigger-based surveys appear automatically — manual presentation with
present() is for cases where you want precise control over timing.
