Last updated: 21 October 2026
GMaps for KTM (“the app”) is a navigation companion app for KTM motorcycle riders on Android and iPhone, built by an independent developer, Nirav Thakker (“we”, “us”). This page is both our Privacy Policy and our Terms of Service. It explains what data the app collects, why, and how it is handled. Where something applies to only Android or only iPhone, it says so. By installing or using the app you agree to both.
Part 1 — Privacy Policy
Data we collect
| Data | Why we collect it | Where it’s stored |
|---|---|---|
| Account details if you sign in: on Android, your Google account email, name & user ID; on iPhone, the user ID from Google or Apple sign-in (the iPhone app does not request your name or email) | Sign-in, so your subscription and ride credits follow your account across devices | Firebase Authentication |
| Device location (route origin/destination) | To calculate and display routes, and to determine ride usage against your plan’s cap | Not retained as raw coordinates beyond calculating the route; only a derived country code is kept for usage logs. Saved places, routes and ride tracks that you choose to sync are described in the “Device sync data” row. Product analytics does not collect precise location or coordinates; Google Analytics may infer your approximate country or region from your IP address (see “Optional anonymous analytics and crash reports” below) |
| Ride usage events (timestamp, country code, route count) | To meter usage against free/paid subscription tiers and enforce fair-use limits | Cloud Firestore, tied to your account. These are account-service records, not product analytics |
| Subscription & purchase status | To determine which features and ride caps apply to your account | Cloud Firestore; purchase verification via Google Play Billing (Android) or the Apple App Store (iPhone). On iPhone we receive Apple’s signed transaction details for your subscription so we can verify it, never your payment card details |
| Rewarded-ad activity (timestamp and your account ID) | To credit free rides after you watch rewarded ads | Cloud Firestore |
| Advertising ID (Android) and device/app signals (free tier only) | To serve and measure ads (see “Advertising” below) | Processed by Google AdMob. On iPhone the app does not ask permission to track you across other companies’ apps and websites, and it requests non-personalized ads |
| Anonymous usage analytics (only if you allow it) | To understand how the app is used, so we can fix problems and improve it | Google Analytics for Firebase. Coarse categories and buckets only; see “Optional anonymous analytics and crash reports” below |
| Crash reports (only if you allow them) | To find and fix crashes | Firebase Crashlytics. See “Optional anonymous analytics and crash reports” below |
| Ride history and GPS tracks | To show your past rides | Stays on your device, and is included in any backup you create or turn on (including an iCloud backup on iPhone). If you turn on Device sync it is also stored in your account (see the next row). You can turn saving off in Settings → Privacy → Save ride history |
| Device sync data (only if you turn on Device sync) | To keep your saved places, routes and ride history the same across your own devices | Cloud Firestore, in an area tied to your account ID, reachable only through our Firebase backend with App Check, never directly from other apps or users. It covers your saved places and Home/Work, saved routes, bikes (names and display details only; never Bluetooth pairing keys), settings, recent searches, and ride history including recorded ride tracks (precise GPS points) and ride statistics. On Android, a synced bike can also carry the dashboard’s Bluetooth address so another Android phone can reconnect; the iPhone app does not read, show or use it. We also keep a short record per device (device name such as “iPhone”, platform, app version, and last sync times). See “Device sync (optional)” below |
| Bluetooth pairing data and dashboard address (KTM dashboard connection) | To connect the app to your motorcycle’s dashboard for turn-by-turn display and ride telemetry | Pairing keys and credentials stay on your device and are never sent to our servers. The dashboard’s Bluetooth address also stays on your device, unless you turn on Device sync on Android; then a synced bike can carry that address and its connection type so another Android phone can reconnect (see the “Device sync data” row). The iPhone app does not read, show or use the address |
| Notification content from other apps (Android only; only if you turn on Settings → Notifications → Dashboard notifications and grant Android notification access) | To show selected apps’ notifications on your motorcycle’s dashboard | Processed on your device and sent over Bluetooth to your own dashboard only. Not sent to our servers. You choose which apps are mirrored |
| Voice search audio (Android only; only if you use voice search) | To turn speech into a search query | Handled by Android’s system speech recognizer (Google), not by us |
| Search text you type | To find places | Sent to the Google Places and Geocoding services to return results |
| Diagnostic logs (only if you turn diagnostics on) | To fix problems | Kept on your device. Shared with us only if you choose to export, email or share them. An exported diagnostics summary includes your Firebase account ID when signed in; it excludes your email, name, and authentication tokens. You can erase logs in Settings → Privacy → Clear logs |
| Feedback emails you choose to send | To respond to you and improve the app | Sent by you, through your own email app, to us |
| Backups you create or turn on | To let you restore your saved data | Written to a file or folder you choose on your device. On iPhone you can also keep backups in your own iCloud storage, which Apple holds under your Apple Account and which we cannot access. Backups are not uploaded to our servers |
iPhone permissions. The iPhone app asks for your permission before it uses your location (including in the background while you navigate, so that guidance and your motorcycle dashboard stay current), Bluetooth (to connect to your dashboard) and notifications (for ride and connection alerts). It does not ask for access to your contacts, photos, camera or microphone. You can change these permissions at any time in iPhone Settings. Location and Bluetooth data are used as described in the table above.
We do not use session-replay or screen-recording tools, and we do not record what you type or tap. The only usage analytics we use is the optional, anonymous Google Analytics for Firebase described below.
Optional anonymous analytics and crash reports
The app offers two independent choices in Settings → Privacy: Share anonymous usage data and Send crash reports. Both are switched off when the app starts, and nothing is collected until the consent rules described below are met.
Usage analytics. Usage analytics uses closed event categories and coarse buckets for supported ride duration and distance, search-result count and query length, pairing outcomes, dashboard connection and display outcomes, rewarded-ad and interstitial-ad outcomes, credit and upgrade-prompt outcomes, selected screens, selected settings, and performance and offline-map outcomes. Search text, place names, coordinates, destinations, routes, contacts, and motorcycle Bluetooth addresses or serial numbers are not sent in analytics. Coarse device and app-version categories may be included. The app does not add direct identifiers such as your name, email, phone number, advertising ID, or account ID to analytics, and it does not attach your Firebase Authentication user ID or Bluetooth identifiers to event parameters, properties, or custom crash keys. Firebase Analytics may use an anonymous app-instance ID to aggregate events. Google Analytics may infer your approximate country or region from your IP address. The app uses search text, precise location, coordinates, routes, and places to provide app functions; they are not sent in product analytics. In our Google Analytics property, Google signals, granular location and device data collection, and ads personalisation are turned off.
Crash reports. Crash reports are handled by Firebase Crashlytics and can include a crash stack trace, app and build information, and basic device diagnostics. The app adds only these fixed state keys: Bluetooth connection state, navigation engine, app build channel, and consent state. It does not attach route or location data, Bluetooth identifiers, account identifiers, search content, or diagnostic log contents to crash reports. Crashlytics may use an anonymous installation ID. Crash report collection is separate from usage analytics. Firebase currently retains Crashlytics crash data for 90 days.
How consent works. Before any collection can begin, every user sees a prominent onboarding disclosure that lists the coarse anonymous usage events and bucketed values and explains that crash reports may include diagnostics. The disclosure says the app does not add direct identifiers such as a name, email, phone number, advertising ID, or account ID; that Firebase Analytics may use an anonymous app-instance ID and Crashlytics an anonymous installation ID; that precise location, coordinates, routes, searches, and places are not collected for product analytics; and that Google Analytics may infer approximate country or region from the IP address. The disclosure must be acknowledged before the user continues, and the choices can be changed at any time in Settings → Privacy.
In regions where the consent flow reports that consent is not required (for example India), the separate Share anonymous usage data and Send crash reports controls default to on only after the disclosure is acknowledged. The user can turn either off on the disclosure or later in Settings → Privacy. Acknowledgment and saved choices persist if a later consent-status result is unavailable. In the EEA, the UK, Switzerland, and for users first encountering an unknown or error region without a prior acknowledgment or restricted choice, both choices start off with no preselection. The disclosure presents equally prominent Save my choices and No thanks actions. Save my choices applies the selected controls exactly; collection remains off unless the user enables a control. If an already-acknowledged user later encounters an unknown or error region, the disclosure is not repeated, but collection remains off unless a saved affirmative consent choice authorizes it. An unknown region alone never grants collection. No thanks saves both controls as off. The user can independently enable or withdraw either choice later in Settings → Privacy with equal ease.
Changing either control to off disables that collection immediately. Turning usage analytics off also resets Analytics app-instance data. Account deletion resets Analytics data and disables both analytics and crash collection. GA4 event data is configured for two months of retention. Resetting or deleting app-side Analytics data does not retract data already processed, exported, or retained by Google under its applicable controls. Disabling Crashlytics prevents future collection and upload according to the SDK; it cannot retract a crash report already uploaded.
Device sync (optional)
Device sync is optional, in app versions that include it. It is off until you turn on Settings → Device sync → Sync across devices on a device, and it only works while you are signed in. It is free for every signed-in user.
What is synced. When on, the app uploads and downloads these items so your devices match:
- Saved places (favourites), Home and Work, and saved routes.
- Your bikes: name and display details. Bluetooth pairing keys never leave your device, and you pair each dashboard again on each phone. On Android, a synced bike can also carry the dashboard’s Bluetooth address and connection type, so another Android phone can reconnect; the iPhone app does not read, show or use them.
- Portable settings (for example units, theme, route preferences, and your privacy choices).
- Recent searches.
- Ride history, including recorded ride tracks (precise GPS points) and ride statistics, and travel-time (ETA) learning data.
Where it is kept and who can see it. Synced data is stored in Cloud Firestore under your account ID, protected by Firebase Authentication and App Check, and is accessed only through our Firebase backend functions; there is no direct app or public access to it. It is not shared with other users, is not used for advertising or analytics, and is not sold. Ride locations are sensitive: we do not send them to analytics, crash reports or any other third party. Synced data is encrypted in transit (HTTPS).
Network use. Recorded ride tracks are large, so on a mobile connection they wait unless you turn on Allow ride tracks on mobile data on the Device sync screen. Other changes can sync over mobile data. The app syncs when you change something, when you open it, occasionally in the background (about once a day), and when you tap Sync now.
Your devices. To show you which devices are synced, we keep a short record for each: a device name (for example “iPhone”), platform, app version, and last sync times.
Turning off and deleting. Turning Device sync off stops that device from syncing; it does not delete what is already in the cloud. To remove your synced data from the cloud, use the delete option on the Device sync screen. This removes synced saved places, routes, settings and rides for your account, and your data on each device stays. Deleting your GMaps for KTM account also removes all synced data. When you delete an item on one device, a small marker with no place or ride details is kept so the deletion reaches your other devices; markers are removed when you delete your cloud sync data or your account.
Device sync is separate from backups. Backups you create stay in a file you choose or, on iPhone, in your own iCloud storage, and are not uploaded to our servers.
Third-party services we use
- Google Firebase (Authentication, Firestore, Cloud Functions, App Check, and, only if you allow them, Analytics and Crashlytics) — account management, data storage, and backend logic. See Google’s Privacy Policy.
- Apple App Store in-app purchase and Sign in with Apple (iPhone) — process subscription purchases and, if you choose it, sign-in. We never see or store your payment card details; Apple handles payment directly. Sign in with Apple is requested without your name or email. See Apple’s Privacy Policy.
- Apple iCloud (iPhone, only if you turn on iCloud backup) — stores your backups (which include saved places and ride history, and recorded ride tracks if you choose to include them) in your own iCloud storage. We cannot access them.
- Google Play Billing — processes subscription purchases. We never see or store your payment card details; Google handles payment directly.
- Google Maps / Directions API — route calculation and map rendering. The Google Maps and Navigation SDKs use your device location to provide navigation and, according to Google’s SDK disclosures, also collect your IP address, device and SDK identifiers, diagnostics and interaction events to maintain and improve Google services.
- Places and Geocoding APIs — place search, and converting a ride’s origin coordinates into a country code for aggregate usage logging; raw coordinates are not retained once this lookup completes. Location and geocoding data are not sent as product analytics.
- Google AdMob (free tier only) — shows banner and rewarded ads. To verify that you watched a rewarded ad, we pass your account ID to AdMob. AdMob may use your advertising ID for ad delivery and measurement. See how Google uses data from sites or apps that use its services. The AdMob SDK may also collect your IP address (from which Google may infer approximate location), device and app identifiers, diagnostics and ad-interaction data to deliver and measure ads, prevent fraud, and maintain and improve Google services.
- OpenStreetMap-based offline maps (if you use them) — map data you download is stored on your device.
Advertising
The free tier shows ads. Paid subscribers do not see ads. Where required by law (for example in the EEA, UK and some US states), we show a consent or opt-out message before ads load, and we respect your choice. Where that message applies, you can change your choice any time in Settings → Privacy choices. On Android you can also reset or delete your advertising ID in Android Settings. The iPhone app does not show Apple’s App Tracking Transparency prompt, because it does not track you across other companies’ apps and websites, and it requests non-personalized ads.
We do not sell your personal information. Showing ads through AdMob may count as “sharing” for advertising under some state privacy laws (for example California). Where those laws apply you can opt out through Privacy choices. Optional Firebase analytics and crash reporting are controlled separately from advertising consent.
Data retention
Account data is retained for as long as your account is active. Data stored by Device sync is kept until you delete it from the Device sync screen or delete your account. Rate-limiting records are automatically deleted after 24 hours. You can request full account deletion at any time — this permanently removes your sign-in record, account record, usage history and counters, any data stored by Device sync, ride-credit and ad-reward records, purchase bindings, and rate-limit records, and revokes your sign-in tokens. We then keep two minimal records, and nothing else: (1) a deletion record (your former account ID and the time of deletion), so that no further data can be written to a deleted account by a stale session or in-flight request; and (2) for up to 12 months after deletion, a keyed one-way hash of your Google account identifier (or, for Apple sign-in, the equivalent identifier derived from Apple sign-in), together with your free-period start date, your ride and rewarded-ad counts for the current period and day, and the IDs of credit codes you redeemed. This second record contains no name, email address or contact details. We keep it only to prevent abuse of free ride limits and credit codes, on the basis of our legitimate interest in preventing fraud, and it is deleted automatically after 12 months.
Delete your account and data
You can delete your GMaps for KTM account and the data associated with it at any time, in the app or by contacting us.
- In the app, open Settings → Privacy → Delete account.
- Sign in again with the same provider (Google or Apple) when asked, to confirm it is you.
- Confirm the deletion. Deletion is permanent and also removes any bonus rides and credit codes on your account.
- If you cannot use the app, contact us at the email address at the bottom of this page and ask us to delete your account.
What is deleted and what we keep. Full account deletion permanently removes your sign-in record, account record, usage history and counters, any data stored by Device sync, ride-credit and ad-reward records, purchase bindings, and rate-limit records, and revokes your sign-in tokens. We then keep two minimal records, and nothing else: (1) a deletion record (your former account ID and the time of deletion), so that no further data can be written to a deleted account by a stale session or in-flight request; and (2) for up to 12 months after deletion, a keyed one-way hash of your Google account identifier (or, for Apple sign-in, the equivalent identifier derived from Apple sign-in), together with your free-period start date, your ride and rewarded-ad counts for the current period and day, and the IDs of credit codes you redeemed. This second record contains no name, email address or contact details. We keep it only to prevent abuse of free ride limits and credit codes, on the basis of our legitimate interest in preventing fraud, and it is deleted automatically after 12 months.
Account deletion also resets Analytics data and turns off analytics and crash-report collection in the app. On iPhone, deleting a Sign in with Apple account also revokes the app’s Sign in with Apple authorisation. A crash report that has already been uploaded cannot be recalled; Firebase currently retains Crashlytics crash data for 90 days. If you have an active paid subscription, deleting your account does not cancel it. On Android, cancel it in Google Play first (an active Google Play subscription blocks deletion). On iPhone, the app warns you, and you cancel in Settings → your name → Subscriptions.
Your rights
- Delete your account and data — in the app under Settings → Privacy → Delete account (you will be asked to sign in again to confirm), or by contacting us below. Deletion is permanent and also removes any bonus rides and credit codes on your account. If you have an active paid subscription, deleting your account does not cancel it. On Android, cancel it in Google Play first (an active Google Play subscription blocks deletion). On iPhone, the app warns you, and you cancel in Settings → your name → Subscriptions.
- Access or export your data — contact us and we’ll provide a summary of what’s on file for your account.
- Restore purchases — available in-app under Settings → Subscription → Restore purchases.
- Stop notification mirroring (Android) — turn off Settings → Notifications → Dashboard notifications, or revoke notification access in Android Settings.
- Control ride history — turn off Settings → Privacy → Save ride history. Ride history is kept on your device and is removed if you uninstall the app. If Device sync is on, a copy is also kept in your account until you delete your cloud sync data or your account.
- Control Device sync — turn it off in Settings → Device sync, delete your synced cloud data from that screen, or delete your account to remove it all.
If you live in the EEA, UK, India or another region with data-protection law, you may also have rights to correct, restrict or object to processing, and to complain to your local data-protection authority. Email us to exercise them.
Children’s privacy and age requirement
The app is for people aged 18 and over and is distributed on Google Play and the Apple App Store to adults only (age rating 18+). The app asks you to confirm that you are 18 or older and separately acknowledge that you have read and understand the safety notice when you first open it. Both confirmations are required to continue. It is not directed at children, and we do not knowingly collect data from anyone under 18. If you are under 18, do not use the app or sign in. If we learn that we hold data from someone under 18, we will delete it. Parents or guardians who believe a child has used the app can email us to have the data removed.
Security
The app communicates over encrypted HTTPS connections only; unencrypted traffic is blocked. Backend access is gated by Firebase App Check and server-side authorization checks. No system is perfectly secure, and we cannot guarantee absolute security.
Changes to this policy
If this policy changes materially, the “Last updated” date above will change, and where required we’ll notify you in-app.
Part 2 — Terms of Service
1. Who can use the app
You must be at least 18 and legally able to enter a contract. By using the app you confirm this.
2. Safety — please read
The app is a navigation aid. Ride safely and obey the law. Do not use the app in a way that distracts you while riding; pull over to change a route. Routes, maps, speed and road information can be wrong or out of date. You alone are responsible for your riding decisions. We are not responsible for crashes, injuries, fines or damage that result from following or relying on the app.
3. Free tier, subscriptions and credits
- The free tier gives a limited number of rides per period and shows ads. You can earn extra rides by watching rewarded ads, subject to a daily limit.
- Basic and Pro are paid monthly subscriptions that raise the ride limit and remove ads. The price and billing period are shown in the app, next to the Subscribe button, before you buy. They come from Google Play (Android) or the Apple App Store (iPhone) and may vary by country and taxes.
- Automatic renewal. Subscriptions renew automatically each billing period at the price shown, until you cancel. On Android your Google Play payment method is charged, and on iPhone your Apple Account is charged, when you confirm the purchase and at each renewal. On iPhone, a subscription renews unless you cancel at least 24 hours before the end of the current period.
- How to cancel. Cancel any time in Google Play: open Google Play → Profile → Payments and subscriptions → Subscriptions → GMaps for KTM → Cancel subscription. You can also use the “Manage / cancel subscription” button on the app’s Subscription screen, which opens that Google Play page. Cancel before the renewal date to avoid the next charge. After you cancel you keep access until the end of the period you already paid for. On iPhone, cancel in Settings → your name → Subscriptions → GMaps for KTM → Cancel Subscription; the app’s Subscription screen also links to Apple’s subscription page.
- Changing plans. On Android, to move from Basic to Pro, cancel your current subscription first and subscribe to the new plan once the old one ends. On iPhone, Basic and Pro are in one Apple subscription group, so you can switch between them from the app’s Subscription screen or Apple’s subscription settings, and Apple applies the change under its group rules. A subscription is managed in the store where you bought it; a subscription bought on Android is not managed from the iPhone app, or the other way round.
- Refunds are handled by Google Play (Android) or Apple (iPhone) under their refund policies. We do not process payments ourselves.
- Ride credits and codes have no cash value, cannot be transferred or sold, and expire on the date stated or may be withdrawn if misused.
- We may change prices or plans. Price changes for an existing subscription follow Google Play’s or Apple’s rules, and you will be notified before they apply to you.
4. Your content
Files you import or export (for example GPX routes), saved routes and backups belong to you, and you promise you have the right to use them. The app does not publish your content to other users. If you turn on Device sync, your content is stored in your account only so that it can reach your own devices. If a future feature lets you share content publicly, additional terms will apply.
5. Acceptable use
Do not reverse-engineer or tamper with the app’s servers or billing, use bots or scripts to claim rewards, abuse credits or codes (including by deleting and re-creating an account to reset free limits), or use the app to break the law. We may suspend accounts that do.
6. Third-party services and trademarks
The app uses Google and OpenStreetMap services, and each has its own terms. “KTM” is a trademark of its owner. This app is an independent project and is not made, endorsed or sponsored by KTM. For the iPhone app, Apple is not a party to these terms and is not responsible for the app or its support, and Apple’s Standard Licence Agreement (the Licensed Application End User Licence Agreement) applies to your use of the iPhone app in addition to these terms.
7. Copyright complaints
We respect copyright. If you believe material in the app infringes your copyright, email us at the address below with: your name and contact details; what the material is and where you saw it; a statement that you believe the use is unauthorised; and a statement, under penalty of perjury, that you are the owner or authorised to act for the owner. We will review it and respond.
8. No warranty
The app is provided “as is” and “as available”. We do not promise it will be error-free, uninterrupted or accurate, or that it will work with every motorcycle, dashboard or phone.
9. Limits on our liability
To the fullest extent the law allows, we are not liable for indirect, incidental or consequential loss, or for any loss arising from your use of or reliance on the app. Our total liability to you is limited to the amount you paid us in the 3 months before the claim, or ₹1,000 if greater. Nothing in these terms limits liability that cannot be limited by law, or any consumer rights you have under your local law.
10. Your responsibility and indemnity
You use the app, and ride, at your own risk and are responsible for how you use it. You agree to cover us for losses, claims and reasonable legal costs that arise from your breach of these terms, your misuse of the app, or your unlawful or unsafe riding, to the extent the law allows. This does not apply to anything we are responsible for under law, and it does not limit any consumer right that cannot be waived.
11. Ending your use
You can stop using the app and request deletion of your account at any time. We may suspend or end access if you break these terms. Sections that by nature should survive (for example 2, 8, 9, 10 and 12) survive.
12. Governing law
These terms are governed by the laws of India, and the courts at Bengaluru, Karnataka have jurisdiction, without removing any mandatory consumer rights you have where you live.
13. Changes to these terms
We may update these terms. If a change is material we will update the “Last updated” date and, where required, tell you in the app. Continued use after a change means you accept it.
Contact
Questions about this policy or these terms, data access or deletion requests, or copyright complaints, contact:
Nirav Thakker — normaltusker@gmail.com