In this article
General
Can we use an API rather than implement the SDK within the app?
It is possible to simply present a survey without using the SDK, however you would not be able to take advantage of many key capabilities that the SDK offers:
The ability to change triggering rules at any time through Digital Feedback and have these changes automatically downloaded to the app
The option to build native in-app surveys providing a seamless experience for the user as well as offline presentation and capture
Limit the number of surveys that are prompted using Survey Counters
Reduce the chance of prompting the same survey on both web and in-app by using Contact Frequency rules
Configure advanced Journey Tracking scenarios to both record a user journey within your app but also trigger at any step along the journey such as “let’s ask users why they give up after this screen…”
Can the Mobile SDK show online/web surveys as well as native in-app surveys?
Yes. It is often much faster for clients to get started this way. Implementing the SDK within a client app to trigger and show web surveys can often be done by most developers within a single day.
Is Forsta Engineering required for client implementations?
All app development must be done by your mobile app developers as only they have access to the app code. Forsta Engineering is available for questions should any assistance be needed.
Does the SDK support all Forsta Plus question types?
For web surveys, yes. For native in-app surveys, only a subset of questions are currently supported. See Designing Surveys for Mobile App SDK.
How much does the SDK typically increase an application size?
At the present time, including all dependencies, the SDK will typically increase the installed application size of the host app by 2.3 Mb.
What is the minimum OS support for both Android and iOS?
Please see the Prerequisites listed on the following page. Forsta policy is to typically support the current and two prior major OS versions.
Data and Communication
Can your system handle high volume of mobile app users?
Yes, our system is architected to support a high volume of mobile devices, one key component is use of a CDN (Content Delivery Network) to deliver content. A CDN geographically distributes specific content to reduce latency. The Mobile SDK uses a CDN for the following content:
Digital Feedback program scenario scripts
Survey counters – complete counts used within scenarios scripts to check survey quotas in real time.
Survey package version – for native in-app surveys to check if the survey has been updated and needs to be downloaded.
Site configurations
When are completed surveys uploaded to Forsta Plus?
The SDK will automatically attempt to upload data when a connection is available. If no connection is available at the time of completion, it will schedule to attempt at a later time.
If using web surveys, data is stored on the server, no upload is required.
If surveys are stored offline/locally with the app, when are updates performed?
Note This applies to surveys that will be presented using native rendering only.
Surveys are updated whenever sdk().downloadSurvey() is called as part of a program scenario. For example:
var ctx = sdk().downloadSurvey("p1000999")
ctx.events.on("onSomeEvent", function(data) {
...
});
Therefore surveys are updated when programs are updated. To update a program, simply call:
// Kotlin example to download a program
val result = TriggerSDK.downloadAsync(serverId, programKey).await()
Note: For both programs and surveys updates, only when changes are detected are newer versions downloaded.
Can data be passed from the app to the survey?
Yes! Simply send the data when sending an event notification to the SDK as in the following example:
// Notify your event with custom data
val customData = mapOf<String, String?>("username" to "JohnP")
TriggerSDK.notifyEvent("onSomeEvent", customData)And then you can pass this data when you start the survey:
var ctx = sdk();
ctx.events.on("onSomeEvent", function(data) {
ctx.startWebSurvey("p123456789", data);
});The data can then be accessed directly within the survey using GetCustomData(). For a native survey:
Welcome ^GetCustomData("username")^!Or, for a web survey:
Welcome ^Request.QueryString.item("username")^!Alternatively, it is possible to set respondent values directly when starting the survey.
Survey Counters
How do survey counters work? Is it possible to only prompt 100 users for example?
Yes, Digital Feedback tracks the completed counts for each survey and each program scenario so it is quite easy to check for this quota before deciding to launch a survey. For example:
var SURVEY_ID = "p1000999"
ctx.events.on("onSomeEvent", function(data) {
if (ctx.getCounters(SURVEY_ID).completesTotal <= 100) {
ctx.startWebSurvey(SURVEY_ID);
}
});Important: Quotas defined as part of the survey design are not used by Digital Feedback or the SDK.