This canonical policy is published in English for every localized route so its legal meaning remains consistent.

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 packs
  • tt_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:

KeyPurpose
TT_CoinsYour current in-game coin balance (HMAC-signed)
TT_CoinsEarnedTotalLifetime coins earned
TT_CoinsSpentTotalLifetime coins spent
TT_CoinsLifetimeAggregate lifetime coin counter for achievements (HMAC-signed)
TT_Stars_<level>Stars earned per level (per-level entry)
TT_TotalStarsCacheCached sum of stars across all levels (UI use)
TT_UnlockedHighest level unlocked
TT_NewUnlockMost recently unlocked level (for the menu "new" badge)
TT_HighestWorldSeenHighest world (level group) you have opened
TT_BestComboPersonal best combo
TT_SnakeDodgedLifetimeLifetime 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_LivesCurrent life count (energy system)
TT_NextRecoveryUtcWhen 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:

KeyPurpose
TT_TotalSessionsNumber of app launches
TT_InstallDateFirst-launch timestamp (ISO 8601, local)
TT_InstallIdAnonymous per-install GUID used only on this device for tamper detection
TT_InstallTimestampFirst-launch Unix timestamp
TT_DeviceSaltRandom salt used only on this device to HMAC-sign saved values (never transmitted)
TT_SaveVersionSave-format version number, used by the in-app migration scaffold
TT_HasPurchasedWhether any IAP completed in this install
TT_HasEverPurchasedWhether any IAP has ever completed (suppresses the new-player starter-pack offer once consumed)
TT_TutorialDoneWhether the basic tutorial finished
TT_TutorialStepCurrent step inside the tutorial
TT_TutorialPrecisionDoneWhether the precision-cut tutorial overlay was dismissed
TT_TutorialSnakeWarningDoneWhether the snake-warning tutorial overlay was dismissed
TT_LastRatePromptISOLast time the rate-prompt was shown (so we don't nag)
TT_DailyLastClaimedISOLast daily-reward claim timestamp (HMAC-signed)
TT_DailyStreakCurrent daily-reward streak count (HMAC-signed)

IAP, ads, and entitlement:

KeyPurpose
TT_GoldAxeOwnedPermanent Gold Axe entitlement from tt_gold_axe (HMAC-signed)
TT_RemovedAdsReserved ad-free entitlement slot (HMAC-signed); unused in this release because tt_remove_ads is not sold
TT_RemovedAds_VerifiedAnchor flag that confirms the ad-free entitlement was validated against the live IAP catalog at least once (prevents partial-catalog revocation)
TT_ProcessedTxIdsDeduplicated list of IAP transaction identifiers to prevent grant replay

Settings, accessibility, and audio:

KeyPurpose
TT_LanguageSelected UI language
TT_MusicMuted, TT_SfxMutedMute toggles
TT_MusicVolume, TT_SFXVolumePer-bus volume sliders
TT_HapticsEnabled, TT_HapticsIntensityVibration preferences
TT_SubtitlesSubtitles on/off (HMAC-signed accessibility flag)
TT_ColorblindColorblind palette toggle (HMAC-signed accessibility flag)
TT_FontScaleUI font-scale tier (HMAC-signed accessibility flag)
TT_ReduceMotionReduce-motion toggle (HMAC-signed accessibility flag)

Consent, notifications, and remote configuration:

KeyPurpose
TT_ConsentGivenConsent status (see 2.7)
TT_ConsentDateWhen the consent choice was made
TT_ConsentStatusDetailed UMP consent state (granted / denied / not required)
TT_UmpNeverResolvedWhether the iOS UMP bridge has never returned a result (fail-closed marker; analytics stays off until cleared)
TT_Notif_OptedInWhether you accepted push notifications
TT_Notif_PrePromptShownWhether 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:

  1. Operating the game. Saving progress, awarding coins, restoring non-consumable purchases.
  2. Tuning difficulty. Aggregate level-fail and retry patterns tell us which levels are too hard or too easy.
  3. Fixing crashes. Stack traces let us reproduce bugs we could not see on our own devices.
  4. Preparing marketing measurement. No mobile-attribution provider is active in this release. We will update this policy before enabling one.
  5. Fraud prevention. Local receipt deduplication blocks replay of the same IAP.
  6. Showing and capping ads. Ad SDKs need a signal that the ad played to grant rewards and to avoid showing the same ad repeatedly.
  7. 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.

ServicePurposeProcessing locationPolicy
GameAnalyticsGameplay analyticsEU / UShttps://gameanalytics.com/privacy
Google Firebase (Crashlytics, Remote Config + transitive Analytics)Crash reporting and consent-gated live configurationGlobal (Google infrastructure)https://firebase.google.com/support/privacy
Unity Technologies (GameAnalytics partner, IAP, Ads)IAP middleware, rewarded adsUShttps://unity.com/legal/privacy-policy
AppleIAP processing (iOS)US / globalhttps://www.apple.com/legal/privacy/
Google LLCIAP processing (Android), UMP consentUS / globalhttps://policies.google.com/privacy
CloudflareWebsite launch-alert database (D1)European Unionhttps://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:

  1. In the game, open Settings > Privacy > Manage Consent and decline advertising and analytics; or
  2. Email lrodrigocareaga@gmail.com with the subject line "CCPA Opt-Out"; or
  3. 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

DataRetained byDefault retention
GameAnalytics eventsGameAnalyticsApproximately 24 months (rolling)
Crashlytics reportsFirebase / Google90 days by default
Firebase Analytics eventsFirebase / GoogleNo collection in this release
Firebase Remote Config installation ID and fetch metadataFirebase / GoogleUntil the installation ID is deleted, subject to Firebase service retention
Unity Ads ad-serving dataUnityPer Unity's retention schedule (generally up to 18 months)
IAP transaction historyApple / GooglePer store policy (typically 7+ years for tax records)
Local PlayerPrefsYour deviceUntil you uninstall the app or clear its data
Website launch-alert emailCloudflare D1Until 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_ads y tt_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_ConsentGiven y TT_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 Careagalrodrigocareaga@gmail.com. Línea de asunto sugerida: "ARCO", "GDPR Request", "CCPA Opt-Out", "Eliminación de datos de menor", "Privacidad general".