Marchland is a single-player territory and war-strategy game that runs entirely on the device in your hand. This page covers what the app processes locally, what it sends out, and the parts you can verify yourself.
What stays on the device
Everything about the game - labourer output, stockpiles, construction, era advancement, battle resolution, convoy ambush rolls, reports and the chronicle - is computed and drawn on your device. Your progress (realm name, resources, labourers and their postings, built and planned buildings, army and forge level, enemy realms, convoys in transit, battle reports, chronicle, settings) lives in the app's own local storage. There is no account to register and no profile of you on any server.
The iOS build sends no requests
This is the most important line on the page. Marchland contains no networking code. The game's pages, styles, logic, artwork and audio all ship inside the download; nothing in the bundle points at an external script, font, image or endpoint. The native shell loads files from inside the app bundle only and cancels any navigation that tries to leave it. Turn off Wi-Fi and cellular data, or fly, and the game plays exactly the same.
So this build has no launch counts, no analytics SDK, no crash collection, no advertising identifier, no remote config and no A/B split. Nothing about you exists on our side, which means there is no personal record for either of us to look up, export or delete.
This section is about the iOS download. The Android download on Google Play is different: it fetches one rewarded video over the network, and what that component collects is listed in full under Advertising below.
Permissions
The iOS build asks for one thing: notifications, used for enemy-attack and construction-complete reminders. Decline and the game runs exactly as before, you simply get no system alerts. Location, camera, photo library, microphone, contacts and motion and fitness are never requested - the game only needs your thumb. The Android build additionally declares INTERNET, POST_NOTIFICATIONS and VIBRATE - INTERNET there serves two purposes, the rewarded video and crash/usage reporting; eight more permissions arrive with the advertising and Firebase runtimes and are itemised in the two sections below.
No purchases, in either build
- No in-app purchases, no virtual currency, no subscriptions, no loot boxes.
- Every map, age, unit type and trade route arrives with the download; nothing is locked behind a purchase or behind watching a video.
Advertising: none in the iOS build, one rewarded video in the Android build
- The iOS download on the App Store integrates no ad network and shows no advertising of any kind. Everything below is about the other download.
- The Android download on Google Play carries one **optional** rewarded video: tapping Deploy all opens a full-screen clip served by Google AdMob, and finishing it unlocks that one assisted deployment. To keep nobody waiting on a tap, the app preloads a clip at launch and tops the queue up after each viewing - so this build's network activity starts at launch, not when the button is pressed.
- No fill counts as nothing. Offline, in airplane mode, or where no ad is available, the attempt resolves as "no ad came back just now", no reward is granted, and you can perform the same actions by hand in the interface; skipping the video costs you no content.
- What the advertising component (Google Mobile Ads SDK) collects: IP addresses, which may yield a rough location; interaction data such as app launches, taps and video views; diagnostics such as startup time, stutter rate and power use; device and account identifiers, including the Android advertising identifier (AAID), the App Set ID and identifiers tied to accounts signed in on the device. Purposes are serving and measuring ads and preventing fraud, over TLS. Google is the collector and processor.
- We do not read, store or reuse any of those fields. Rewards settle on your own device with no server verification, so there is no identity attribution made for the sake of granting a reward.
- Permissions arriving with the ad runtime in the Android build: ACCESS_NETWORK_STATE, com.google.android.gms.permission.AD_ID, ACCESS_ADSERVICES_AD_ID, ACCESS_ADSERVICES_ATTRIBUTION, ACCESS_ADSERVICES_TOPICS, WAKE_LOCK, FOREGROUND_SERVICE.
- You can reset or delete the advertising identifier, or turn off ad personalisation, any time in the device's Google settings; the rest of the game is unaffected.
- The full Android statement - offline settlement, local reminder scheduling, save data, children, crash and usage reporting - is in the Android privacy policy linked on the first line of this page.
Crash and usage reporting: the iOS build sends none, the Android build does
- The App Store build contains no telemetry of any kind: no crash reporting, no usage statistics, no analytics SDK, and no seam wired for one. Everything below describes the other build.
- The Google Play build ships Google Firebase (Crashlytics and Analytics) and sends two things: stack traces for crashes and non-fatal exceptions, and launch, session and a small number of feature-usage events. Neither carries your saved game, and neither carries a field that identifies you as a person - the identifier is an anonymous instance ID generated per install.
- Google is the collector and processor. The purpose is letting us see which build crashes and which features people actually reach for. This data is not linked to any advertising account and is not used for ad personalisation. It travels over TLS.
- There is no in-app switch for this on Android (unlike ads, where you can at least opt out of personalisation in system settings). What you can do is reset or delete the advertising identifier in the device's Google settings, or stay offline - while offline, crash reports stay on the handset.
- The **debug build of the Android app has both reporters switched off entirely**; only the build distributed through Google Play sends them.
Retention and deletion
All game data lives in your device's sandbox and is removed when you delete the app. Whether it travels with your iPhone backup or a device transfer is decided by your Apple settings - that is Apple's service, which we neither operate nor can act on your behalf. Equally, there is no server copy for us to look up, restore, merge or delete.
Children
The app is not directed at children, and it collects no personal data from anyone, child or adult.
Third-party components
The iOS bundle contains no third-party runtime or SDK. The map rendering, animation and interaction logic are written by this project; drawing and layout are done by the WebKit that ships with iOS, and audio plays through the system's own audio stack. The Android bundle additionally contains three: the Google Mobile Ads SDK (com.google.android.gms:play-services-ads 25.5.0, Google LLC), used only for the single rewarded video above; Firebase Crashlytics (com.google.firebase:firebase-crashlytics 20.1.1, Google LLC) and Firebase Analytics (com.google.firebase:firebase-analytics 23.2.0, Google LLC), which are the two kinds of crash and usage reporting above. All three are covered by https://policies.google.com/privacy, and Google's Firebase data processing terms are at https://firebase.google.com/terms/data-processing-terms. Artwork is generated and processed locally for this project, and the sound effects are short work and weapon samples delivered inside the bundle. If a future version adds third-party assets or components, they will be credited here with their licences.
Contact
Operator: Beijing Blue Ocean Xinfan Technology Co., Ltd
Privacy and support email: howoo.bluesail@gmail.com
Please mention "Marchland" and what you would like done. You can also reach us through the support link on the app's App Store product page. We do not ask for unrelated personal details to answer an ordinary question - and since the app never contacts a server, there is usually no data of yours for us to act on.