Privacy Policy

Duotext. Updated 27 October 2026.

Your books, translations and saved words stay on your device. Limited purchase, usage and Apple Ads attribution data are described below.

What the app stores

All of this is stored locally on the device, in the app's protected container. No account is required. From version 1.5.7, a separate analytics service operated by us receives only the limited events described below; it does not receive your reading content.

Translation happens on the device

Duotext translates with Apple's built-in translation system that runs on the device itself. The text of your books is not sent to us or to any third-party service. Language packs are downloaded to your device by iOS from Apple.

Importing by link

When you save an article by link, the app downloads that page directly from the website you specified — the same way a browser would. No intermediary server of ours is involved.

Custom covers

If you set a book cover from your photos, the system photo picker hands the app only the image you chose. The app has no access to the rest of your photo library. The image is stored locally with the book.

What we do not do

Purchases

Purchases and subscriptions are processed by Apple. We do not receive or store your card details. The app only sees whether Pro is active. Managing and cancelling a subscription happens in your Apple ID settings.

To understand purchase statistics (how many trials start, how many convert) the app reports purchase events to RevenueCat, a purchases-analytics service, under a random identifier generated on your device. What is sent: which product was bought, when, in which country and currency, and whether a trial or a renewal took place — this is the purchase history category in Apple's privacy labels. What is never sent: your name, your email, IDFA, IDFV, and anything from your books, translations or saved words. This random app identifier is not tied to an account with us and is not used to track you across apps or websites. RevenueCat's own privacy policy: revenuecat.com/privacy.

RevenueCat sends purchase and subscription lifecycle notifications to our analytics server. Our financial ledger stores the product, event times, purchase status, trial and renewal information, cancellations and refunds, price and estimated proceeds. Customer and transaction identifiers are replaced with keyed hashes before storage; raw notification payloads and raw customer or transaction identifiers are not kept in that ledger. These purchase records are not joined to the installation identifiers used by our optional usage analytics. They support financial reporting and subscription lifecycle analysis and have no automatic expiry period; they are retained until manually removed. You can contact us about access or deletion. Turning off optional usage analytics does not turn off purchase processing by Apple or RevenueCat or these financial notifications.

Analytics

From version 1.5.8, usage analytics is on by default and the app no longer shows a separate prompt; you can turn it off at any time in Settings → Usage analytics. If you chose “Not now” in version 1.5.7, that choice is kept. Turning it off does not limit reading or purchase features; it stops new usage events and clears any unsent events waiting on the device. It does not immediately delete events already received by our server; those expire under the retention limits below, and you can contact us to request deletion.

From version 1.5.7, the app sends limited usage events to an analytics server operated by us to understand whether the introduction, reading features and Pro offer work as intended. Events include predefined actions (such as app launch, completing an introduction step, opening or closing the Pro offer, choosing a plan, purchase or restore outcome), bounded counts, event time, app version and build, and interface language. From version 1.5.8 they also include: which built-in catalogue story is opened (an imported book is reported only as “own”), reading time and how far a book has been read in steps (10–100%), the number of translations revealed, the language codes of the book and of the translation, reader settings (theme, font, text size, translation and page mode), why a translation could not be shown, the file format and a fixed reason code when an import fails, the device type (iPhone, iPad, iPhone Duo), the iOS version and how long the app stayed open. Book titles, authors, file names, links, book text, translations and saved words are never sent. They do not contain free-form diagnostic messages.

The app generates random installation, session and event identifiers. Before storing installation and session identifiers, our server replaces them with keyed hashes. These are pseudonymous device-level identifiers: events from the same installation can be associated with one another. They are not IDFA or IDFV, and we do not use them to identify you across other companies’ apps or websites. We disclose Device ID and Product Interaction for analytics as linked to the device in Apple’s privacy labels. The app does not send its RevenueCat identifier to this usage-event service.

What is never sent to this service: book text, titles, authors, book identifiers, translations, saved words, imported URLs, filenames, file paths or anything you type. Reading content stays on your device.

Usage events from the public release are retained for up to 90 days; development and TestFlight events for up to 7 days. A size limit may remove older events sooner. Network addresses are processed transiently for communication and abuse prevention, and are not stored in the usage-event database or routine analytics access logs. Technical error logs may contain an IP address and are rotated with up to 14 days of retained logs.

Earlier app versions sent limited introduction and Pro-offer usage attributes to RevenueCat under its random app identifier. From version 1.5.7 these usage events go to our own service. RevenueCat continues to process purchases and standard Apple Ads attribution as described here. We do not sell analytics data or use it for advertising across other companies’ apps or websites.

For questions about data access or deletion, contact us using the address below. Because we do not collect your name or email in the app, we may need information that identifies the relevant app installation to locate its events. Otherwise, those events expire under the retention periods above. Removing the app stops future usage events from that installation and removes its local reading content and queued events; it does not immediately remove events already stored on our server.

Apple Ads attribution

From version 1.5.1, to understand whether Apple Ads brings paying customers, the app sends a Standard AdServices attribution token to RevenueCat. RevenueCat requests attribution data from Apple and associates the available campaign, ad group, keyword and country or region with the same random app identifier used for purchase analytics. This is the advertising data category in Apple’s privacy labels, used for analytics. No IDFA or IDFV is collected by the app. It does not track you across apps or websites, and it does not send your books, translations or saved words. This feature uses Standard attribution and does not request App Tracking Transparency permission.

Children

The app is not directed at children under 13 and does not knowingly collect any data about them.

Changes

If this policy changes, the new version will appear on this page with a new date.

Contact

Questions about privacy: saverinkz@yandex.ru