Privacy Policy
Last updated: October 19, 2026
Revised October 19, 2026: Section 1.2 now also names the daily limits on place searches and account status checks. Revised October 13, 2026: if you sign in with Apple, we now keep an encrypted token that we use only to remove Naola's access to your Apple Account when you delete your Naola account (Sections 1.7, 3, 4, 5.1 and 7). Section 1.7 now also lists the device label kept for each session, Section 3 says what Apple and Google receive when you sign in with them, and Section 1.5 lists everything the app keeps on your device, including what can remain on an iPhone after you uninstall it. Ads no longer contain affiliate links. Revised October 11, 2026: we no longer keep any location to measure forecast accuracy, which is now measured at fixed weather stations, and the Accuracy screen sends only the country you choose (Sections 1.1, 1.10 and 4). Sections 1.3 and 4 now also say what we receive when you email support, including the error details the app can fill in for you, and how long we keep them. Sections 3 and 5.1 now also say that our support inbox is a Gmail mailbox, and where Google may store the emails in it. Revised October 6, 2026: weather services now receive the place you ask about rounded to about 1 km, never your precise location (Sections 1.1 and 3), and Section 5.1 says plainly how data sent to Apple and Visual Crossing is protected. Revised October 5, 2026: new sections say who is responsible for your data (Who We Are), the legal basis for each use of it (Section 1.10) and how transfers outside Europe are protected (Section 5.1); Section 7 names the authorities you can complain to; Sections 1.2, 1.3, 4 and 7 now describe rate-limit counters, feedback and how long data is kept, backups included.
Naola ("we", "our", "the app") is a weather application. We are committed to protecting your privacy. This policy explains what data we collect, why, and how it is handled.
Who We Are
The publisher of Naola, named below and based in Spain, is responsible for your personal data. Under the EU General Data Protection Regulation (GDPR), it is the "controller": it decides how your data is used.
- Publisher: New0 apps
- Contact: [email protected]
1. Data We Collect
1.1 Location Data
When you grant location permission, the app accesses your device's geographic coordinates (latitude and longitude) to fetch weather data for your area. Location data is:
- Stored locally on your device (in app storage) so we can remember your selected location between sessions.
- Sent to our backend server per request to retrieve weather data. It is processed in memory and not stored in raw form. Our server rounds it to about 1 km and keeps that rounded location, with the forecast or place name found for it, in short-lived caches (from 2 minutes to 1 day) so that nearby requests can share one answer. These caches are not linked to any user, IP address, or device, and we keep no location for any other purpose.
- Forwarded to third-party weather providers (see Section 3) to obtain forecasts. Each provider receives your coordinates rounded to about 1 km, never your precise location, and only for the duration of the API call.
The Accuracy screen, which compares weather services, does not use your location. It sends only the two-letter code of the country you choose, which the app suggests from the city on screen or from your phone's region setting. Older versions of the app also sent your location with that request; our server ignores it and stores nothing.
You can deny location permission and manually search for a city instead. You can revoke location permission at any time through your device settings.
1.2 IP Address and Rate-Limit Counters
For rate limiting purposes, we store a one-way cryptographic hash (SHA-256, made with a secret key) of your IP address. The original IP address cannot be recovered from this hash. Hashed IP records are automatically deleted after 7 days.
Some limits protect an account rather than a network: daily ceilings per account on weather requests, place searches and account status checks, a cap on web activation codes, and caps on wrong passwords, password-reset and sign-up emails, and device sign-ins. Their counters are keyed by the same kind of hash, made from your account id, your email address (for wrong passwords, also combined with your network) or your device's secret. Each counter holds only its name, a day and a count, and is automatically deleted after 7 days, even if you delete your account sooner. The counters keyed only by your account id, email address or device secret are included in your data export (Section 7).
1.3 Feedback and Emails to Support
If you submit feedback through the app, we store the message text, your app language and the app version. To recognise a message sent twice by mistake, we also store a one-way hash (SHA-256, made with a secret key) of the message combined with your IP address and the hour it was sent, kept as long as the message; your IP address itself is not stored. Feedback is not linked to you: no email, name, account or device identifier is attached.
If you email [email protected], we receive your email address and what you write. When the app shows an error, its Contact support button opens an email to us in your own email app, filled in with the error code, a reference, the app version, your device's operating system and its version, and the app language. It adds nothing else: no location, and no account or device identifier. You can read and change all of it before sending, and nothing reaches us unless you send it. The reference is a random code made for that one request and is not linked to you. It matches one line in our server's error log, which records only the error, the kind of request and the time, and is deleted after 7 days at most. Cloudflare receives these emails for us and forwards them to our support inbox. Our support inbox is a Gmail mailbox provided by Google (Sections 3 and 5.1). We keep your email and our reply only as long as we need them to help you. As with feedback, the legal basis is our legitimate interest in hearing from you (Section 1.10).
1.4 Subscription Data
If you make an in-app purchase, RevenueCat (the service that processes our subscriptions) receives your numeric Naola account id (the id of the anonymous device account if you never signed up), together with your platform (iOS/Android) and the store's purchase receipt. We store your subscription status against that account id. Your name and email address are never sent to RevenueCat.
1.5 Local Storage
The app stores the following on your device:
- Your selected location (coordinates and city name), and the city you choose for the daily forecast notification
- The last forecasts it fetched, so it can show them offline and prepare the daily notification in advance
- Your widgets' locations and what they show; on iPhone, the widgets read it from a storage area that Naola shares only with its own widgets
- Your settings: language, units, notifications, whether you have completed the intro, and which weather alerts you have already seen or dismissed
- In your device's secure storage (the Android Keystore or the iOS Keychain): the secret of your device account (Section 1.7), a random code for this installation that keeps your sign-ins in the right session slot, and, while you are signed in, your session token, account id and email address
We don't receive any of this, except what Sections 1.1 and 1.7 describe: the place you ask a forecast for, and the device secret, installation code and session token the app sends to sign you in.
Signing out removes the session token, account id and email address from your device. On Android, uninstalling the app deletes all of this data. On iPhone, uninstalling deletes all of it except the secure storage: iOS can keep Keychain items after an app is deleted, so the device account's secret and the installation code, and your session token, account id and email address if you didn't sign out, may stay on the phone, and Naola uses them again if you reinstall it. The web version keeps your selected location and settings in your browser's storage until you clear it.
1.6 Ad Impressions and Clicks
Free-tier users see one small ad card at the bottom of the main weather screen. We do not use any third-party ad network. All ads are served from our own backend and contain no tracking pixels, cookies, or third-party scripts.
The only data we store related to ads is:
- An impression counter: a single integer per ad row, incremented each time the backend serves that ad. Not linked to any user, device, or session.
- A click counter: a single integer per ad row, incremented each time the backend receives a click report. Not linked to any user, device, or session.
The schema has no foreign key, IP, timestamp, or any other field that could link an ad impression or click back to an individual user. It is technically impossible to reconstruct which user saw or clicked any given ad, even with full database access.
Ads do not read device advertising identifiers (IDFA, GAID), do not set cookies, and do not share any data with third parties.
Affiliate Links
Ads in Naola contain no affiliate links. Until October 11, 2026, some ads linked to Amazon through the Amazon Associates program, with a tag in the link that named Naola as the referrer and nothing about you; if you tapped one, Amazon handled your visit under its own privacy policy. We will update this section before any ad carries an affiliate link again.
Advanced subscribers do not see any ads and no ad-related data is recorded for them.
1.7 Account Data
You don't need to sign up to use Naola. On first launch, the Android and iOS apps create an anonymous device account: a numeric id, a placeholder address that no one can receive mail at (…@device.naola.invalid), and a hash of a random secret kept in your device's keystore. It contains no personal data. It exists so that a subscription bought on that device is recognised without asking for your email.
Signing up with an email address, Apple or Google is optional. You need it only to move a subscription between Android and iOS. The web version never creates accounts: to use Advanced on the web, you generate an activation code in the mobile app.
What we store for an account:
- Email address: only if you sign up (a device account has just the placeholder). Stored lowercased so we can match the same account across devices. Some users sign in with Apple's private-relay email; in that case we only ever see the relay address, never the underlying email.
- Password hash (only if you set a password): hashed with PBKDF2 (100,000 iterations, SHA-256, random per-user salt). Users who sign in with Apple or Google never set a password.
- Pending sign-up: when you sign up with email, your address and password hash wait in a pending record until you type the 6-digit code we email you. The code is valid for 15 minutes; a sign-up that is never confirmed is deleted within a day. We create the account only once the code is confirmed.
- OAuth provider links (Apple / Google subject IDs, with the email address the provider gave at that sign-in): only if you signed in with one of those providers.
- Sign in with Apple token (only if you signed in with Apple): when you sign in with Apple, our server exchanges a one-time code from Apple for a token, stores it encrypted, and uses it for one thing only: to ask Apple to remove Naola's access to your Apple Account when you delete your Naola account (Section 7). Each new Apple sign-in replaces it. It is not included in your data export, because it is a credential: together with our key, it can act on your Apple sign-in.
- Session device identifiers: an opaque UUID for each of two session slots: one phone and one browser. A subscription can be used on one phone and one browser at the same time. Signing in on a second phone (or a second browser) signs the first one out after a short grace window.
- Session device labels: the model of the phone (for example "iPhone 15") or the browser and system (for example "Chrome · Windows") signed in to each slot, so the app can tell you which device a new sign-in would sign out. Each sign-in replaces the label of its slot. The labels are included in your data export.
- Activation codes: short-lived
NA-XXXX-XXXXcodes (10-minute, single-use) minted in the mobile app to unlock Advanced on the web. We store the code, who minted it, when, and whether it's been redeemed. - Account creation timestamp
The web version does not have a registration form. To use Advanced on the web you generate an activation code in the mobile app (Settings → Account → Activate Naola on the web) and paste it at naola.net/activate. The web cannot create new accounts or new subscriptions on its own.
Sessions are managed via JSON Web Tokens (JWTs) signed with HMAC-SHA256, valid for 30 days. Each JWT is bound to the device identifier of its slot.
1.8 Browser Cookies (Website and Web App)
The Naola website (naola.net) and web app (naola.net/app) use only these cookies, both strictly necessary:
lang: stores your language preference (e.g.fr,ja) so later visits load the site in your language without detecting it again. One-year lifetime,SameSite=Lax,Secure. Contains only the language code (for examplefrorpt-BR).session: set only if you activate Naola on the web with a code. It keeps you signed in to the web app. 30-day lifetime,HttpOnly,Secure,SameSite=Strict, so scripts on the page can't read it. Signing out or deleting your account removes it.
Under GDPR/ePrivacy, strictly-necessary cookies do not require prior consent. The lang cookie is set either when you choose a language in the footer, or when the site detects your browser's Accept-Language header and redirects you to the matching language for the first time.
Our analytics sets no cookies (see Section 1.9). You can clear cookies at any time in your browser settings. The Android and iOS apps don't use browser cookies.
1.9 Website Analytics
To understand how many people visit naola.net and the web app, and which pages they use, we run Matomo, an open-source analytics tool, on a server we rent from o2switch, a hosting company in France, reached through Cloudflare. They store or pass on this data only to run it for us, and never use it for anything else. The Android and iOS apps contain no analytics at all.
This is analytics, not tracking:
- No cookies. Matomo runs in its cookie-free mode and stores nothing on your device.
- Your IP address is not stored. Your browser has to send it to reach the analytics server, but Matomo shortens it to its first block (for example 81.0.0.0) before saving anything.
- No recognition over time or across sites. Page views are grouped into a visit using a code that changes every 24 hours, so one day's visit can't be linked to the next, or to other websites.
- No sensitive pages or links. Analytics doesn't run on the password-reset, activation and account-deletion pages, and never records anything after a "?" in a web address, where codes and links go.
- Nothing is sold, shared or used for advertising.
What Matomo records: the pages you view, the site that linked you here, your browser, operating system, screen size and language, and an approximate country. Individual visits are deleted after 6 months; after that we keep only totals, such as monthly page views.
The legal basis is our legitimate interest in knowing how the site is used (GDPR Art. 6(1)(f)). To opt out, turn on "Do Not Track" or Global Privacy Control in your browser: Matomo then doesn't load at all.
1.10 Why We Use Your Data (Legal Bases)
Under the GDPR, every use of personal data needs a legal basis. Ours are:
- Providing the service you ask for (performance of our contract with you under the Terms of Service, GDPR Art. 6(1)(b)): sending your location, or the city you search for, to get a forecast, and keeping it briefly, rounded to about 1 km, so nearby requests can share one answer (Sections 1.1 and 3); your device account, and your sign-up, sign-in and sessions if you create an account (Section 1.7); your subscription status and its purchase events (Section 1.4); activation codes and the
sessioncookie for the web (Sections 1.7 and 1.8); and the emails we send you. - Keeping the service available and secure (our legitimate interest, GDPR Art. 6(1)(f)): the rate-limit counters in Section 1.2. Our interest is keeping Naola working for everyone, keeping its costs under control and protecting accounts from attacks such as password guessing.
- Hearing from you (our legitimate interest, GDPR Art. 6(1)(f)): storing and reading the feedback you send (Section 1.3), to fix problems and improve Naola.
- Understanding how the website is used (our legitimate interest, GDPR Art. 6(1)(f)): the website analytics described in Section 1.9.
You can object at any time to a use based on our legitimate interest (Section 7).
2. Data We Do Not Collect
- No sign-up required on Android, iOS, or the web: the mobile apps create only an anonymous device account (see Section 1.7)
- No email addresses, unless you choose to sign up (optional, see Section 1.7)
- No names or other personal identifiers
- No tracking: the mobile apps contain no analytics, and the website's analytics sets no cookies and stores no IP address (see Section 1.9)
- No advertising identifiers (IDFA, GAID)
- No third-party ad networks or SDKs
- No tracking cookies (only the strictly-necessary
langandsessioncookies, see Section 1.8) - No crash reporting or telemetry
- No link between ad impressions/clicks and any user or device
3. Third-Party Services
To provide weather data, your coordinates are sent to the following services during each weather request:
- Open-Meteo: weather data
- OpenWeather: weather data and location search
- Apple Weather: weather data and weather alerts
- WeatherAPI.coma: weather data
- Visual Crossinga: weather data
- Googlea: weather data
a Available with Naola Advanced.
For hosting:
- Cloudflare: runs our backend, our database (Section 5) and this website.
- o2switch: hosts the server that runs our website analytics (Section 1.9), in France.
For in-app purchases:
- RevenueCat: subscription management
For signing in, only if you choose it:
- Apple (Sign in with Apple): Apple confirms who you are and gives the app an identity token with your Apple account id and your email address, or a private relay address if you choose to hide it. Naola doesn't ask Apple for your name. Our server checks the token against Apple's published keys. It also sends Apple the one-time code from your sign-in, to get the token described in Section 1.7, and sends that token back to Apple when you delete your account (Section 7).
- Google (Google Sign-In): Google confirms who you are and gives the app an identity token with your Google account id and email address. The token can also carry the name and profile picture of your Google account; our server reads only the account id, the email address and whether Google has verified it, and stores nothing else from the token. It checks the token against Google's published keys and sends Google nothing about you.
For email:
- Brevo: sends the emails we send you (sign-up confirmation codes and password-reset links) and forwards feedback you send from the app to our support inbox. It receives the recipient's email address and the message content.
- Google (Gmail): our support inbox. It stores the emails you send to [email protected], which Cloudflare forwards to it, the feedback that Brevo forwards from the app, and our replies. It is an ordinary Gmail account, not a business service with a data processing agreement, so Google handles these emails under its own terms and privacy policy.
Each service has its own privacy policy linked above. We encourage you to review them.
Every third party we share your data with must give it the same or equal protection as this policy. Our service providers (Cloudflare, o2switch, RevenueCat and Brevo) may use your data only to provide their service to us, under data processing agreements that require them to protect it. Apple and Google run their sign-in services as independent companies, under their own privacy policies linked above. The weather providers receive only what a forecast or a search needs: coordinates rounded to about 1 km, or the text of a city search and, where a service needs them, the app's language and the country. They never receive your IP address, your account or any other identifier.
Our website analytics (Section 1.9) runs on a server we rent from o2switch, reached through Cloudflare. They store or pass on that data only to run it for us, and no analytics company receives it.
4. Data Retention
| Data | Retention |
|---|---|
| Rate-limit counters (hashes of your IP address, account id, email address or device secret) | 7 days (auto-deleted, whether or not you delete your account) |
| API usage counts | 7 days (auto-deleted) |
| Feedback messages | Until manually deleted by us |
| Emails you send to support | As long as we need them to help you |
| Server error log (the error, the kind of request, the time and a random reference) | 7 days at most (auto-deleted) |
| Subscription records (status, product, renewal date, platform) | Until you delete your account, including after the subscription ends |
| Subscription event history (purchase events RevenueCat reports to us) | 30 days (auto-deleted), or until you delete your account if that is sooner |
| Location coordinates (raw) | Not stored on servers (processed in memory only) |
| Location rounded to about 1 km (server caches) | From 2 minutes to 1 day (not linked to users); none is kept to measure accuracy |
| Local device data | Until you uninstall the app (on iPhone, Keychain items can remain after that, see Section 1.5) |
| Account data (the anonymous device account and the device label of each session; email and password hash only if you sign up) | Until you delete your account |
| Sign in with Apple token (encrypted; only if you signed in with Apple) | Until you delete your account: it is erased with the account and used one last time to ask Apple to remove Naola's access |
| JWT session tokens | 30 days from issuance (then expire automatically) |
| Ad impression/click counters | Indefinite (aggregate only, no user link) |
lang cookie (website) | 1 year (browser-stored; clearable at any time) |
session cookie (web app, only after activation) | 30 days, or until you sign out |
| Website analytics: individual visits (Matomo) | 6 months, then only aggregated totals |
| IP address in website analytics | Not stored (shortened to its first block before saving) |
| Deleted data in our database's recovery history (Cloudflare D1 Time Travel) | Up to 30 days after deletion, then gone |
5. Data Processing Location
Naola's database is held under Cloudflare's European Union jurisdiction: a binding restriction, fixed when the database was created, that keeps every account, subscription and feedback record we store inside the EU and prevents it from being relocated elsewhere. Our backend runs on Cloudflare Workers, a globally distributed network, so a request may first be handled at the edge location nearest you before it reaches that database. Location coordinates are processed in memory only and are never written to our database.
5.1 Transfers Outside the European Economic Area
Some of the services in Section 3 are based outside the European Economic Area (EEA), so data we send them leaves it. Each of those transfers is protected as the GDPR requires:
- Switzerland and the United Kingdom. Open-Meteo (Switzerland), OpenWeather and WeatherAPI.com (United Kingdom) are in countries that the European Commission has found to protect personal data adequately (an "adequacy decision").
- United States: Data Privacy Framework. Google and Cloudflare are certified under the EU-U.S. Data Privacy Framework, which the European Commission has also found adequate. Our support inbox is a Gmail mailbox (Section 3): Google provides Gmail in Europe through Google Ireland Limited and may store the emails in it on servers in the United States, where Google LLC is certified under this framework.
- United States: Standard Contractual Clauses. RevenueCat is bound by the European Commission's Standard Contractual Clauses, through its data processing agreement with us.
- United States: Apple and Visual Crossing. Neither is certified under the Data Privacy Framework, and neither has signed Standard Contractual Clauses with us. So, for forecasts, we send them only what a forecast needs: the place you ask about, rounded to about 1 km, and, where the service needs them, the app's language and the country. They never receive your precise location, your IP address, your account or any other identifier with it. With nothing to link it to you, we consider that this information does not identify you to them. Sign in with Apple is the one exception, and only if you choose it: our server sends Apple the one-time code from your sign-in and, when you delete your account, the token it got for it (Section 1.7), so that Apple can end Naola's access to your Apple Account. Both are linked to your Apple Account, which Apple already holds, and we send nothing else with them. We send them only because you chose to sign in with Apple, and to end that access when you delete your account.
Brevo and o2switch are based in France, inside the EU. Cloudflare answers each request at the data centre nearest you, which may be outside the EEA, while our database stays in the EU (Section 5). To ask about these safeguards, or for a copy of them, email [email protected].
6. Children's Privacy
Naola is not directed to children. You must be at least 13 to use it, or the age of digital consent in your country if that is higher (14 in Spain), and we do not knowingly collect personal data from anyone younger. Using the app does not require signing up. If you believe a child below that age has given us personal data, contact us at [email protected] and we will delete it.
7. Your Rights
Under GDPR (Articles 15, 17, and 20) and similar regulations, you have the right to access, delete, and port your data. Naola provides these as self-service actions, so you don't need to email support or wait on a manual process, though email remains an option if you can't use the app.
Export your data (Art. 15 and 20)
In the mobile app: Settings → Account → Export my data. You'll get a JSON file containing every row we have linked to your account (profile, including the device label of each session, OAuth links, subscription entitlements, subscription event history, activation-code metadata, and the rate-limit counters keyed to your account, each with its name, day and count). Credentials, such as your password hash and the Sign in with Apple token, are left out. The export is in a structured, machine-readable format for portability to other services.
On the web: once Naola is activated in your browser, Settings → Account → Export my data in the web app at naola.net/app. If you can't use the app, email [email protected].
Delete your account (Art. 17)
In the mobile app: Settings → Account → Delete my account. A two-step confirmation removes every user-linked row from our database (profile, OAuth links, the Sign in with Apple token, activation codes, subscription entitlements, webhook event history).
On the web: naola.net/delete-account, with an activation code from the mobile app; the deletion is immediate and permanent. If you can't use the app, email [email protected] from the address on your account and we will erase it within 30 days.
If you signed in with Apple, deleting your account also asks Apple to remove Naola's access to your Apple Account. We do this after your data is erased, and it never delays or blocks the deletion. If Apple can't be reached after three attempts, or we hold no token for your account (for example because you last signed in with Apple before we started keeping one), Naola may stay listed in your Apple Account settings, where you can remove it yourself.
Two things outlast a deletion for a short time. Rate-limit counters keyed to your account are not erased; they expire on their own within 7 days (Section 1.2). And our database provider, Cloudflare, keeps a recovery history of the database (D1 Time Travel) so it can be restored after a failure: deleted data disappears from that history within 30 days.
Important: subscriptions are billed by Apple and Google, not by us. Deleting your Naola account does not cancel your App Store or Google Play subscription. Before deleting, go to Settings → [your name] → Subscriptions on iPhone, or Google Play → Payments & subscriptions → Subscriptions on Android, and cancel Naola Advanced, otherwise you will continue to be charged at renewal. We remove our entitlement record immediately so the app stops treating you as Advanced, but the billing relationship stays with the store until you cancel there.
Other rights
You also have the right to have inaccurate data corrected, to restrict how we use your data, and to object to a use based on our legitimate interest (Section 1.10). To use any of these rights, or for any other question about your data, email [email protected].
Complaints
You have the right to complain to a data protection authority. Ours is the Spanish Data Protection Agency (AEPD), because Naola is published from Spain. You can also complain to the authority where you live or work; the European Data Protection Board lists the authorities in the EU and the EEA. You don't need to contact us first, though we would be glad to try to solve the problem at [email protected].
8. Changes to This Policy
We may update this policy from time to time. When we do, we post the new version on this page with a new date. If a change is significant, for example a new kind of data or a new use of it, we will also announce it in the app.
9. Contact
For privacy-related questions or data requests, contact us at: [email protected]