Privacy Policy

Storyteller - a reading & listening app for learning English

Last updated: 6 November 2026

This Privacy Policy explains what information Storyteller ("the App", "we", "us") collects, how it is used, and the choices you have. Storyteller is built for reading and listening to stories, with an on-device dictionary, English-learning tools, and a few casual mini-games. Most content and learning features run entirely on your device, and you can use the App without an account.

1. Information We Collect

CategoryWhat it isWhen it's collected
Account information If you create an account: your email address and a password. The password is handled by Firebase Authentication - we never see or store it in readable form. If you choose to continue without an account, only a random anonymous ID is created instead, with no email or name attached. Where Google sign-in is offered, signing in with Google shares your Google account's email and display name with us. Only when you sign in, create an account, or choose "continue without an account" on the Account screen. Signing in is optional.
Account profile A small profile record stored with your synced data: your email and display name (if any) and whether the account is anonymous. Whenever your data syncs (see below).
Synced learning data Your saved vocabulary words and review schedule, reading progress, playlists (including Favorites), highlights and notes you write in stories, quiz history, reading/app settings (font size, theme, UI language), learning stats (streaks, daily activity), badges earned, and mini-game results (high scores, play counts, Brick Breaker level progress and coins). Only while you are signed in (anonymously or with an account): automatically when you sign in and when you return to the app (at most about every 15 minutes), and whenever you tap "Sync now". If you never sign in, nothing is synced.
Story ratings & feedback Star ratings (and optional tags such as "too hard") you give stories, and feedback you choose to send - a problem report about a story or a message about the app - with the app version, platform, UI language, Premium status, and (for story reports) which story and paragraph it's about. If you tick "You may contact me by email", the email address you enter is stored with that message so we can reply. A random per-install identifier is attached so we can count each person's rating once. Only when you rate a story or send feedback. If you aren't signed in, doing so starts an anonymous session (a random ID, no email or name). From then on your saved words, notes, reading progress and other learning data sync like any signed-in session (see the row above). The only way to stop that is to delete your account (Account screen).
Crash & diagnostic data Automatically collected crash reports (Firebase Crashlytics) - stack traces, device model, OS version, app version. No text you typed, note you wrote, or word you looked up is included. Automatically, if the app crashes or hits an error, on mobile builds only.
Analytics data Usage data (Firebase Analytics) - screens viewed, feature usage (for example which stories are opened, which mini-games are opened and finished, and their scores), session length, device/locale info, and an app-instance identifier. Automatically, during normal use.
We do not collect your precise location, contacts, or photos, and we do not require your name. Storyteller does not sell your data and does not share it for advertising.

Microphone (pronunciation practice)

If you use the flashcard pronunciation feature, the app requests microphone access. "Record & compare" records your voice for playback on your device only; that recording is never uploaded by us and is discarded when you're done practicing. "Check pronunciation" uses your device's built-in speech recognition service (on most Android devices, provided by Google) to turn a few seconds of speech into text, which the app then compares with the target word on your device. Depending on your device and settings, that service may process the audio on its provider's servers under the provider's own privacy policy. We do not receive or store your audio or the recognized text.

Premium subscriptions & purchases

The app offers an optional Premium subscription sold through Google Play Billing and managed with RevenueCat. New users also get a free in-app Premium trial; its start date is stored on your device and, if you are signed in, in your account. When you subscribe or restore a purchase, Google Play and RevenueCat process your purchase details (the product bought, purchase and renewal dates, status, and an anonymous app user identifier) to confirm that you have Premium. We do not receive or store your payment card details; payment is handled entirely by Google Play. RevenueCat acts as our service provider and does not use this data for its own advertising. You can cancel at any time in Google Play (Payments & subscriptions); a subscription renews automatically until you cancel.

Free-trial abuse prevention (Android). To stop the free trial from being restarted by reinstalling the app, the app computes a one-way (SHA-256) hash of your device's Android ID and stores it, with the trial start date, in our database. The hash cannot be reversed to recover the Android ID, is not linked to your name, email or account, and is not shared with third parties or used for advertising. It is kept even if you delete your account (see section 5).

Advertising

The current version of the app does not show advertisements. If ads are enabled in a future update, this policy will be updated first, and any provider used (for example AppLovin MAX) will be disclosed here along with its data practices.

2. How We Use Information

We do not use your email to send marketing messages.

3. Where Data Is Stored

Account data is managed by Firebase Authentication, and synced data is stored in Google Cloud Firestore (Firebase), scoped so that each account can only read and write its own data - enforced by server-side security rules, not just app-side checks. Data in transit is encrypted (HTTPS/TLS). Data that is not synced (e.g. downloaded stories/audio files, download preferences, daily-reminder settings, notification history) stays only on your device.

4. Third-Party Services

We use the following service providers, each acting as a data processor on our behalf:

5. Data Retention

Account and synced data are kept until you delete your account (see below). Anonymous accounts that stay inactive for an extended period may be periodically purged. Crash and analytics data is retained per Firebase's standard retention windows. Ratings and feedback are kept until you delete your account; you can also ask us by email to delete a specific message. The hashed device identifier used to prevent free-trial abuse (see "Premium subscriptions & purchases") is not removed when you delete your account, because it holds no account data and removing it would let the trial be restarted; it contains only the hash and a trial start date. Email us if you want it removed.

6. Your Choices & Rights

7. Children's Privacy

Storyteller is not directed at children under 13 and is not part of Google Play's Designed for Families program. We do not knowingly collect personal information from children under 13. If you believe a child has provided us with personal information, contact us using the details below and we will delete it.

8. Changes to This Policy

We may update this Privacy Policy as the app evolves (for example, if we add advertising or push notifications). We will update the "Last updated" date above when changes are made. Material changes will be reflected here before they take effect.

9. Contact Us

Questions about this policy or your data? Contact:
[email protected]