TransChat Privacy Policy

Developer: UsefulFactory
Contact: usefulsfactory@gmail.com
Updated: October 30, 2026

This policy covers TransChat for Android and iOS, including advertising and monthly subscriptions. The iOS supplement below explains its keyboard and captured-screen features. The Android version history that follows applies to Android only. From October 27, 2026, TransChat translates through UsefulFactory's translation relay, which translates with Google's open Gemma model on Cloudflare Workers AI (see "Translation relay"). From version 1.0.35 TransChat does not sign in to Google at all: the free Gemini API connection in your own Google account that versions 1.0.32 to 1.0.34 offered was turned off on October 27, 2026 and removed in 1.0.35 (see "Google account connection (versions 1.0.32 to 1.0.34)"). From version 1.0.32, a second button translates the messages on screen when you tap it (see "Text fields, messages on screen and Accessibility access"). UsefulFactory may invite specific devices to use TransChat without ads or limits (see "Invited devices"). Versions 1.0.29 to 1.0.31 translated only through the relay.

iOS keyboard, speech and captured-screen translation

On iOS, the TransChat keyboard uses Full Access to share your settings and send a requested draft for translation. It does not log everything you type and never sends a chat message for you. With your microphone and speech recognition permission, Apple's speech recognition service processes speech; recognized text is sent for translation when you use the voice translation feature. Turning on microphone access in TransChat keeps a voice session available to the keyboard in the background until you turn it off or iOS ends it. TransChat does not save raw audio. The latest recognition result is passed to the keyboard through the shared Keychain; it is replaced by the next voice result or cleared when the voice session is turned off.

Screen translation runs only after you enable its notice and invoke the Apple Shortcut, for example through Back Tap. The Shortcut captures an image and TransChat recognizes text on the iPhone. Only new recognized text is sent to the translation relay. The screenshot is not uploaded or added to Photos by TransChat. The app displays translations over the captured image; it does not continuously monitor another app.

To avoid translating the same message again, the iPhone stores translated text with a hash derived from its source, languages and limited chat context. It stores no screenshot in this cache. Translations can be reused for up to 30 days, with at most 1,200 entries. Expired entries are excluded from reuse and removed on a later cache save. You can remove all cached translations using Clear saved translations in the app. The cache is protected by iOS file protection and excluded from device backups. Removing the app removes this cache; shared Keychain settings, the device identifier and the latest voice handoff state may remain after reinstall.

The iOS relay uses a random install/device identifier, Apple App Attest public key and assertion counter, and Apple DeviceCheck to protect trials and prevent abuse. For a subscription it uses the original App Store transaction identifier and Apple's subscription status; it does not receive your Apple Account password or payment card. Install records expire after 180 days without use. App Attest records and their associated App Store transaction references expire after 180 days without a new proof. Device trial records expire after 400 days without use; reward records after 30 days; hourly aggregate usage totals after 90 days. The relay does not retain input text or translations. You can request deletion with the support ID shown in the app. DeviceCheck's trial marker is managed by Apple and is not reset by reinstalling TransChat.

Free iOS accounts may see Google AdMob native ads and optional rewarded ads after the applicable consent flow. Ad requests are configured for non-personalized treatment; the app does not request tracking permission or enable the publisher first-party advertising ID. AdMob may process device or app identifiers, IP-derived approximate location, advertising interactions and diagnostic/performance data under Google's privacy policy. Chat text, screenshots and speech transcripts are not provided to the advertising SDK. A rewarded ad uses a random one-time nonce and the relay install ID to confirm the pass. The optional monthly subscription is purchased, restored and managed through Apple; it removes ads and translation limits. Apple's privacy policy applies to speech recognition, DeviceCheck, App Attest and App Store purchases.

Android: Text fields, messages on screen and Accessibility access

When you tap or hold the floating button, TransChat uses Android Accessibility access to identify the focused editable field, read only that field's current draft, and insert the translated draft there. It never presses a send button. It keeps the field's app package name and limited operation status on your device for diagnostics; it does not send that record to UsefulFactory.

From version 1.0.32, a second floating button translates the chat on screen. Only when you tap it (and after you agree the first time), TransChat reads the text shown at that moment in the message area of the app in front: the messages you sent and received, and the names, times and other labels shown with them. It sends that text, with where each piece is on screen, to the Gemini API the same way as other translations (see "Translation and speech"). If the app does not make its text available to Accessibility, TransChat sends a picture of the message area instead (Android 11 or later). The Gemini API picks out the messages and translates them into your language, and TransChat draws the translations over the messages on your screen. Nothing on screen is read before you tap the button. While translations are shown, TransChat reads the message area again on your device as it scrolls, to keep each translation on its message; that reading is not sent anywhere. Neither the relay nor the app stores the text, the picture or the translations; while the service runs, the app keeps recent translations in memory only, so messages it has already translated are not sent again. Each translation has a button that shows the original message instead. Screens that an app protects cannot be read or translated.

Google account connection (versions 1.0.32 to 1.0.34)

This connection was turned off everywhere on October 27, 2026, and version 1.0.35 removed it: TransChat no longer signs in to Google or uses your Google Cloud project. When version 1.0.35 or later first opens on a phone that was connected, it asks Google to remove TransChat's access to that account and deletes the stored email address, project identifier and account hash from the device. The rest of this section describes how the connection worked in those versions.

When it was turned on, TransChat asked you to connect a Google account to translate. You pick the account, and Google asks whether TransChat may see your email address and manage your Google Cloud data (the Google Cloud permission). With that permission TransChat sets up one dedicated project named "Voice Translate Personal" in your account (or reopens the one it created before), turns on the Gemini API, Cloud Billing API and API Keys API in that project, creates one API key that only this Android app can use and only for Gemini text generation, and translates one short test sentence. Before each translation it checks that no billing account is connected. It does not change your other projects and never connects billing.

Your translations then go over HTTPS directly from your device to the Gemini API in your project; UsefulFactory does not receive them. Your project uses the Gemini API's unpaid (free) tier under the Gemini API Additional Terms of Service, which apply between you and Google (you must be 18 or older): Google may use free-tier prompts and responses to improve its products, and human reviewers may read them, so do not translate sensitive or personal information. Google sets a daily free limit for each project.

The access token and API key are held in memory only. The device keeps the chosen email address, the project identifier and a one-way hash of your Google account ID until you disconnected or cleared the app's data (version 1.0.35 deletes them); none of these were sent to UsefulFactory. TransChat's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements; that information is used only to set up and run this translation connection. You can also remove TransChat's access in your Google Account yourself. The project and its key stay in your Google account; you can delete the "Voice Translate Personal" project in the Google Cloud Console.

Translation and speech

Text that you choose to translate, including speech transcripts you confirm, is sent over HTTPS together with the target language and tone to the translation relay (see below).

Voice input is handled by the speech recognition service selected on your Android device; that provider may receive or process audio under its own terms. TransChat does not save raw audio.

Translation relay

UsefulFactory's translation relay translates for everyone (since October 27, 2026; before that, phones with the Google account connection above used the relay only when that connection could not be used).

Through the relay, the text (or the screen's text or picture) is sent over HTTPS with the target language and tone to the relay, which runs on Cloudflare Workers and translates it with Google's open Gemma model on Cloudflare Workers AI, inside Cloudflare. Under Cloudflare's Workers AI data usage terms, Cloudflare does not keep the text or the translation after answering the request (except where it must for security or legal obligations) and does not use them to train AI models; Google does not receive them. The relay does not store or log the text or its translation. It records only counts, token amounts, cost, timing and error codes.

Device check and translation balance

So that the relay is ready when it is needed, every install opens a relay session. On first launch the app creates a random install ID. It also calculates a device key, which is a one-way SHA-256 hash of the Android ID combined with an app-specific value; the relay hashes it again before storing it. About once a day the app sends the install ID, the device key, the app version and a Google Play Integrity token to the relay to start a session. Google Play Integrity tells the relay whether the app came from Google Play and runs on a genuine Android device; Google processes the device and app information for that check under its own policy.

The relay keeps the following to give each new device a free trial once, run rewarded-ad passes and subscriptions, prevent abuse (repeated trials, ad fraud, automated requests) and control cost:

Your IP address is used during each request to limit request rates and to check the country, and is not stored by the relay. Cloudflare may process connection data under the Cloudflare Privacy Policy.

Advertising

The free edition shows a small AdMob native ad on TransChat's main screen and, for translation through the relay, offers rewarded ads. After a rewarded ad, you can translate up to 30 times within 10 minutes. Before a rewarded ad is shown, the app passes your install ID and a one-time code from the relay to AdMob. When the ad is completed, the app sends that one-time code to the relay so that the pass starts at once, and AdMob sends the relay a signed notice with those two values, the ad unit, the reward, a timestamp and a transaction ID, which confirms it. If you tap a rewarded ad, the app tells the relay so that it can count clicks per device per day; once the clicks reach a daily limit, no more rewarded ads are offered that day, to prevent ad fraud. While ads cannot be shown, a launch event may offer the same pass without an ad; it is limited per device and recorded as above.

Google's advertising SDK collects and shares IP addresses (which can estimate approximate location), app and ad interactions, performance diagnostics, app-set and other applicable device or account identifiers for advertising, analytics and fraud prevention. TransChat removes the Android advertising ID permission; removing it does not stop the other SDK data collection. App code never gives chat text or speech transcripts to the advertising SDK. SDK traffic is encrypted using TLS. Where required, Google's consent screen appears before advertising, and privacy options are available in settings.

Monthly ad-free subscription

Google Play handles payment for an automatically renewing monthly subscription that removes ads and lifts the relay's translation limit. TransChat receives the purchase status, product identifier and signed receipt; it does not receive your card or bank details. The app checks active subscriptions of the Google Play account on the device, and sends the purchase token to the relay, which asks Google Play whether the subscription is active. One purchase is honored on up to five installs. Cancel in Google Play to stop future renewals; uninstalling does not cancel a subscription.

Invited devices (optional)

UsefulFactory can invite specific people to use TransChat without ads or translation limits. From version 1.0.35 an invitation uses the Support ID shown in TransChat's settings, which the invited person sends to UsefulFactory; the relay marks that device's record as invited. No Google account or email address is involved. The mark is kept as long as that device record (400 days after last use) or until UsefulFactory removes it.

Versions 1.0.30 to 1.0.34 had a "Check invited account" button instead: you chose a Google account and Google asked whether TransChat may see that account's email address (no other Google data was requested). The app sent the resulting one-time access token to the relay over HTTPS; the relay asked Google which verified email address the token belonged to, compared it with UsefulFactory's invite list and discarded the token. For a listed account a one-way SHA-256 hash of the email address was linked to the device's relay record, kept as above; nothing was kept for other accounts. The email address itself was not stored or logged.

Ratings, storage and deletion

After five successfully inserted translations, TransChat may request the official Google Play rating dialog when you next use the app's main screen. Google Play handles the stars and optional review text; TransChat is not told your rating or whether you submitted one. Only the success count and last request time are stored on the device.

The device keeps language, tone and consent choices, the install ID, the current relay session, the last known translation balance, and limited operation timing and error categories until you clear the app's data or uninstall it. Source text, translations and raw audio are not saved in app diagnostic files. All network requests use HTTPS. Relay records are deleted automatically after the periods above. To ask for earlier deletion, follow the steps on the data deletion page (copy the Support ID from TransChat's settings and email it to usefulsfactory@gmail.com).

Service providers and transfers outside Korea

To provide translation, UsefulFactory entrusts processing to the following companies. Data is sent over encrypted connections at the time of each request.

Recipient (country)DataPurposeRetention
Cloudflare, Inc. (United States; runs the relay near Seoul)For translation through the relay: text to translate, messages on screen or a picture of the message area (screen button), and the translation (translated with the Gemma model on Workers AI, not stored); install ID, hashed device key, balance records, IP addressRunning the translation relay and translatingAs listed above
Google LLC (United States)Play Integrity token; purchase token (Google Play Developer API); advertising data (AdMob); versions 1.0.30 to 1.0.34, invited accounts only: the Google sign-in access token, to confirm its email addressDevice check, subscription check, advertising, invited-account check (versions 1.0.30 to 1.0.34)Under Google's terms

In versions 1.0.32 to 1.0.34, translations on the Google account connection went directly from your device to Google LLC (United States) under your own agreement with Google, not through UsefulFactory.

If you do not agree to these transfers, do not use translation in TransChat; translation cannot be provided without them.

Children and changes

TransChat is intended for adults aged 18 or over. We update this policy and the Google Play Data safety disclosure when the app's data practices change. Google's privacy policy applies to its advertising, Play Integrity, Gemini API, Google Cloud and payment services: Google Privacy Policy.

Versions 1.0.29 to 1.0.31

These versions translated only through the relay and asked for a Google sign-in only for invited accounts. Versions before 1.0.29 used the Google account connection described above.

TransChat 개인정보처리방침

개발자: UsefulFactory
문의: usefulsfactory@gmail.com
수정일: 2026년 10월 30일

이 방침은 광고와 월 구독을 제공하는 Android 및 iOS TransChat에 적용됩니다. 아래 iOS 추가 안내는 키보드와 캡처 화면 기능을 설명하며, 이어지는 Android 버전 이력은 Android에만 적용됩니다. 2026년 10월 27일부터 TransChat은 UsefulFactory의 번역 중계 서버로 번역하며, 중계 서버는 Cloudflare Workers AI에서 Google의 공개 모델 Gemma로 번역합니다("번역 중계 서버" 참고). 1.0.35부터 TransChat은 Google에 로그인하지 않습니다. 1.0.32~1.0.34 버전이 제공하던 내 Google 계정의 무료 Gemini API 연결은 2026년 10월 27일에 꺼졌고 1.0.35에서 없어졌습니다("내 Google 계정 연결(1.0.32~1.0.34 버전)" 참고). 1.0.32부터는 두 번째 버튼을 누르면 화면의 메시지를 번역합니다("입력창, 화면 메시지 및 접근성 권한" 참고). UsefulFactory는 특정 기기를 초대해 광고와 제한 없이 쓰게 할 수 있습니다("초대 기기" 참고). 1.0.29~1.0.31 버전은 중계 서버로만 번역했습니다.

iOS 키보드·음성·캡처 화면 번역

iOS의 TransChat 키보드는 전체 접근으로 앱 설정을 공유하고, 요청한 입력창의 문장을 번역 서버로 보냅니다. 입력하는 모든 글을 기록하거나 메시지를 대신 전송하지 않습니다. 마이크와 음성 인식 권한을 허용하고 음성 번역을 사용하면 Apple 음성 인식 서비스가 음성을 처리하고 인식한 글을 번역 서버로 보냅니다. 앱에서 마이크 권한을 켜면 끄거나 iOS가 세션을 종료할 때까지 키보드에서 쓸 음성 세션을 백그라운드에 유지합니다. TransChat은 원본 음성을 저장하지 않습니다. 최근 음성 인식 결과는 공유 Keychain을 통해 키보드에 전달되며 다음 음성 결과로 바뀌거나 음성 세션을 끌 때 지워집니다.

화면 번역은 앱에서 안내에 동의하고 뒷면 탭 등에 연결한 Apple 단축어를 실행할 때만 동작합니다. 단축어가 캡처한 이미지의 글자를 아이폰에서 인식하고 새 글자만 번역 중계 서버로 보냅니다. TransChat은 스크린샷을 업로드하거나 사진 앱에 추가하지 않습니다. 캡처 이미지 위에 번역을 표시하며 다른 앱을 계속 감시하지 않습니다.

같은 문장을 다시 번역하지 않도록 번역문과 원문·언어·제한적인 채팅 문맥에서 만든 해시를 아이폰에 저장합니다. 이 캐시에 스크린샷은 저장하지 않습니다. 번역문은 최대 30일, 1,200개까지 재사용합니다. 기간이 지난 항목은 재사용하지 않고 이후 캐시 저장 때 제거합니다. 앱의 ‘저장된 번역 지우기’로 캐시 전체를 지울 수 있습니다. 캐시는 iOS 파일 보호를 적용하고 기기 백업에서 제외합니다. 앱을 삭제하면 캐시도 지워지지만 공유 Keychain 설정·기기 식별자·최근 음성 전달 상태는 재설치 후에도 남을 수 있습니다.

iOS 중계 서버는 무료 체험 보호와 남용 방지를 위해 무작위 설치·기기 식별자, Apple App Attest 공개키와 증명 카운터, Apple DeviceCheck를 사용합니다. 구독 확인에는 원 App Store 거래 식별자와 Apple의 구독 상태를 사용하며 Apple 계정 비밀번호나 결제 카드 정보는 받지 않습니다. 설치 기록은 마지막 사용 후 180일, App Attest 기록과 연결된 App Store 원 거래 참조는 마지막 새 증명 후 180일, 기기 체험 기록은 마지막 사용 후 400일, 보상 기록은 30일, 시간별 합계 사용량은 90일 뒤 제거합니다. 중계 서버는 입력 문장이나 번역문을 보관하지 않습니다. 앱에 표시된 지원 ID로 삭제를 요청할 수 있습니다. Apple이 관리하는 DeviceCheck 체험 표시는 앱 재설치로 초기화되지 않습니다.

무료 iOS 계정에는 필요한 동의 절차 뒤 Google AdMob 네이티브 광고와 선택형 보상형 광고를 제공할 수 있습니다. 맞춤형이 아닌 광고로 설정하고 추적 권한을 요청하거나 게시자 퍼스트 파티 광고 ID를 활성화하지 않습니다. AdMob은 Google 개인정보처리방침에 따라 기기·앱 식별자, IP에서 추정한 대략적 위치, 광고 상호작용 및 진단·성능 정보를 처리할 수 있습니다. 채팅 글자·스크린샷·음성 인식문은 광고 SDK에 전달하지 않습니다. 광고 이용권 확인에는 무작위 일회성 값과 중계 서버 설치 ID를 사용합니다. 선택형 월 구독은 Apple을 통해 구매·복원·관리하며 광고와 번역 횟수 제한을 없애 줍니다. 음성 인식·DeviceCheck·App Attest·App Store 결제에는 Apple 개인정보처리방침이 적용됩니다.

Android: 입력창, 화면 메시지 및 접근성 권한

플로팅 버튼을 누르거나 길게 누를 때 현재 선택한 편집 가능한 입력창의 초안만 읽고 번역문을 그곳에 입력합니다. 전송 버튼은 누르지 않습니다. 진단을 위해 입력창을 가진 앱의 패키지 이름과 제한적인 작업 상태를 기기 안에 저장하지만 UsefulFactory로 전송하지 않습니다.

1.0.32부터 두 번째 플로팅 버튼으로 화면의 채팅을 번역할 수 있습니다. 이 버튼을 누를 때만(처음에는 동의한 뒤) 그 순간 맨 앞 앱의 메시지 영역에 보이는 글을 읽습니다. 내가 보낸 메시지와 받은 메시지, 그리고 함께 표시된 이름·시간 같은 글이 포함되며, 각 글의 화면 위치와 함께 다른 번역과 같은 방식으로 Gemini API에 보냅니다("번역과 음성" 참고). 앱이 글자를 접근성에 제공하지 않으면 대신 메시지 영역을 찍은 사진을 보냅니다(Android 11 이상). Gemini API가 메시지만 골라 사용자의 언어로 번역하면 TransChat이 번역문을 화면의 메시지 위에 표시합니다. 버튼을 누르기 전에는 화면을 읽지 않습니다. 번역이 표시된 동안에는 번역을 각 메시지 위에 유지하기 위해 스크롤할 때 기기 안에서 메시지 영역을 다시 읽으며, 이렇게 읽은 글은 어디로도 보내지 않습니다. 중계 서버와 앱 모두 글·사진·번역문을 저장하지 않습니다. 이미 번역한 메시지를 다시 보내지 않도록 서비스가 실행되는 동안 최근 번역만 메모리에 둡니다. 번역마다 원문을 대신 보여 주는 버튼이 있습니다. 앱이 보호하는 화면은 읽거나 번역할 수 없습니다.

내 Google 계정 연결(1.0.32~1.0.34 버전)

이 연결은 2026년 10월 27일에 모든 국가에서 꺼졌고 1.0.35 버전에서 없어졌습니다. TransChat은 더 이상 Google에 로그인하거나 사용자의 Google Cloud 프로젝트를 쓰지 않습니다. 연결했던 휴대폰에서 1.0.35 이상을 처음 열면 Google에 그 계정의 TransChat 접근 권한을 취소해 달라고 요청하고, 기기에 저장된 이메일 주소·프로젝트 식별자·계정 해시를 지웁니다. 이 절의 나머지는 그 버전들에서 연결이 작동하던 방식입니다.

연결이 켜져 있을 때는 번역하려면 TransChat이 Google 계정 연결을 요청했습니다. 사용자가 계정을 고르면 Google이 TransChat에 이메일 주소를 보여 주고 Google Cloud 데이터를 관리하게 할지(Google Cloud 권한) 묻습니다. 이 권한으로 TransChat은 사용자 계정에 "Voice Translate Personal"이라는 전용 프로젝트를 하나 만들고(이전에 만든 프로젝트가 있으면 다시 사용), 그 프로젝트에서 Gemini API·Cloud Billing API·API Keys API를 사용 설정하며, 이 Android 앱만 Gemini 텍스트 생성에만 쓸 수 있는 API 키를 하나 만들고, 짧은 시험 문장 하나를 번역합니다. 번역할 때마다 결제 계정이 연결되지 않았는지 확인합니다. 다른 프로젝트는 바꾸지 않으며 결제를 연결하지 않습니다.

이후 번역은 기기에서 사용자 프로젝트의 Gemini API로 HTTPS를 통해 바로 전송되며 UsefulFactory는 받지 않습니다. 사용자 프로젝트는 사용자와 Google 사이에 적용되는 Gemini API 추가 서비스 약관에 따라 Gemini API 무료 등급을 사용합니다(만 18세 이상). Google은 무료 등급의 입력과 출력을 제품 개선에 사용할 수 있고 검토자가 읽을 수 있으니 민감한 정보나 개인 정보는 번역하지 마세요. 무료 사용량에는 Google이 프로젝트마다 정한 하루 한도가 있습니다.

액세스 토큰과 API 키는 메모리에만 둡니다. 선택한 이메일 주소, 프로젝트 식별자, Google 계정 ID를 단방향 변환한 해시는 연결을 해제하거나 앱 데이터를 지울 때까지 기기에 남았고(1.0.35가 지웁니다) UsefulFactory로 보내지 않았습니다. Google API에서 받은 정보는 제한적 사용(Limited Use) 요구사항을 포함한 Google API 서비스 사용자 데이터 정책을 준수해 이 번역 연결을 만들고 쓰는 데만 사용합니다. Google 계정에서 TransChat 접근을 직접 취소할 수도 있습니다. 프로젝트와 키는 Google 계정에 남으며 Google Cloud 콘솔에서 "Voice Translate Personal" 프로젝트를 삭제할 수 있습니다.

번역과 음성

사용자가 번역을 요청한 문장(확인한 음성 인식 문장 포함)은 대상 언어·말투와 함께 HTTPS로 번역 중계 서버에 전송됩니다(아래 참고).

음성은 기기에서 선택된 음성 인식 서비스가 처리하며 해당 제공자의 정책이 적용될 수 있습니다. 앱은 원본 음성을 저장하지 않습니다.

번역 중계 서버

UsefulFactory의 번역 중계 서버는 모든 사용자의 번역을 맡습니다(2026년 10월 27일부터; 그 전에는 위의 Google 계정 연결을 한 휴대폰은 그 연결을 쓸 수 없을 때만 중계 서버를 썼습니다).

중계 서버를 통할 때는 문장(또는 화면의 글이나 사진)이 대상 언어·말투와 함께 HTTPS로 중계 서버에 전송됩니다. 중계 서버는 Cloudflare Workers에서 실행되며 Cloudflare Workers AI에서 Google의 공개 모델 Gemma로 번역합니다(Cloudflare 안에서 처리). Cloudflare의 Workers AI 데이터 사용 정책에 따라 Cloudflare는 요청에 답한 뒤 문장과 결과를 보관하지 않으며(보안·법적 의무로 필요한 경우 제외) AI 모델 학습에 쓰지 않습니다. Google은 이를 받지 않습니다. 중계 서버는 번역 문장과 결과를 저장하거나 기록하지 않고, 횟수·토큰 수·비용·처리 시간·오류 코드만 기록합니다.

기기 확인과 번역권

필요할 때 중계 서버를 바로 쓸 수 있도록 모든 설치는 중계 세션을 엽니다. 앱은 처음 실행할 때 무작위 설치 ID를 만들고, Android ID에 앱 고유 값을 더해 SHA-256으로 단방향 변환한 기기 키를 계산합니다. 중계 서버는 이 기기 키를 한 번 더 해시해 저장합니다. 하루 한 번 정도 설치 ID·기기 키·앱 버전·Google Play Integrity 토큰을 중계 서버에 보내 세션을 받습니다. Google Play Integrity는 앱이 Google Play에서 설치되었고 정상 Android 기기에서 실행되는지 알려 주며, 이 확인을 위한 기기·앱 정보는 Google 정책에 따라 처리됩니다.

중계 서버는 새 기기에 무료 체험을 한 번만 제공하고, 보상형 광고 이용권과 구독을 운영하며, 악용(체험 반복, 광고 부정, 자동 요청)을 막고 비용을 관리하기 위해 다음을 보관합니다.

IP 주소는 요청마다 요청 빈도 제한과 국가 확인에 사용하며 중계 서버에 저장하지 않습니다. Cloudflare는 Cloudflare 개인정보처리방침에 따라 접속 정보를 처리할 수 있습니다.

광고

무료 버전은 TransChat 메인 화면에 작은 AdMob 네이티브 광고를 표시하고, 중계 서버로 번역할 때는 보상형 광고를 제공합니다. 보상형 광고를 끝까지 보면 10분 동안 최대 30회 번역할 수 있습니다. 보상형 광고를 띄우기 전에 앱은 설치 ID와 중계 서버가 발급한 1회용 값을 AdMob에 전달합니다. 광고가 끝나면 앱이 이 1회용 값을 중계 서버에 보내 이용권을 바로 시작하고, AdMob이 두 값과 광고 단위·보상·시각·거래 ID를 서명해 중계 서버로 보내 이를 확인합니다. 보상형 광고를 누르면 앱이 이를 중계 서버에 알려 기기별 하루 클릭 수를 세고, 클릭이 하루 한도에 이르면 광고 부정을 막기 위해 그날은 보상형 광고를 더 제공하지 않습니다. 광고를 표시할 수 없는 기간에는 출시 이벤트로 광고 없이 같은 이용권을 제공할 수 있으며, 기기별로 횟수를 제한하고 위와 같이 기록합니다.

Google 광고 SDK는 광고·분석·부정행위 방지를 위해 IP 주소(대략적인 위치 추정 가능), 앱·광고 상호작용, 성능 진단 정보, 앱 세트 및 해당되는 기기·계정 식별자를 수집·공유합니다. TransChat은 Android 광고 ID 권한을 제거하지만 다른 SDK 데이터 수집까지 중단되는 것은 아닙니다. 앱 코드는 채팅 원문이나 음성 인식 문장을 광고 SDK에 전달하지 않습니다. SDK 통신은 TLS로 암호화되며 필요한 지역에서는 광고 전에 Google 동의 화면을 표시하고 설정에서 개인정보 선택을 변경할 수 있습니다.

월 광고 제거 구독

광고를 없애고 중계 서버의 번역 횟수 제한을 풀어 주는 월 자동 갱신 구독은 Google Play가 결제를 처리합니다. 앱은 구매 상태·상품 식별자·서명된 영수증을 받으며 카드나 계좌정보를 받지 않습니다. 앱은 기기의 Google Play 계정에 활성 구독이 있는지 확인하고, 구매 토큰을 중계 서버에 보내 중계 서버가 Google Play에 구독 상태를 다시 확인합니다. 구매 하나는 설치 5개까지 인정됩니다. 다음 결제를 중단하려면 Google Play에서 구독을 해지하세요. 앱 삭제로 구독이 해지되지는 않습니다.

초대 기기(선택)

UsefulFactory는 특정 사용자를 초대해 광고와 번역 횟수 제한 없이 TransChat을 쓰게 할 수 있습니다. 1.0.35부터는 초대받은 사람이 TransChat 설정에 보이는 지원 ID를 UsefulFactory에 보내면, 중계 서버가 그 기기 기록에 초대 표시를 합니다. Google 계정이나 이메일 주소는 쓰지 않습니다. 이 표시는 기기 기록과 같은 기간(마지막 사용 후 400일) 또는 UsefulFactory가 지울 때까지 보관합니다.

1.0.30~1.0.34 버전에는 대신 "초대 계정 확인" 버튼이 있었습니다. Google 계정을 고르면 Google이 TransChat에 그 계정의 이메일 주소를 보여 줄지 물었고(다른 Google 데이터는 요청하지 않음), 앱은 이렇게 받은 1회용 액세스 토큰을 HTTPS로 중계 서버에 보냈습니다. 중계 서버는 Google에 토큰의 확인된 이메일 주소를 물어 초대 목록과 비교한 뒤 토큰을 버렸습니다. 목록에 있는 계정은 이메일 주소를 SHA-256으로 단방향 변환한 값을 기기의 중계 서버 기록에 연결해 위와 같은 기간 보관했고, 다른 계정은 아무것도 남기지 않았습니다. 이메일 주소 자체는 저장하거나 기록하지 않았습니다.

별점, 보관 및 삭제

번역문 입력이 5회 성공한 뒤 앱 메인 화면을 이용할 때 Google Play 공식 별점 창을 요청할 수 있습니다. 선택한 별점과 리뷰는 Google Play가 처리하며 앱에는 별점이나 제출 여부가 전달되지 않습니다. 성공 횟수와 마지막 요청 시각만 기기에 저장합니다.

언어·말투·동의 설정, 설치 ID, 현재 중계 세션, 마지막으로 확인한 번역권, 제한적인 작업 시간·오류 종류는 앱 데이터를 지우거나 앱을 삭제할 때까지 기기에 남습니다. 원문·번역문·원본 음성은 앱 진단 파일에 저장하지 않습니다. 모든 통신에 HTTPS를 사용합니다. 중계 서버 기록은 위 기간이 지나면 자동으로 삭제됩니다. 더 빨리 삭제하려면 데이터 삭제 안내대로 TransChat 설정의 지원 ID를 복사해 usefulsfactory@gmail.com으로 보내 주세요.

개인정보 처리위탁 및 국외 이전

UsefulFactory는 번역 제공을 위해 아래 회사에 개인정보 처리를 위탁하며, 정보는 요청할 때마다 암호화된 네트워크로 전송됩니다.

이전받는 자(국가)이전 항목목적보유 기간
Cloudflare, Inc.(미국, 서울 인근에서 중계 서버 실행)중계 서버로 번역할 때: 번역할 문장, 화면 메시지 또는 메시지 영역 사진(화면 번역 버튼)과 결과(Workers AI의 Gemma 모델로 번역, 저장하지 않음). 설치 ID, 해시한 기기 키, 번역권 기록, IP 주소번역 중계 서버 운영과 번역위에 적은 기간
Google LLC(미국)Play Integrity 토큰, 구매 토큰(Google Play Developer API), 광고 데이터(AdMob), 1.0.30~1.0.34 버전의 초대 계정만: 이메일 주소 확인용 Google 로그인 액세스 토큰기기 확인, 구독 확인, 광고, 초대 계정 확인(1.0.30~1.0.34 버전)Google 약관에 따름

1.0.32~1.0.34 버전에서 내 Google 계정 연결로 하던 번역은 UsefulFactory를 거치지 않고 사용자와 Google 사이의 약관에 따라 기기에서 Google LLC(미국)로 바로 전송됐습니다.

국외 이전에 동의하지 않으면 TransChat의 번역 기능을 사용하지 마세요. 이전 없이는 번역을 제공할 수 없습니다.

연령 및 변경

TransChat은 만 18세 이상을 대상으로 합니다. 데이터 처리 방식이 바뀌면 이 방침과 Google Play 데이터 보안 정보를 갱신합니다. 광고·Play Integrity·Gemini API·Google Cloud·결제 서비스에는 Google 개인정보처리방침이 적용됩니다.

1.0.29~1.0.31 버전

이 버전들은 중계 서버로만 번역했고 초대 계정에만 Google 로그인을 요청했습니다. 1.0.29 이전 버전은 위에 적은 Google 계정 연결을 사용했습니다.