Introduction

Echoes of Battle ("we", "our", "the app") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, and safeguard your information when you use our mobile application. We process personal data in accordance with the EU General Data Protection Regulation (GDPR) and similar laws.

Information We Collect

We collect the following categories of data:

Account Data: When you sign in (via Google, Apple, or as a guest), we store your user ID, display name, and email address. Guest accounts use a locally generated anonymous ID.

Usage Data: Battle listening history, quiz scores, GPS visits, achievements, XP, gold, streaks, and activity logs. This data is stored locally on your device and optionally synced to Firebase for cross-device access.

Location Data: When you use GPS battlefield detection, we access your device location to determine proximity to historical battle sites. Location is read only while the app is open (never in the background). When you check in at a battlefield, your precise coordinates are sent to our server once to verify you are there, and a visit record (battle and time) is stored with your account. Pin coordinates (when you publicly place a pin) are also stored on our servers.

Purchase Data: In-app purchase transactions are processed by Apple App Store or Google Play Store via RevenueCat. We do not store payment card details.

Push Notification Token: When you grant push permission, we store an Expo push token on the user record so re-engagement and event reminders can reach your device. This token is treated as personal data under GDPR.

Age Declaration: Before you can reach a real-money purchase, we show a neutral age screen and store the year of birth you enter on your account. We use it only to decide whether a parental gate is required and to serve age-appropriate content. We do not collect your full date of birth.

No Advertising: The app shows no ads. It contains no advertising SDK, does not access the device advertising identifier, and does no ad tracking.

Analytics: The Android app sends no usage analytics. With your consent only, the app sends crash reports via Sentry, tagged with a pseudonymous account ID (no name, no email). On our website, Google Analytics and Metricool provide anonymous statistics and load only after you accept cookies.

How We Use Your Data

We use collected data to:

Data Storage & Security

Your data is stored locally on your device using AsyncStorage. When signed in, progress data is synced to Firebase Firestore (Google Cloud, EU region: europe-west1). All data transmission uses HTTPS encryption. We do not sell your personal data. We share data only with the service providers listed under "Third-Party Services" below, and only to the extent needed to provide the functionality you use.

Your Rights (GDPR)

Under GDPR/RODO, you have the right to:

To exercise these rights, use the in-app options or contact us at privacy@echoesofbattle.com. We respond within 30 days as required by Art. 12(3).

Children's Privacy

Echoes of Battle is designed for educational use and is suitable for users aged 12+. We do not knowingly collect personal information from children under 13. Before any real-money purchase, we present a neutral age screen and require a parental gate (an arithmetic challenge) for anyone who declares an age below 18. The Classroom Mode is designed for supervised educational environments.

Third-Party Services

We use the following third-party services:

Data Retention

We retain your data according to the following periods:

Website Newsletter

Separately from the app, you can subscribe to the launch newsletter on echoesofbattle.com. If you do, we process the email address you enter, the starter era you pick (if any) and, when you arrived from one of our ads or campaign links, that link’s campaign label (for example google/cpc/en-search-quiz), so we can see which campaigns bring signups. The label never contains a click identifier or anything that identifies you on another site.

Cloudflare Web Analytics runs on every page: it counts page views without cookies and without profiling individual visitors, so it needs no consent. Our map game “Where Was It Fought?” also sends an anonymous count after each round, without cookies and without consent: which battle it was, how far your pin landed and whether you used the hint, with no identifier, name or cookie attached. We keep only running totals per battle and use them to show which battles are hardest; to stop one connection sending in a loop, a hashed form of your network address is held for at most 10 minutes, apart from those totals. The game sends nothing when your browser signals Global Privacy Control or Do Not Track. The other website tools load only if you accept them in the cookie banner, and they set cookies. Google Analytics and Metricool show us how the site is used, for example how many visitors join the newsletter. The Google Ads tag and the X (Twitter) and Meta (Facebook) pixels measure how our ads perform, for example whether someone who clicked one of our ads then joined the newsletter. For this matching, the Meta pixel may send a hashed, irreversible version of the email you enter to Meta; it is never shared in readable form. Nothing from these loads before you accept, and you can change or withdraw that choice at any time through Cookie settings in the footer. Apart from the daily leaderboards described under Daily game leaderboards, the newsletter form is the only place on echoesofbattle.com where personal data is collected; the optional interest topics you can add to it are described under Personalization.

Daily game leaderboards

When you finish a daily game (the Pin of the Day, the Battle of the Day or the Daily Challenge of “Where Was It Fought?”), your result goes to a shared leaderboard that the website and the app use together. It is stored in Google Firebase (region europe-west1) and contains: the day, your answer (where you put each pin, or the battle you named and at which step), the score our server works out from that answer, a random identifier your browser creates for this site (we store only a salted hash of it), and the name shown on the board: a name drawn from our preset list, or a name you type yourself.

Personalization on the website

Some blocks on echoesofbattle.com adapt to you: “Continue reading” under each story, “Picked for you” on the home page and the blog, the optional survey “What’s your history front?”, the path shown after a quiz, the call to action at the end of a page and one block chosen by country. Wherever this happens you see the note “Picked for you · change · turn off”. We never try to guess your gender or any other personal trait, and nothing is adapted on school and classroom pages.

Stored only on your device (your browser’s local storage, never sent to us):

Country block. On the home page and under stories one block depends on the country of your connection (for example “Battles that built America” in the United States). Cloudflare, our hosting provider, derives the country from your IP address for each request; we use it on the fly to choose that block and do not store it. The story itself, the page title and its description are the same for everyone. Legal basis: our legitimate interest in showing relevant reading (GDPR Art. 6(1)(f)).

Control group. To check that personalization really helps, about 1 in 10 devices is randomly placed, on the first visit, in a control group that sees the editorial default order and no country block. If you accepted analytics, Google Analytics receives which group you are in and which suggestion you clicked, never your reading history or survey answers.

Newsletter interests. If you subscribe from the survey and tick “Match the stories to my answers”, the topics listed next to that box (for example “Second World War, The sea”) are saved with your email address in MailerLite, so the weekly story fits your front. This is the only case in which anything from personalization leaves your device. Leave the box unticked and only your email is sent.

Clear or turn off. Use the buttons below, or “turn off” next to any personalized block. Clearing removes your reading history, survey answers, counters and starter era from this browser. You can also delete this site’s data in your browser settings.

These controls need JavaScript. Without it nothing is personalized.

Privacy Contact

For privacy-related questions, complaints, or to exercise your GDPR rights: