Privacy Policy
Widget Vocabulary (“the app”) is an English vocabulary app for iPhone and iPad, operated by Umut Söbe, Izmir, Turkey (“we”, “us”). Umut Söbe is the data controller for the personal data described here, under the EU and UK GDPR and Turkey’s Personal Data Protection Law (KVKK, Law No. 6698). This policy explains what the app and its server collect, why, and the choices you have.
Contents
The short version
- You can use the app without signing up. It creates an anonymous account that is identified by random IDs, not by your name, email or phone number.
- Signing in with Apple is optional. If you do, we receive an Apple account identifier and an email address: your own, or a private relay address from Apple if you choose “Hide My Email”.
- The app shows no ads and doesn’t use the advertising identifier. We don’t track you as Apple defines it, and we don’t sell your data or share it with data brokers.
- We use analytics to improve the app and, outside the EEA, the UK and Switzerland, to measure our own ads. Apple’s SKAdNetwork may report that an install came from one of our ads, without identifying you.
- You can delete your account and server data at any time inside the app.
What we collect and why
1. Anonymous device identifiers
When the app first starts, it creates a random installation ID and registers it with our server, which creates an anonymous account (a random user ID) and a device record. With it we store basic technical details: app version and build, iOS or iPadOS version, device model, language/region setting and time zone. The app updates these details when it renews its sign-in.
The installation ID and the app’s sign-in token are kept in your device’s keychain. iOS keeps keychain items when you delete the app, so reinstalling the app on the same device reconnects to the same account.
Why: to run the service, keep your data in sync, and diagnose problems.
2. Your learning data (sync)
The app syncs your learning progress to our server, whether or not you sign in. This includes:
- words you saved or marked as known, and when;
- when you first and last saw a word, and how often;
- your practice history: which word, your answer rating, time, exercise type and duration;
- collections you create;
- words you add yourself: the word and any translation, definition, example or note you type;
- app settings, such as your native language, level, learning goals and notification time.
When you delete one of these items, we keep a deletion marker without its content, so your other devices remove it too.
Why: to back up your progress and keep it the same on all your devices. We don’t use this data for advertising.
3. Sign in with Apple (optional)
If you sign in with Apple, we receive from Apple a stable identifier that is unique to our app and an email address. Apple asks you which address to share: your own, or a private relay address that forwards to you if you choose “Hide My Email”. The app shows this address in Settings › Account.
We do not ask Apple for your name and do not store it. We also keep an encrypted token from Apple that we use only to revoke the connection when you delete your account.
If you sign in on a device where you were using the app anonymously, that anonymous account is merged into your Apple account.
Why: so you can restore your words on a new device and use the same account on several devices.
4. Purchases
Subscriptions are sold and charged by Apple through the App Store. We never see your payment card.
We use RevenueCat to manage subscriptions. RevenueCat receives:
- App Store purchase information, together with our random user ID;
- technical details from the app: your App Store country, preferred languages, device model, app and iOS version, and the identifier for vendor (IDFV), an ID that Apple gives each app maker for your device;
- if analytics is enabled, the analytics app-instance ID (section 5), so that subscription events appear in our analytics;
- whether you installed the app from an Apple Search Ads ad and, if so, which campaign. RevenueCat asks Apple for this through Apple’s AdServices framework, which doesn’t use the advertising identifier.
From RevenueCat we receive your subscription status: product, period, renewal and expiry dates, whether you are in a free trial, and whether the purchase was a test purchase. We also receive the subscription events behind it, such as a purchase, renewal or cancellation, and we keep a log of these events. Each event includes the product, price and currency, the App Store country and the store’s transaction identifiers, together with our random user ID, the other IDs RevenueCat knows for your account, and the details RevenueCat holds about you (the analytics app-instance ID and any Apple Search Ads attribution). When you delete your account, we remove these IDs and details from the log (see How long we keep data).
Why: to unlock Premium features on all your devices, and to understand how subscriptions and our Apple Search Ads campaigns perform.
5. Analytics
The app uses Google Firebase Analytics to understand how the app is used. It sends events such as the first time the app is opened, opening, saving or pronouncing a word, practice results, widget use, settings changes, paywall views, trial starts and purchases (product, price and transaction ID). With them it sends:
- a random app-instance ID;
- basic device and app information, such as model, iOS version, app version and language;
- a few profile values: native language, learning mode, level, learning goals, Premium or trial status, whether you use widgets, whether you signed in, and notification permission.
Google derives an approximate location (city or country) from your IP address. We never send what you type: for searches we record only the length of the query.
We don’t give Google your user ID or email. The analytics app-instance ID is shared with RevenueCat, as described in section 4. Analytics is configured to collect neither the advertising identifier (IDFA) nor the identifier for vendor (IDFV), and the app doesn’t ask for App Tracking Transparency permission. Google keeps event-level analytics data for 2 months (the Google Analytics retention setting); aggregated reports are kept longer.
EEA, UK and Switzerland. If your device’s region is in the European Economic Area, the United Kingdom or Switzerland, the app tells Google that advertising consent is not granted (ad_storage, ad_user_data and ad_personalization are set to denied), so Google doesn’t use your data for ad measurement or ad personalization. Analytics itself runs on our legitimate interest in improving the app (see Legal bases); you can object at any time by email.
Why: to find problems, improve the app, and measure our own ads (section 6).
6. Measuring our own ads
We may advertise the app with Google Ads app campaigns, which show our ads in other apps and on Google’s services. To see whether these ads work:
- Google Ads conversions. Our Firebase project is linked to our Google Ads account, and three of the analytics events in section 5 are imported into Google Ads as conversions: the first time you open the app (
first_open), the start of a free trial (start_trial) and a purchase (purchase). Google Ads uses them to report how many installs, trials and purchases our campaigns led to. We see the results as campaign reports, not as information about you. - Apple’s SKAdNetwork. Through Firebase, the app registers its install with SKAdNetwork, Apple’s privacy-preserving ad attribution, and may later update a limited conversion value that summarizes early activity in the app (for example, whether a purchase was made). If you installed the app after an ad, Apple may report to the ad network that the ad led to an install. Apple sends this report with a delay and without identifying you or your device.
For devices whose region is in the EEA, the UK or Switzerland, the app tells Google that advertising consent is not granted (section 5), so Google doesn’t use their data for this measurement.
We don’t use the advertising identifier (IDFA) and don’t ask for App Tracking Transparency permission. We don’t create remarketing lists or other advertising audiences from app users, and Google signals and ads personalization are turned off for our analytics. We don’t send Google your user ID, email address or other contact details.
If you installed the app from an Apple Search Ads ad, RevenueCat receives the campaign attribution described in section 4.
Why: to know which of our ads bring people who use the app, and to spend less on the ones that don’t.
7. Server logs
Our API records one line per request: time, endpoint (without query parameters), result, duration and your random user ID. It never records request contents, sign-in tokens or IP addresses. These logs rotate by size: the most recent 50 MB are kept.
The web server in front of the API and Cloudflare (see Service providers) process your IP address. The web server’s access logs are kept for 14 days.
To prevent abuse, our API also holds IP addresses in memory for up to one hour to apply rate limits. They are never written to disk.
8. These web pages
This privacy policy, our terms and our support page are static pages hosted on GitHub Pages. They use no cookies, scripts or analytics. GitHub logs visitors’ IP addresses for security purposes; GitHub’s own privacy statement applies to that.
What we don’t do
- We don’t track you as Apple defines tracking. We don’t share data from the app with data brokers, and we don’t use it to target ads at you. Our ad measurement is limited to what section 6 describes: it doesn’t use the advertising identifier, never gives Google your user ID or contact details, reaches us only as campaign totals, and Google doesn’t use data from devices in the EEA, the UK and Switzerland for it.
- The app shows no ads, doesn’t use the advertising identifier and doesn’t ask for tracking permission.
- We don’t sell or share your personal information, including as California’s CCPA/CPRA defines “sell” and “share”.
What stays on your device
- Your word database and the files that the widgets read.
- Reminders (the daily word, practice and the end of a free trial): they are scheduled on your device. We don’t use push notifications.
- Pronunciation: it uses the speech voices built into iOS.
- Share cards: they are created on your device and shared only where you choose.
Service providers
We use these providers to run the app. They process data on our behalf and only for the purposes above.
| Provider | Purpose |
|---|---|
| Hetzner Online GmbH (Germany) | Servers and database |
| Google LLC (Google Drive) | Encrypted-in-transit daily database backups |
| Cloudflare, Inc. | Network security and delivery: all traffic to our server passes through Cloudflare, which processes IP addresses and request data in transit |
| RevenueCat, Inc. | Subscription management and Apple Search Ads attribution |
| Google LLC (Firebase Analytics, Google Ads) | Usage analytics and measuring our own ads |
| Apple Inc. | App Store purchases, Sign in with Apple, Apple Search Ads attribution and SKAdNetwork ad attribution |
Legal bases
We rely on these legal bases under the GDPR, and on the matching grounds under KVKK:
- Contract: to provide the service, your account, sync, purchases and support.
- Legitimate interests: security and abuse prevention, analytics to improve the app, and measuring our own ads outside the EEA, the UK and Switzerland.
- Legal obligation: tax and accounting records.
You can object to processing based on our legitimate interests at any time by emailing hello@lingosive.com.
How long we keep data
We keep your account data until you delete your account in the app or ask us by email to delete it.
When you delete your account, we immediately delete from our database:
- your synced data, including deletion markers;
- your device records and sign-in tokens;
- your Apple identity and email;
- your subscription status;
- the link to any anonymous account that was merged into your account.
We ask RevenueCat to delete your customer record (and those of anonymous accounts merged into yours) and ask Apple to revoke the Sign in with Apple connection. If either step fails, we retry automatically for up to about four weeks.
After the deletion we keep only:
- Subscription records, for accounting. For each subscription event of the account (such as a purchase, renewal, cancellation or refund), we keep only:
- the event type and its dates (event, purchase, expiry, grace period, resumption, and when we received it);
- the product, plan, offer and trial details, and the number of renewals;
- the store, whether it was a test purchase or shared through Family Sharing, and the reason for a cancellation or expiry;
- the price, currency, tax and commission percentages, and the App Store country;
- the store’s transaction identifiers, and RevenueCat’s IDs for the event and for our app.
- A deletion record without personal details: a keyed one-way hash of your user ID, whether the account used Sign in with Apple or had an active subscription, the result of the steps above and, if you gave one, your reason for deleting. With it we keep keyed one-way hashes of the other IDs your account used with RevenueCat; we use them only to recognize late events about your former account. We keep the deletion record for the same period as the subscription records.
- Records of failed steps. If revoking Sign in with Apple or deleting your RevenueCat record fails at first, we keep an encrypted record of that step (it holds the Apple token or the RevenueCat ID) while we retry, and delete it automatically 30 days after the step succeeds or we stop retrying.
Other accounts’ subscription records don’t keep your former IDs either. For example, if a subscription moved between your account and another one, we remove your former ID from the other account’s records.
Deleting your account doesn’t delete the analytics data that Google holds; Google deletes it after the retention period in section 5.
Daily database backups are stored in Google Drive and only the 10 most recent are kept; older ones are removed automatically, so deleted data can remain in a backup for up to about 10 days.
Deleting your account
If you signed in with Apple: go to Settings › Account › Delete Account and confirm with Apple. This permanently deletes your account and your synced words, collections and progress from our servers.
- To remove the data from your device too, turn on Also erase data on this iPhone.
- If you leave it off, your words stay only on this device. The app continues with a new, empty anonymous account and doesn’t back your words up to it until you tap Back Up My Words in Settings › Account or sign in with Apple.
If you haven’t signed in: go to Settings › Account › Erase All Data. This deletes your anonymous account from our servers and all app data on this device.
Deleting your account does not cancel an App Store subscription; manage or cancel it in Settings › Apple Account › Subscriptions.
Your rights
Depending on where you live, you may have the right to access, correct, export or delete your personal data, to object to or restrict certain processing (including processing based on our legitimate interests), and to withdraw consent where we rely on it. You can delete your data in the app at any time, or write to us at hello@lingosive.com.
Because the app doesn’t require your name or email, we may ask for details that let us find your account: the email shown in Settings › Account if you signed in with Apple, or the account ID shown there, which you can copy.
You also have the right to complain to your local data protection authority.
International transfers
We are based in Turkey. Our server is operated by Hetzner Online GmbH in Germany, in the European Economic Area. Service providers outside Turkey and the EEA (Google, RevenueCat, Apple, Cloudflare and GitHub) process data under their standard contractual clauses or the EU–US Data Privacy Framework, where applicable. Under KVKK, transfers of personal data abroad rely on such safeguards.
Security
All traffic between the app and our servers is encrypted (HTTPS). Sensitive tokens are encrypted at rest, sign-in tokens are stored only as one-way hashes, and access to our systems is restricted.
Children
The app is not directed to children under 13 (under 16 in the EEA and the UK), and we don’t knowingly collect their personal data. If you are a parent and think your child has given us personal data, contact us at hello@lingosive.com and we will delete it.
Changes to this policy
If we change this policy, we will update the date at the top and, for significant changes, tell you in the app.
Contact
Umut Söbe (data controller)
Izmir, Turkey
Email: hello@lingosive.com
If your question is about your data, include the account ID from Settings › Account.