Privacy Policy
This Privacy Policy explains what information the Bullet mobile app (published on the App Store and Google Play as Bullet Bet Predictions) handles, why, and what choices you have. It applies to the app for Android and iOS, to the servers the app talks to (section 2.1) and to our website bulletpredictions.com.
- There is no account and no registration. We never ask for your name, e‑mail address or phone number.
- Everything you customise (favourites, personal slip, filters, settings) is stored on your device: we keep no copy of it.
- The app downloads predictions and content from our servers; like any website, our servers see your IP address.
- The app also sends a random identifier for your installation, so we can keep request limits fair and count match votes once each. It is not your advertising ID, it is not linked to your name, and it changes if you reinstall the app or clear its data. It follows you to a new phone only if you copy the old phone onto it with the system's own transfer tool.
- We use Google Firebase for crash reports and anonymous usage statistics — you can switch both off in Settings — and Google AdMob, with several advertising networks, to show ads.
- Videos play inside the app through YouTube's embedded player: when you start one, your device connects to YouTube (Google).
- Personalised ads are shown only with your consent, which you can change at any time.
- Notifications are on by default for the daily slips and for the results of the matches we tipped. You can turn each one off in Settings.
- Our website uses no cookies and no analytics. Like any website, its server keeps technical access logs for a limited time.
- When you share a match, a slip, a team or a league, the text and the link go to the app you choose — we receive nothing and the link contains nothing that identifies you.
- The app is not directed to children, and we do not knowingly collect their personal data.
1. Who is responsible
The data controller is Bullet Bet Predictions, the publisher of the app. For any question or request about your data write to bulletscommesse@gmail.com.
2. What we process and why
2.1 Requests to our servers
To show fixtures, predictions, standings, news and other content, the app sends requests to our servers. Each request carries the technical data any internet connection carries: your IP address, the date and time, the resource requested, the app version and platform, and the response status. The app sends no account and no advertising identifier to our servers.
It does send one thing more, and we want to be precise about it: an installation identifier. It is a random value that the app generates on your device the first time you open it, stores among its own settings and sends in a request header. It is not your Google Advertising ID or Apple IDFA, it is not derived from your hardware, and it does not travel outside our servers. It changes whenever you reinstall the app or use Settings → Clear local data.
There is one case in which it does not change by itself. When you set up a new phone by copying the old one — Android's device‑to‑device transfer, or an iPhone restored from a backup or set up with Quick Start — the system copies the app's settings, and the identifier travels with your favourites and preferences. We do not block that copy, because it is what keeps your favourites and settings on the new phone. If you want a fresh identifier there, Settings → Clear local data gives you one. On Android we have switched off the app's cloud backup, so the identifier is never stored in your Google account.
- Why we need it: two things only. It keeps request limits fair, so that one automated client cannot take the service away from everybody else; and it lets a match vote count once per market, which is the only way a poll without accounts can mean anything.
- What we keep: for the limits, counters in memory, per minute and per day, that disappear when the process restarts. For votes, a salted hash of the identifier stored with the vote — see 2.9. It is not written to our access logs, which record the IP address, the path, the status and the duration.
- Purpose: delivering the content you asked for, keeping the service secure and available (rate limiting, abuse prevention), and troubleshooting errors.
- Legal basis: our legitimate interest in running a secure service (GDPR art. 6(1)(f)).
- Retention: rate‑limiting counters live in memory only. Technical server logs are kept for a limited period, no longer than needed for security and troubleshooting, and are not used to build profiles.
2.2 Data that stays on your device
Your language, theme and odds format, your favourite teams and leagues, your personal betting slip, your Radar filters and a cache of downloaded content are stored only on your device: we keep no copy and no list of them. You can remove them at any time by clearing the app's data or uninstalling the app.
Using them still means asking our servers for content, like any other request described in 2.1. When you run a Radar search or the Machine, the app sends the conditions of that search so the server can answer it; when you open — or follow — a team, a league or a match, the app downloads its pages. Those requests appear in our technical logs for the limited period described in 2.1, next to your IP address and never next to the installation identifier, and we do not use them to build a profile of you.
2.3 Crash reports — Firebase Crashlytics (Google)
If the app crashes, a crash report is sent to Google Firebase Crashlytics so we can find and fix the bug. A report contains the device model, operating system version, app version, the stack trace of the error, the time of the crash, memory and storage state, and a Crashlytics installation identifier that is not linked to you. Crash reporting is active only in the versions distributed through the stores, and you can switch it off at any time in Settings → Data & privacy → Crash reports.
- Purpose: app stability. Legal basis: legitimate interest (art. 6(1)(f)).
- Retention: Firebase keeps crash data for 90 days.
2.4 Usage statistics — Firebase Analytics (Google)
The app uses Google Analytics for Firebase to understand, in aggregate, which screens and features are used. It collects a random app instance identifier, the screens viewed, session start and duration, app opens and updates, device model, operating system, language and an approximate location at country/region level derived from the IP address. We do not record custom events and we do not send any personal information. You can switch it off at any time in Settings → Data & privacy → Usage statistics; Clear local data, in the same section, also resets the statistics already collected for your installation.
About the advertising signals inside Analytics (ad storage, ad user data, ad personalisation): in the European Economic Area, the United Kingdom and Switzerland they stay off unless you consent through the form described in 2.6. Elsewhere, where that form is not required, they are enabled. Even then, on Android the app keeps the collection of the Google Advertising ID by Analytics switched off, and on iOS the advertising identifier can be used only if you allow tracking when the system asks you.
- Purpose: product improvement based on aggregated statistics.
- Legal basis: legitimate interest (art. 6(1)(f)); where local law requires it, your consent given through the privacy form shown at first launch.
- Retention: identifier‑level data is retained by Firebase for 2 months; aggregated reports are kept longer.
2.5 In‑app messages — Firebase In‑App Messaging (Google)
To show occasional messages inside the app (for example, a new feature announcement), Firebase In‑App Messaging uses the same installation identifier and Analytics events described above. It does not collect additional data.
2.6 Advertising — Google AdMob and its partners
Bullet is free and supported by advertising served by Google AdMob, which works with other advertising networks through mediation. The authorised sellers are listed in our app-ads.txt. To serve and measure ads, Google and these networks may process: the advertising identifier of your device (Google Advertising ID or Apple IDFA, only where you allow it), your IP address and the approximate location derived from it, device and operating system information, the app identifier, and how you interact with ads.
Some of these networks have their own software inside the app and talk to their own servers directly from your device, each as an independent controller of the data it receives. They are:
- Meta Audience Network — privacy policy
- AppLovin — privacy policy
- Unity Ads — privacy policy
- Pangle (ByteDance, established outside the European Union) — privacy policy
- Liftoff Monetize — privacy policy
Other networks take part in the auction without software in the app: they receive the bid request from Google's servers — IP address, approximate location, device information, and the advertising identifier only where you allowed it — and answer with an ad. They are Equativ (privacy policy), Chocolate Platform (privacy policy), OpenX (privacy policy) and Smaato (privacy policy). Google may also share bid requests with the ad technology providers it works with, listed at support.google.com/admob/answer/9012903; in the European Economic Area, the United Kingdom and Switzerland only those you accepted in the consent form.
Your consent choices below apply to all of them: where the consent form is shown, a network receives personalised‑advertising data only if you agreed to it.
- Your consent. If you are in the European Economic Area, the United Kingdom or Switzerland, at first launch the app shows a consent form provided by Google (User Messaging Platform, compatible with the IAB Transparency & Consent Framework). Personalised ads and the storage of advertising identifiers on your device happen only if you consent; otherwise you see non‑personalised ads. You can review or withdraw your choices at any time from Settings → Privacy options in the app.
- iOS. The app asks for permission through App Tracking Transparency before using the IDFA. If you deny it, ads are not personalised. You can change this in iOS Settings → Privacy & Security → Tracking.
- Android. You can reset or delete your advertising ID and opt out of ad personalisation in Settings → Google → Ads.
- Legal basis: consent (art. 6(1)(a)) for personalised ads and for storing or reading identifiers on your device; legitimate interest (art. 6(1)(f)) for non‑personalised ads, frequency capping, fraud prevention and basic measurement.
- How Google uses data from apps that use its services: policies.google.com/technologies/partner-sites.
2.7 Notifications
The app sends four kinds of notifications, all on by default: the daily slips when they are published, the final result of the matches played by the teams you starred, a reminder, created on your device, before the matches of your starred teams and before the matches you starred, and a notice, also created on your device, when all the matches of your personal slip are over. Reminders and results only concern what you starred: with no stars, they send nothing. All of them can be switched on and off individually in Settings → Notifications, and you can of course deny the system permission altogether.
- How they reach you: through Firebase Cloud Messaging (Google). We send each message to a topic — a channel identified by language and time zone, or by a team — that your app subscribes to. We do not store your device token on our servers and we cannot address a message to you individually.
- Reminders for your favourite matches are scheduled and shown by your own device. To know when those matches are played, the app downloads the pages of the teams you follow like any other content (section 2.2); the list itself stays on your device and we keep no copy of it.
- On iOS, the first launch asks the system for provisional authorisation: the first notifications arrive quietly in the notification centre, without a pop‑up, and iOS then lets you keep or stop them with one tap.
- Legal basis: legitimate interest in telling you that the content you installed the app for is ready (art. 6(1)(f)), with an opt‑out always one tap away; consent where local law requires it.
2.8 Votes on matches
On a match page you can vote for what you think will happen (1X2, both teams to score, over/under 2.5). We store your pick, the match, the time and a salted hash of the installation identifier described in 2.1 — a one‑way value we use only to make sure one installation votes once per market, and which we cannot turn back into the identifier. Once the match has started, our nightly maintenance erases that hash and the vote becomes an anonymous tally. Percentages are shown only after you vote and only once enough people have voted.
- Legal basis: legitimate interest in a poll that is not trivially stuffed (art. 6(1)(f)).
- Retention: the hash until the match kicks off; the anonymous vote afterwards.
2.9 App integrity check
To stop automated clients from impersonating the app, requests may carry an attestation issued by Google Play Integrity (Android) or Apple App Attest (iOS) through Firebase App Check. The attestation tells our servers that the request comes from a genuine, unmodified copy of Bullet on a genuine device. It contains no identifier of you or of your device that we can read, and we store nothing from it beyond counting how many requests passed or failed.
- Legal basis: legitimate interest in protecting the service from abuse (art. 6(1)(f)).
2.10 Videos and links to other services
Videos. Video highlights are played inside the app with the YouTube embedded
player, a service of Google, in its privacy‑enhanced mode (youtube-nocookie.com).
The player is loaded only when you open a video. When you do, your device connects directly to YouTube, which
receives your IP address and information about your device and about the video you watch, and may store
data on your device, as an independent controller under the
Google Privacy Policy. By playing a video you also
agree to the YouTube Terms of Service. When a video cannot
be played inside the app it opens in the YouTube app or website instead. We receive nothing from YouTube
about what you watch.
Pictures of news and videos. The pictures that illustrate news items and the preview images of videos are downloaded by your device directly from the servers of the news source or of YouTube (Google). Those servers therefore see your IP address, as they would if you visited a web page showing the same picture; the app sends them no identifier of ours.
Links. The app also contains links that open other apps or websites: our Telegram channel, Instagram, YouTube, the App Store and Google Play, news sources and our website. Those services have their own privacy policies and we have no control over them.
2.11 Our website
Our website (bulletpredictions.com, also reachable as www.bulletpredictions.com)
presents the app, hosts this policy and the terms, and provides the pages that a shared link opens
when the app is not installed. It is made of static pages: it sets no cookies, runs
no analytics and loads nothing from third parties — fonts and images are served by us.
- Access logs. Like any website, the server records each request: your IP address, the date and time, the page requested, the browser's identification string (user agent), the preferred language your browser declares and, where present, the page you came from. We use these logs only to keep the site secure and working and to see, in aggregate, which languages visitors use. They are kept for a limited period and are not used to build profiles.
- The "Get the app" link.
bulletpredictions.com/getreads the user agent of your browser to send you to the App Store or to Google Play, and shows a page with both links when it cannot tell. Nothing is stored beyond the access log above. - Smart App Banner. On iPhone and iPad, Safari may show a banner offering to open the page in Bullet or to get it from the App Store. That banner is a feature of Safari and of the App Store, operated by Apple under its own privacy policy; our site only declares the app's identifier.
- Legal basis: our legitimate interest in running a secure, working website (art. 6(1)(f)). Hosting: see section 3.
2.12 Sharing, and links that open the app
From a match, a slip of the day, a team or a league you can tap Share. The app composes a
short text and a link to our website — for example bulletpredictions.com/match/123 — and hands
them to the system share sheet; from there you choose the app or the person to send them to. That
recipient app receives the text and the link under its own privacy policy. We are not part of this
exchange: we do not learn what you shared or with whom, and the link contains only the identifier
of the content, nothing about you or your device. "Recommend Bullet" works the same way with the link to
our download page.
Links to bulletpredictions.com can open Bullet directly on a phone where it is installed.
This is a feature of Android and iOS: to confirm that the app and the website belong together, Google and
Apple download two small association files from our website — Apple through its own content delivery
network — and your device then opens the link in the app without contacting us. The app then requests the
content as described in 2.1. Whoever opens a shared link without the app sees a page of our
website, subject to 2.11.
3. Who receives the data
The servers of the app and of the website are hosted by OVH SAS (OVHcloud, France), a provider established in the European Union, which processes the technical data of the requests it receives — IP addresses and access logs — on our behalf and on our instructions, as a data processor. The services described in sections 2.3 to 2.6, and the video player of 2.10, are provided by Google (Google Ireland Limited for users in the EEA, United Kingdom and Switzerland; Google LLC elsewhere), which processes data on servers that may be located in the United States. Transfers to the United States rely on the EU‑US Data Privacy Framework and on the European Commission's Standard Contractual Clauses. Google's privacy policy is at policies.google.com/privacy.
The advertising networks listed in 2.6 receive data each as an independent controller, under its own privacy policy and with its own international transfer safeguards: Meta Audience Network, AppLovin, Unity Ads, Pangle (ByteDance) and Liftoff Monetize directly from your device, through their software in the app; Equativ, Chocolate Platform, OpenX and Smaato through the bid requests Google sends them. Pangle's provider is established outside the European Union.
We do not sell personal data and we do not share it with anyone else, except where the law requires us to.
4. Retention at a glance
| Data | Where | How long |
|---|---|---|
| Preferences, favourites, personal slip, filters, cache | Your device only | Until you clear the app's data or uninstall |
| IP address and technical request data (app) | Our servers | Rate‑limit counters: minutes. Technical logs: limited period, then deleted |
| Website access logs (IP, page, user agent, language) | Our website's server | Limited period, then deleted; never used for profiles |
| What you share and with whom | Nowhere on our side | We never receive it |
| Crash reports | Google (Firebase Crashlytics) | 90 days |
| Usage statistics | Google (Firebase Analytics) | 2 months at identifier level; aggregated afterwards |
| Installation identifier (request limits) | Our servers, in memory | Minutes to one day; gone when the service restarts |
| Match votes | Our servers | Salted hash until kick‑off, then an anonymous tally |
| Notification subscriptions | Google (Firebase Cloud Messaging) | Channels only; we hold no device token |
| Advertising data | Google AdMob and the networks in 2.6 | According to Google's and each network's policy |
| Videos you play | YouTube (Google) | According to Google's policy; we receive nothing |
5. Your rights
Under the GDPR you can ask to access, correct or delete your data, to restrict or object to its processing, to receive it in a portable format, and to withdraw a consent you gave (this does not affect processing carried out before withdrawal). Write to bulletscommesse@gmail.com: we answer within one month.
Please note how little there is to act on: our servers hold no account, no e‑mail address and no name. The only value that could link requests to your installation is the random identifier of 2.1, and we keep it in memory for the limits and as a salted hash for your votes until the match starts. If you want it gone right away, Settings → Clear local data replaces it with a new one, and reinstalling the app does the same. To exercise your rights over the data held by Google or by the advertising networks, please use the contacts in their own policies, linked above.
You also have the right to lodge a complaint with a supervisory authority, in Italy the Garante per la protezione dei dati personali, or with the authority of the country where you live.
6. Children
Bullet is not directed to children. We do not knowingly collect personal data from anyone below the age at which their country allows them to consent to online services on their own (between 13 and 16 in the European Union, depending on the member state). If you believe a child has used the app, contact us and we will help remove any related data.
7. Security
All traffic between the app and our servers, and to our website, is encrypted with TLS (HTTPS). Since the app has no accounts, there are no passwords or profiles to protect on our side.
8. Users outside the European Union
Whatever your country, we apply the same practices described here. We do not sell or share personal information for cross‑context behavioural advertising other than through the advertising choices described in section 2.6, which you control.
9. Changes to this policy
We may update this policy when the app or the website change. The date at the top tells you the version in force; significant changes are announced inside the app. The current version is always available at bulletpredictions.com/privacy.
10. Contact
Bullet Bet Predictions — bulletscommesse@gmail.com