My Korean Boyfriends

Effective: 2026-09-24 · Last updated: 2026-10-13

Privacy Notice

This notice explains how My Korean Boyfriends handles information when eligible users aged 13 and older use our fictional, AI-assisted interactive story service.

1. Who we are

이의석, an individual developer, operates My Korean Boyfriends and is the controller or business responsible for the personal information described here, except where a provider acts as an independent controller under its own notice.

Privacy contact: euisuk97@gmail.com. We have not appointed a separate data protection officer or representative. Requests sent to this address are handled by the operator.

2. Scope and age

This notice applies to the mobile app, support channels, and pages on my-korean-boyfriends.vercel.app. You must be at least 13 and obtain parent or guardian authorization where local law requires it. If local law does not permit your use even with that authorization, you may not use the service. The service is not directed to children under 13, and we do not knowingly collect their personal information. If we learn that an ineligible child provided information, we will take reasonable steps to delete it. Contact us if you believe this has happened.

3. Information we handle

CategoryExamplesSource
Account and eligibilityApple or Google sign-in identifier, email or relay email if supplied, name or profile image returned by Google, account ID, minimum-age and required-authorization confirmation, broad age band (13–15, 16–17, or 18+), locale, and settings. You select an age band on the sign-in screen, where 18+ is preselected and you can change it; we do not ask for, send, or store your date of birth. The app requests email—but not full name—from Apple.You and the sign-in provider.
Story and chat contentSelected fictional persona, suggested replies, messages you type, story state, safety reports, and AI-generated output.You, our editorial content, and the AI service.
Reward, experiment, and referral activityScene/turn events, verified-ad and promotional-credit balances, temporary ad-availability assistance requests and non-sensitive error categories, conversion milestone and experiment assignment, offer exposure, referral code, shared-link creation, attributed install/sign-up status, referral qualification, credit use, limits, and fraud-prevention decisions.The app, our systems, Google AdMob, and AppsFlyer for eligible signed-in users in current native store builds.
Basic app usage and account-linked product analyticsBasic app usage includes a random app-installation identifier, app launches, screen views, character-detail views, locale, platform, app version, native build number, and a coarse fresh/existing/unknown installation classification. We do not upload native installation timestamps. Additional account-linked events include time spent and ad or generation status. After sign-in, events may also include the internal account UUID and story-session UUID and are therefore linkable to your account until deletion. Chat text, email, advertising ID, and access tokens are excluded.Basic app usage begins when the app runs, including before sign-in or account agreement. Detailed account-linked analytics begins after required account setup.
Device and diagnosticsDevice/OS/app version, IP address, provider-inferred approximate region, logs, and network/service status. Expo Updates sends a stable per-install EAS-Client-ID, update channel, runtime version, and IP address when checking for app updates. The app does not currently integrate a separate crash-reporting SDK.Your device and service providers.
Advertising dataAd request and impression data, reward-completion events, consent choices, and advertising or device identifiers where permitted by settings and law. For AdMob server-side verification (SSV), the app sends your authenticated internal account UUID as the SSV user ID and the current story-session UUID as SSV custom data; it does not put chat text in those fields.Your device, our systems, and Google AdMob.
Membership and purchase historyGoogle Play or App Store product and transaction identifiers, purchase token or verification reference, purchase and expiry times, subscription status, renewal state, plan, and the internal account binding used to verify and provide membership. We do not receive your card number, bank-account details, or store password.You, the app store, and our verification systems when you purchase or restore a membership.
Support, tester interest, and safetyYour email address, message, attachments, content reports, and our response history when you choose to email us. Public tester-interest intake is currently paused, so the website does not collect country, device, or tester-interest details.You, your email provider, Google email services, and in-app reports when enabled.

Do not put passwords, financial account details, government identifiers, health records, exact location, or other sensitive information into story chat or support requests. We have not configured a separate third-party crash-reporting or customer-support SDK. In supported Android and iOS native builds, Google Analytics for Firebase is used for advertising-effectiveness measurement that is part of the sign-in agreement, as described below. AppsFlyer starts in current native store builds after sign-in, a recognized age band (13+), and the required account agreement and referral consent. Server-side referral availability, new share links, reward claims, and deferred campaign claims remain off until device verification is complete. Basic app usage events are written directly to our Supabase backend before and after sign-in. Additional account-linked product events begin after account setup.

4. Why we use information

Sign-in has no separate consent checkboxes. The notice next to the sign-in button states that by signing in you agree to the Terms, this Privacy Notice, account-linked usage analytics, installation recognition for referral rewards, and Google advertising-effectiveness measurement using your first completed AI reply; signing in is that agreement. That measurement is turned on only in the native builds described in section 5. Account-linked usage analytics is required during account setup for users aged 13 and older and excludes story message text. App launches, screen views and character-detail views are recorded before account setup so we can measure entry and registration conversion. The random installation identifier persists across login, logout, and account-agreement changes; events recorded while signed in include the internal account UUID. Detailed account-linked usage events begin after account setup. You can request deletion of identified events through account deletion or a privacy request. Google's regional advertising consent for AdMob rewarded ads remains separate (see section 6); Google advertising-effectiveness measurement is part of the sign-in agreement instead (see section 5).

Where a legal basis is required, we rely on performance of our agreement for account and story features; consent for sending story content to an AI provider and any advertising or device access that requires consent; legal obligations for valid requests and compliance records; and legitimate interests in service security, fraud prevention, reliability, and non-personalized measurement where those interests are not overridden by your rights. You may withdraw consent for future processing at any time. Google advertising-effectiveness measurement has no separate in-app switch: signing out, switching accounts, or deleting your account stops future Firebase collection, and you can object to that measurement or make another request through the privacy contact in section 1. Mandatory rights under laws such as the GDPR, UK GDPR, Brazil's LGPD, applicable U.S. state privacy laws, and local consumer or privacy laws remain available where they apply.

5. Providers and disclosures

RecipientPurpose and dataRequired launch detail
SupabaseProvides authentication, database, server functions, and operational logs and processes account, story, reward, analytics, report, and diagnostic records on our behalf.Our operational project is hosted in the Singapore region. Exposed tables have row-level security enabled, and privileged operations run only on the server. Backup and provider-plan retention remain subject to the selected service plan and are described in the retention section below.
Expo (650 Industries, Inc.)Delivers app updates for app functionality. On each update check, Expo Updates sends a stable per-install EAS-Client-ID, update channel, runtime version, and IP address to u.expo.dev, including before sign-in and independently of analytics consent.Expo processes update requests in the United States under its applicable service terms and settings. The identifier distinguishes an app installation; it is not an advertising ID or an account ID.
OpenAI APIGenerates story continuations using gpt-6-luna for free use and the Plus membership, and gpt-6-sol for the Premium membership. It receives persona, scenario and safety instructions; locale; stored story summary and state; up to the latest 20 messages needed for continuity; and a one-way pseudonymous safety identifier derived from the internal account UUID and a server secret for abuse prevention. It does not receive the sign-in email, name, profile image, or raw account UUID.Requests are made server-side using an operational API project. We do not opt in to use submitted API content to train models. API content and abuse-monitoring records are handled under the OpenAI account's applicable API data controls. Sign-in accepts the account terms but does not authorize AI processing. The service requests separate, explicit permission immediately before your first conversation, before story content is sent to the AI provider. You may decline and keep browsing.
Google AdMobDelivers and measures rewarded ads and confirms reward events where advertising is available. For SSV, Google receives our internal account UUID in the user_id field and the current story-session UUID in custom_data so our server can associate a signed reward callback with the correct account and story. These identifiers are linkable to records in our service even though they are not your email or chat text. Google may also process IP address, device/ad identifiers, consent signals, and ad interactions.Our production Android and iOS apps and their rewarded-ad units are registered with AdMob. The app requests non-personalized rewarded ads and presents Google's regional consent choices where required. Age-band controls, ad formats, mediation, regional messages, and partner settings may affect availability.
Google Play Billing and Google Play Developer APIProcesses Android membership purchases and returns the product ID, purchase token, transaction and subscription state needed to verify, restore, renew, revoke, and prevent fraudulent account-bound entitlements. Google handles payment credentials under its own terms; the app does not receive card or bank-account details.Purchase history is processed only when you choose to purchase or restore an Android membership. Our server stores the minimum verification reference and entitlement history needed to operate and secure the membership.
AppsFlyerFor eligible signed-in users aged 13 and older who have completed the required account agreement and referral consent, the SDK runs in current native store builds for install and deep-link routing, attribution analytics, and fraud prevention. It may collect an AppsFlyer installation ID, iOS IDFV, IP address and IP-derived approximate location, device/app/OS/language/network information, install/open/session timestamps, campaign and link parameters, SDK performance signals, and an opaque referral code. Campaign and referral deep-link data may be captured locally. We do not send your email, chat text, or raw internal account UUID to AppsFlyer.Server-side referral availability, new share links, reward claims, and deferred campaign claims remain off until device verification is complete. All eligible age bands, including 13–15 and 16–17, are covered by the account setup agreement. AppsFlyer advertising identifier collection is disabled, and the app does not request Apple's App Tracking Transparency permission. Deleting your account or becoming ineligible stops future SDK activity and clears unclaimed local referral data, without revoking rewards already earned. The contracted entity, plan, retention, processing locations, data-processing terms, and platform privacy disclosures are still being confirmed. Deferred attribution can fail; the service does not offer manual referral-code entry or screenshot-based attribution.
Google Analytics for Firebase and Google AdsOn Android and iOS native builds where it is enabled, Google advertising-effectiveness measurement is part of the account agreement you accept by signing in. It is turned on for your account on that device only after a successful sign-in and account setup with a recognized age band. It is not offered on web or demo builds. We send one conversation-completion milestone per installation when a first user message receives a successful AI reply. Its custom payload contains only a fixed milestone name and schema version, with no chat text, email, account UUID, story-session UUID, revenue, or our Supabase installation UUID. Firebase also processes its own app-instance identifier, app/device/OS information, IP address, and automatic session, engagement and first-open events after measurement is enabled. Its automatic measurement may also include ad interactions and app-store purchases, including product identifiers and value/currency supplied by those SDKs; our custom conversation milestone contains no monetary value.There is no separate checkbox or in-app switch for this measurement. Accounts that signed in under an earlier app version without choosing this measurement are not switched on until they next sign in through the current sign-in screen. Advertising identifiers, Android SSAID, iOS IDFV, automatic screen reporting and personalized advertising are disabled. Analytics storage is enabled only after the sign-in agreement. Android also enables advertising-measurement data use after that agreement; iOS keeps advertising data use denied. Advertising-identifier storage and personalization remain denied on both platforms. Agreeing to this measurement at sign-in does not grant Apple tracking authorization. Eligible milestones may be shared with the linked Google Ads account to measure campaign effectiveness. Signing out, deleting your account or switching accounts stops future Firebase collection. You can also object or make a request through euisuk97@gmail.com. The SDK stores collection and consent settings between launches. Our native startup pauses collection; account eligibility and whether measurement was turned on for that account on the device are checked before collection resumes. We do not send a conversation milestone that occurred before measurement was turned on, or emit a manual Firebase first_open event. Google processes these records under its applicable Analytics/Firebase and Ads terms and settings.
Apple and Google sign-inAuthenticate you and provide an account identifier plus account details you authorize them to share.Sign in with Apple is the default on iOS and requests email only; Google Sign-In is the default on Android and supplies an identity token and authorized profile details. Apple private-relay email is supported.
Vercel Inc.Hosts these public pages and may process request metadata such as IP address, user agent, timestamps, and security logs.This site does not install client-side analytics, advertising scripts, or a form backend. Support, safety, privacy, and deletion links open your email application; public tester intake is paused.
Google email servicesReceives support, safety, privacy, and deletion emails sent to our published Gmail address, including the information you choose to include.Do not email passwords, tokens, government IDs, payment information, or full private conversations.

We may also disclose information when reasonably necessary to comply with law, protect users and the service, investigate abuse, or complete a merger, financing, acquisition, or asset transfer with appropriate notice and safeguards. Provider processing remains subject to each provider's applicable contract, data-processing terms, and service settings.

6. Rewarded ads and choices

After included access is used, you may choose a rewarded ad for the limited story or character access shown in the app at that time. Reward availability, quantity, and duration can vary by current service configuration. Rewards have no cash value, and clicking an advertiser's link is not required. Ad availability varies. Open Settings → Privacy & support → Advertising privacy choices to revisit Google's regional consent form when available. You can also use your device privacy settings and Google's advertising controls. The app requests non-personalized ads and applies the age-band controls described above; we will reassess platform permission and disclosure requirements if the production configuration changes.

When a signed-in user requests a rewarded ad, the production app configures AdMob SSV with the internal account UUID as user_id and the active story-session UUID as custom_data, prefixed with character: for a character unlock. Google includes those values in the signed callback to our server, which uses them to validate account/session ownership and prevent duplicate rewards.

During a temporary ad-availability assistance period, we may grant limited story access when an ad cannot load. Our server records the account and session identifiers, assistance purpose, non-sensitive failure category, request identifier, time and entitlement needed to apply usage limits and prevent duplicate grants. This assistance is recorded separately from verified ad completions and is not reported as a watched ad. It does not authorize advertising or AI processing that you have not consented to.

Installation matching for qualifying friend referrals is included in required account setup for users aged 13 and older. We store the acceptance timestamp with your account. Qualifying referrals grant limited promotional story credits. A conversion-milestone credit is granted independently of any store rating or review.

7. International transfers

Supabase stores our operational project data in Singapore. Expo (650 Industries, Inc.) processes app-update requests, including the per-install EAS-Client-ID, channel, runtime version, and IP address, in the United States to deliver app updates. Vercel and Google email services may process public-site request metadata or emails in the United States and other countries where they and their subprocessors operate. OpenAI, Google AdMob, Google Analytics for Firebase, Google Ads, and AppsFlyer may process the data described above internationally under their applicable service terms and settings; AppsFlyer's processing locations and terms are still being confirmed. Before a public Korean launch, we will publish the required Korean-language overseas-transfer details and obtain separate consent where applicable.

Where required, transfers rely on the selected provider's data-processing agreement, approved contractual clauses, adequacy decisions, consent, or another lawful mechanism. Prepared controls minimize fields, use encrypted transport, restrict administrative access, and avoid sending email, name, or full account records to an AI model. Contact us for information about safeguards relevant to your request.

8. Retention and deletion

The current public website installs no client-side analytics or advertising scripts and uses no cookies or browser storage. Vercel automatically records edge-request and operational data needed to host and secure the pages. The site has no form backend, account database, or AI connection; public tester-interest intake is paused. Google email services receive only information you deliberately send by email. The app-data rows below describe the operational mobile service and its deletion design.

DataRetention rule or launch condition
Account, profile, story, chat, reward, membership, purchase-history, experiment, referral, and in-app report recordsRetained until the user deletes the account unless a shorter promotion limit applies or limited security or legal evidence must be preserved as permitted by law. The hard-delete function removes the authentication user and linked profile, stories, messages, generation jobs, credits, membership entitlements and transactions, experiment assignments, referral records, in-app reports, and identified analytics together. Individual-story deletion and automatic inactivity deletion are not currently offered.
Basic app usage and account-linked product analyticsBasic app usage collection begins when the app runs. Detailed account-linked collection begins after the required account-setup agreement is saved. We link the installation that completes first account setup to the account to distinguish new registration from later login on another device. Account deletion removes identified events plus pre- and post-sign-in events and rate-limit rows for installation identifiers previously linked to that account. An installation identifier that was never linked to an account cannot be located through an account request. No automatic time-based analytics cleanup is currently configured.
Security, server, hosting, and diagnostic logsThe operational Supabase project is hosted in Singapore on the Free plan, which currently provides one-day API and database log retention. Other provider-held security, abuse-monitoring, advertising, and hosting logs expire under the applicable provider settings and policy, subject to permitted legal preservation.
Support, privacy, deletion, and safety emailDeleted within 90 days after the request or case is resolved, unless a narrower record must be retained longer to comply with law or preserve evidence for an active security or legal matter. Do not send information that is not necessary for your request.
BackupsThe current Supabase Free plan does not provide automatic database backups for this project. Deleted account data is therefore not retained in an automatic Supabase database-backup rotation.

Deleting your account removes associated live records under the prepared hard-delete design. Where contractually available, we request deletion from processors; provider-held security, abuse-monitoring, advertising, hosting, or email records may instead expire under the provider's settings and policy. See Delete your account for in-app and web-request steps.

9. Your rights

Depending on where you live, you may have rights to access, correct, delete, restrict or object to processing, withdraw consent, receive a portable copy, opt out of certain targeted advertising or sales/sharing, and appeal a denied request. You may also complain to your local regulator. We may verify your identity and may deny or limit a request where law permits.

Submit a request to euisuk97@gmail.com. Add Privacy request to the subject and state your country and requested action. Do not send a password, sign-in token, or unnecessary identity document. An authorized agent should include permission signed by the account holder; we may verify both the authorization and the account using proportionate information. If we deny a request, reply with Privacy appeal in the subject within 30 days. We respond within the period required by applicable law, ordinarily within 30 days after verification.

10. Security

The mobile service uses encrypted HTTPS transport, Supabase row-level access controls, server-only privileged keys, short-lived authentication tokens, encrypted storage for model-provider credentials, signed AdMob reward callbacks, request limits, and administrator routes that require a second authentication factor. No administrator will be granted production access before multi-factor authentication is enrolled and tested. No storage or transmission method is completely secure. Report a suspected account or data incident to euisuk97@gmail.com.

11. Changes and contact

We may update this notice when the app, providers, or law changes. We will post the revised date and provide additional notice when required. Privacy questions and requests can be sent to euisuk97@gmail.com. A separate postal privacy address is not currently published; where applicable law requires another contact channel, we will provide it in the relevant store listing or in response to a verified request.