Content Hub – Privacy Policy
Effective: [date of publication]
Draft for legal review. Every point marked “[Lawyer: …]” must be decided or checked before publication; remove all bracketed notes from the published text. [Lawyer: the Czech version is intended to be the governing version for Czech consumers; confirm, and say so in both versions.] [Owner: several features described here (VIP, rewarded ads, push notifications, follows, the saved list on the account, recaps, share clips, trending, Bunny Stream) are built but not yet live; publish this text only with the release that contains them, or remove what is not released.]
Content Hub is an app of short vertical drama series for viewers aged 16 and over. This policy explains what data we process when you use the app, why, and what choices you have.
1. The short version
- You can watch without an account. The app then uses only a random app ID to count viewing, which you can switch off.
- With an account (email and a one-time code) you can buy coins and VIP, keep a saved list, follow actors and get reminders.
- Payments go through the App Store or Google Play. We never see card details.
- The only ads are rewarded ads from Google AdMob that you choose to watch for coins. Google’s consent form comes first. Google is not told your account or what you watch.
- News notifications are off unless you turn them on.
- Viewing data is deleted after 90 days. You can delete your account in the app at any time.
- We do not sell your data and use no third-party analytics or tracking tools.
2. Who we are
The controller of your personal data is:
Costa Hub s.r.o. Školská 660/3, Nové Město, 110 00 Praha 1, Czech Republic Company ID (IČO): 23882271, VAT ID (DIČ): CZ23882271 Registered in the Commercial Register kept by the Municipal Court in Prague, section C, file 434492 Represented by Christian Costa, executive director (jednatel) Email: info@costahub.co Telephone: +420 602 766 346
We have not appointed a data protection officer. [Lawyer: confirm a DPO is not required under GDPR Art. 37.]
3. Age requirement
Content Hub is for people aged 16 and over. Do not use the app, and do not create an account, if you are under 16. If we learn that an account belongs to someone under 16, we will delete it.
[Lawyer: the app asks for no age or date of birth and has no age check; decide whether a statement in the terms and the store age rating are enough, or whether sign-up needs an age confirmation.]
Age information from the app stores. In some places, such as certain US states, the law requires Apple and Google to tell apps a user’s age range and whether a parent has approved downloads and purchases. Where we receive such information, we use it only to meet those laws – for example, to keep out users under 16 and to apply the settings for users under 18 described below – and we do not share it or use it for anything else. [Owner: implement Apple’s Declared Age Range API and Google Play’s Age Signals API before release in the US; see the compliance checklist.]
Users aged 16 and 17. We do not show personalised ads to users we know to be under 18, and news notifications stay off unless they switch them on. [Owner: the app cannot tell a user’s age today; this applies once the age information above is implemented. Lawyer: under the UK Children’s Code, decide whether to apply these settings to all users in the UK instead.]
4. Data we process when you watch without an account
Viewing statistics
| Data | What it is | Why |
|---|---|---|
| Random app ID | A random string the app creates on first launch. It is not taken from the device hardware, is not an advertising ID, and is not linked to your name, email or account. Reinstalling the app creates a new one. | To count viewing per device without knowing who you are. |
| Viewing events | Which series and episodes are opened and for how long, how far an episode was watched, likes and saves, shares, reaching a locked episode, unlocks, rewards and rewarded ads collected, playback errors, and the app version and platform. | Recommendations in the app, the “trending” ranking, deciding what to produce, and fixing problems. |
| Ratings | Your rating of an episode (liked or not) and of the app (great, okay or not good, with reasons from a fixed list). Never free text. | To learn what viewers like. |
| Error reports | A short technical error message. | To fix bugs. |
| Watch progress | Which episode of each series you reached and when. It is kept on your phone. While statistics are on, the app sends it when it asks for recommendations; we use it for that answer only and do not store it. | “Continue watching” and relevant suggestions. |
Viewing events carry the random app ID only, never your account ID, even when you are signed in. We do not link what you watch to your account.
Turning it off. On the Account screen, under Privacy, switch off “Share anonymous watch stats”. The app then stops sending viewing events and watch progress, and discards events not yet sent.
Trending. The “trending” list ranks series by how many devices started an episode in the last seven days. It shows ranks only, never numbers, and a series is ranked only when at least 20 devices started it, so a rank cannot stand for a few identifiable people.
Network address
When the app sends viewing events, we use your network (IP) address only to limit how many events one address can send in a day. We keep it only as a salted one-way code (a hash), never as the address, and delete these codes at the end of the day. To protect the service against automated abuse, our servers also count how often each network address and each account asks for a video or a purchase check, again only as one-way coded values, deleted within 20 minutes of the last request. The services that stream videos and deliver app updates also receive your network address (section 11).
What stays on your phone
Settings (autoplay, sound, reduced motion, use of mobile data), your saved list and likes while you are signed out, which episodes you have already rated, and which recap offers you turned down. When you sign in, the saved list on your phone is moved to your account and removed from the phone.
What we do not collect
No precise location, contacts, photos, camera or microphone access. No chat, comments or messaging. You cannot upload content to the app.
5. Data we process when you have an account
| Data | Details |
|---|---|
| Email address | To sign in with a one-time code (no password) and to confirm account deletion. |
| Coins and history | Coin balance, coin ledger (coins added and spent and why), episodes and series unlocked, daily free episodes, rewards collected, the number of paid rewarded ads per day. |
| Purchases | Store product, price, currency, store, country, store transaction ID, and refunds. |
| VIP | Whether VIP is active and until when, when your current VIP period began, the store’s original transaction ID of your subscription, and the months for which VIP coins were credited. |
| Monthly spending limit | The limit you set, a pending change and when it applies. The coins bought this month are counted from your purchases. |
| Saved list and follows | Series you saved; actors you follow. |
| Reminders and notification settings | Releases and series you asked to be reminded of; your two notification switches and when you last changed the news switch. |
| Push tokens | For each phone where you allowed notifications: the push token, the platform and the app language, and when the phone last confirmed it. |
| Rewarded ads | A random ad ID created for you and the record of each rewarded ad that paid you (Google’s transaction ID, ad unit, day, coins and time). |
| Account time zone | The time-zone offset in which your account’s days are counted (daily free episode, rewards, ad limit, spending month). |
| Terms accepted | Which version of the Terms of Use you agreed to, and when. |
6. Rewarded ads (Google AdMob)
When. If you are signed in and not VIP, and the next episode is locked when one ends, the app may offer a short ad for coins. It starts only after a 5-second countdown with a “Not now” button, and you can always skip it. There are no other ads.
Consent first. Before any ad is requested, the app shows Google’s consent form (Google User Messaging Platform) where the law requires it, for example in the EU. An ad is requested only if the form allows it.
- On iOS, the app does not ask for App Tracking Transparency permission, so ads are always non-personalised.
- On Android, ads are personalised only if you choose personalised ads in Google’s form; otherwise they are non-personalised.
You can change your choice at any time on the Account screen, under Privacy, “Ad privacy choices” (shown when Google’s form requires it).
What Google receives. The Google Mobile Ads SDK in the app collects data to show the ad, count it, and prevent fraud, such as your device’s network address, device information, the advertising ID on Android, and how you interact with the ad. To credit your coins, we give Google only your random ad ID (not your account) and a fixed code. Google is not told your account or which episode you are watching. Google then confirms to our server that the ad was watched, and we credit the coins.
Google processes ad data under its own privacy policy (policies.google.com/privacy), and for some of it acts as an independent controller. [Lawyer: confirm Google’s role (controller or processor) under Google’s Ads Data Protection Terms and the EU User Consent Policy, and that the consent form, the non-personalised setting and the published GDPR message in AdMob meet § 89(3) of Act No. 127/2005 Coll. and the GDPR, including for non-personalised ads, which still use device storage.]
[Lawyer/owner: verify the list of data the AdMob SDK collects against Google’s published data disclosure for the Google Mobile Ads SDK before publication.]
7. Push notifications
The app asks for permission to send notifications only when you first ask for a reminder, never at launch. You can then choose on the Notifications screen:
- “New episodes I follow” (on unless you turn it off): a notification when an episode you asked to be reminded of, or one with an actor you follow, comes out.
- “News from Content Hub” (off unless you turn it on): premieres and news, now and then. This is marketing; we send it only if you switch it on, and you can switch it off at any time on the same screen.
You can also turn notifications off in your phone’s settings. When you sign out, the phone’s push token is removed from your account.
Notifications are delivered through Expo’s push service and then Apple (APNs) or Google (Firebase Cloud Messaging). They receive the push token and the text of the notification, for example “Sisters · Episode 5 is out”.
[Lawyer: confirm the legal basis for release reminders (contract, as a feature the viewer asked for, or consent) and that the opt-in switch with its recorded time is valid consent for marketing notifications, including under Act No. 480/2004 Coll. on certain information society services.]
8. Sharing clips and links
The Share button lets you send a short clip and a link to a series or episode through your phone’s share menu. The clip is a public file we made to be shared. We do not see who you share it with; we only count that a share happened, as an anonymous viewing event. The link contains the series and episode, not your identity.
9. People in our series
The app shows the actors in each series with their name, photo, a short biography and, where they agree, their Instagram handle. This data belongs to the actors and is published with their agreement. Following an actor is your choice and is stored with your account (section 5). Tapping an Instagram handle opens Instagram, which has its own privacy policy.
[Lawyer: actors’ data is processed under their contracts or consent; confirm a separate notice to actors under GDPR Art. 13 is in place, and how a request to remove an actor’s data is handled.]
10. Why we use data and on what legal basis
| Purpose | Legal basis (GDPR) |
|---|---|
| Viewing statistics, recommendations, trending ranking, fixing problems | Legitimate interest in running and improving our service, with the off switch in section 4 (Art. 6(1)(f)). [Lawyer: decide whether storing and reading the app ID on the device needs consent under § 89(3) of Act No. 127/2005 Coll., in which case the switch would have to start off.] |
| Protection against abuse (request and event limits) | Legitimate interest in security (Art. 6(1)(f)) |
| Account, coins, purchases, VIP and its monthly coins, unlocks, refunds, spending limit, saved list, follows, reminders | Performance of the contract with you (Art. 6(1)(b)) |
| Crediting coins for rewarded ads (server-side verification) | Performance of the contract (Art. 6(1)(b)) |
| Showing ads, personalised ads | Your consent given in Google’s form (Art. 6(1)(a)); see section 6 |
| News notifications | Your consent (Art. 6(1)(a)), given by switching on “News from Content Hub” |
| Keeping purchase records for accounting and tax, handling refund disputes | Legal obligation (Art. 6(1)(c)) and legitimate interest in defending claims (Art. 6(1)(f)) [Lawyer: confirm the retention period and statutory basis] |
| Recording which terms you accepted | Legitimate interest in proving the agreement (Art. 6(1)(f)) |
| Answering your emails | Legitimate interest, or the contract where the question is about a purchase |
We do not sell your data, and we do not make decisions about you by automated means that have legal or similarly significant effects. Recommendations are ordered automatically, but they only change what the app shows first.
11. Who receives data
| Provider | What they do for us | Data they receive |
|---|---|---|
| Supabase | Database, server functions, video and image storage | All data in sections 4 and 5 that is sent to our servers; the network address of devices that call our servers or play a video |
| Clerk | Sign-in | Email address, one-time codes, session data [Lawyer/owner: verify in Clerk’s DPA which device and network data it records] |
| RevenueCat | Checking store receipts and subscriptions | An opaque account ID, purchase and subscription receipts |
| Expo | App updates (EAS Update) and push delivery | For updates, from every device: network address and a random installation ID created by the update service. For push: push tokens and the notification text |
| Apple (APNs) and Google (Firebase Cloud Messaging) | Delivering push notifications to phones | Push token and notification text |
| Google (AdMob) | Rewarded ads | See section 6 |
| Bunny.net (BunnyWay d.o.o.) [Owner: include only if Bunny Stream is live at publication; verify the contracting entity] | Streaming episodes | The network address of the device that plays a video, and the requested video |
| Apple and Google (stores) | App downloads and payments | Process payments and downloads as independent controllers under their own policies |
| Cloudflare | Hosting our website | Technical access data of website visitors (network address, time, requested page) |
| Zoho | Our email (info@costahub.co) | Whatever you write to us, and your email address |
Providers that act for us (processors) do so under data processing agreements. We do not give data to anyone else, except where the law requires it.
[Lawyer: confirm a GDPR Art. 28 agreement with each processor, and Google’s role for AdMob and for Firebase Cloud Messaging.]
12. International transfers
The database is stored in the European Union (Supabase, EU region [Owner: verify the exact region once the Content Hub project is created]). Clerk, RevenueCat, Expo and Google are US companies or have US parent companies, and Apple’s push service is operated by Apple. Where data goes to the US, the transfer relies on the EU-US Data Privacy Framework where the provider is certified, and otherwise on the European Commission’s standard contractual clauses.
[Lawyer/owner: verify the transfer mechanism and certification for each US provider.]
13. How long we keep data
Deletion is done by automated jobs.
| Data | How long |
|---|---|
| Viewing events, ratings, error reports | 90 days. Before deletion, each day is added into daily totals with no app ID, which are kept. |
| Trending and popularity counts | Recalculated every ten minutes from the last seven days; no app ID |
| Hashed network address (event limit) | Until the end of the day |
| Request counts (abuse protection) | Up to 20 minutes after the last request |
| Event counts per app ID (abuse protection) | 2 days after the device stops sending |
| Account data, coins, unlocks, VIP status, spending limit, saved list, follows, notification settings, ad ID, terms accepted | Until you delete the account |
| A reminder for a single release | 7 days after the release (series reminders until you turn them off or delete the account) |
| Push tokens | Until you sign out on that phone, delete the account, or the phone is no longer registered for notifications, and at most 270 days after the phone last confirmed it |
| Notification queue | 30 days after the notification was sent or dropped; delivery receipts 2 days |
| Rewarded ad records | 90 days |
| Purchase records | 10 years for accounting, without the link to your account after deletion [Lawyer: confirm; no automatic deletion job exists yet] |
| VIP months credited | Kept without the link to your account after deletion, so the same subscription is not credited twice on another account |
| Data on your phone only | Until you delete the app (the saved list until you sign in) |
| Server logs of our hosting provider | According to the provider’s standard settings [Owner: verify] |
| Emails with us | [Lawyer/owner: set a period] |
14. Security
- All traffic is encrypted (HTTPS).
- Strict access rules in the database: the app reaches your data only through checked server functions; push tokens and ad records cannot be read through the app at all, and your ad ID is given only to your own signed-in app.
- Videos are never on public addresses: each playback uses a link that expires after 30 minutes.
- Network addresses are stored only as one-way hashes.
- Coins for ads are credited only after Google’s signed confirmation, which we verify.
No system is perfectly secure. If a breach affects your data, we will inform the authority and you as the law requires.
15. Deleting your account
On the Account screen tap “Delete account”. We send a one-time code to your email to confirm it is you. Deletion removes your sign-in, coin balance, unlocks, ledger, VIP status, spending limit, saved list, follows, reminders, notification settings, push tokens, ad ID and ad records, and the record of accepted terms.
Coins are lost when you delete the account and cannot be restored. Money already paid is refunded only through the store. Deleting the account does not cancel a VIP subscription; cancel it in your App Store or Google Play settings.
What remains: purchase records and the record of VIP months credited, without the link to your account or the store’s account identifiers.
[Lawyer: decide on two residual items: (a) the customer record at RevenueCat is not deleted automatically; (b) Google keeps its own ad data under its policy, which we cannot delete, but it is not linked to your account by us.]
16. Your rights
Under the GDPR you have the right to access your data and get a copy, to rectification, to erasure, to restriction of processing, to data portability (for data you gave us under the contract, such as your purchase history), to object to processing based on our legitimate interest (including the viewing statistics), and to withdraw consent at any time (for news notifications and ads) without affecting earlier processing.
To use these rights, email info@costahub.co. For data linked to your app ID, use “Ask about this device’s data” on the Account screen, which opens an email with the app ID filled in. We may ask you to confirm your identity, for example by replying from your account’s email address. We reply within one month; in complex cases we may extend this by up to two more months and will tell you why.
[Lawyer: there is no in-app data export; confirm that handling access and portability requests by email is sufficient.]
You may lodge a complaint with the supervisory authority: Úřad pro ochranu osobních údajů, Pplk. Sochora 27, 170 00 Praha 7, Czech Republic, www.uoou.gov.cz, or with the authority in the EU country where you live or work.
17. If you live outside the European Union
Content Hub is offered worldwide. This section adds what the laws of some countries require; the rest of this policy applies to you as well. Wherever you live, you can use the rights in section 16 by emailing info@costahub.co, and we will not treat you differently for using them.
Where your data goes. Your data is stored in the European Union and processed by the providers in section 11, which are based in the European Union and the United States. Transfers are protected as described in section 12.
United Kingdom. The UK GDPR and the Data Protection Act 2018 apply. Our representative in the UK under Article 27 of the UK GDPR is [Owner: appoint a UK representative and insert their name and address]. If you have a complaint about how we handle your data, please tell us first: we acknowledge complaints within 30 days and answer them without undue delay. You may also complain to the Information Commissioner’s Office (ico.org.uk).
United States.
- What we collect and why. We collect the categories described in sections 4 to 9: identifiers (email address, app ID, account ID, push token and the ad ID in section 6), commercial information (purchases, coins and VIP), internet or network activity (viewing statistics and network address), and approximate location that Google derives from the network address for ads. We use them for the purposes in section 10 and keep them for the periods in section 13. We do not collect sensitive personal information as defined by US state privacy laws.
- Sale, sharing and targeted advertising. We do not sell personal information for money. On Android, if you agree to personalised ads in Google’s consent form, Google uses device data to show ads tailored to you, which some US state laws treat as “sharing” or “targeted advertising”. On iPhone, ads are not personalised. You can opt out at any time under “Ad privacy choices” on the Account screen. We do not knowingly sell or share the personal information of anyone under 16. [Owner: switch on the US state regulations message in AdMob’s Privacy & messaging so the opt-out appears in that screen.]
- What you watch. We do not give advertisers or other third parties information that identifies which series or episodes you watch. Viewing statistics stay with us and the providers that work for us (section 11).
- Your rights. Depending on the state you live in, you may ask to know, access, correct or delete your personal information, and opt out of sale, sharing and targeted advertising. Email info@costahub.co; an authorised agent may act for you with your written permission. We check requests by asking you to reply from your account’s email address. If we refuse a request, you may appeal by replying to our answer; if you are still not satisfied, you may contact your state’s attorney general.
Canada. You may access and correct your personal information and withdraw your consent, subject to legal and contractual limits. The person responsible for personal information is Christian Costa, executive director, info@costahub.co. You may complain to the Office of the Privacy Commissioner of Canada or, in Quebec, to the Commission d’accès à l’information.
Switzerland. The Federal Act on Data Protection applies. Your data goes to the European Union and the United States, protected as described in section 12. You may complain to the Federal Data Protection and Information Commissioner (edoeb.admin.ch).
Brazil. Under the LGPD you may ask us to confirm that we process your data, access it, correct it, anonymise, block or delete unnecessary data, port it, learn whom we share it with, and withdraw consent. Our contact for data protection is info@costahub.co. You may complain to the National Data Protection Authority (ANPD). [Lawyer: Brazil’s ECA Digital (Law 15.211/2025) has applied since March 2026 to digital services likely to be used by minors, including streaming; it requires reliable age verification, parental tools and a legal representative in Brazil. Decide whether to comply or not to offer the app in Brazil.]
Japan, South Korea, India, Australia and other countries. We handle your data as this policy describes. Data goes to the European Union and the United States, to the providers, for the purposes and for the periods given in sections 11 to 13; you may refuse such transfers by not creating an account or by deleting it. You may use your rights by emailing info@costahub.co and complain to your national data protection authority. [Lawyer: India’s Digital Personal Data Protection Rules apply in full from May 2027 and treat everyone under 18 as a child, which requires parental consent and no targeted ads; decide before then whether to offer the app in India.]
18. Our website
This policy and the Terms of Use are published on our website at https://contenthub.costahub.co/privacy/ and https://contenthub.costahub.co/terms/. The website is a static page and also opens shared links. It does not use cookies or analytics. It is hosted by Cloudflare, Inc. (Cloudflare Pages), which processes technical access data (such as network address and time) to deliver and secure the site. [Owner: confirm no Cloudflare Web Analytics is switched on for this site.]
19. Changes to this policy
When our data practices change, we update this policy first and change the date at the top. We tell you about important changes in the app. Where a change needs your consent, we ask for it before it applies.
20. Contact
Questions about privacy: info@costahub.co
See also the Terms of Use.