QuickSurveys uses legacy EventLogging to collect data (survey impressions, survey responses). Migrating it to Test Kitchen client-side instrumentation SDK would:
- remediate event loss (responses blocked by ad blockers)
- be a step toward compatibility with Test Kitchen's client-side experimentation SDK
The code touch points are:
mw.track( 'event.' + schemaName, eventData );
Would need to also make changes to event data in logSurveyImpression() and logAnswers().
Discussion/notes
product_surveys schema
- We want to discourage developers from stuffing responses into action_context in the product_metrics/* schemas.
- Apps frequently do in-app surveys and would benefit from a survey schema too.
Proposal: product_surveys/web/base and product_surveys/apps/base schemas, separate from the product_metrics/* schemas and tailored for surveys.
Should the data collection be split across two instruments?
One instrument for logging survey impressions:
- Instrument name: quicksurveys-impression
- Schema: /analytics/product_metrics/web/base/2.0.0 (default)
- Stream: product_metrics.web_base (default)
One instrument for logging survey responses:
- Instrument name: quicksurveys-response
- Schema: /analytics/product_surveys/web/base/1.0.0 (custom)
- Stream: product_surveys.web_base (custom)
Or should survey impressions be logged to the same stream as the responses?
Acceptance criteria
- Survey-focused schema, if one is needed
- QuickSurveys has a hard dependency on Test Kitchen
- QuickSurveys uses Test Kitchen's Instrument#send() to send events
- QuickSurveys instrument is configured in Test Kitchen UI
- This would need to be an evergreen instrument or have end date waaaaaaay in the future, to not risk data collection ending abruptly.
- This would benefit from T397016: Set a default Instrument End date.