Legal / Quiet Camp
Privacy Policy
This policy explains local game storage, optional gameplay analysis, crash reporting, rewarded advertising and correspondence for Quiet Camp.
On this page
- The data controller
- Scope and your choices
- Information processed
- Local progress and privacy settings
- Optional Firebase Analytics
- Optional Firebase Crashlytics
- Rewarded advertising and privacy options
- Children and teenagers
- Support and privacy correspondence
- Recipients and international transfers
- Retention and deletion
- Your privacy rights
- This website and security
- Changes and contact
13+ audience · production configuration and Android checks pending
This document is not yet cleared for the Android release
This candidate restores the primary 13+ audience and prepares age-appropriate video bonuses rather than a blanket 18+ advertising ban. The accompanying source adds slow local life recovery, rewarded hints, sequential choices and separate NPA, Limited Ads and approved-adult advertising paths. These are implementation capabilities, not proof that production services are active: the owner confirms AdMob/UMP, GA4 retention and Play age groups have not yet been checked. Native traffic, storage, crash queues and advertising modes require verification before final release clearance.
01The data controller
Quiet Camp is an offline-first Android spatial puzzle game. Its controller is the natural person Oleksii Havryliuk, also publicly known as Oleksiy Havryliuk, operating as Kruty1918 Games. The supplied Ukrainian full name is Олексій Гаврилюк Олександрович. Kruty1918 Games is a brand and trading name, not a separate registered company. The developer has confirmed Oleksii Havryliuk as the passport spelling used for Google Play verification.
Postal address: Kapitänspromenade 6, 23966 Wismar, Germany. Privacy: privacy@oleksiy-havryliuk.de. Support: support@oleksiy-havryliuk.de. Further provider details are in the legal notice.
02Scope and your choices
This policy review covers Quiet Camp for Android (com.quietcamp.game), local saves, Google Analytics for Firebase, Firebase Crashlytics and AdMob rewarded advertising. Firebase Core, Analytics and Crashlytics 14.0.0 and Google Mobile Ads 11.6.0 are present in the audited source. No player account, authentication, cloud saves, active purchase service, Remote Config, working banner/interstitial implementation or additional mediation SDK was identified in that source. New services require a fresh assessment and policy update.
Quiet Camp primarily targets ages 13 and older. First comes privacy information, then a neutral age category, then independent available choices, starting with video bonuses for eligible users, followed by a final review. Categories are not provided, under 13, 13–15, 16–17 and 18+; no birth date or identity document is requested. Reading or continuing past the policy is not consent. Gameplay Analytics and crash uploads remain separate opt-ins from age 16. Advertising does not require either of them. Choices are saved before game-side provider composition; published choice receipts also identify the exact document hash. Age changes withdraw optional permissions.
C# Firebase initialization waits for an eligible, saved Analytics or crash opt-in. The game’s Android startup provider calls no Firebase API; the source manifest excludes FirebaseInitProvider. Shared Core can create installed native products for a single purpose. Persisted overrides, identifiers, files, automatic collection and traffic differ from game-side checks: absence of early storage/traffic is unproven. Mobile Ads’ startup provider and delayed-measurement flag also require native verification.
Quiet Camp is offline-first, not purely offline. Enabled services contact Google; opening this page contacts its host. Explicit Google sample ads are development-only and need the same age gate and separate local advertising choice. Sample app/units lack a publisher UMP message and skip that production form flow. Test ads still process technical data; they do not prove a production consent configuration.
Local play remains available when optional purposes are declined. The intended monetization model retains five initial lives and three hints, offers voluntary video rewards and slowly recovers lives locally with time, rather than granting an unlimited instant free refill. The prepared defaults are one life per 30 minutes up to five; earned or purchased extra lives are not reduced to that cap. Rewarded life videos retain the ten-per-UTC-day limit; the prepared hint-video limit is five per UTC day. These local timers and counters are not server-verified clocks.
03Information processed
The following categories distinguish data kept by the game on your device from data transmitted to a provider. SDK identifiers are pseudonymous identifiers, not a guarantee of anonymity. No contacts, precise-location permission, camera recording or player account is needed for the described game functions.
| Information | Location / recipient | Choice or control |
|---|---|---|
| Game progress, album, settings and choice/acknowledgement receipts | Your device; platform backups may apply | Device only; age/choice receipts; recovery requires new choices |
| Ten custom Analytics events, SDK automatic events, app-instance/device/app information | Google Analytics for Firebase 14.0.0 | Age 16+ and separate Analytics choice; production gate closed |
| Crash traces, exception messages, four custom keys and SDK diagnostics/identifiers | Firebase Crashlytics 14.0.0 | Age 16+ and separate crash choice; native behavior unverified |
| IP address, ad interactions, permitted ad/app-set/SDK identifiers and diagnostics | Google AdMob 11.6.0 and actually selected advertising providers | 16+: independent choice + UMP; 13–15: separately approved LTD only; unknown/<13: no ad requests. Production inactive. |
| Email address, messages, attachments and correspondence metadata | Developer and mail infrastructure | Only when you contact the developer |
04Local progress and privacy settings
The game stores arrangements, progress, album, tutorials, language, accessibility/audio/display settings, local balances, document acknowledgements, age category and separate optional choices with versions/revisions. A local installation marker is never transmitted as an identifier. Android keeps it in noBackupFilesDir; a restored save without a matching marker, an invalid receipt or recovery from a save backup requires new choices. A failed privacy save leaves services off. Recovery copies and bundled/cached documents can remain locally. The save system does not upload these records.
Where these records are personal data, necessary game storage is assessed under Article 6(1)(b) GDPR where a valid contractual basis exists and §25(2) TDDDG for strictly necessary terminal storage. This exemption does not authorize optional tracking. Minimal local choice/version receipts support applying and demonstrating decisions under Article 6(1)(c) where accountability duties require them. Age category controls options; it does not verify identity.
Local data remains until removed using game/device controls or app removal, subject to Android, manufacturer backup and device-transfer behavior. The final release backup rules must be verified. Local erasure or uninstallation does not automatically remove platform backups, SDK records or data already held by Google.
05Optional Firebase Analytics
Optional gameplay analysis helps identify difficult levels, assess controls/accessibility and investigate performance problems. The current code emits ten custom event names: qc_level_begin, qc_level_summary, level_fail, qc_screen, qc_comfort_setting, qc_comfort_feedback, qc_frame_budget, rewarded_ad_requested, rewarded_ad_completed and reward_granted. They describe level starts and outcomes, a failed puzzle check, grouped screen/settings/feedback choices, performance bands and the requested/completed/granted stages of an ad reward.
Parameters are numeric categories, level/grid/preset/schema information, grouped duration, bounded action/rule-failure counts, three fixed voluntary feedback choices and frame-time/quality bands. Reward category distinguishes an extra life, a cosmetic reward and an extra hint. Reward completion follows the SDK reward-and-close result; reward_granted is emitted only after a successful save. The base campaign has 100 levels; the event validator accepts indices up to 10000 for content compatibility, not proof of 10000 active levels. Custom events contain no player name, free-text feedback or raw gesture trace. The local custom-event limit of 120 per Analytics service instance is not a cap on SDK automatic collection.
Firebase Analytics can also process app-instance identifiers, device/OS and app information, language and automatically collected events such as first open, sessions and engagement, depending on SDK configuration. Network requests use an IP address and can support approximate geographic derivation without a precise-location permission. No player account does not mean anonymous data.
Optional Analytics needs age 16+ and a separate saved current opt-in under Article 6(1)(a) GDPR and §25(1) TDDDG where applicable. Analytics storage is granted only for that choice; ad storage, ad user data and ad personalization stay denied. Android source defaults are off/denied; no custom player ID is set. Crash consent does not authorize Analytics. After shared Core creation, collection is explicitly denied before either adapter enables its own purpose. Native startup, automatic events and old persistent overrides remain release checks.
Use Settings → Data & documents → Help improve the game to change the choice. Withdrawal disables further collection through the adapter and invokes a local Analytics reset, including the app-instance identifier. The exact native effect must be verified on Android. Reset does not erase data previously uploaded; contact the privacy address for an applicable server-data request.
06Optional Firebase Crashlytics
Optional Crashlytics reports help reproduce failures and repair stability defects. SDK diagnostics can include stack traces, exception messages, timestamps, device model, OS, app version, memory/storage information and crash/session/installation identifiers. Analytics breadcrumbs may accompany reports when Analytics is also enabled. SDK-generated logs and real exception messages can contain incidental information; no blanket guarantee of anonymous or fully sanitized reports is made.
The configured custom keys are game_version, game_mode (campaign), level_index and failure_area. The game submits fixed diagnostic categories, including save failures, rather than copying save contents, file paths or free-text player input into its manual diagnostic message. Reports for the same category are locally deduplicated. This does not sanitize every diagnostic that the installed SDK may capture. No custom player user ID is configured.
Crash reporting needs age 16+ and independent consent under Article 6(1)(a) GDPR and §25(1) TDDDG where applicable. Analytics does not authorize crash upload. Manifest defaults and runtime collection controls are off; the adapter never persists auto-upload as enabled. The game calls Unity Crashlytics APIs through its authorized crash adapter; SDK-internal handler behavior is not yet verified. Shared Core can create native Crashlytics components in Analytics-only operation. Native local capture, persistent overrides and early transmission remain unverified release blockers.
Pending reports are sent only when the previous-session receipt and present crash choice both permit it. First opt-in during a session discards older pending reports. Withdrawal requests deletion through an existing initialized transport; an SDK never started by the game is not started just for cleanup. Game-side requests are issued in order; stale game-side completion cannot re-enable reporting. Failure to issue a request leaves the transport disabled until restart. Android Crashlytics 21.0.0 send/delete APIs return void: their completion or actual deletion cannot be inferred from the call. Native deletion, files, payloads and transmission already in progress need device testing; withdrawal cannot recall an upload already sent.
Use Settings → Data & documents → Crash reports to change the independent choice. Withdrawal prevents further reporting through the adapter and requests cleanup of pending reports; it does not remove reports already uploaded. Requests concerning uploaded records go to the privacy contact. The diagnostic test button is restricted to Editor/development versions and requires the reporting choice; no automatic fatal test is run.
07Rewarded advertising and privacy options
The installed Google Mobile Ads Unity plugin is 11.6.0. Current formats are optional rewarded videos for an extra life, a hint or the existing lantern cosmetic. A player must explicitly request each video. No automatic banner, app-open ad or interstitial is implemented. The lantern also unlocks through normal play after three completed levels. The proposed Pro entitlement suppresses all video placements, including cosmetic ones; actual billing and production products must be connected before any real sale.
Advertising can process IP addresses, device/app and advertising-interaction information, SDK diagnostics and permitted identifiers, depending on the serving mode. Child-age treatment suppresses advertising-ID transmission under Google’s documented behavior; this must be confirmed for the actual release. No precise-location permission or player account is required. Google describes its processing in its advertising privacy information, privacy policy and SDK data disclosure. Providers actually selected in the applicable Google consent message must be reviewable through its provider information.
For ages 16+ the game keeps an independent saved video/advertising choice. For publisher units, fresh UMP information, any required Google form and CanRequestAds precede advertising initialization/loading. Where applicable, the standard NPA path additionally requires fresh device-storage and Google-vendor consent signals. The webpage and its acknowledgement do not replace UMP. Refusing Analytics or Crashlytics does not refuse advertising; turning off video bonuses prevents game-side advertising requests.
Ages 16–17 use Google Teen treatment and forced NPA. Adults also use NPA by default. Only a separately reviewed and enabled adult-personalization feature can omit the forced npa=1 request extra; Google must still enforce the actual current UMP choices, so omission is not consent or a guarantee of personalized delivery. The normal maximum ad-content rating is T. No minor is authorized for personalized advertising.
A separate Limited Ads path is prepared for ages 13–15 and, where eligible, users who do not permit NPA device access. It requires separate publisher legal/account approval and actual Limited Ads settings. The 13–15 path runs only on an explicit video request, tags UMP as under consent age, does not show an adult consent form, uses Google Child treatment and maximum G ad content, and forces the documented Limited Ads storage control before SDK initialization. It does not record a child’s tracking consent or enable Analytics/Crashlytics. Unknown age and under 13 cannot request ads through the game. This path is currently not activated.
Consent-based advertising processing relies on Article 6(1)(a) GDPR and §25(1) TDDDG where required. Any Limited Ads processing without consent needs its own valid basis, assessed for necessary contextual delivery/fraud prevention, potentially Article 6(1)(f) only after a documented balancing assessment giving children’s interests particular weight. Limited Ads still use IP and deliver/cache creatives. Programmatic Limited Ads can use anti-fraud cookies/local storage and are on by default in Google’s account settings; Google’s product guidance is not a legal exemption from terminal-storage rules. No universal consent exemption, anonymous advertising or guaranteed fill/revenue is promised. The publisher must verify relevant settings, safeguards and any applicable §25 exception before activation.
Use Settings → Data & documents to change the game’s choices; Google privacy options remain available where required, including after local advertising withdrawal. Each promised reward follows the SDK earned callback and full-screen closure, with a successful local save before grant publication. A close without reward does not grant the reward; a failed reward save can be retried without another video while the current app process remains open. An unsaved in-memory pending reward cannot be guaranteed after the process closes. The current source retains closed production gates, sample-only development inventory and empty publisher units. Source contracts do not prove the real consent message, native signals or network payload.
08Children and teenagers
The primary intended audience is 13+. A younger player may still encounter or use the game; the declaration does not prove age or remove child-protection duties. The neutral selector stores only an age category locally and includes “Prefer not to say”. Unknown age and under 13 use local play without optional Analytics, crash uploads or advertising requests. The actual Play audience, content rating, post-war setting and store presentation must be assessed together; Families obligations depend on the actual audience, not only the label.
For ages 13–15, gameplay Analytics and crash uploads are unavailable. An expressly requested video bonus may use only the separately approved Limited Ads path described above. No child tracking opt-in, parent account, parent identity check or date-of-birth collection is implemented. If that restricted advertising mode has not been approved or is unavailable, the player uses local play and timed life recovery. Ages 16–17 have independent optional choices and Teen/NPA advertising protections; personalized ads are not permitted for them.
Article 8 GDPR concerns consent-based information-society processing offered directly to children; Germany uses age 16 and national implementations differ. It does not prohibit all contextual advertising to every teenager or require parental verification for every local game use. It also does not make a child’s self-declared older age valid consent. Appropriate, proportionate age assurance and other child, contract-capacity and content requirements must be assessed for the actual processing and countries.
A 10-year-old may incorrectly choose an older age. The selector does not guarantee prevention. This does not automatically transfer the developer’s privacy/SDK obligations to the child or parents, and this notice contains no blanket waiver. Responsibility in an individual incident depends on the facts and applicable law. When reliable information identifies a child, stop ineligible optional processing and investigate or delete associated records as required, with proportionate identity checks. Do not send identity documents by default.
09Support and privacy correspondence
When you email the developer, your email address, message, attachments and correspondence metadata are processed to respond. Use support@oleksiy-havryliuk.de for support and privacy@oleksiy-havryliuk.de for privacy. The developer confirms that both mailboxes work and are personally managed. Please send only information needed for the request, not sensitive documents or a complete device backup.
Article 6(1)(b) GDPR applies where support is necessary for the requested contract; ordinary enquiries can rely on Article 6(1)(f), the legitimate interest in answering correspondence. Statutory data-rights handling relies on Article 6(1)(c). These grounds do not authorize optional SDK tracking.
Mail is received through STRATO mail infrastructure, as indicated by the domain MX records. Exact contractual and backup arrangements must be confirmed. The selected correspondence schedule is deletion 12 months after case closure, except for specific lawful duties or necessary legal-claims retention; its mailbox implementation must be verified before release clearance.
10Recipients and international transfers
Recipients include the developer, the applicable Google entities for enabled services, their processors and the selected advertising partners identified in the actual Google privacy message. Hosting and mail providers process requests/correspondence needed to deliver this page and reply. The absence of an additional mediation SDK does not prove the absence of advertising partners.
Google services can process data outside the EEA, including the United States; no EEA-only storage is promised. The actual accepted contracts and recipient roles must be checked. Applicable safeguards may include standard contractual clauses and/or an adequacy decision for an eligible certified recipient under the EU–US Data Privacy Framework, with supplementary measures where required. The privacy contact can provide information about the applicable safeguards.
Provider references: Firebase privacy information, Firebase processing terms, Google Ads processing terms and controller terms. Publishing these links alone is not proof of the developer’s account-specific agreements.
11Retention and deletion
Local records remain until removed, subject to the backup limitations described above. The release profile selects two months for user/event-level data governed by the GA4 retention setting, without unnecessary renewal through new activity. This must be confirmed in the actual property. It is not a universal expiry for standard aggregated reports, identifiers or separately exported data; no unnecessary export is included in this profile.
Google states that Crashlytics retains crash traces, extracted minidump data and associated identifiers for 90 days before starting their removal from live and backup systems. This does not promise complete deletion on day 90. Raw NDK minidumps are stored temporarily for processing. Advertising retention follows the applicable Google and selected-provider terms; no unsupported game-specific deletion period is promised.
Correspondence uses the 12-month schedule and lawful exceptions above. Actual hosting-log and backup retention must be established from the hosting arrangement. Different providers, aggregated reports and local copies do not share one universal retention clock.
To request access or deletion, email privacy@oleksiy-havryliuk.de with the app version, approximate dates and relevant context. An email address alone may not identify pseudonymous SDK records. Proportionate verification may be needed; do not send an identity document by default. We will explain identification limits, provider procedures and lawful exceptions. Local reset, consent withdrawal and advertising-ID reset do not themselves delete already uploaded records.
12Your privacy rights
Where the GDPR applies, you may request access, rectification, erasure and restriction of processing. You may object to processing based on legitimate interests for reasons relating to your situation; objection to direct marketing is available at any time. Portability applies to qualifying automated processing based on consent or contract. These rights have conditions and statutory exceptions.
You may withdraw consent at any time without affecting the lawfulness of earlier consent-based processing. Contact privacy@oleksiy-havryliuk.de. We normally respond within one month; legally permitted extensions and reasons will be communicated. You can complain to a supervisory authority, particularly where you live, work or believe a breach occurred. The German data protection authority directory helps locate an appropriate authority. Reading or acknowledging this policy is not consent.
13This website and security
This page loads local assets without visitor analytics, ad SDKs, third-party fonts or tracking cookies. Its text and language navigation work without JavaScript. The Vercel host receives connection/request information, such as IP address, path, time and browser information, to deliver and protect the site. The basis for proportionate necessary delivery/security processing is Article 6(1)(f) GDPR. Host contracts, log settings, retention and transfer safeguards require account-specific confirmation.
Read the separate website privacy notice for hosting and correspondence, and the legal notice for the operator. The illustrated guide is separately hosted on GitHub Pages. Following an external link connects your browser to that provider.
Reasonable safeguards include HTTPS delivery, restrictive website content-security settings, minimal optional data and validated local saves with recovery copies. Recovery copies protect integrity and are not a claim of encryption. No system guarantees absolute security. The actual Android release and account controls must be verified independently of this webpage.
14Changes and contact
This policy will be updated when data practices or legal requirements change. Material changes are also communicated in the game; new optional purposes require a new applicable choice before collection. The date identifies the current document. All three language versions must remain substantively consistent; English is the working version and does not override statutory rights.
Kruty1918 Games
Controller: Oleksii Havryliuk (public name: Oleksiy Havryliuk)
Postal address: Kapitänspromenade 6, 23966 Wismar, Germany
Privacy: privacy@oleksiy-havryliuk.de
Support: support@oleksiy-havryliuk.de