Scope and controller
OneBeat is the name used for the music-recognition game, its mobile app and this website. In this notice, OneBeat is the service and controller for the personal data whose purposes and means OneBeat determines. This notice covers the mobile app, the OneBeat website and requests made about either service.
OneBeat does not use this page to guess a separate company or person as the controller. The route-based support instructions below are the current way to find privacy and deletion guidance. If a law requires additional controller, representative or Data Protection Officer details for a particular request, OneBeat will provide the applicable information through that process.
OneBeat uses account and gameplay data to run the game, Spotify data to connect playback when you request it, and purchase data to credit consumable gems after a trusted store/RevenueCat event. Ads are handled only within the consent and provider configuration that applies to your device and location.
What we collect, why, and the relevant basis
Some information is supplied by you, some is created when you play, and some comes from a connected provider. The exact legal basis can depend on your location, the feature you use, and the configuration at the time of processing.
| Category | Examples in OneBeat | Why it is used | Relevant basis where applicable |
|---|---|---|---|
| Account and identity | Clerk user identifier; optional display name and email address | Sign-in, account linking, authenticated Convex access, account support and abuse prevention | Necessary to provide the account service; legitimate interests for security and support; legal obligation where required |
| Gameplay and progression | Runs, rounds, guesses, scores, XP, streaks, playlists, missions, seasons, unlocks, rewards and leaderboard values | Run integrity, progression, rewards, rankings, restore/resume and fair-play controls | Necessary to provide the game; legitimate interests in integrity, security and abuse prevention |
| Spotify connection | Spotify account ID, display name, image URL, granted scopes, token expiry data and OAuth access/refresh tokens | Connect a player-requested Spotify account and play eligible clips | Necessary for a player-requested connection; consent where a local law requires it |
| Advertising and consent | UMP consent state, device or advertising identifiers, ad requests, diagnostics, ad interactions, signed SSV transaction IDs and reward metadata | Remember ad choices, request permitted ads, verify rewarded outcomes, prevent replay/fraud and apply rewards | Consent where required for personalized advertising; necessary operation or legitimate interests for delivery, security and fraud prevention where permitted |
| In-app purchases and virtual currency | Clerk app user ID and RevenueCat app user ID; offering/package, product, store, environment, purchase and transaction metadata where provided by the providers; RevenueCat event ID, virtual-currency transaction ID, currency/amount, event type, status, timestamps and reconciliation metadata | Show the native `gems` offering, associate a purchase with the signed-in account, credit or reconcile consumable gems, prevent duplicate grants, investigate failed delivery and handle refunds or revocations | Necessary to provide a player-requested purchase; legitimate interests in fraud prevention, accounting, support and dispute handling; legal obligation where required |
| Support and rights requests | Information you choose to provide about a problem, account or privacy request | Answer the request, verify it, keep the service safe and demonstrate how a rights request was handled | Legal obligation for rights handling where applicable; legitimate interests in support, security and dispute handling |
| Device-only session state | Clerk session and Spotify App Remote session in iOS SecureStore/Keychain | Keep you signed in and reuse Spotify playback authorization without opening Spotify for every clip | Necessary to provide the requested feature |
A Clerk sign-in identifier is required for account-backed gameplay and authenticated Convex features; those features are unavailable without sign-in. Display name and email are optional profile details. You choose whether to connect Spotify, but Spotify-powered playback is unavailable without a valid connection. Rewarded ads are optional. Native gem purchases require a signed-in Clerk account and a supported iOS or Android store environment; the web build does not open store purchases. Information supplied for support or rights guidance is voluntary.
The static website currently has no configured external analytics provider or request form in this repository. Hosting infrastructure may create technical request logs under its own terms; OneBeat does not use the website to collect more information than is needed for the route to load.
OneBeat contains a provider-neutral analytics contract, but no external analytics adapter is active in the repository. Native builds use RevenueCat to load the `gems` offering and coordinate Apple App Store or Google Play consumable purchases. The client purchase result is not a gem grant: Convex credits the account only after the trusted RevenueCat virtual-currency webhook is accepted and its event and virtual-transaction replay keys are checked. Apple/Google handle payment instruments and store receipts under their own policies; OneBeat stores provider event metadata, not card details. See Apple's consumable IAP overview and App Review IAP rules.
Sources of personal data
We receive information directly from you when you create or use an account, connect Spotify, play, change ad choices, or describe a problem or buy a gem pack. OneBeat also generates gameplay, security, reward, purchase and virtual-currency records from those actions. Clerk supplies authentication identity data; Spotify supplies connected-account metadata; RevenueCat supplies purchase and virtual-currency event metadata; Apple App Store and Google Play process store transactions; and Google Mobile Ads / UMP may supply or process advertising, consent and diagnostic signals.
Where data is stored and who receives it
OneBeat uses the following services and device storage boundaries. A provider may process information under its own terms and in locations outside the European Economic Area.
| Provider or system | Role | Current repository finding | Important boundary |
|---|---|---|---|
| Clerk | Authentication and account identity | Clerk-hosted infrastructure. This repository does not establish the active Clerk hosting region; verify it in the current Clerk account and agreement materials. | Clerk is a separate provider. Its current DPA and transfer materials describe the safeguards that apply to the active service configuration. |
| Convex | Application database, Gem balance/ledger and trusted purchase/webhook boundary | EU West (Ireland) is identified in the current OneBeat development/TestFlight runbook. The active production deployment may use a different region and must be checked when the app is operated in production. | Convex stores the game profile and currency ledger plus normalized RevenueCat virtual-currency event metadata. Event IDs and virtual-currency transaction IDs are replay keys; the current webhook handler does not persist the full request body. The development/TestFlight runbook is not a guarantee of the production region. |
| Spotify | Connected music provider and playback service | Spotify account metadata and OAuth access/refresh tokens are stored in the OneBeat Convex backend. The native Spotify App Remote session is kept locally in the device Keychain/SecureStore. | Spotify controls its own service and privacy practices. OneBeat does not receive a Spotify password. |
| Google Mobile Ads / UMP | Consent management and advertising | Google Mobile Ads/UMP may process consent signals, device or advertising identifiers, ad requests, diagnostics, and ad interactions. OneBeat stores signed SSV transaction records and reward metadata in Convex. | Whether personalized-ad signals are shared or used depends on applicable law, UMP consent, and the ad configuration in the running build. |
| RevenueCat | Purchase catalog/orchestration service and virtual-currency event provider | Native OneBeat builds send the authenticated Clerk user ID to RevenueCat as its app user ID and use RevenueCat for the `gems` offering. RevenueCat may process product, package, purchase, store transaction, virtual-currency event, environment, status and timestamp metadata under its current service configuration. OneBeat does not send payment-card details to RevenueCat. | RevenueCat is a separate provider. Its DPA and privacy policy describe its processing and transfer safeguards. OneBeat uses public platform SDK keys; secret RevenueCat credentials stay server-side. |
| Apple App Store / Google Play | Storefront, payment and store-transaction providers | Apple App Store/StoreKit and Google Play process the payment, receipt and store transaction. RevenueCat may pass limited purchase metadata to OneBeat; the current webhook persists normalized event and virtual-currency fields, not the payment instrument or full request body. Sandbox/TestFlight and production are separate store environments. | The stores control checkout, receipts, refunds and store accounts. RevenueCat may pass limited product/store metadata to OneBeat; the current webhook persists only normalized app-user, event and virtual-currency fields. TestFlight/sandbox and production are separate environments; store policies and retention apply independently. |
| Device Keychain / SecureStore | Local session storage | Encrypted OS-managed local storage; not a OneBeat-hosted database | The device platform, OS expiration behavior, and device security control local retention. |
Provider information: Clerk privacy, Clerk DPA, Convex privacy, Spotify privacy, RevenueCat privacy, RevenueCat DPA, Google privacy, Apple privacy.
International transfers
This repository does not establish the active Clerk hosting region or transfer configuration. The current Convex development/TestFlight runbook identifies EU West (Ireland), but that is not a promise about a production deployment. Spotify, Google, RevenueCat, Apple and Google Play may also process data internationally. The safeguards for a transfer depend on the provider agreement, destination, applicable adequacy decision or contractual mechanism in force when the transfer occurs.
For provider terms and current transfer information, see Clerk's DPA, Convex's privacy policy, Spotify's privacy policy, RevenueCat's DPA and Google's privacy policy. RevenueCat's DPA describes its processor role and transfer safeguards; the active agreement and deployment determine which mechanism applies. Apple and Google Play publish their own privacy and store terms for store-account and transaction processing. The GDPR text and European Commission overview explain the information rights that apply to international processing: GDPR and European Commission data-protection information.
Retention
OneBeat uses purpose-based retention. Data is kept for as long as the account or feature needs it, then deleted or anonymized unless a limited record is still needed for a legal obligation, security, fraud prevention, accounting, or a dispute. Provider and backup retention can also apply under the relevant provider terms.
| Record | Retention criterion |
|---|---|
| Account and core gameplay | For the account lifetime and a limited necessary period afterward for legal, security or dispute purposes; then delete or anonymize. |
| Spotify connection and tokens | Until you disconnect Spotify, delete the OneBeat account, the token is invalidated or expires, or the connection is no longer needed; OneBeat then removes its connection/token records. |
| Ad SSV transaction and reward records | For replay detection, fraud and security controls, reward accounting, legal necessity or dispute handling; remove or anonymize when those purposes end. |
| RevenueCat purchase and virtual-currency events | For event/virtual-transaction replay prevention, gem-credit reconciliation, refund or revocation handling, fraud/security, accounting, legal necessity or dispute handling. Remove or anonymize identifiers and normalized metadata when those purposes end, subject to provider retention and any still-needed store transaction reference. |
| Device sessions | Until logout, Spotify disconnect, app removal, or the OS/session expiry behavior ends the local record. |
| Support and rights records | Only as needed to answer the request, protect the service, document the decision, or meet a legal obligation. |
| Consent and advertising signals | As needed to honor choices, demonstrate consent where required, protect against abuse, and meet legal or provider requirements. |
Security
OneBeat uses access controls and provider boundaries appropriate to the current implementation. No transmission or storage system is completely secure, so do not send passwords, Clerk tokens, Spotify tokens, SSV query strings, or ad callback payloads in a support or rights request.
- Clerk authentication protects authenticated Convex calls.
- Spotify refresh credentials stay in the Convex backend; the app does not ship a Spotify client secret.
- Native session material uses OS-managed SecureStore/Keychain storage.
- Rewarded-ad SSV validates the signed callback and deduplicates the provider transaction ID.
- RevenueCat purchase events are settled by the trusted webhook path; event IDs and virtual-currency transaction IDs are checked before a Gem credit is applied, and the client purchase callback does not grant currency.
- Consent is resolved before ad SDK initialization or ad loading.
Your rights and how to exercise them
Depending on your location and the applicable law, you may request access to your personal data, correction of inaccurate data, deletion, restriction of processing, a portable copy, or object to processing. Where processing relies on consent, you may withdraw that consent at any time; withdrawal does not affect processing that happened before withdrawal or processing that has another lawful basis.
Use the Support page for privacy and access/correction/restriction/portability/objection guidance, and the Data deletion page for deletion guidance. These routes are instructions pages; viewing them does not transmit a request. The current mobile Profile screen exposes Ad privacy choices and Disconnect Spotify, but it does not yet expose a Support or Delete account action. OneBeat must provide a verified rights intake and an in-app account-deletion initiation flow before those requests can be handled operationally.
A deletion request can cover OneBeat's purchase-linked records, including the Gem balance/ledger and the RevenueCat webhook event ledger, subject to the retention needed to prevent duplicate grants, reconcile a refund or revocation, meet accounting or legal duties, or resolve a dispute. RevenueCat and the stores may retain their own account, receipt and transaction records under their policies; OneBeat does not control those provider records.
OneBeat may need to verify that a request comes from the account holder and may apply lawful exceptions. We will not ask for more identity information than is reasonably needed for that verification. You may complain to the data-protection or privacy authority in your country of residence, work, or the place where you believe a violation occurred.
To withdraw or change advertising consent, open OneBeat and use Profile → Ad privacy choices when the UMP options form is available. That preference does not delete your OneBeat account or gameplay data.
Automated decisions
OneBeat uses rules and server verification for game scoring, leaderboard values, rewarded-ad eligibility and purchase-event reconciliation. These features are not intended to make decisions that produce legal or similarly significant effects about you. Advertising, store and payment providers may use their own automated systems under their policies; personalized advertising remains subject to applicable consent and configuration.
US and California privacy rights
US state privacy laws apply only when their scope and thresholds cover OneBeat and the person using it. If the California Consumer Privacy Act (CCPA), as amended, applies, California residents may have rights to know/access, delete, correct, opt out of sale or sharing, limit sensitive personal information, and receive equal service when using those rights, subject to exceptions.
OneBeat may disclose categories of data to the providers described in this notice, including RevenueCat and the relevant app store for a purchase. Whether a particular disclosure is a sale or sharing, including cross-context behavioral advertising, depends on applicable law and the actual provider, UMP consent, and advertising configuration. This notice does not make a blanket sale/share claim. Use the Support page for the current route-based rights instructions. See the official California CCPA guidance for the rights and notice framework.
Changes to this notice
OneBeat may update this notice when the app, providers, advertising configuration, data flows, or applicable law changes. The date shown at the top of this page identifies the current website revision. A material change will be reflected in the notice before the changed processing is introduced where the law requires prior information.