Screenshots and Privacy
Target reader: developers integrating the SDK, writing in-game notices, or reviewing privacy behavior.
Developer account data includes email, display name and password hash, and purpose-bound verification/reset records. Email is used for those account actions only. Passwords/codes never belong in URLs or logs. Account deletion clears identity and credentials while anonymous references, shared feedback/comments and necessary audit history remain; see Account and security.
Minimal example
Each feedback submission stores a consent snapshot:
{
"privacy_notice_version": "v1",
"player_confirmed_submit": true,
"screenshot_upload": false,
"recent_logs_upload": false,
"contact_upload": false,
"recent_logs_dropped": false,
"contact_dropped": false,
"submitted_at": "2026-06-10T01:00:02Z"
}
The only accepted consent fields are screenshot_upload, recent_logs_upload, and contact_upload. Payloads containing the removed Alpha fields include_screenshot, include_recent_logs, or include_contact are rejected.
Baseline notice
When players submit feedback, show a summary of the information that will be uploaded before the final submit action. echo-nebula uploads the description they entered and basic technical information such as game version, platform, device information, current scene, and submission time to the game developer team. The current screenshot or recent logs are uploaded only when the player selects the corresponding options. A screenshot can include visible game screen information, player-visible UI, names, chat, or other in-game content. Contact information is optional and is used only if the developer needs to follow up. Tell players how to contact the developer for deletion requests, follow-up contact changes, or privacy questions. Do not ask players to include passwords, payment information, identity documents, access tokens, or other sensitive information.
Screenshot upload is a second step after the report is accepted:
curl -X POST "http://localhost:4000/v1/feedback/reports/fbr_demo/attachments" \
-H "X-Project-Key: enb_pk_xxx" \
-H "Idempotency-Key: screenshot-fbr-demo" \
-F "type=screenshot" \
-F "file=@screenshot.png"
Only call that endpoint when the saved consent snapshot has screenshot_upload: true.
Drop-vs-reject behavior
The API rejects a report when player_confirmed_submit is not true. If a client sends contact information or inline recent_logs while contact_upload or recent_logs_upload is false, the server stores the report but drops those fields and records contact_dropped: true or recent_logs_dropped: true in the saved consent snapshot. Screenshot and recent-log attachment uploads are rejected when the matching consent flag is false.
Common mistakes
- Screenshot and recent log options must not default to checked.
- Contact information must not be silently copied from account data and uploaded.
- Backend logs must not contain contact details, project-key plaintext, JWTs, or passwords.
- Do not upload a screenshot because the feature is enabled in SDK config; the player must opt in for that specific report.
- Do not send removed
include_*consent fields; the API rejects them.
Next step
Read Offline queue.