This Privacy Policy explains what information Saga Shelf ("we", "us", "our") collects when you use the Saga Shelf mobile app and the companion website at sagashelf.com, how we use it, and the choices you have. We try to collect only what we need to run the service. We don't sell your data, we don't share it with advertisers, and we don't use advertising or tracking SDKs in the app. We do use Google Analytics for Firebase, with its advertising features turned off, to measure how the app is used (see Reading analytics).

Information we collect

Your account

When you first open the app, we create an anonymous account for your device, identified by a random value stored in your device's Keychain (we store only a one-way hash of it). This account holds your token balance, unlocked chapters, and progress, and contains no personal information. It lets you read, buy tokens, and claim daily bonuses without signing in.

If you choose to sign in with Apple — for example, to keep your library across devices — your anonymous account is linked to your Apple ID, and we receive and store:

We don't ask for or store passwords. Sign-in is handled by Apple.

Library and reading activity

To keep your library and progress consistent across devices and reinstalls, we store on our servers:

Some of this same information is also kept on your device so the app works offline. Downloaded chapter content is stored on your device only; we don't keep a separate copy of what you've downloaded.

Tokens and in-app purchases

When you buy tokens, Apple processes the payment. We never see your credit card or Apple ID password. Apple gives us a transaction identifier and a product identifier, which we send to Apple's App Store Server API to verify the purchase, and then we credit tokens to your account. We store, for each purchase: the Apple transaction ID, the product ID, the purchase date, and the number of tokens credited.

We also store your current token balance (purchased and bonus), and a history of token credits and debits (purchases, chapter unlocks, daily bonuses, promo redemptions, refunds), so the wallet works correctly.

If you subscribe to Premier, we store the subscription's product, Apple's original and latest transaction IDs, its status, expiration date, and auto-renew setting, which we receive from Apple's App Store Server API, so that every chapter is unlocked while your subscription is active.

Reading analytics

The app sends us account-linked reading events that record, for each page you read in the app: the story, the chapter number, the page index, the time you started and stopped reading that page, and your device's time zone. These events help us understand which stories engage readers and where people stop reading.

We also record a small set of app events: app opens, chapters opened and finished, when a purchase screen is shown, purchase attempts and their outcome, free trials started, and daily check-ins. These help us understand whether the app's pricing works for readers.

Page-reading events and app events are stored on our own servers and are deleted together with your account.

We also use Google Analytics for Firebase, a measurement service from Google, to see how the app is used in aggregate. The app sends Google Analytics the same app events listed above (with the story and chapter number where relevant), which tab you're viewing, and completed in-app purchases (the product, price, and currency). Google Analytics also collects some information automatically: a random app-instance identifier, app sessions and engagement time, your device model, iOS version, app version, and language, and an approximate location (country or region) that Google derives from your IP address. We attach your Saga Shelf account ID so events from the same account can be counted together. We don't send your name, email address, or Apple ID, or the text you read.

We have turned off Google Analytics' advertising features: the app doesn't access your device's advertising identifier (IDFA), denies consent for ad storage and ad personalization, and doesn't use this data for advertising or to track you across other companies' apps or websites. Google processes this data as our service provider under the Google Privacy Policy, and it is kept for a limited retention period. When you delete your account, the app also resets its Google Analytics identifier on your device.

Device and technical data

Our servers automatically log basic request metadata (IP address, timestamp, endpoint, response code, user agent) for security, debugging, and abuse prevention. These logs are retained for a limited period and are not used to profile or advertise to you. We do not collect device advertising identifiers (IDFA), and we do not request location, contacts, camera, photos, or microphone access.

Website contact form

If you use the contact form on this website, we receive the name, email address, subject, and message you submit, along with a reCAPTCHA v3 score from Google that helps us filter spam. We use this information to respond to your inquiry. Google's use of reCAPTCHA data is governed by the Google Privacy Policy and Terms of Service. The reCAPTCHA script runs only on the Support page, not on the rest of the site.

How we use your information

Where your data is stored

Server-side data is stored on managed cloud infrastructure in the United States. Local data on your device — including downloaded chapters, your access and refresh tokens, cached lists, and reader preferences — is managed by iOS through Apple's Core Data framework and the system user defaults. iCloud / CloudKit sync is currently not enabled in the app.

How long we keep it

We keep your account data and reading activity for as long as your account exists. When you delete your account, your account record and the data we hold about you are removed from our active database. Aggregated, non-identifying statistics (for example, total chapters read across all users) may be retained. Anonymous server access logs are retained for a short period for security and debugging, then rotated out.

Sharing

We do not sell your personal information, share it with advertisers, or hand it to data brokers. We share data only with the service providers we need to run Saga Shelf:

We may also disclose information when required by law (for example, in response to a valid subpoena) or to protect the safety, rights, or property of Saga Shelf, our users, or the public.

Your choices and rights

You can delete your account at any time from within the app: open the Profile tab and tap Delete Account. This signs you out and removes your account record, library, reading progress, ratings, token balance, transaction history, subscription record, daily bonus streak, and reading and app event data from our servers, and resets the app's Google Analytics identifier on your device. Note that unspent tokens are non-refundable, so you may want to use them up first.

Depending on where you live, you may also have the right to request a copy of your data, ask us to correct it, or restrict how we use it. Contact us through the Support page and we'll work with you. We don't discriminate against users who exercise these rights.

Children

Saga Shelf is not directed to children under 13, and we do not knowingly collect personal information from children under 13. If you believe a child has provided us with information, please contact us so we can remove it.

Security

We protect data in transit using HTTPS and store it on managed cloud infrastructure with restricted access. No system is perfectly secure, but we follow reasonable industry practices and limit how much data we collect in the first place.

Changes

We may update this policy occasionally. When we do, we'll change the "Last updated" date at the top of this page. If the changes are significant, we'll provide additional notice — for example, in the app.

Contact

For any question about this policy or your data, please use the form on our Support page.