TT2 Companion privacy policy
Last updated: 30 September 2026 Publisher: Amoulier Privacy and support contact: amoulier@gmail.com
TT2 Companion is an independent planning tool for Tap Titans 2, published by Amoulier. It is not operated by or affiliated with GameHive. This policy explains how the app and its import and purchase-verification services use information.
Your game data
You can import your progress through the GameHive API or import a game export by pasting text or selecting a file. Calculations use imported progress. Profiles, plans, saved scenarios, any supplemental values and app settings are stored on your device. Selected or pasted game exports are processed locally; they are not uploaded to our services. The app reads the clipboard or a selected file when you use the corresponding import control.
When you choose API import, the app sends your personal GameHive API token over HTTPS to our service at tt2-companion.duckdns.org. The service sends the token to GameHive to request your profile and returns the response to your device. Requested information includes player and clan identifiers, progression, skills, artifacts, pets, equipment, game resources and raid statistics. Your token is saved on your device using encryption protected by Android Keystore so you can refresh imports. The app does not request your game password.
If you copy a report or skill plan and share it through another app, you decide where it goes. That app and the recipient control the resulting copy.
Import-service records
The import service processes your token and returned profile to complete your request. It does not maintain a server-side profile database or store raw player tokens in its rate-limit file. To protect the service against excessive requests, it stores hashes of player tokens and client IP addresses, together with request and error timestamps. Hashes can still be associated with identifiers and are not treated as anonymous.
Player request reservations have a 130-second window. Client admission and error records have a 10-minute window. Successful token-validation records become eligible for removal 30 days after the last successful request, with at most 50,000 such records kept. Expired records are removed when subsequent requests are processed. An idle service can retain an expired record for longer than its window. These records support service operation and abuse prevention.
Advertising and privacy choices
TT2 Companion uses Google Mobile Ads to display a banner, separated from the calculator and import controls. Current versions do not show full-screen advertisements. Each free calculation starts after a visible 15-second wait, independent of banner availability. The wait window offers the existing Remove ads purchase and a cancel option; it is not an advertisement or reward. Google's advertising components process network, device, app-interaction and diagnostic information to deliver and measure ads and prevent fraud. An IP address can indicate approximate location. See Google's advertising SDK data disclosure and privacy policy.
Starting with version 0.234.0, all ad requests are configured for Google's child treatment, disabled advertising personalization and a maximum G ad-content rating. The app also marks UMP consent requests for users under the age of consent. It does not ask for your age to apply these restrictions. Android advertising-ID and AdServices identifier, topic and attribution permissions are excluded from the app. These restrictions do not eliminate all SDK data processing. Earlier internal testing builds use Google demonstration ads and may use the SDK's default advertising settings. See Google's ad-treatment documentation.
When an ad cannot be displayed, the app can show an optional invitation to support development through Remove ads. This uses ad availability and the existing purchase status; it does not identify or scan for ad blockers. Calculation remains available after the wait when ads cannot load. Verified Remove ads owners skip the wait and do not see the banner or support invitation. The optional purchase does not change calculation results. Opening the purchase offer cancels the pending calculation; calculation can be started again afterward.
The app does not include GameHive tokens, player identifiers, game exports, inventory, plans or recommendations in ad requests. There is no separate app analytics or crash-reporting service configured by Amoulier. Google components can still process operational information.
Google's User Messaging Platform manages applicable advertising privacy requirements. When it requires a privacy-options entry point, Privacy choices is available in Settings. Advertising availability does not prevent imports or calculations. When a verified Remove ads purchase is active, the app stops requesting and displaying banner ads and removes the banner space. This does not erase information already processed by Google or disable purchase checks.
Purchases
Remove ads is an optional, one-time Google Play purchase. Google Play displays the applicable price and handles payment. The app and our verification service do not receive payment-card details.
The app checks purchase availability and existing ownership when it starts or returns to the foreground. When Google Play reports a completed purchase, the app sends its purchase token, product and app identifiers, a random installation identifier and a fresh request challenge over HTTPS to our verification service at tt2-companion.duckdns.org. The service checks the purchase with Google and returns a signed entitlement that lets the app remove ads. The installation identifier is separate from your GameHive identifier. Google processes purchase information under its privacy policy.
Our verification service processes purchase details in memory and does not keep a database of purchase tokens or order history. Its request limits use IP addresses, hashes of purchase tokens, hashes combining installation and IP identifiers, counters and timestamps. Counting windows last one minute, but these bounded in-memory records can remain until later activity replaces or evicts them, or the service restarts.
The app stores the installation identifier, signed entitlement and verification references on your device using encryption protected by Android Keystore. An entitlement can support up to seven days of offline ad removal during the same Android boot. Online verification is required again after a device restart or when the cache can no longer be used. This period does not limit the duration of your purchase. Google Play can restore ownership after reinstalling the app or on another device using the same account.
Optional closed-test gifts
Some test versions offer Remove ads codes to the first 50 eligible gift requests, subject to availability. Joining the public Google Group and installing through Google Play are separate steps. Requesting a gift is optional; calculations and imports do not require Google sign-in. The campaign is not proof of 50 distinct people or the order in which the app was downloaded.
When you explicitly choose Sign in with Google, Google's Credential Manager provides an identity token. It may contain your Google account identifier, name, email address and profile information. The app sends that token and a fresh challenge to our dedicated TT2 gift service over HTTPS. We verify it with Google and use the account identifier to prevent duplicate gifts and recover an assigned code. We do not store the identity token, name, email or profile image in the gift database. We do not request access to Gmail, Drive, contacts or game data.
The current promotion accepts the first 50 successful requests from verified Google accounts, with one code per account. We verify Google's signed identity token, its intended audience, a fresh request challenge, expiry and verified-email status. Device certification and proof of installation or licensing through Play are not required for this promotion. These checks do not prove group membership, the length of participation, or that each account belongs to a different person.
Version 0.253.0 and later do not request Play Integrity for this promotion. Earlier test versions may still obtain and send an Integrity token, which the current promotion service discards without decoding. Google may process app, installation, licensing and device signals when those older versions request Integrity, under Google's privacy policy. Google sign-in and Google Play may use different accounts; gift eligibility does not establish purchase ownership.
The gift ledger stores a keyed digest of your Google account identifier, the assigned code and assignment time. This digest is pseudonymous, not anonymous. Codes stay on the server until assigned and are passed to Google Play only when you choose to redeem. You confirm redemption in Google Play; only verified purchase ownership removes ads and the calculation wait. Identity and Integrity tokens are processed in memory, are not exposed to the app's webpage and are not written to application logs. IP-address hashes support one-minute request limits in bounded memory. Expired entries are cleared by later requests or a service restart. Request challenges expire after five minutes; maintenance removes expired challenges hourly while running and at startup.
The campaign ends on 31 March 2027 at 00:00 UTC. Account associations and their assignment times are removed automatically 30 days later, during hourly maintenance or the next service startup. This describes the live gift database; hosting-provider backup retention may differ. Expired or deleted code slots are never reissued. The service uses the same US hosting region and operational-log size limits described below.
In a gift-enabled test build, use Settings → Tester gift privacy → Delete tester gift data to remove the gift record's association with your Google account. Confirm the action and sign in with the same Google account to prove ownership. No new gift or purchase is required for deletion. This prevents recovery of an unused code through that record. It does not delete your Google account, local game profile or Google Play purchase. A non-identifying used-slot marker remains to prevent reissuing the code. You can also contact support using the data and support page if you cannot use the in-app control. Uninstalling the app alone does not remove the server's gift record.
Hosting, security and retention
Our import and verification services are hosted on Oracle Cloud Infrastructure in Ashburn, United States, and use the dedicated TT2 hostname tt2-companion.duckdns.org. Connections from the app to these services and from the services to GameHive and Google use HTTPS. Our application service code does not write raw API tokens, purchase tokens or profile bodies to its logs.
The import, billing and public-information website services rotate their operational logs by size, retaining up to two approximately 1 MiB log files per service. This is a size limit rather than a fixed number of days. Older records are replaced as new log output accumulates. The reverse proxy that accepts HTTPS connections rotates operational logs across up to five approximately 10 MiB files. Operational error logs may include connection and request metadata used to investigate service failures; the TT2 route does not enable a dedicated request access log.
When you visit our support and privacy website, the hosting infrastructure processes your IP address and request metadata to deliver the pages. The website does not use cookies, analytics scripts, advertising or data-entry forms. Email links open your chosen email service; information you send is handled as described under support and privacy requests below.
Oracle may process service and security metadata under its services privacy policy. If you use the import or purchase-verification service from outside the United States, the information needed for that request is transferred to our hosting region there. Oracle, Google and GameHive describe their own processing and privacy controls in their respective policies.
Locally saved game data remains until you remove it or clear the app's storage. The app excludes its private data from configured Android cloud-backup and device-transfer backup rules. Google's records and GameHive's records follow their own retention practices; deleting data in TT2 Companion does not delete those records.
Your choices and deletion requests
- API import is optional. You can use a game export instead. Game API connection → Disconnect removes the saved API connection and credential while preserving already imported profiles.
- Settings → Delete my local data disconnects the API and removes profiles, plans, scenarios and supplemental calculation data. Language preferences, purchase-verification cache and advertising privacy settings remain.
- To remove the app's remaining local information, clear TT2 Companion's storage in Android settings or uninstall it. Google Play may restore an existing purchase when you use the app again.
- Local deletion does not delete your GameHive account or game progress, cancel a Google Play purchase, or retrieve copies you have shared.
For privacy questions or to request access to, correction of, or deletion of information held by Amoulier, email amoulier@gmail.com. Explain which service and information your request concerns. Do not include passwords, API tokens or purchase tokens in your initial message. We may need additional information to identify relevant records and verify a request. The outcome can depend on the records we actually hold and applicable requirements.
If you contact us, we receive your email address and the content you choose to send and use them to respond to your request. To manage information held by Google, use the controls described in Google's privacy policy. Requests about your game account should be directed to GameHive. See GameHive's privacy policy for its handling of game-account information.
Age and younger users
TT2 Companion is intended for users aged 13 and above and is not designed for children under 13. The app does not ask for a date of birth. Optional Google authentication creates only the campaign identity described above; it is not required for calculations or game imports. Its restrictive advertising settings apply to everyone, including teenagers, without requiring them to disclose their age. GameHive account access is subject to GameHive's eligibility requirements.
Parents or guardians can contact amoulier@gmail.com if they believe a child under 13 has provided information through the app, or with other questions about their child's information. We will review the request and take appropriate steps concerning information we hold. The deletion controls described above can also remove local game information.
Changes to this policy
Changes will be reflected in this policy with a revised date. Please review it when the app or its services change. Privacy questions can be sent to amoulier@gmail.com.