Skip to content

Data Export & Translations

This page gives explicit researcher instructions for CSV/JSON export, filtering, translation import/export, and participant language selection.

Export CSV

  1. Sign in as a researcher.
  2. Open Admin -> Analytics.
  3. Select the target survey.
  4. Set filters before export:
    • Survey.
    • Condition/group.
    • Participant language.
    • Completion status.
    • Calibration outcome.
    • Preview/test-session inclusion if available.
  5. Choose CSV.
  6. Download the file.
  7. Open it in a spreadsheet tool and confirm row count, column headers, and filter values.

Use CSV for statistical analysis, spreadsheet review, and sharing a flat dataset with supervisors.

Export JSON

  1. Sign in as a researcher.
  2. Open Admin -> Analytics.
  3. Select the target survey.
  4. Apply the same survey, condition, language, completion, calibration, and preview filters.
  5. Choose JSON.
  6. Download the file.
  7. Inspect the top-level survey metadata, response list, answers, interactions, calibration summaries, and tracking aggregates.

Use JSON when nested relationships matter, such as answers grouped under responses or post-level interaction bundles.

Required Export Filters

FilterWhy it mattersExample
SurveyPrevents mixing studies.Export only Misinformation Pilot A.
Condition/groupSeparates A/B stimulus variants.Compare condition 1 against condition 2.
LanguageKeeps translated participant flows distinct.Export only zh responses.
Completion statusRemoves abandoned starts from final analysis.Include completed responses only.
Calibration outcomeSeparates high-quality tracking from poor calibration runs.Include good and acceptable; review poor.
Preview inclusionPrevents researcher tests from polluting analysis.Exclude preview sessions by default.

Exported participant identifiers should be anonymous. Raw participant tokens, passwords, camera video, and private authentication data should not appear in CSV or JSON exports.

Translation CSV Export

  1. Open the survey editor.
  2. Go to the translations panel.
  3. Select the target language, such as zh-CN or ja.
  4. Choose Export CSV.
  5. Keep stable IDs unchanged.
  6. Translate only the editable text fields.
  7. Preserve CSV headers and encoding.

CSV is best for translators who work in spreadsheets.

Translation CSV Import

  1. Open the same survey translation panel.
  2. Select the language matching the completed CSV.
  3. Choose Import CSV.
  4. Upload the completed template.
  5. Review validation messages for missing IDs, invalid columns, or empty required fields.
  6. Preview the survey in that language before publishing.

Do not manually invent IDs in the translation file. Export a fresh template if the survey structure changed.

Translation JSON Export

  1. Open the survey translation panel.
  2. Select the target language.
  3. Choose Export JSON.
  4. Keep object IDs and keys unchanged.
  5. Fill translated values in the expected fields.

JSON is best for structured review, developer inspection, and version control.

Translation JSON Import

  1. Open the survey translation panel.
  2. Select the matching target language.
  3. Choose Import JSON.
  4. Upload the edited JSON file.
  5. Resolve schema or missing-key errors.
  6. Preview the target language.

Participant Language Selection

Participants choose language on the start page before calibration and before the feed. The selected language should:

  • Set the participant UI language.
  • Determine translated survey title, instructions, posts, comments, and questions.
  • Be stored on the survey response.
  • Be available as an analytics/export filter.

If a translation is incomplete, researchers should either complete it before launch or clearly fall back to the default language according to the study protocol.

Research CSV columns (flat file)

Each CSV row is one participant response (one session). Columns are fixed in this order. Several fields hold JSON-encoded text (arrays or objects) because the underlying data is nested; open them in Python/R with json.loads after reading the CSV.

ColumnMeaning
survey_idInternal survey key.
response_idInternal response key.
participant_idAnonymised per-session id (hash-based; not the raw token).
assigned_groupA/B condition (1, 2, …).
randomization_seedServer-side seed for stimulus ordering when used.
shown_post_orderJSON array of post ids as shown to the participant.
is_previewtrue if this run was a researcher preview / test session.
languageParticipant UI language code (e.g. en, zh-CN, ja).
response_statuscompleted, in_progress, or flagged, etc.
started_at / completed_atISO timestamps.
Calibration (flat)See below.
Attention (flat)See below.
gaze_countNumber of gaze samples stored for this response (aggregate count; not raw xy time series in CSV).
click_countNumber of stored click records for this response.
participant_interactionsJSON array: likes, comments, dwell, click_x / click_y, action_type, timestamps.
question_responsesJSON array: question text, type, chosen answers / values.
displayed_postsJSON array: post stimuli as seen for this participant’s group (title, URLs, engagement overrides).

Calibration fields in CSV

Flattened from the calibration object in JSON exports:

CSV columnInterpretation
calibration_statusWorkflow status (e.g. completed).
calibration_qualityCategorical quality tier (e.g. good / acceptable / poor).
calibration_quality_scoreNumeric calibration score when available.
calibration_passedtrue/false gate used by analytics filters and attention scoring.

Detailed point-level calibration geometry is not repeated in every CSV row; session-level metrics above are what researchers use for inclusion rules and quality reporting.

Attention-confidence fields in CSV

Flattened from the attention object. These summarise how consistently a face was tracked and how complete the attention window was relative to calibration outcome:

CSV columnTypical use
attention_confidenceOverall confidence score for attention/face coverage.
attention_qualityCategorical bucket.
attention_coverageShare of expected window with usable face/attention signal.
attention_active_msActive attention window duration.
attention_expected_samples / attention_detected_samplesSample counts for coverage math.
attention_missing_msTime with missing signal.
attention_no_face_periodsCount of gaps without a face.
attention_quality_reasonShort machine-readable explanation for QA.

See also Attention confidence.

JSON export shape

The JSON download wraps the same responses with structured objects instead of stringified JSON columns:

  • responses[].calibration — object with status, quality, quality_score, passed, face_detection_rate, stability_score, quality_reason, completed_at.
  • responses[].attention — object with the same keys as the attention_* CSV columns.
  • responses[].gaze_count / click_count — aggregates matching CSV.
  • Raw time-series gaze points are not inlined in the bulk export; counts and interaction/click records are the researcher-facing surface area in this schema.

Use JSON when you prefer nested objects without CSV string parsing; use CSV for spreadsheets and statistical packages.