- Policy version date
- 2026-10-29
- App version
- 0.1.8 / code9
- Effective date
- 2026-10-29 (Asia/Shanghai)
- Operator
- 郑炎清 / ZHENG YANQING(Rubiks TT)
- Android package
- com.yqzheng.dailytarot
- Support and privacy email
- 14yqzheng1@gmail.com
1. What this edition does
The app offers random daily and three-card draws, traditional upright and reversed card meanings, local template readings, a 78-card gallery, favorites, reading history, and poster saving or system sharing. It is for entertainment and personal reflection. You do not need an app account or a paid subscription to use these local features.
The intended audience is age 13 and above, including minors. This is an audience statement, not the app’s awarded content rating. The app is not directed to children under 13 and does not verify identity or date of birth. Do not enter unnecessary sensitive information about yourself or other people.
2. Information stored on your device
App-private files and preferences hold optional questions and a limited list of earlier edits, selected cards and orientations, generated local readings, timestamps, reading-source markers, favorites, language and reversed-card preferences, and whether the guide has been seen. This supports the journal and interface. Current history is limited to 200 readings and up to 10 earlier-question entries per reading.
A separate local usage ledger keeps local dates and used daily-draw and rewrite counts. It does not contain questions or reading text. Deleting or trimming readings does not remove this ledger or refund used allowances. The ledger currently has no automatic date-based expiry.
Advertising settings also store a self-reported age category and configuration revision information on the device. The age categories are unanswered, under 13, 13–17, and 18 or above. A birthday or identity document is not requested. Google UMP may separately retain privacy-choice state through its SDK.
3. Local retention, deletion and Android backup
You can delete individual readings or clear reading history in the app. Clearing history keeps favorites, preferences and the separate usage ledger. You can remove favorite cards individually. Clearing Android app storage or uninstalling normally removes app-private records and settings; we cannot remotely recover records held only on your device.
This build disables automatic Android backup of app-private data and excludes app storage from Android cloud-backup and device-transfer rules. There is no developer-operated cloud sync or restore. These build settings do not guarantee identical behavior on every Android version, manufacturer, administrator tool or system implementation.
Saved images and copies received by other apps are outside the in-app journal and these private-app backup rules. Other gallery or cloud services may keep independent copies under their settings. Removing readings, clearing storage or uninstalling does not delete them. App-private storage uses Android isolation; we do not claim that every local file is separately encrypted by the app.
4. Images you choose to save or share
A generic card share is regenerated from public card meanings without the original question, earlier questions or original AI prose. A question-bearing poster can include the full question and reading. Check the visible preview before exporting.
Saving and sharing require your action. On supported Android versions, saving writes an image to Pictures/Tarot; on older versions the system document picker asks where to save it. Sharing passes a PNG to the Android app you select. A successful share callback does not prove another person received the image. Receiving apps and storage services handle their copies under their own policies.
Sharing or an interrupted save can leave temporary PNG files in app-controlled cache. A later relevant save or share attempts to clean matching temporary files older than 24 hours. This is event-triggered, best-effort cleanup, not a guaranteed 24-hour deletion schedule. A receiving app may still be reading a shared file.
5. Advertising configuration and network requests
At startup, this signed build automatically attempts an HTTPS GET to https://tarot.yqzheng.com/api/mobile/ads-config to obtain a small advertising configuration, including when ads are off or the age category is unanswered. The current configuration host is in Hangzhou, mainland China. A failed request or a missing route can still reach the host.
The configuration request does not attach questions, readings, history, favorites, age category, purchase tokens, a request body, cookies or a referrer. The receiving host can obtain normal connection metadata. Its Nginx access log uses the combined format: client address, HTTP user name when present, local time, request line (which can include a query string), status, response-body byte count, Referer and User-Agent. This format has no request-body or Cookie field. Access and error logs support request handling and technical troubleshooting; this does not mean private reading text is used for advertising profiles.
The host is configured to rotate non-empty Nginx logs daily and retain 14 old rotated versions, with the active file counted separately. Empty logs can be skipped, and compression is delayed for the newest rotated file. These are rotation settings, not a guarantee that every record is deleted within 14 calendar days. Server maintainers and local system accounts with the relevant filesystem permissions can read logs.
The backend service’s standard output and error output enter the system journal, which can be stored persistently. No fixed time-based retention limit is currently set; system capacity and rotation rules govern these journal records. They are not covered by the Nginx 14-version setting, and deletion within 7 or 14 days is not guaranteed. Backups and hosting-provider records are separate; these settings do not guarantee deletion of every independent copy.
Missing, failed, invalid or expired configuration keeps app-controlled ads off. A configuration switch cannot bypass the app’s age, privacy, expiry, foreground and frequency gates. The app does not send private reading text to ad keywords, ad content URLs or custom advertising data.
This policy is provided at https://dailytarot.yqzheng.com/privacy/ through an independent static site on the Singapore host. That policy website is separate from the app’s current Hangzhou configuration endpoint. The website does not move the app’s configuration request, AI routes or subscription callbacks to Singapore.
6. Google advertising SDKs and privacy choices
Google’s disclosure for Mobile Ads Legacy 25.5 describes IP-based approximate location, app/SDK interactions, performance diagnostics and device or other identifiers. Google receives and processes these data for advertising, analytics, and fraud prevention, security and regulatory compliance. Google’s processing is described by its separate policies; its advertising role is not treated here as processing solely on the operator’s behalf. Removing the advertising-ID permission does not establish that all other identifiers are absent. Google describes TLS protection for data sent by this SDK.
Google UMP handles privacy and consent choices, including related dialog choices and IAB consent-state signals when applicable, to provide privacy-choice functionality, manage advertising choices, and support fraud prevention, security and regulatory compliance. These choices are described as Other actions in Google Play’s data categories. UMP may retain privacy-choice state through its SDK; this is separate from the app’s local reading journal. No birthday, identity document or private question is added to this consent flow by the app.
This build removes advertising-ID and specified AdServices permissions. SDK startup providers and other library components are still included. A disabled ad switch, non-personalized requests or zero app-level ad calls does not prove that the complete app or Google SDKs have no automatic processing or network activity.
For the app-managed ad path, only a person who selects 18 or above can become eligible. Unanswered, under-13 and 13–17 categories skip ad requests while local readings remain available. Eligible requests also require current configuration and a fresh Google UMP check allowing ads. Production requests are configured for non-personalized ads and a PG maximum ad-content filter. These settings are not anonymity, proof of age, a content rating for this app, or a substitute for required regional choices.
The advertising privacy and age entry lets you review the saved category and open required Google privacy options when available, including after advertising has been disabled. Withdrawing a choice or turning ads off prevents new app-controlled loads or displays and discards unshown cached ads. It does not retract data already received by a service or forcibly close an ad already being displayed.
Third-party processing, retention and privacy controls are governed by the relevant Google service policies and available controls. The app’s off switch does not delete data already held by Google.
7. Prepared billing and disabled online AI
Google Play Billing is included as preparation, but the current app has no configured, trusted subscription-verification service and does not offer a usable purchase or verified restore flow. Do not interpret a preparation screen as an active paid plan. No trial, purchase success, fixed local-currency price or premium entitlement is promised.
A future subscription would remove ads only while a trusted verified entitlement is valid. It would not change existing free reading allowances or enable online AI. Before any purchase flow is enabled, the operator must configure the actual products and verification service, document transaction/token/status handling, account or installation binding, retention and deletion, and update disclosures and required choices. Google Play separately handles its store and payment services under Google’s policies.
Online AI is disabled in this edition. Readings use bundled local templates; the app does not send questions or reading history to a model endpoint through that flow. If online AI processing is introduced later, an accurate notice and the necessary choices and safety handling must be provided before transmission.
8. Contacting support and opening policy pages
Emailing the public contact address is your choice. The app does not automatically send a message, attach a screenshot, include a reading or submit a device report. If you send an email, the operator and email providers receive your sender address, message and voluntary attachments to handle your request. Do not send passwords, private keys, verification codes, payment details or unnecessary private diary content.
The developer handles support enquiries. Support messages are retained for 12 months after the case is closed and are then manually cleared by the developer, except where retention is required by law or a valid request calls for earlier deletion. This is a manual process, not an automated deletion job. Deletion applies to copies under the developer’s control; it does not guarantee deletion of separate copies retained by a sender, recipient or email provider under its own systems and rules.
The Singapore policy site uses static pages and a same-origin stylesheet, without scripts, forms, analytics or automatically loaded third-party assets. Its own Nginx site has access logging disabled and discards site error-log output. A browser request can still expose normal connection metadata to the hosting infrastructure. This site setting does not guarantee zero hosting-provider, network, system-journal or backup records and does not change logging for the app’s separate configuration endpoint.
9. Choices, privacy requests and security
For data kept only in this app’s private storage, use the local deletion and Android storage controls described above. We cannot remotely inspect or erase device-only records. You may contact the operator about information actually received by us, including applicable access, correction or deletion requests, subject to necessary verification and applicable law. A guardian can contact us about a minor’s information that we have received.
The app’s configuration endpoint uses HTTPS and rejects an invalid configured endpoint. Google’s SDK disclosure addresses its own transport protection. We do not make an end-to-end security or deletion guarantee for selected receiving apps, email providers, hosts or every system component. No security method is absolute.
10. Policy changes
Material changes to SDKs, services, advertising, purchases or online processing require updated disclosures and the necessary choices before the new processing begins. The effective date above identifies this policy version. This policy applies to Daily Tarot Cards and does not change another app’s separate policy.