Privacy Policy — TimTimber
Last updated: August 10, 2026 Effective date: May 19, 2026
Correction notice — July 28, 2026. The purchase section previously listed two product identifiers that are not offered for sale. The launch catalog and the data disclosure below now match the shipping app.
Transparency addition — August 10, 2026. The app still asks Apple or Google for availability metadata for those two retired identifiers so that a valid historical test entitlement can be recognized. This lookup does not make either product purchasable and does not send us any new information about you.
1. Who We Are
TimTimber is a 2D mobile arcade game developed and published by:
- Developer: Rodrigo Careaga (individual developer)
- Country of residence: Mexico
- Contact: lrodrigocareaga@gmail.com
- App name: TimTimber
- Bundle identifier:
com.rodrigo.timtimber(iOS and Android)
Throughout this policy, "we", "us", "our", and "the developer" refer to Rodrigo Careaga. "You" and "your" refer to the person using the app. "The app" or "TimTimber" refers to the TimTimber mobile game on iOS and Android.
This policy explains what information the app and the Tim Timber website handle, who we share it with, and the choices you have. "Website" refers to timtimber.io and its localized pages.
2. Data We Collect
We try to collect the minimum data needed to keep the game working, fix crashes, and understand whether our marketing is reaching the right people. The sections below describe, per integrated service, exactly what leaves your device.
2.1 Gameplay analytics — GameAnalytics (v8.0.1)
GameAnalytics is a game-specific analytics platform. We use it to understand how players progress so we can tune difficulty and fix friction points.
What we send:
- Anonymous session identifier (generated per install, no cross-app linkage).
- Device model, OS version, app version, language, and country (inferred from IP by GameAnalytics, not stored by us).
- Gameplay events:
level_start,level_complete,level_fail,level_retry- Combo and streak milestones
- Coin transactions (earned / spent, amount, source)
- Power-up usage (type, context)
- Tutorial progress steps
- Ad impressions and completions
- IAP events (product id, currency, amount — no payment details)
What we do NOT send: IDFA, email, name, contacts, location (GPS), photos, microphone input, camera input.
GameAnalytics documentation: https://gameanalytics.com/privacy
2.2 Crash reporting — Firebase Crashlytics (v13.14.0)
When the app crashes, Crashlytics uploads a report so we can reproduce and fix the bug.
What we send on a crash:
- Stack trace of the crash
- OS version, device model, device RAM tier, app version and build number
- Custom keys attached by us:
current_level,best_combo,session_duration - A random install UUID generated by Crashlytics
Transitive Firebase Analytics (native library): Firebase Analytics may be present as a native dependency of the Crashlytics SDK, but TimTimber does not import or call its C# API. Analytics, advertising-ID collection, and Crashlytics collection are disabled in the Android manifest and iOS Info.plist before any SDK can auto-start. The app enables Crashlytics only after the consent gate allows collection; Firebase Analytics remains disabled.
Firebase / Google privacy: https://firebase.google.com/support/privacy
2.3 Live configuration — Firebase Remote Config (v13.14.0)
After the consent gate allows analytics collection, the app may contact Firebase Remote Config to download balancing values and safety switches. The SDK processes a Firebase Installation ID (FID) to select and deliver configuration values. TimTimber does not use Remote Config to store names, email addresses, advertising identifiers, or precise location. If consent is denied or still unresolved, no Remote Config network fetch is started and the game uses values bundled with the app.
Activated values are cached locally as TT_RC_<key> so the game remains functional offline. Firebase retains the installation identifier until it is deleted through the Firebase Installations API or the app is uninstalled and its local installation state is removed, subject to Google's service retention practices.
Firebase / Google privacy: https://firebase.google.com/support/privacy
2.4 Attribution — AppsFlyer integration disabled in this release
The project contains the AppsFlyer 6.17.1 package for a possible future attribution rollout, but the current release does not activate or initialize the AppsFlyer provider and has no configured AppsFlyer Dev Key. Consequently, TimTimber sends no IDFA, AAID, install source, purchase event, or gameplay event to AppsFlyer in this release.
If AppsFlyer is enabled in a future version, we will update this policy and the applicable store privacy declarations before distributing that build.
2.5 Purchases — Unity IAP (v5.4.2) via Apple StoreKit and Google Play Billing
In-app purchases are fully processed by Apple (iOS) and Google (Android). We never see your payment card, bank account, or billing address.
What reaches us through Unity IAP:
- Transaction identifier assigned by Apple / Google
- Product identifier of what you bought:
tt_coins_100,tt_coins_500— consumable coin packstt_gold_axe— non-consumable power-up- The purchase receipt (a signed blob from the store) so the app can verify the purchase is real
- The price and currency (for analytics — e.g. 2.99 USD)
Those three products are the entire launch catalog; no other purchase is offered.
Store availability lookup. When the app starts, it asks Apple or Google for price and availability metadata for a slightly longer list of five product identifiers: the three products above plus two retired identifiers (tt_remove_ads and tt_starter_pack). The retired products are not shown in the shop and the app rejects attempts to purchase them. They remain in the lookup only so that a valid historical entitlement issued during an authorized test can still be recognized. The lookup sends product identifiers to the store; it does not send us any new information about you.
Where it is stored: Processed transaction ids are saved locally on your device under the PlayerPrefs key TT_ProcessedTxIds so we don't accidentally grant the same purchase twice. The receipt itself is stored locally. As of this version we do not run server-side receipt validation; validation is delegated to the native StoreKit / Play Billing validators.
2.6 Rewarded advertising — Unity Ads (v4.19.0)
We show only rewarded video ads (opt-in "continue with ad" or coin-earning ads) through Unity Ads. There are no banner ads, interstitials, launch ads, or ads between levels; every ad starts from a button you press.
On iOS, the app may show Apple's App Tracking Transparency prompt after you complete the first level. Declining that prompt does not prevent you from playing; it prevents access to the advertising identifier.
What the ad SDK handles:
- Ad network identifiers (non-resettable only on older OS versions; resettable IDFA / AAID elsewhere) to select and attribute ads.
- The ad-completion signal needed to grant you the reward.
- Basic device info (OS, model, screen size) for ad selection.
What we do NOT do: We do not use behavioral advertising based on profile data you gave us, because we never asked for any profile data. In development builds, a fallback stub replaces the network and no ad request leaves the device.
Unity Ads / Unity Technologies privacy: https://unity.com/legal/privacy-policy
2.7 Consent management — Google User Messaging Platform (UMP, v3.1.0)
We use Google's UMP SDK to detect whether you are in the European Economic Area (EEA), the UK, or Switzerland, and — if so — to show a consent form before any of the SDKs above start sending data.
What UMP checks:
- Approximate geographic region based on IP.
What UMP stores locally:
TT_ConsentGiven— whether you made a choice.TT_ConsentDate— when you made it.- Google's own consent strings used by downstream SDKs (IAB TCF v2.2 format).
2.8 Local device storage (PlayerPrefs)
These keys live only on your device. They are not transmitted to us or any third party. Some keys are HMAC-signed (an extra <key>_Hmac sibling) and dual-written (a <key>_Backup sibling) by the save system to detect tampering and recover from corruption.
Progress, economy, and gameplay state:
| Key | Purpose |
|---|---|
TT_Coins | Your current in-game coin balance (HMAC-signed) |
TT_CoinsEarnedTotal | Lifetime coins earned |
TT_CoinsSpentTotal | Lifetime coins spent |
TT_CoinsLifetime | Aggregate lifetime coin counter for achievements (HMAC-signed) |
TT_Stars_<level> | Stars earned per level (per-level entry) |
TT_TotalStarsCache | Cached sum of stars across all levels (UI use) |
TT_Unlocked | Highest level unlocked |
TT_NewUnlock | Most recently unlocked level (for the menu "new" badge) |
TT_HighestWorldSeen | Highest world (level group) you have opened |
TT_BestCombo | Personal best combo |
TT_SnakeDodgedLifetime | Lifetime snake-dodge counter for achievements (HMAC-signed) |
TT_LevelBest_Score_<level> | Personal best score per level |
TT_LevelBest_Stars_<level> | Personal best stars per level |
TT_LevelBest_Time_<level> | Personal best completion time per level |
TT_LevelBest_Timestamp_<level> | When that personal best was achieved |
TT_Achievement_<id> | Per-achievement unlock state (HMAC-signed) |
TT_Lives | Current life count (energy system) |
TT_NextRecoveryUtc | When the next life will recover |
TT_PU_Unlocked_<id> | Per-power-up unlock flag (HMAC-signed) |
TT_Item_<id> | Per-consumable inventory count (e.g. TT_Item_gold_axe) |
Session, install, and lifecycle:
| Key | Purpose |
|---|---|
TT_TotalSessions | Number of app launches |
TT_InstallDate | First-launch timestamp (ISO 8601, local) |
TT_InstallId | Anonymous per-install GUID used only on this device for tamper detection |
TT_InstallTimestamp | First-launch Unix timestamp |
TT_DeviceSalt | Random salt used only on this device to HMAC-sign saved values (never transmitted) |
TT_SaveVersion | Save-format version number, used by the in-app migration scaffold |
TT_HasPurchased | Whether any IAP completed in this install |
TT_HasEverPurchased | Whether any IAP has ever completed (suppresses the new-player starter-pack offer once consumed) |
TT_TutorialDone | Whether the basic tutorial finished |
TT_TutorialStep | Current step inside the tutorial |
TT_TutorialPrecisionDone | Whether the precision-cut tutorial overlay was dismissed |
TT_TutorialSnakeWarningDone | Whether the snake-warning tutorial overlay was dismissed |
TT_LastRatePromptISO | Last time the rate-prompt was shown (so we don't nag) |
TT_DailyLastClaimedISO | Last daily-reward claim timestamp (HMAC-signed) |
TT_DailyStreak | Current daily-reward streak count (HMAC-signed) |
IAP, ads, and entitlement:
| Key | Purpose |
|---|---|
TT_GoldAxeOwned | Permanent Gold Axe entitlement from tt_gold_axe (HMAC-signed) |
TT_RemovedAds | Reserved ad-free entitlement slot (HMAC-signed); unused in this release because tt_remove_ads is not sold |
TT_RemovedAds_Verified | Anchor flag that confirms the ad-free entitlement was validated against the live IAP catalog at least once (prevents partial-catalog revocation) |
TT_ProcessedTxIds | Deduplicated list of IAP transaction identifiers to prevent grant replay |
Settings, accessibility, and audio:
| Key | Purpose |
|---|---|
TT_Language | Selected UI language |
TT_MusicMuted, TT_SfxMuted | Mute toggles |
TT_MusicVolume, TT_SFXVolume | Per-bus volume sliders |
TT_HapticsEnabled, TT_HapticsIntensity | Vibration preferences |
TT_Subtitles | Subtitles on/off (HMAC-signed accessibility flag) |
TT_Colorblind | Colorblind palette toggle (HMAC-signed accessibility flag) |
TT_FontScale | UI font-scale tier (HMAC-signed accessibility flag) |
TT_ReduceMotion | Reduce-motion toggle (HMAC-signed accessibility flag) |
Consent, notifications, and remote configuration:
| Key | Purpose |
|---|---|
TT_ConsentGiven | Consent status (see 2.7) |
TT_ConsentDate | When the consent choice was made |
TT_ConsentStatus | Detailed UMP consent state (granted / denied / not required) |
TT_UmpNeverResolved | Whether the iOS UMP bridge has never returned a result (fail-closed marker; analytics stays off until cleared) |
TT_Notif_OptedIn | Whether you accepted push notifications |
TT_Notif_PrePromptShown | Whether the in-app pre-prompt was displayed once |
TT_RC_<key> | Last activated Firebase Remote Config values; defaults remain bundled in the app |
In-memory only (not written to disk):
TT_OfferShownThisSession — a session-only flag that gates the starter-pack offer to at most one display per launch. It is held in process memory only and is reset on every cold start.
Editor-only / development scaffolding keys (TT_DebugGeo, TT_AdsConfigValidator_Warned, TT_AnalyticsSDKChecker_LastStatus, TT_AtlasSourceReimport_Ran, TT_PU_UnlockMigrated) are written only by Unity Editor tooling and are not present in release builds.
This list covers the keys most relevant to progress, purchases, settings, and consent. The app also writes minor local indicators for tutorial hints, seasonal events, experiments, and save-integrity checks. None of those indicators leaves your device.
Uninstalling the app removes all of the above.
2.9 Data we deliberately do NOT collect
- Email addresses, real names, usernames tied to identity — except for the email address that a visitor voluntarily submits through the website launch-alert form, as described below
- Phone numbers, contact lists
- Precise GPS or Wi-Fi / Bluetooth-based location
- Photos, camera feed, microphone input
- Clipboard contents
- Health or fitness data
- Browsing history outside our app
2.10 Website launch-alert list
If you voluntarily enter your email address on the Tim Timber website, tick the consent box, and submit the launch-alert form, we collect:
- Your email address
- The language selected on the website and the page where you signed up
- The date and time of your consent
We store this small list in Cloudflare D1, a database hosted by Cloudflare. We do not add names, IP addresses, device identifiers, advertising identifiers, or behavioral profiles to this list. We use it only to send a manual notice when Tim Timber launches. We do not sell, rent, or use the list for advertising profiles.
3. How We Use Data
We use the data in Section 2 only for these purposes:
- Operating the game. Saving progress, awarding coins, restoring non-consumable purchases.
- Tuning difficulty. Aggregate level-fail and retry patterns tell us which levels are too hard or too easy.
- Fixing crashes. Stack traces let us reproduce bugs we could not see on our own devices.
- Preparing marketing measurement. No mobile-attribution provider is active in this release. We will update this policy before enabling one.
- Fraud prevention. Local receipt deduplication blocks replay of the same IAP.
- Showing and capping ads. Ad SDKs need a signal that the ad played to grant rewards and to avoid showing the same ad repeatedly.
- Sending the website launch alert. We use an email address submitted with your consent to notify you that Tim Timber is available.
We do not use your data to build advertising profiles ourselves, to sell to data brokers, or to train AI models.
4. Third Parties and International Transfers
The third-party services above process data on servers that may be outside your country of residence. Each has its own privacy policy and, for EEA/UK users, its own lawful basis for processing.
| Service | Purpose | Processing location | Policy |
|---|---|---|---|
| GameAnalytics | Gameplay analytics | EU / US | https://gameanalytics.com/privacy |
| Google Firebase (Crashlytics, Remote Config + transitive Analytics) | Crash reporting and consent-gated live configuration | Global (Google infrastructure) | https://firebase.google.com/support/privacy |
| Unity Technologies (GameAnalytics partner, IAP, Ads) | IAP middleware, rewarded ads | US | https://unity.com/legal/privacy-policy |
| Apple | IAP processing (iOS) | US / global | https://www.apple.com/legal/privacy/ |
| Google LLC | IAP processing (Android), UMP consent | US / global | https://policies.google.com/privacy |
| Cloudflare | Website launch-alert database (D1) | European Union | https://www.cloudflare.com/privacypolicy/ |
For transfers from the EEA / UK to countries without an adequacy decision, the above processors rely on Standard Contractual Clauses (SCCs) in their respective data processing agreements.
We do not sell personal information in the traditional sense. However, under the CCPA/CPRA's broad definition of "sharing", transmitting IDFA/AAID to Unity Ads for advertising may be classified as "sharing". See Section 5.2 for how to opt out.
5. Your Rights and Choices
5.1 European Economic Area, United Kingdom, Switzerland (GDPR / UK GDPR)
If you are in the EEA, UK, or Switzerland, you have the following rights regarding your personal data:
- Right of access — ask what we hold.
- Right to rectification — correct inaccurate data.
- Right to erasure ("right to be forgotten") — ask us to delete data tied to your install.
- Right to restriction — ask us to stop processing while a dispute is resolved.
- Right to data portability — receive a copy in a machine-readable format.
- Right to object — particularly to processing based on legitimate interest.
- Right to withdraw consent — at any time, without affecting processing that already happened.
Legal bases we rely on:
- Consent (Art. 6(1)(a) GDPR) — for analytics, attribution, and advertising SDKs in the EEA/UK/CH, gated by the UMP consent prompt.
- Contract (Art. 6(1)(b)) — for processing IAP transactions you initiate.
- Legitimate interest (Art. 6(1)(f)) — for crash reporting and fraud prevention, balanced against your privacy interest.
- Consent (Art. 6(1)(a)) — for the website launch-alert list. You choose to submit the form and tick its consent box.
How to revoke consent: In the game, open Settings > Privacy > Manage Consent. This reopens the UMP form and lets you change your choices. Revoking consent stops further analytics, attribution, and ad-personalization data transmission. Already-transmitted data may still be retained per Section 7.
To leave the website launch-alert list: Email hello@timtimber.io with the subject line "Launch Alert Removal" from the address you used to sign up. We will delete that address from the list.
To exercise other rights: Email lrodrigocareaga@gmail.com with the subject line "GDPR Request" and include the approximate install date and device model so we can locate your records. We will respond within 30 days.
You may also complain to your local data-protection authority (e.g. CNIL in France, ICO in the UK, AEPD in Spain).
5.2 California (CCPA / CPRA)
If you are a California resident, you have the right to:
- Know what categories of personal information we collect about you.
- Access the specific pieces of personal information we have.
- Delete your personal information (subject to legal retention exceptions).
- Correct inaccurate personal information.
- Opt out of "sale" or "sharing" of your personal information.
- Limit use of sensitive personal information (we do not collect SPI categories such as SSN, precise geolocation, biometrics, or account login credentials).
- Non-discrimination — we will not deny service, raise prices, or degrade quality because you exercised your rights.
"Do Not Sell or Share My Personal Information": We do not sell personal information for money. Unity Ads may process advertising identifiers (IDFA / AAID) for rewarded advertising, which under the CPRA's updated definition may qualify as "sharing for cross-context behavioral advertising." AppsFlyer is disabled in this release.
To opt out of this sharing:
- In the game, open Settings > Privacy > Manage Consent and decline advertising and analytics; or
- Email lrodrigocareaga@gmail.com with the subject line "CCPA Opt-Out"; or
- On iOS, deny the App Tracking Transparency prompt or revoke it in Settings > Privacy & Security > Tracking; on Android, enable "Opt out of Ads Personalization" in system settings.
We treat requests the same whether they come from you directly, an authorized agent, or the Global Privacy Control (GPC) browser signal where technically applicable.
5.3 Mexico (LFPDPPP)
If you are a data subject under Mexico's Ley Federal de Protección de Datos Personales en Posesión de los Particulares, you have the ARCO rights: Access, Rectification, Cancellation, and Opposition, plus the right to revoke consent. Exercise any of these by emailing lrodrigocareaga@gmail.com with the subject "ARCO".
The data controller is Rodrigo Careaga, contactable at the email above. We retain a records log of ARCO requests as required by law.
5.4 Brazil (LGPD)
If you are in Brazil, the Lei Geral de Proteção de Dados grants you equivalent rights to those in Section 5.1. Contact the same email address.
5.5 Other jurisdictions
If your local law grants you rights equivalent to the above (e.g. Canada's PIPEDA, Australia's Privacy Act, Argentina's Ley 25.326), we will honor an equivalent request made in good faith. Contact the email above.
6. Children's Privacy
TimTimber is rated 13+ on the App Store and Teen on Google Play. The app is not directed to children under 13 and is not enrolled in Apple's "Made for Kids" program or Google Play's "Designed for Families" program.
The website launch-alert list is also not intended for people under 13.
We do not knowingly collect personal information from children under 13 (or under the equivalent minimum age in your jurisdiction — 13 under COPPA in the United States, 16 in most of the EEA unless a Member State has lowered it).
If you are a parent or guardian and believe your child under 13 has used the app and that personal data was collected, please email lrodrigocareaga@gmail.com with:
- Approximate install date
- Device model
- Any in-app purchase receipts (to locate the record)
We will delete the associated analytics and attribution records within 30 days and, where applicable, request deletion from our third-party processors.
7. Data Retention
| Data | Retained by | Default retention |
|---|---|---|
| GameAnalytics events | GameAnalytics | Approximately 24 months (rolling) |
| Crashlytics reports | Firebase / Google | 90 days by default |
| Firebase Analytics events | Firebase / Google | No collection in this release |
| Firebase Remote Config installation ID and fetch metadata | Firebase / Google | Until the installation ID is deleted, subject to Firebase service retention |
| Unity Ads ad-serving data | Unity | Per Unity's retention schedule (generally up to 18 months) |
| IAP transaction history | Apple / Google | Per store policy (typically 7+ years for tax records) |
| Local PlayerPrefs | Your device | Until you uninstall the app or clear its data |
| Website launch-alert email | Cloudflare D1 | Until the launch notice is sent, you ask to be removed, or the list is reviewed for deletion after 12 months |
On a verified deletion request, we will instruct the above processors to delete or anonymize records tied to your install identifier, subject to each processor's technical capabilities.
8. Security
- In transit: All SDKs listed in Section 2 use HTTPS (TLS 1.2 or higher) to transmit data. We do not disable certificate validation.
- At rest on your device: PlayerPrefs uses the OS-provided preference store. It is not encrypted by us; on iOS and Android, the OS-level sandbox protects it from other apps on non-rooted / non-jailbroken devices.
- On our servers: For the website launch-alert list, the email address and consent record are stored in Cloudflare D1. All other processing happens on your device or on the third-party processors listed in Section 4.
- Payments: Apple and Google handle payment processing under their own PCI-DSS compliance. No payment instrument data ever reaches our code.
- No custom cryptography claims: We do not claim end-to-end encryption, zero-knowledge architecture, or any certifications (ISO 27001, SOC 2, etc.) we have not actually obtained.
No method of electronic transmission or storage is 100% secure. We make no absolute guarantee and encourage you to use a device that receives security updates.
9. Changes to This Policy
We may update this policy when the app adds new SDKs, changes data flows, or in response to legal changes. When we make a material change (new third party, new category of data, change in legal basis), we will:
- Update the "Last updated" date at the top.
- Show an in-app notice on the next launch after the update.
- Where consent is required, re-prompt through the UMP form.
Non-material edits (typos, link updates) are made silently. The historical versions may be available on request.
10. Contact
For any privacy question, request, complaint, or to exercise any right in Section 5:
Rodrigo Careaga Email: lrodrigocareaga@gmail.com Subject line suggestions: "GDPR Request", "CCPA Opt-Out", "ARCO", "Child Data Deletion", "General Privacy Question"
We aim to acknowledge requests within 7 days and substantively respond within 30 days.
Versión en Español (México)
Última actualización: 10 de agosto de 2026 Fecha de entrada en vigor: 19 de mayo de 2026
Aviso de corrección — 28 de julio de 2026. La sección de compras listaba dos identificadores que no se ofrecen a la venta. El catálogo y la declaración de datos ahora coinciden con la app distribuida.
Adición de transparencia — 10 de agosto de 2026. La app todavía consulta a Apple o Google los metadatos de disponibilidad de esos dos identificadores retirados para reconocer un entitlement histórico válido de pruebas. Esta consulta no los pone a la venta ni nos envía información nueva sobre vos.
1. Quiénes somos
TimTimber es un juego móvil de arcade 2D desarrollado y publicado por Rodrigo Careaga, desarrollador individual residente en México. Contacto: lrodrigocareaga@gmail.com. Identificador de la app: com.rodrigo.timtimber.
2. Datos que recopilamos
Recopilamos el mínimo necesario para operar el juego, corregir crashes y medir campañas de marketing. Las integraciones son:
- GameAnalytics (8.0.1): ID de sesión anónimo, modelo de dispositivo, versión del SO, idioma, país. Eventos de gameplay (inicio/fin/retry de niveles, combos, transacciones de monedas, uso de power-ups, eventos de tutorial, impresiones de ads, eventos de IAP). No enviamos IDFA, email, nombre, contactos ni ubicación GPS.
- Firebase Crashlytics (13.14.0): stack traces, modelo de dispositivo, versión del SO, versión de la app, claves personalizadas (
current_level,best_combo). Firebase Analytics puede viajar como dependencia nativa transitiva, pero su recolección está desactivada en Android e iOS. Crashlytics solo se habilita cuando el gate de consentimiento permite la recolección. - Firebase Remote Config (13.14.0): tras consentimiento, usa un Firebase Installation ID (FID) para entregar ajustes de balance y kill switches. Si el consentimiento se rechaza o sigue pendiente, no se hace fetch y el juego usa sus valores incluidos. No se envían nombre, email, IDFA/AAID ni ubicación precisa mediante Remote Config.
- AppsFlyer (6.17.1, deshabilitado): el paquete está presente para una posible activación futura, pero esta versión no activa ni inicializa el proveedor y no tiene Dev Key configurada. No se envían IDFA, AAID, atribución ni eventos a AppsFlyer.
- Unity IAP (5.4.2): IDs de transacción emitidos por Apple/Google, IDs de producto (
tt_coins_100,tt_coins_500,tt_gold_axe— el catálogo completo), precio y moneda. Apple y Google procesan el pago; nunca vemos datos bancarios. Los recibos se guardan localmente, sin validación server-side en esta fase. Al arrancar, la app también consulta a Apple/Google los metadatos de dos identificadores retirados (tt_remove_adsytt_starter_pack) para reconocer un entitlement histórico válido emitido durante pruebas. No se ofrecen a la venta, no aparecen en la tienda y la app rechaza cualquier intento de compra. La consulta envía los identificadores a la tienda; no nos envía información nueva sobre vos. - Unity Ads (4.19.0): identificadores publicitarios para servir y reportar únicamente ads rewarded opcionales. No hay banners, intersticiales ni anuncios automáticos. En builds de desarrollo un stub sin red reemplaza la conexión real.
- Google UMP (3.1.0): detecta geolocalización EEA/UK/Suiza por IP y muestra formulario de consentimiento. Guarda localmente
TT_ConsentGivenyTT_ConsentDate.
Almacenamiento local (PlayerPrefs): las llaves anteriores más progresión por nivel (TT_LevelBest_Score_<nivel>, TT_LevelBest_Stars_<nivel>, TT_LevelBest_Time_<nivel>, TT_LevelBest_Timestamp_<nivel>, TT_NewUnlock, TT_HighestWorldSeen, TT_TotalStarsCache), economía (TT_Coins, TT_CoinsEarnedTotal, TT_CoinsSpentTotal, TT_CoinsLifetime, TT_BestCombo, TT_SnakeDodgedLifetime), vidas (TT_Lives, TT_NextRecoveryUtc), inventario (TT_Item_<id>, TT_PU_Unlocked_<id>), logros (TT_Achievement_<id>), tutorial (TT_TutorialDone, TT_TutorialStep, TT_TutorialPrecisionDone, TT_TutorialSnakeWarningDone), recompensas diarias (TT_DailyLastClaimedISO, TT_DailyStreak), instalación e identidad local (TT_InstallDate, TT_InstallId, TT_InstallTimestamp, TT_TotalSessions, TT_DeviceSalt, TT_SaveVersion), IAP (TT_HasPurchased, TT_HasEverPurchased, TT_GoldAxeOwned, TT_RemovedAds, TT_RemovedAds_Verified, TT_ProcessedTxIds), accesibilidad y audio (TT_Language, TT_MusicMuted, TT_SfxMuted, TT_MusicVolume, TT_SFXVolume, TT_HapticsEnabled, TT_HapticsIntensity, TT_Subtitles, TT_Colorblind, TT_FontScale, TT_ReduceMotion), notificaciones (TT_Notif_OptedIn, TT_Notif_PrePromptShown, TT_LastRatePromptISO), consentimiento (TT_ConsentGiven, TT_ConsentDate, TT_ConsentStatus, TT_UmpNeverResolved) y caché de Remote Config (TT_RC_<key>). TT_DeviceSalt se genera localmente y se utiliza únicamente en este dispositivo para firmar (HMAC) los valores guardados, evitando manipulación; nunca se transmite. TT_RemovedAds y TT_RemovedAds_Verified son espacios reservados del esquema y no tienen efecto en el gameplay de esta versión porque tt_remove_ads no se vende. Estas llaves nunca salen del dispositivo y se borran al desinstalar la app. TT_OfferShownThisSession es un gate retirado que vive solo en memoria y se reinicia en cada arranque; no hace que el starter pack aparezca ni pueda comprarse.
Lista de avisos de lanzamiento del sitio web: si introducís voluntariamente tu email, marcás la casilla de consentimiento y enviás el formulario de timtimber.io, guardamos tu email, idioma, página de registro y fecha de consentimiento en Cloudflare D1, en la Unión Europea. No guardamos nombre, IP, identificadores de dispositivo ni perfiles de comportamiento. La lista se usa solo para avisarte manualmente cuando salga Tim Timber. Para salir de la lista, escribí desde ese correo a hello@timtimber.io con el asunto "Launch Alert Removal".
No recopilamos: emails, nombres, teléfonos, contactos, ubicación GPS, fotos, micrófono, cámara, portapapeles, historial de navegación, salvo el email que entregues voluntariamente para el aviso de lanzamiento del sitio web.
3. Para qué usamos los datos
Operar el juego, ajustar dificultad agregada, diagnosticar crashes, preparar la medición de marketing (ningún proveedor de atribución está activo en esta versión), prevenir fraude en IAP mediante deduplicación local, servir/capear ads rewarded y enviar el aviso de lanzamiento a quienes se hayan apuntado voluntariamente en el sitio web. No construimos perfiles publicitarios propios, no vendemos datos a brokers y no entrenamos modelos de IA con tus datos.
4. Terceros y transferencias internacionales
Los procesadores mencionados en la Sección 4 de la versión en inglés operan en la Unión Europea, Estados Unidos y otras ubicaciones globales indicadas en sus políticas. Para transferencias desde la UE hacia terceros países, se apoyan en Cláusulas Contractuales Tipo (SCC) u otros mecanismos legales aplicables.
5. Tus derechos
México — Ley Federal de Protección de Datos Personales en Posesión de los Particulares (LFPDPPP): tenés los derechos ARCO (Acceso, Rectificación, Cancelación, Oposición) y el derecho a revocar tu consentimiento. El responsable del tratamiento es Rodrigo Careaga, contactable en lrodrigocareaga@gmail.com. Respondemos dentro de los 20 días hábiles que marca la ley.
EEA / Reino Unido (GDPR): derechos de acceso, rectificación, supresión, restricción, portabilidad, oposición y revocación de consentimiento. Para revocar el consentimiento otorgado vía UMP, abrí Ajustes > Privacidad > Administrar Consentimiento en el juego.
California (CCPA/CPRA): derecho a saber, acceder, eliminar, corregir, y oponerte a la "venta o compartición" de tu información personal. No vendemos datos, pero el uso de IDFA/AAID por Unity Ads puede considerarse "sharing for cross-context behavioral advertising". AppsFlyer está deshabilitado en esta versión. Optar por fuera: declinar ATT en iOS, activar "Opt out of Ads Personalization" en Android, o declinar en el formulario UMP, o escribir a lrodrigocareaga@gmail.com con el asunto "CCPA Opt-Out".
Brasil (LGPD): derechos equivalentes a los del GDPR; mismo contacto.
6. Privacidad de menores
TimTimber está clasificada 13+ (App Store) y Teen (Google Play). No está dirigida a menores de 13 años y no participa en programas de "Made for Kids" / "Designed for Families". Si sos madre, padre o tutor y descubrís que un menor de 13 usó la app, escribinos a lrodrigocareaga@gmail.com con fecha aproximada de instalación y modelo del dispositivo; eliminaremos los registros asociados dentro de 30 días.
7. Retención
GameAnalytics aprox. 24 meses; Crashlytics 90 días; Firebase Analytics sin recolección en esta versión; Firebase Remote Config conserva el FID hasta que se elimine conforme a las prácticas del servicio; AppsFlyer sin recolección en esta versión; Unity Ads hasta 18 meses; historial de IAP por políticas de Apple/Google; PlayerPrefs local hasta que desinstales la app. Los emails de la lista de lanzamiento se conservan hasta enviar el aviso, hasta que pidas la baja o hasta una revisión de borrado tras 12 meses.
8. Seguridad
Todas las integraciones usan HTTPS (TLS 1.2+). Los datos mínimos de la lista de lanzamiento se guardan en Cloudflare D1; el resto del procesamiento ocurre en tu dispositivo o en los procesadores descritos. Apple y Google procesan los pagos bajo sus propios estándares PCI-DSS. No afirmamos tener cifrado extremo-a-extremo, arquitectura zero-knowledge ni certificaciones (ISO, SOC 2) que no tenemos.
9. Cambios
Actualizaremos esta política cuando cambie algún SDK, flujo de datos o requisito legal. Un cambio material dispara un aviso in-app en el siguiente launch; si se requiere, se vuelve a mostrar el formulario UMP.
10. Contacto
Rodrigo Careaga — lrodrigocareaga@gmail.com. Línea de asunto sugerida: "ARCO", "GDPR Request", "CCPA Opt-Out", "Eliminación de datos de menor", "Privacidad general".