이전 판(보관용) 적용 기간: 2026-10-12 ~ 2026-10-19. 현재 게시 중인 방침은 덕 하버 개인정보처리방침에 있습니다.
Archived version in effect from 2026-10-12 to 2026-10-19. The current policy is at Duck Harbor Privacy Policy.
過去の版(保存用) 適用期間: 2026-10-12〜2026-10-19。現在掲載しているポリシーはDuck Harbor プライバシーポリシーにあります。
덕 하버는 고무 오리와 고무보트를 움직이는 퍼즐 게임이며, 어린이를 포함한 모든 연령을 위한 앱입니다. 처음 실행할 때 태어난 해를 묻고, 그 답에 따라 어린이와 청소년의 광고와 통계를 더 보호되는 방식으로 처리합니다(2장, 6장).
앱을 처음 켜면 게임에 들어가기 전에 태어난 해를 묻습니다. 네 자리 숫자를 직접 입력하며, 미리 채워진 값은 없습니다.
다음 정보는 앱을 쓰는 동안 앱과 앱에 들어 있는 SDK, 당사의 서버 기능이 자동으로 처리합니다. 문의 메일, 계정 연결, 기기 옮기기 코드는 이용자가 직접 할 때만 처리합니다. 「이 기능이 들어간 버전부터」라고 적은 항목은 그 기능이 들어간 앱 버전을 쓸 때부터 해당합니다.
| 항목 | 처리 방식과 목적 | 기기 밖 전송 |
|---|---|---|
| 게임 진행 기록과 설정 | 레벨 진행, 코인과 아이템 수, 구매 기록(상품 ID, 거래 ID, 금액과 통화, 시각), 소리와 진동 설정을 기기 안 앱 전용 저장 공간의 파일에 저장합니다. 기기의 백업 기능(Google 계정 또는 Apple iCloud)이 켜져 있으면 운영체제가 이 파일을 이용자 본인의 백업에 포함시킬 수 있으며, 당사는 그 백업에 접근할 수 없습니다. | 파일 자체는 보내지 않음(태어난 해를 뺀 사본은 아래 클라우드 저장으로, 판 번호, 코인과 아이템 수 같은 값은 아래 앱 사용 통계로 전송) |
| 태어난 해(연령 확인의 답) | 광고와 통계 서비스의 설정을 고르는 데에만 씁니다. 월, 일, 이름은 받지 않으며 위 저장 파일에만 남고, 클라우드 저장 사본에도 넣지 않습니다. 답한 시각과 그때의 앱 버전이 함께 적힙니다. | 없음(서비스에는 연령대에서 나온 설정만 전달) |
| 앱 사용 통계 | Google의 Firebase Analytics가 게임을 고치고, 게임 진행과 구매와 광고 시청을 파악하고, 부정 이용(치트)을 찾아내는 데 쓸 통계를 집계합니다. 성인 이용자의 통계는 광고 성과 측정과 맞춤 광고에도 쓰일 수 있습니다(아래와 4장). 대상은 판 시작과 종료(판 번호와 판 ID, 결과, 시도 횟수, 걸린 시간, 게임 안에서 흐른 시간, 보트 수, 터치 횟수와 간격, 가장 길게 멈춘 시간, 이어하기 횟수와 그중 광고로 이어한 횟수, 아이템 사용 횟수), 이어하기(수단: 아이템, 코인, 광고), 코인 획득과 사용(유료와 무료 구분, 이유, 쓴 곳인 아이템 이름, 바뀐 뒤의 유료와 무료 잔액, 그때의 판 번호), 아이템 사용(남은 개수, 막힌 판에서 썼는지)과 사용이 거절된 이유, 광고를 띄운 결과(형식, 자리, 끝까지 봤는지), 광고 노출 수익(광고 회사 이름, 형식, 자리, 수익 금액과 통화), 구매 지급 기록(상품 ID, 복원 여부, 지급한 코인 수, 금액과 통화, 누적 구매 횟수), 결제 단추를 누른 기록(상품 ID, 스토어가 알려 준 가격과 통화, 그때의 판 번호, 광고 끄기 창에서 눌렀다면 그 창을 홈의 단추로 열었는지 첫 광고 뒤에 저절로 떴는지)과 결제가 끝나지 않은 결과(취소, 보류, 실패 같은 결과의 종류와 이유를 나타내는 짧은 낱말), 앱을 켤 때의 상태(유료와 무료 코인 잔액, 판 번호, 가방에 든 아이템 개수, 누적 구매 횟수), 광고(또는 광고 직전 안내 카드)가 화면에 떠 있는 도중에 앱이 꺼진 것으로 추정될 때 다음에 앱을 켜면 보내는 기록(광고 형식과 자리, 판 번호, 광고 중이었는지 직전 카드였는지, 꺼진 뒤 다시 켤 때까지 걸린 시간, 광고 회사가 그 노출의 수익 신호를 보냈는지와 그 금액과 통화), 화면 조회, 저장 파일 상태(새로 시작, 불러옴, 복구, 손상), 부정 이용 의심 신호(게임 안 시간이 실제 시간보다 빠르게 흐름, 게임 규칙상 불가능하게 빠른 클리어, 코인 잔액이 장부와 맞지 않음, 결제 기록 없는 유료 코인, 이기지 않고 오른 레벨, 기기 시계 되돌림 같은 신호의 종류와 잰 값)이고, 클라우드 저장과 서버 기능이 들어간 버전부터는 서버 기능(결제 확인, 기기 옮기기, 계정 연결, 클라우드 기록 지우기)을 부를 때의 기록(어느 기능인지, 걸린 시간, 성공 또는 실패의 종류를 나타내는 짧은 낱말, 앱을 켠 뒤 첫 호출인지, 호출 도중 앱이 뒤로 갔는지, 와이파이인지 데이터 통신인지, 앱 체크 토큰을 받는 데 걸린 시간)과 클라우드 저장 사본을 올리거나 받을 때의 기록(걸린 시간, 성공 또는 실패의 종류, 첫 시도인지, 도중에 앱이 뒤로 갔는지, 연결 종류, 두 기기의 기록이 엇갈렸는지)도 들어갑니다. 이용자 단위 속성으로 닿은 가장 높은 레벨, 구매한 적이 있는지, 광고 제거 상품이 있는지, 마지막 의심 신호의 종류와 지원 번호가 함께 기록됩니다. 지원 번호는 앱이 무작위로 만들어 기기의 저장 파일에 적어 두는 8글자 번호이며, 번호 자체에는 이름, 이메일 주소, 기기 번호가 들어 있지 않습니다. 번호는 설치가 아니라 저장 파일을 따라갑니다. 앱을 지우고 다시 설치하거나 앱 데이터를 지우면 새 번호가 생기지만, 기기 백업에서 저장 파일이 복원되면 이전 번호가 이어질 수 있습니다. 클라우드 저장이 켜지면 이 번호도 사본에 함께 들어가므로, 만 16세 이상 이용자가 계정을 연결했다면 당사는 이 번호로 연결한 계정의 이메일 주소를 찾을 수 있습니다. 이용자가 문의하면서 이 번호를 알려 주신 경우에만, 당사가 그 번호로 해당 이용자의 통계와 클라우드 기록을 찾아 문제를 확인하거나 삭제 요청(8장)을 처리하는 데 씁니다. 이 번호를 기록을 다른 기기로 옮기거나 되찾는 열쇠로는 쓰지 않습니다. 설치마다 자동으로 만들어지는 앱 인스턴스 ID, 앱 버전, 기기 모델, 운영체제 버전, 언어가 함께 수집되고, IP 주소로부터 국가나 도시 수준의 대략적인 위치가 유추됩니다. Firebase가 자동으로 모으는 기본 이벤트(첫 실행, 세션 시작, 앱 업데이트, 앱 안 구매 완료 등)와 설치 출처 정보도 들어갈 수 있습니다. 광고 ID와 광고 목적의 사용은 성인에게만 허용합니다. 만 18세 미만이거나 나이를 알 수 없는 이용자는 앱을 실행할 때마다 통계의 광고 목적 설정(광고 저장, 광고용 사용자 데이터, 광고 개인화)을 거부로 두어, 광고 ID를 모으지 않고 Google 신호, 리마케팅, 맞춤 광고에 쓰지 않습니다. 성인은 동의가 필요 없는 지역에서 이 설정을 허용하고(광고 ID 수집 포함), 동의가 필요한 지역(유럽경제지역, 영국, 스위스)에서는 동의 창의 선택을 따릅니다(9장). 태어난 해를 답한 뒤에 시작합니다. | |
| 오류 정보 | Google의 Firebase Crashlytics가 앱이 비정상 종료하거나 오류를 만났을 때 오류 스택, 그 순간의 앱 상태, 기기 제조사와 모델, 운영체제 버전, 메모리, 네트워크 연결 유형 같은 기술 정보와 설치 단위 식별자를 받습니다. 앱이 함께 붙이는 것은 현재 판 번호, 화면 이름, 아이템 사용 같은 짧은 진행 기록뿐입니다. 앱을 켠 직후부터, 태어난 해를 답하기 전에도 동작합니다. | |
| 원격 설정 | Google의 Firebase Remote Config로 광고 표시 간격, 코인 보상량 같은 게임 수치를 내려받습니다. 이때 설치 식별자, 앱 식별 정보(앱 ID, 패키지 이름), 국가, 언어, 시간대, 운영체제 버전이 Google에 전달됩니다. 태어난 해를 답한 뒤에 시작합니다. | |
| 광고 | Google AdMob이 광고를 요청하고 보여주고 성과를 재고 부정 이용을 막기 위해 IP 주소(기기의 대략적인 위치를 유추하는 데 쓰일 수 있습니다), 기기 정보(모델, 운영체제, 언어, 네트워크 상태), 광고 노출과 상호작용 정보(앱 실행, 터치, 동영상 시청), 진단 정보, 기기 식별자(광고 ID, 앱 세트 ID 등)를 처리합니다. 화면 전체를 쓰는 전면 광고와 이용자가 골라서 보는 보상형 광고가 있습니다. 만 16세 미만이거나 나이를 알 수 없는 이용자에게는 어린이용 처리를 적용해 광고 식별자를 보내지 않고 개인 맞춤 광고를 끕니다(6장). 성인에게는 Google이 광고 식별자를 기준으로 앱 이용 활동 정보를 처리해 관심 기반(맞춤) 광고를 보여줄 수 있으며, 동의가 필요한 지역에서는 동의한 경우에만 맞춤 광고가 켜집니다. 안드로이드와 iOS 모두 Google AdMob이 광고를 보여줍니다. iOS에서는 만 18세 이상 성인에게만 앱 추적 허용 창을 띄우며, 성인이 허용한 경우에만 광고 ID(IDFA)를 맞춤 광고에 씁니다. 만 18세 미만이거나 나이를 알 수 없는 이용자에게는 이 창을 띄우지 않고 광고 ID를 읽지 않습니다. | Google(과 그 광고 파트너) |
| 구매 정보 | 안드로이드는 Google Play 결제, iOS는 Apple App Store 결제가 코인 묶음 같은 인앱 구매를 처리합니다. 당사는 카드 번호 같은 결제 수단 정보를 받지 않습니다. Google Play는 구매 처리를 위해 구매자의 이름과 이메일 주소 같은 정보를 당사에 제공할 수 있으며, 당사는 이를 구매, 환불, 문의를 처리하는 데에만 씁니다. 구매를 게임에 반영하려고 앱이 상품 ID, 거래 ID, 금액과 통화, 시각, 복원 여부를 기기에 기록하고, 상품 ID, 지급 결과, 금액과 통화, 누적 구매 횟수는 앱 사용 통계에도 들어갑니다. 클라우드 저장과 서버 기능이 들어간 버전부터는 유료 코인을 지급하기 전에 당사 서버가 구매를 확인합니다(바로 아래 항목). 성인 이용자의 구매는 광고 성과를 재기 위해 Google Ads에 전환으로 전달될 수 있습니다(4장). | Google Play 또는 Apple |
| 결제 확인과 결제 기록(이 기능이 들어간 버전부터) | 코인 묶음 같은 상품을 사면, 앱이 상품을 주기 전에 스토어가 준 구매 영수증(Google Play의 구매 토큰, iOS는 Apple이 서명한 거래 정보)과 스토어가 알려 준 가격과 통화를 당사 서버로 보내고, 서버가 스토어에 그 구매를 확인한 뒤 유료 코인을 지급합니다. Google Play 결제를 시작할 때는 계정 번호를 알아볼 수 없게 바꾼 값을 결제 요청에 함께 붙여, 그 결제가 이 계정의 것인지 확인합니다. 서버는 영수증 원문을 저장하지 않으며, 같은 결제가 두 번 지급되지 않도록 영수증을 알아볼 수 없게 바꾼 값으로만 가립니다. 서버가 결제마다 보관하는 것은 주문 번호, 상품, 수량, 지급한 유료 코인과 무료 코인과 아이템, 결제 일시, 결제한 나라, 가격과 통화, 시험 결제인지, 그 결제분 중 아직 쓰지 않은 유료 코인 수, 환불 여부입니다. 계정마다 유료 코인 잔액, 환불 뒤 이미 써 버린 몫, 유료 코인을 쓴 기록(코인 수, 쓴 곳, 시각. 앱이 모아 두었다가 다음에 사본을 올릴 때 함께 보냅니다), 한 번만 살 수 있는 상품(광고 끄기, 첫 항해 꾸러미)을 샀는지, 환불된 결제의 코인을 거둘 지시도 보관합니다. 목적은 유료 코인을 정확히 지급하고 기기를 옮겨도 지키는 것, 위조 영수증과 중복 지급을 막는 것, 환불과 청약철회를 처리하는 것, 법이 정한 거래 기록을 보관하는 것입니다. 환불은 Google Play가 보내는 환불과 취소 알림, 환불 목록으로 확인해 그 결제의 유료 코인을 거두며, 이미 써 버린 몫은 다음에 사는 유료 코인에서 먼저 메웁니다. 폰을 바꾸는 중에 로그인이 사라지는 것처럼 계정이 새로 묶여 산 유료 코인이 보이지 않을 때는, 이용자가 문의하시면 영수증의 주문 번호로 이전 계정의 결제 기록을 찾아 지금 계정으로 옮겨 드립니다. 이 일은 운영자가 서버에서 직접 하며, 문의 메일에 적힌 주문 번호와 지금 계정을 찾을 수 있는 지원 번호 같은 단서만 씁니다. 서버는 이용자의 나이를 모르며, 결제는 모든 연령에 같습니다. | 당사 서버(Google Cloud, 서울)와 Google Play 또는 Apple |
| 클라우드 저장(이 기능이 들어간 버전부터) | 레벨 6에 닿거나, 처음 결제하거나, 설정 창의 「기기 옮기기」를 열면 Google Firebase Authentication이 익명 계정을 만듭니다. 익명 계정은 이름이나 이메일 주소가 없는 무작위 계정 번호이며, 이용자가 따로 할 일은 없습니다. 계정을 만들고 로그인할 때 Firebase Authentication이 보안과 남용 방지를 위해 IP 주소를 기록합니다. 그 뒤로 판이 끝날 때, 앱을 내릴 때, 결제한 직후에(바뀐 것이 있을 때만, 너무 자주 올리지 않도록 간격을 두고) 저장 파일의 사본을 당사의 Cloud Firestore(Google Cloud, 서울)에 올리고, 앱을 켤 때 한 번 읽어 옵니다. 사본에는 레벨 진행과 판 결과 누계, 무료 코인과 아이템 수, 매일 선물, 미션, 연속 기록, 행사 참여 같은 게임 안 기록, 광고를 본 횟수와 시각, 안내와 평가 요청을 띄운 기록, 기기 시계를 확인하는 시각 기록, 소리와 진동 설정, 저장 파일을 만들고 고친 시각, 지원 번호가 들어갑니다. 사본과 함께 계정 번호, 이 계정을 지금 쓰는 기기를 가리는 무작위 값(기기 고유 번호가 아님), 운영체제 종류, 앱 버전, 저장 형식 번호, 올린 시각, 손상을 알아보는 확인 값이 저장됩니다. 태어난 해, 유료 코인, 결제 기록은 사본에 넣지 않습니다(유료 코인과 결제 기록은 위 결제 확인과 결제 기록 항목). 목적은 새 기기로 기록을 옮기고, 앱을 다시 설치했을 때 기록을 되살리는 것입니다. 다른 이용자는 이 사본을 읽거나 쓸 수 없으며, 광고나 마케팅에 쓰지 않습니다. 이용자가 설정 창에서 「클라우드 기록 지우기」를 누르면 클라우드 저장이 꺼지고, 설정 창의 「클라우드 다시 켜기」를 누르거나 결제를 시작할 때까지(결제에는 계정이 필요해서, 앱이 안내한 뒤 다시 켭니다) 새 익명 계정을 만들지 않으며 사본도 올리지 않습니다. 만 16세 미만이거나 나이를 알 수 없는 이용자에게도 같게 동작합니다(6장). | Google(사본은 서울에 보관, 계정은 미국에서 처리) |
| 기기 옮기기 코드(이 기능이 들어간 버전부터, 이용자가 쓸 때만) | 옛 기기의 「기기 옮기기」에서 코드를 만들면 당사 서버가 12글자 코드를 만들어 한 번 보여 줍니다. 서버에는 코드 원문 대신 비밀 키를 섞어 알아볼 수 없게 바꾼 값과, 그 코드를 만든 계정과 쓴 계정, 만든 시각과 쓴 시각, 기한(7일), 코드의 상태만 남깁니다. 새 기기에서 코드를 넣으면 서버가 옮겨 올 기록의 레벨과 코인 합계를 먼저 알려 주고(이 기기의 기록이 더 앞서 있으면 옮길지 한 번 묻습니다), 옮기면 계정이 새 기기로 넘어갑니다. 옛 기기는 다음에 앱을 켤 때 「다른 기기로 옮겨졌어요」라고 알리고 기기 안 기록을 비운 뒤 연령 확인부터 다시 시작합니다(같은 코인이 두 기기에서 쓰이지 않게). 틀린 코드를 되풀이해 넣는 것을 막으려고 계정마다 시도 횟수를 셉니다. | Google(서울) |
| Google 또는 Apple 계정 연결(이 기능이 들어간 버전부터, 만 16세 이상이 원할 때만) | 설정 창의 「기기 옮기기」에서 Google 계정(iOS에서는 Apple 계정도)으로 로그인하면, 그 계정이 지금 쓰는 익명 계정에 묶입니다. 이때 Google Firebase Authentication이 그 로그인 서비스가 알려 주는 이메일 주소(Apple에서 「나의 이메일 가리기」를 고르면 Apple이 만든 전달용 주소)와 이름 같은 기본 프로필 정보, 그 계정의 고유 번호를 보관합니다. 목적은 폰을 잃거나 바꿨을 때 새 기기에서 같은 계정으로 로그인해 기록을 되찾는 것뿐이며, 이메일 주소로 연락하거나 광고에 쓰지 않습니다. 되찾을 때는 로그인 서비스가 준 확인 정보를 당사 서버가 받아 진짜인지 확인하고 묶인 기록을 찾는 데에만 쓰며 저장하지 않습니다. Google과 Apple의 로그인 토큰은 당사 서버에 보관하지 않습니다. 한 계정에는 Google 계정과 Apple 계정 중 하나만 연결할 수 있고, 하나를 연결하면 연결 단추 대신 연결된 계정이 표시됩니다. 한 계정은 한 기기에서만 쓸 수 있어서, 다른 기기에서 되찾으면 원래 기기는 다음에 켤 때 처음부터 시작합니다(되찾기 전에 한 번 묻습니다). 만 16세 미만이거나 나이를 알 수 없는 이용자에게는 연결 단추가 보이지 않고 로그인 기능도 켜지지 않습니다. 로그인하지 않아도 게임의 모든 기능을 쓸 수 있습니다. | Google(미국에서 처리), Apple로 로그인을 쓰면 Apple |
| 서버 요청 기록과 진짜 앱 확인(이 기능이 들어간 버전부터) | 앱이 클라우드 저장과 서버 기능을 쓸 때, Firebase App Check가 그 요청이 진짜 앱과 기기에서 왔는지 Google Play(iOS는 Apple)의 기기 무결성 확인으로 가립니다. 확인 자료는 보관하지 않으며, 결제 확인처럼 한 번만 써야 하는 요청의 확인 토큰은 최대 30일 보관합니다. 서버 기능을 부르면 Google Cloud가 요청 기록(시각, 부른 기능, 결과를 담고, 요청한 기기의 IP 주소가 들어갈 수 있습니다)을 남기며, 30일이 지나면 자동으로 지워집니다. | |
| 문의 메일(이용자가 보낼 때만) | 설정 창의 「문의하기」를 누르면 이용자의 메일 앱이 열리고 본문에 앱 버전, 현재 판 번호와 판 ID, 기기 모델, 운영체제 버전, 언어, 지원 번호가 미리 적힙니다(지원 번호는 설정 창에도 보이며 누르면 복사됩니다). 보내기 전에 화면에서 확인하고 지울 수 있으며, 이용자가 직접 보낼 때만 이용자의 메일 계정으로 당사에 전달됩니다. 이때 이용자의 메일 주소와 쓴 내용이 당사에 보이며, 문의에 답하고 문제를 조사하는 데에만 씁니다. 결제나 환불 같은 거래에 관한 불만과 분쟁을 처리한 기록은 법에 따라 3년 보관합니다(7장). 다만 어린이가 보냈다고 밝히거나 보호자가 그렇게 알려 온 메일의 메일 주소는 이 기록에도 남기지 않고 답한 뒤 지체 없이 삭제합니다(6장). | 이용자가 보낼 때만 |
위 정보는 표에 적은 목적에만 쓰고 그 밖의 목적에는 쓰지 않습니다. 이름, 이메일 주소, 전화번호, 주소, 정확한 위치, 사진, 연락처, 마이크와 카메라 자료는 받지 않습니다. 예외는 이용자가 문의 메일을 직접 보낼 때의 메일 주소와 내용, 만 16세 이상 이용자가 계정을 연결할 때 로그인 서비스가 알려 주는 이메일 주소와 이름뿐입니다. 앱의 판(안드로이드, iOS)과 버전에 따라 일부 서비스는 포함되지 않을 수 있으며, 이 방침은 실제로 포함된 서비스에 적용됩니다. 당사는 사상, 신념, 병력처럼 개인의 사생활을 침해할 우려가 있는 민감한 정보를 수집하지 않습니다.
당사는 다음의 개인정보를 이용자의 동의를 받지 않고 처리합니다. 기기 안의 저장 파일(게임 진행 기록, 설정, 태어난 해)은 앱을 삭제하면 기기에서 함께 삭제됩니다. 태어난 해는 외부로 전송되지 않으며, 저장 파일의 나머지는 클라우드 저장이 켜진 뒤 사본으로만 전송됩니다(이 장의 클라우드 저장 항목).
아래는 앱에 들어 있는 제3자 서비스(SDK)와, 당사가 클라우드 저장, 서버 기능, 분석 데이터 보관에 쓰는 서비스(Google Firebase와 Google BigQuery)입니다. SDK는 이용자의 기기에서 정보를 직접 수집해 각 회사로 보내는 자동 수집 장치이며, 앱 사용 활동을 파악하기 위해 설치 단위 식별자 같은 기술을 씁니다. Google BigQuery는 앱에 들어 있지 않아 기기에서 정보를 직접 받지 않으며, Google Firebase가 모은 앱 사용 통계를 당사가 내보내 보관하는 곳입니다. 당사는 이 서비스들이 이 방침에 적은 것과 같거나 그 이상의 수준으로 이용자 정보를 보호한다는 조건으로 사용합니다.
국외 처리(「개인정보 보호법」 제28조의8제2항 안내): 위 서비스는 미국 회사(Google LLC, Apple Inc.)가 제공하며, 정보는 미국 등 한국 밖의 서버에서 처리될 수 있습니다. 이전받는 자와 항목과 목적은 3장의 표와 위 목록에 적었습니다. SDK가 모으는 정보는 앱을 쓰는 동안 인터넷으로 수시로 전송되고(암호화된 연결), Google BigQuery에는 Google Firebase가 모은 앱 사용 통계가 기기를 거치지 않고 Google의 서비스 사이에서 하루 한 번 내보내집니다. 클라우드 저장과 서버 기능이 들어간 버전부터 클라우드 저장 사본, 결제 기록, 기기 옮기기 기록은 Google Cloud의 서울(대한민국) 위치에 보관하고 그곳의 서버 기능이 다룹니다(운영 회사는 Google LLC). 익명 계정, 계정 연결 정보(이메일 주소, 이름, 계정 고유 번호), 로그인할 때의 IP 주소는 Firebase Authentication이 미국 데이터센터에서만 처리하며, 계정을 만들거나 로그인할 때 인터넷으로 전송됩니다(암호화된 연결). Apple로 로그인을 쓰면 그 로그인 정보는 Apple Inc.(미국)가 처리합니다. 보유 기간은 7장과 각 회사의 방침을 따릅니다. 법적 근거는 계약 이행을 위한 처리위탁(제28조의8제1항제3호)입니다.
전송을 멈추는 방법: 앱 안에는 통계와 오류 보고를 끄는 설정이 없습니다. 전송을 멈추려면 앱을 삭제해 주세요. 삭제하면 새 정보가 전송되지 않으며, 이미 전송된 정보의 삭제는 8장에 따라 요청할 수 있습니다. 클라우드 저장이 들어간 버전에서는 앱을 삭제해도 클라우드 저장 사본과 계정은 지워지지 않으니, 지우시려면 앱을 삭제하기 전에 설정 창에서 「클라우드 기록 지우기」를 하거나 8장의 방법으로 요청해 주세요. 광고 식별자는 기기 설정에서 삭제하거나 재설정할 수 있습니다. 안드로이드는 설정, 개인정보 보호, 광고에서 광고 ID 삭제 또는 재설정을 고릅니다. iOS(아이폰, 아이패드)는 설정, 개인정보 보호 및 보안, 추적에서 이 앱의 추적 허용을 해제합니다. 해제하거나 처음에 허용하지 않으면 이 앱은 광고 ID(IDFA)를 읽지 않습니다. 앱 추적 허용 창은 만 18세 이상 성인에게만 띄우며, 만 18세 미만이거나 나이를 알 수 없는 이용자에게는 띄우지 않고 광고 ID도 읽지 않으므로 따로 끌 것이 없습니다. 기종과 운영체제 버전에 따라 메뉴 이름이 다를 수 있습니다. 맞춤형 광고 거부: 위처럼 광고 ID를 삭제하면 이 앱의 통계가 광고 ID로 광고에 연결되지 않으며, Google 계정의 광고 개인화를 끄면(Google 내 광고 센터, https://myadcenter.google.com) Google 신호와 Google의 맞춤 광고에서 빠집니다.
앱과 앱에 들어 있는 서비스는 다음 권한을 목록에 포함합니다. 인터넷 사용과 네트워크 연결 상태 확인(광고, 통계, 결제, 그리고 이 기능이 들어간 버전부터 클라우드 저장과 서버 기능), 진동(진동 설정), Google Play 결제(구매), 기기 절전 방지와 백그라운드 작업, Google Play 설치 출처 조회입니다. 광고 서비스가 요구하는 안드로이드 광고 ID 권한(AD_ID)과 광고 관련 개인정보 보호 샌드박스 권한 3종(광고 ID 접근, 광고 성과 측정, 관심 주제)도 목록에 포함됩니다. 광고 식별자는 어린이용 처리 대상(만 16세 미만, 나이 모름)에게 보내지 않으며, 앱 사용 통계는 만 18세 미만이거나 나이를 알 수 없는 이용자의 광고 ID를 모으지 않습니다. 위치, 카메라, 마이크, 연락처, 사진과 파일 접근 권한은 요청하지 않습니다.
덕 하버는 어린이를 포함한 모든 연령이 함께 즐기는 게임입니다(Google Play 가족 정책의 혼합 연령 앱). 2장의 답에 따라 다음처럼 다르게 동작합니다.
이 게임은 여러분의 이름이나 사는 곳을 묻지 않아요. 처음에 태어난 해만 물어보는데, 그 숫자는 이 기기 안에만 남아요. 게임 기록을 잃어버리지 않도록 우리 클라우드에 기록을 한 벌 더 맡겨 두기도 하는데, 태어난 해는 넣지 않아요. 여러분에게 맞춘 광고는 보여주지 않아요. 이 글이 어렵다면 보호자와 함께 읽어 주세요. 궁금한 것이 있으면 보호자가 우리에게 메일을 보낼 수 있어요.
파기 절차와 방법: 개인정보가 필요 없게 되면 지체 없이 파기합니다. 전자 파일에 있는 정보는 복구할 수 없게 삭제합니다. 안전 조치: 당사는 따로 서버 컴퓨터를 두지 않고, Google Cloud(Firebase) 위에서 클라우드 저장과 서버 기능을 운영합니다(이 기능이 들어간 버전부터). 클라우드 저장 사본, 결제 기록, 기기 옮기기 기록은 이 앱의 Firebase 프로젝트(서울)에, 분석을 위해 내보낸 앱 사용 통계의 사본은 Google Cloud 안에 있는 당사의 BigQuery 프로젝트에 보관합니다(4장). 클라우드 저장 사본은 앱에서 그 계정만 읽고 쓸 수 있도록 접근 규칙으로 막고, 결제 기록, 기기 옮기기 기록, 따로 보관하는 거래 기록은 앱이 직접 읽거나 쓸 수 없게 하여 당사의 서버 기능만 다룹니다. 서버 기능은 진짜 앱에서 온 요청만 받습니다(Firebase App Check). 기기 옮기기 코드와 결제 영수증은 원문을 저장하지 않고 알아볼 수 없게 바꾼 값만 남기며, Google과 Apple의 로그인 토큰은 서버에 보관하지 않습니다. 통계와 오류 정보는 각 SDK가, 클라우드 저장과 서버 기능의 요청은 앱이 암호화된 연결(HTTPS)로 전송하고, 문의 메일은 운영자만 열람하며, Google(AdMob, Firebase, Google Cloud) 콘솔에는 운영자만 접근합니다. 어린이용 처리 대상의 식별자가 다른 목적으로 쓰이지 않도록, 만 18세 미만이거나 나이를 알 수 없는 이용자의 통계는 앱을 실행할 때마다 광고 목적 설정(광고 저장, 광고용 사용자 데이터, 광고 개인화)을 거부로 두어 Google 신호와 Google Ads 연결에서 빠지게 하고, 어린이용 처리 대상(만 16세 미만, 나이 모름)에게는 계정 연결을 열지 않아 식별자와 이어 붙일 수 있는 연락처 같은 정보를 보관하지 않습니다.
이 장은 EU/EEA, 영국, 스위스에 계신 이용자에게 적용됩니다(GDPR, UK GDPR, 스위스 FADP).
개인정보처리자(컨트롤러): DeepCraft · contact@deepcraft.app
처리 근거
| 무엇 | 근거 |
|---|---|
| 만 16세 이상 이용자의 광고 식별자와 광고 표시(Google AdMob) | 이용자의 동의 — 구글 동의 창을 거친 뒤에만 광고를 요청하고, 동의하지 않으면 개인 맞춤 광고를 표시하지 않습니다. 만 16세와 17세 이용자에게는 동의해도 개인 맞춤 광고를 켜지 않습니다 |
| 만 16세 미만이거나 나이를 알 수 없는 이용자의 광고 표시(Google AdMob) | 정당한 이익 — 게임을 무료로 제공하기 위한 광고 수익. 동의 창을 띄우지 않으며, 개인 맞춤 광고와 광고 식별자 없이 어린이용 처리로만 광고를 요청합니다 |
| 앱 사용 통계와 오류 진단(Firebase Analytics, Crashlytics) | 정당한 이익 — 게임을 안정적으로 운영하고 개선하며 부정 이용을 막는 것 |
| 만 18세 이상 이용자의 통계를 광고에 쓰는 것(광고 ID, Google 신호, Google Ads 연결 — 광고 성과 측정과 맞춤 광고) | 이용자의 동의 — 구글 동의 창의 선택을 따르며, 동의하지 않으면 통계를 광고 목적에 쓰지 않습니다. 만 18세 미만이거나 나이를 알 수 없는 이용자의 통계는 광고에 쓰지 않습니다 |
| 인앱 구매 처리(Google Play 결제) | 계약의 이행 — 구매하신 경우에만 발생합니다 |
| 클라우드 저장, 기기 옮기기, 계정 연결(이 기능이 들어간 버전부터) | 계약의 이행 — 이용자가 쓰는 게임 기능(기록 맡기기, 새 기기로 옮기기, 되찾기)을 제공하는 데 필요합니다. 계정 연결은 만 16세 이상 이용자가 직접 고를 때만 합니다 |
| 결제 확인과 결제 기록(이 기능이 들어간 버전부터) | 계약의 이행 — 산 상품의 지급과 환불 처리. 정당한 이익 — 위조 영수증과 중복 지급을 막는 것. 법적 의무 — 계정을 지운 뒤에도 한국 전자상거래법이 정한 거래 기록을 5년 보관하는 것 |
| 문의 메일(이용자가 보낼 때만) | 정당한 이익 — 문의에 답하고 문제를 조사하는 것(처리한 뒤 지체 없이 삭제). 법적 의무 — 거래에 관한 불만과 분쟁을 처리한 기록을 한국 전자상거래법이 정한 대로 3년 보관하는 것 |
| 서버 요청 기록과 진짜 앱 확인(Google Cloud, Firebase App Check — 이 기능이 들어간 버전부터) | 정당한 이익 — 서버와 결제를 부정 이용과 공격에서 지키는 것 |
동의를 받는 방법: Google 인증 동의 관리 플랫폼(Google User Messaging Platform)으로 앱을 처음 실행할 때, 태어난 해를 답한 뒤 묻습니다. 동의 창의 내용과 언어는 Google이 이용자의 기기 언어로 표시합니다. 유럽 각 나라가 정한 동의 가능 나이는 13세에서 16세 사이로 다르며, 당사는 그중 가장 높은 16세를 기준으로 만 16세 미만이거나 나이를 알 수 없는 이용자에게는 동의를 묻지 않습니다.
동의를 바꾸거나 철회하는 방법: 설정 창의 「개인정보 보호 설정」에서 언제든지 다시 열어 바꾸거나 철회할 수 있습니다(위 지역에서 동의 창을 본 이용자에게만 보이는 줄입니다). 철회는 앞으로의 처리에만 영향을 주며, 철회 이전의 적법한 처리에는 영향을 주지 않습니다.
동의하지 않으면: 게임은 그대로 즐길 수 있습니다. 다만 개인 맞춤 광고는 표시되지 않으며, 동의 설정에 따라 맞춤이 아닌 광고가 표시되거나 광고가 표시되지 않을 수 있습니다.
이용자의 권리: 열람, 정정, 삭제, 처리 제한, 처리 거부(이의 제기), 데이터 이동을 요구할 수 있고, 거주지 감독기관(Supervisory Authority)에 민원을 제기할 권리가 있습니다. 만 16세 미만 이용자를 대신한 보호자의 요청도 받습니다. 요청은 contact@deepcraft.app 으로 받으며, 신원 확인 뒤 처리합니다.
국외 이전: 위 서비스는 Google이 운영하며 미국 등 EEA 밖에서 처리될 수 있습니다. 클라우드 저장과 서버 기능이 들어간 버전부터 클라우드 저장 사본과 결제 기록은 Google Cloud의 서울(대한민국) 위치에 보관하고, 익명 계정과 계정 연결 정보는 Firebase Authentication이 미국에서 처리합니다. Apple로 로그인을 쓰면 그 로그인 정보는 Apple이 처리합니다. Google은 표준계약조항(SCC) 같은 GDPR이 정한 이전 수단을 적용합니다. https://business.safety.google/privacy/
보유 기간: 클라우드 저장 사본, 계정, 결제 기록, 기기 옮기기 기록은 Google Cloud 안에 있는 이 앱의 Firebase 프로젝트에 7장의 기한대로 보관합니다. Google Cloud 안에 있는 당사의 BigQuery 프로젝트로 내보낸 앱 사용 통계의 사본은 Google의 정책이 아니라 당사가 그 프로젝트에 정한 보관 기한에 따라 2개월이 지나면 자동으로 삭제됩니다. 그 밖의 정보는 위 제3자가 각자의 정책에 따라 보유하며(7장), 기기에 저장된 게임 기록과 태어난 해는 앱 삭제 또는 기기 설정에서 앱 데이터를 지우면 사라집니다.
방침을 바꾸면 이 페이지의 내용과 시행일을 고칩니다. 법령이 정한 절차가 필요한 변경은 그 절차를 따릅니다.
Duck Harbor is a puzzle game about rubber ducks and rubber boats. It is made for players of every age, including children. The first time it opens it asks for the year you were born, and it uses the answer to handle ads and statistics for children and teenagers in a more protective way (sections 2 and 6).
The first time you open the app, before the game starts, it asks for the year you were born. You type four digits yourself; nothing is pre-filled.
The following is processed automatically by the app, the SDKs inside it and our server functions while you play. A support email, account linking and a transfer code are handled only when you use them yourself. Items marked "in versions with this feature" apply from the app version that includes that feature.
| Data | How it is processed and why | Leaves device |
|---|---|---|
| Game progress and settings | Level progress, coin and item counts, purchase records (product ID, transaction ID, price and currency, time) and sound and vibration settings are saved in a file in the app's private storage on your device. If your device backup is on (Google account or Apple iCloud), the operating system may include this file in your own backup; we cannot access that backup. | The file itself is not sent (a copy without the birth year goes to the cloud save below; the level number, coin and item counts and similar values go into the usage statistics below) |
| Birth year (answer to the age question) | Used only to choose the settings of the advertising and statistics services. We do not ask for the month, the day or a name. It stays only in the save file above, together with the time you answered and the app version at that moment, and is not put in the cloud save copy. | No (services receive only settings derived from an age band) |
| App usage statistics | Google Firebase Analytics counts how the game is used so that we can improve it, see how far players get, what they buy and which ads they watch, and detect cheating. For adults, the statistics may also be used to measure ad performance and for personalised ads (below and section 4). It covers: level start and end (level number and ID, result, attempt number, duration, in-game time, number of boats, number and spacing of taps, longest pause, continues and how many of them were through ads, items used), continues (how: item, coins or ad), coins earned and spent (paid or free, reason, item name, the paid and free balances afterwards, the level at the time), item use (how many are left, whether used on a stuck level) and why an item was refused, the result of each ad shown (format, placement, whether watched to the end), ad revenue (ad network name, format, placement, revenue amount and currency), purchase fulfilment records (product ID, whether restored, coins granted, price and currency, number of purchases so far), purchase attempts (product ID, the price and currency the store reported, level number and, if pressed in the Remove ads window, whether that window was opened with the home screen button or appeared by itself after the first ad) and purchases that did not complete (the kind of outcome, such as cancelled, pending or failed, and a short one-word reason), the app's state each time it starts (paid and free coin balances, level number, number of items in the bag, number of purchases so far), and, if the app appears to have been closed while an ad (or the card shown just before it) was on screen, a record sent the next time it starts (ad format and placement, level number, whether it was the ad or the card, how long it was until the app was opened again, and whether the ad network had reported revenue for that impression, with the amount and currency), screen views, the save-file state (new, loaded, recovered, damaged), and signs of possible cheating (for example in-game time running faster than real time, a clear faster than the game's rules allow, a coin balance that does not match its ledger, paid coins without any purchase, a level reached without winning, or the device clock set back), with the kind of sign and the measured values. In versions with cloud save and server functions it also covers records of calls to the server functions (purchase verification, moving to another device, account linking, deleting cloud records): which function, how long it took, a short word for the kind of success or failure, whether it was the first call since the app started, whether the app went to the background during the call, whether the connection was Wi-Fi or mobile data, and how long it took to get an App Check token; and records of uploading or downloading the cloud save copy: how long it took, the kind of success or failure, whether it was the first attempt, whether the app went to the background, the connection type, and whether the records of two devices disagreed. Per-user properties record the highest level reached, whether you have bought anything, whether you own the ad-removal product, the kind of the latest sign, and a support ID. The support ID is an 8-character random code that the app creates and keeps in its save file on your device; the code itself contains no name, email address or device number. It follows the save file, not the install: uninstalling and reinstalling the app or clearing its data gives you a new ID, but if the save file is restored from a device backup the previous ID may carry over. Once cloud save is on, the ID is also part of the cloud copy, so if a player aged 16 or over has linked an account, we can find that account's email address from the ID. If you give us the ID when you contact us, we use it only to find your statistics and cloud records and to look into the problem or carry out a deletion request (section 8). We never use the ID as a key to move or recover a game. It also collects a per-install app instance ID, the app version, device model, operating system version and language, and infers a country- or city-level approximate location from your IP address. Firebase's standard automatic events (first open, session start, app update, in-app purchase) and install-source information may be included. The advertising ID and any advertising use are allowed for adults only. For players under 18 or of unknown age, every time the app starts it sets the statistics' advertising settings (ad storage, ad user data and ad personalisation) to denied, so their advertising ID is not collected and their statistics are not used for Google signals, remarketing or personalised ads. For adults these settings are allowed (including collection of the advertising ID) where consent is not required, and follow your choice in the consent form where it is (the EEA, the UK and Switzerland — section 9). It starts only after you answer the birth-year question. | |
| Crash and diagnostic data | When the app crashes or hits an error, Google Firebase Crashlytics receives the stack trace, the app state at that moment, the device maker and model, operating system version, memory, network connection type and similar technical details, plus a per-install identifier. The app itself adds only short progress notes such as the current level number, the screen name and item use. It is active from the moment the app opens, including before you answer the birth-year question. | |
| Remote settings | Google Firebase Remote Config downloads game values such as the ad interval and coin reward amounts. This sends the installation identifier, the app identity (app ID, package name), country, language, time zone and operating system version to Google. It starts only after you answer the birth-year question. | |
| Advertising | Google AdMob requests and shows ads, measures results and prevents fraud, using your IP address (which may be used to estimate the approximate location of your device), device information (model, operating system, language, network state), ad impression and interaction data (app opens, taps, video views), diagnostics and device identifiers (such as the advertising ID and an app set ID). There are full-screen interstitial ads and rewarded ads that you choose to watch. For players under 16 or of unknown age, child-directed treatment applies: no advertising ID is sent and personalised ads are off (section 6). For adults, Google may process app-usage information by advertising identifier to show interest-based (personalised) ads; where consent is required, personalised ads are turned on only if you consent. Ads are shown by Google AdMob on both Android and iOS. On iOS the app shows the App Tracking Transparency prompt only to adults (18 and over), and uses the advertising ID (IDFA) for personalised ads only if the adult allows it. For players under 18 or of unknown age the app does not show the prompt and does not read the advertising ID. | Google (and its ad partners) |
| Purchase information | Google Play Billing (Android) or the Apple App Store (iOS) handles in-app purchases such as coin packs. We do not receive card numbers or other payment-method details. Google Play may give us details such as the buyer's name and email address for processing; we use them only to handle purchases, refunds and inquiries. To apply a purchase in the game, the app records the product ID, transaction ID, price and currency, time and whether it was restored on your device, and the product ID, grant result, price and currency and the number of purchases so far are also part of the usage statistics. In versions with cloud save and server functions, our server checks a purchase before paid coins are granted (the next item). An adult's purchase may be passed to Google Ads as a conversion to measure ad performance (section 4). | Google Play or Apple |
| Purchase verification and payment records (in versions with this feature) | When you buy something such as a coin pack, before granting it the app sends our server the purchase receipt from the store (a Google Play purchase token; on iOS, the transaction information signed by Apple) and the price and currency the store reported, and our server checks the purchase with the store before paid coins are granted. When a Google Play purchase starts, the app attaches a value derived from your account ID that cannot be read back, so that the purchase can be matched to your account. Our server does not store the receipt itself; to make sure the same purchase is never granted twice, it keeps only a value derived from the receipt that cannot be read back. For each purchase our server keeps the order number, the product, the quantity, the paid coins, free coins and items granted, the date and time of purchase, the country of purchase, the price and currency, whether it was a test purchase, how many paid coins from that purchase are still unused, and whether it was refunded. For each account it also keeps the paid coin balance, any amount already spent before a refund, records of spending paid coins (number of coins, what they were spent on and when; the app collects these and sends them with the next cloud upload), whether one-time products ("Remove ads", "First voyage pack") have been bought, and instructions to take back coins from refunded purchases. We do this to grant paid coins correctly and keep them safe even when you change devices, to stop forged receipts and double grants, to handle refunds and withdrawals of purchases, and to keep the transaction records the law requires. We learn about refunds from Google Play's refund and cancellation notices and its list of refunds; we then take back the paid coins from that purchase, and any amount already spent is made up first from the next paid coins you buy. If the account was bound anew, for example when the sign-in was lost while you were changing phones, and the paid coins you bought no longer show, contact us: we find the earlier account's payment records by the order number on your receipt and move them to your current account. Our operator does this directly on the server and uses only the clues in your email, such as the order number and a support ID that identifies your current account. Our server does not know your age, and purchases work the same for every age. | Our server (Google Cloud, Seoul) and Google Play or Apple |
| Cloud save (in versions with this feature) | When you reach level 6, make a first purchase or open "Move to another device" in the settings window, Google Firebase Authentication creates an anonymous account: a random account ID with no name or email address, which needs nothing from you. When the account is created and signs in, Firebase Authentication records the IP address for security and to prevent abuse. From then on, when a level ends, when you leave the app and right after a purchase (only if something changed, and spaced out so that it does not happen too often), a copy of the save file is uploaded to our Cloud Firestore database (Google Cloud, Seoul), and it is read once each time the app starts. The copy contains level progress and level results so far, free coins and item counts, in-game records such as daily gifts, missions, streaks and events joined, how many ads you watched and when, which tips and rating requests were shown, a time record used to check the device clock, sound and vibration settings, when the save file was created and last changed, and the support ID. Stored with the copy are the account ID, a random value that tells which device is using the account now (not the device's own hardware ID), the operating system type, the app version, the save format number, the upload time and a check value for spotting damage. The birth year, paid coins and payment records are never put in the copy (paid coins and payment records are covered by the item above). The purpose is to let you move your progress to a new device and get it back after reinstalling the app. No other player can read or write the copy, and it is not used for advertising or marketing. When you tap "Delete cloud records" in the settings window, cloud save is switched off: until you tap "Turn cloud save back on" in the settings window or start a purchase (a purchase needs the account, and the app tells you before it switches cloud save back on), the app creates no new anonymous account and uploads no copy. It works the same for players under 16 or of unknown age (section 6). | Google (the copy is stored in Seoul; the account is processed in the United States) |
| Transfer code (in versions with this feature; only when you use it) | When you make a code under "Move to another device" on your old device, our server creates a 12-character code and shows it to you once. Instead of the code itself, our server keeps only a value made from the code with a secret key, which cannot be read back, together with the account that made it and the account that used it, when it was made and used, its expiry (7 days) and the code's state. When you enter the code on the new device, our server first tells it the level and the total coins of the progress that will move (if the progress on the new device is further ahead, you are asked once whether to move), and when you move, the account passes to the new device. The next time the old device opens the app, it says the game has moved to another device, clears the progress on that device and starts again from the age question (so that the same coins cannot be used on two devices). To stop people from guessing codes, our server counts wrong attempts for each account. | Google (Seoul) |
| Linking a Google or Apple account (in versions with this feature; only for players aged 16 and over who choose it) | If you sign in with a Google account (on iOS, also an Apple account) under "Move to another device", that account is linked to the anonymous account you are using. Google Firebase Authentication then keeps basic profile information that the sign-in service provides, such as the email address (with Apple's "Hide My Email", a relay address that Apple creates) and the name, and the account's unique ID. The only purpose is to let you sign in with the same account on a new device and get your progress back if you lose or change your phone; we do not use the email address to contact you or for advertising. When you get your progress back, our server receives the confirmation from the sign-in service, checks that it is genuine and uses it only to find the linked progress, without storing it. We do not keep Google or Apple sign-in tokens on our server. An account can be linked to either a Google account or an Apple account, not both; once one is linked, the link buttons are replaced by a line showing the linked account. One account works on one device at a time, so if you get your progress back on another device, the original device starts again from the beginning the next time it opens (we ask before doing this). Players under 16 or of unknown age do not see the link buttons, and the sign-in features are not started for them. You can use every part of the game without signing in. | Google (processed in the United States); Apple if you use Sign in with Apple |
| Server request logs and app integrity checks (in versions with this feature) | When the app uses cloud save or the server functions, Firebase App Check checks that the request comes from the genuine app on a genuine device, using Google Play's device integrity check (on iOS, Apple's). The attestation material is not kept; for requests that must be used only once, such as purchase verification, the check token is kept for up to 30 days. When a server function is called, Google Cloud keeps a request log (time, the function called and the result; it may include the IP address of the device that made the request), which is deleted automatically after 30 days. | |
| Support email (only when you send one) | When you tap "Contact us" in the settings window, your own email app opens with the app version, current level number and level ID, device model, operating system version, language and support ID pre-filled in the body (the support ID is also shown in the settings window, and tapping it copies it). You can check and delete any of it before sending; it reaches us only when you send it from your own email account. We then see your email address and what you wrote, and use them only to answer you and investigate the problem. The record of a complaint or dispute about a purchase, such as a payment or a refund, is kept for 3 years as the law requires (section 7). If the sender, or a parent or guardian, tells us that an email is from a child, its email address is not kept in that record either; it is deleted promptly after we reply (section 6). | Only when you send it |
We use this information only for the purposes in the table. We do not collect names, email addresses, phone numbers, addresses, precise location, photos, contacts, or microphone or camera data. The only exceptions are the email address and message when you send us a support email yourself, and the email address and name that the sign-in service provides when a player aged 16 or over links an account. Depending on the platform (Android, iOS) and version, some services may not be included; this policy applies to the services actually included. We do not collect sensitive information such as beliefs or health.
These are the third-party services (SDKs) inside the app, and the services we use for cloud save, server functions and storing our analysis data (Google Firebase and Google BigQuery). The SDKs collect information directly on your device and send it to each company, and they use technologies such as per-install identifiers to understand how the app is used. Google BigQuery is not part of the app and receives nothing directly from your device; it is where we keep the usage statistics that Google Firebase has collected, after exporting them. We use these services only on the condition that they protect your information at least as well as this policy describes.
Transfers abroad. These services are provided by companies in the United States (Google LLC, Apple Inc.), and information may be processed on servers in the United States and other countries outside your own. The recipients, data and purposes are those in the table in section 3 and the list above. What the SDKs collect is sent over encrypted connections from time to time while you use the app; the usage statistics that Google Firebase has collected are exported to Google BigQuery once a day, between Google's services and without passing through your device. In versions with cloud save and server functions, the cloud save copy, payment records and transfer-code records are stored in Google Cloud's Seoul (Korea) location and handled there by our server functions (the operating company is Google LLC). The anonymous account, linked-account information (email address, name, the account's unique ID) and the IP address at sign-in are processed by Firebase Authentication only in data centres in the United States, and are sent over the internet (encrypted connections) when the account is created or signs in. If you use Sign in with Apple, Apple Inc. (United States) processes that sign-in information. Retention follows section 7 and each company's policy.
How to stop sending. The app has no switch to turn off statistics and crash reports. To stop them, uninstall the app; no new information is sent after that, and you can ask us to delete what was already sent (section 8). In versions with cloud save, uninstalling does not delete the cloud save copy or the account, so if you want them gone, use "Delete cloud records" in the settings window before uninstalling, or ask as described in section 8. You can delete or reset your advertising ID in your device settings: on Android, Settings, Privacy, Ads, then delete or reset the advertising ID. On iOS (iPhone and iPad), turn off tracking for this app under Settings, Privacy and Security, Tracking. If you turn it off, or do not allow it when asked, the app does not read the advertising ID (IDFA). The app shows the tracking prompt only to adults (18 and over); for players under 18 or of unknown age it does not show the prompt and does not read the advertising ID, so there is nothing for them to turn off. Menu names vary by device and operating system version. Opting out of personalised ads: deleting the advertising ID as above stops this app's statistics from being tied to ads through it, and turning off ads personalisation in your Google account (Google My Ad Center, https://myadcenter.google.com) takes you out of Google signals and Google's personalised ads.
The app and the services inside it list these permissions: internet access and network state (ads, statistics, purchases and, in versions with these features, cloud save and server functions), vibration (the vibration setting), Google Play billing (purchases), keeping the device awake and background work, and the Google Play install referrer. The Android advertising ID permission (AD_ID) required by advertising services and three advertising-related Privacy Sandbox permissions (advertising ID access, ad attribution, interest topics) are also listed. No advertising ID is sent for players on child-directed treatment (under 16, or age unknown), and the usage statistics do not collect the advertising ID of players under 18 or of unknown age. The app does not request location, camera, microphone, contacts, or photo and file access.
Duck Harbor is a game for players of every age, including children (a mixed-audience app under the Google Play Families policy). The answer to the question in section 2 changes how the app behaves.
This game does not ask for your name or where you live. It only asks the year you were born once at the start, and that number stays on this device. So that you do not lose your game, it may also keep a spare copy of your progress in our cloud, without the year you were born. We do not show you ads picked just for you. If this page is hard to read, please read it together with a parent or guardian. A parent or guardian can email us if there is anything they want to ask.
This is our online notice of information practices with regard to children under 13 under the U.S. Children's Online Privacy Protection Rule (16 CFR Part 312). It is part of this policy and is read together with it.
Disposal. We dispose of personal information without delay once it is no longer needed; information in electronic files is deleted so that it cannot be restored. Security. We do not run server machines of our own; we run cloud save and our server functions on Google Cloud (Firebase) (in versions with these features). The cloud save copy, payment records and transfer-code records are kept in this app's Firebase project (Seoul), and the copy of the usage statistics that we export for analysis is kept in our own BigQuery project on Google Cloud (section 4). Access rules allow only the account itself to read or write its cloud save copy from the app; payment records, transfer-code records and the transaction records kept separately cannot be read or written by the app at all and are handled only by our server functions. Our server functions accept only requests from the genuine app (Firebase App Check). Transfer codes and purchase receipts are not stored as such, only as values that cannot be read back, and Google and Apple sign-in tokens are not kept on our server. Statistics and crash data are sent by each SDK, and requests for cloud save and server functions by the app, over encrypted connections (HTTPS); support emails are read only by the operator, and only the operator has access to our Google (AdMob, Firebase, Google Cloud) consoles. So that identifiers from players on child-directed treatment are not used for anything else, the statistics of every player under 18 or of unknown age have their advertising settings (ad storage, ad user data, ad personalisation) set to denied each time the app starts, which keeps them out of Google signals and our Google Ads link, and players on child-directed treatment (under 16, or age unknown) cannot link an account, so we keep no contact details or similar information that their identifiers could be joined with.
The app does not respond to web browser "Do Not Track" signals; it is not a web browser, and we do not track you across other websites or apps for our own purposes. For adult players only, Google (through AdMob, and through Firebase Analytics with Google signals and our Google Ads link) may collect information about your activity in this app and in other apps over time by using your advertising ID, to measure ads and show personalised ads where the law allows. This is switched off for players under 18 and for players whose age we do not know.
This section applies under the GDPR, the UK GDPR and the Swiss FADP.
Controller: DeepCraft — contact@deepcraft.app
Legal bases
| What | Basis |
|---|---|
| Advertising identifier and ad delivery for players aged 16 and over (Google AdMob) | Your consent — we request ads only after the Google consent form, and we do not show personalised ads if you decline. Players aged 16 or 17 do not get personalised ads even if they consent |
| Ad delivery for players under 16 or of unknown age (Google AdMob) | Legitimate interests — ad revenue that lets us offer the game for free. We do not show the consent form and request ads only under child-directed treatment, without personalised ads or the advertising identifier |
| Usage statistics and crash diagnostics (Firebase Analytics, Crashlytics) | Legitimate interests — running the game reliably, improving it and preventing cheating and abuse |
| Using the statistics of players aged 18 and over for advertising (advertising ID, Google signals, Google Ads link — ad measurement and personalised ads) | Your consent — we follow your choice in the Google consent form, and if you decline the statistics are not used for advertising. Statistics from players under 18 or of unknown age are never used for advertising |
| In-app purchase (Google Play Billing) | Performance of a contract — only if you buy something |
| Cloud save, moving to another device, account linking (in versions with these features) | Performance of a contract — needed to provide the game features you use (keeping your progress, moving it to a new device, getting it back). Account linking happens only when a player aged 16 or over chooses it |
| Purchase verification and payment records (in versions with this feature) | Performance of a contract — granting what you bought and handling refunds. Legitimate interests — stopping forged receipts and double grants. Legal obligation — keeping, after an account is deleted, the transaction records that Korean e-commerce law requires, for 5 years |
| Support emails (only when you send one) | Legitimate interests — answering you and investigating the problem (deleted promptly afterwards). Legal obligation — keeping the record of a complaint or dispute about a purchase for 3 years, as Korean e-commerce law requires |
| Server request logs and app integrity checks (Google Cloud, Firebase App Check; in versions with these features) | Legitimate interests — protecting the server and purchases against fraud, abuse and attacks |
How we ask. We use a Google-certified consent management platform (the Google User Messaging Platform) the first time you open the app, after you answer the birth-year question. Google shows the consent form in your device language. The age at which a person can consent differs between European countries, from 13 to 16; we use the highest, 16, and do not ask players under 16 or of unknown age for consent.
How to change or withdraw consent. Open "Privacy settings" in the settings window at any time (this line is shown only to players in the regions above who have seen the consent form). Withdrawal applies going forward and does not affect processing carried out lawfully beforehand.
If you decline. You can still play the whole game. You will not see personalised ads; depending on the consent options you choose you may see non-personalised ads or none.
Your rights. You may request access, rectification, erasure, restriction, objection and portability, and you may lodge a complaint with your local supervisory authority. A parent or guardian may also make a request on behalf of a player under 16. Write to contact@deepcraft.app; we verify identity before acting.
International transfers. The services above are operated by Google and may process data outside the EEA, including in the United States. In versions with cloud save and server functions, the cloud save copy and payment records are stored in Google Cloud's Seoul (Korea) location, and the anonymous account and linked-account information are processed by Firebase Authentication in the United States. If you use Sign in with Apple, Apple processes that sign-in information. Google applies GDPR transfer mechanisms such as Standard Contractual Clauses — https://business.safety.google/privacy/
Retention. The cloud save copy, the account, payment records and transfer-code records are kept in this app's Firebase project on Google Cloud for the periods in section 7. The copy of the usage statistics that we export to our own BigQuery project on Google Cloud is deleted automatically after 2 months under the retention limit we set for that project, not under Google's policies. Other data is retained by the third parties above under their own policies (section 7); game data and the birth year stored on your device disappear when you uninstall the app or clear its data.
If we change this policy we update this page and the effective date. Changes that need a procedure set by law follow that procedure.
Duck Harbor は、ゴムのアヒルとゴムボートを動かすパズルゲームで、お子さまを含むすべての年齢の方に向けたアプリです。初回起動時に生まれた年を尋ね、その回答に応じて、お子さまと10代の方の広告と統計を、より保護された方法で取り扱います(項目2、項目6)。
アプリを初めて起動すると、ゲームに入る前に生まれた年を尋ねます。4桁の数字をご自身で入力する形で、あらかじめ入力された値はありません。
次の情報は、アプリの利用中に、アプリと組み込まれたSDK、当社のサーバー機能が自動的に取り扱います。お問い合わせメール、アカウント連携、移行コードは、利用者ご自身が行うときにだけ取り扱います。「この機能が入ったバージョンから」と書いた項目は、その機能が入ったバージョンのアプリをお使いのときから当てはまります。
| 項目 | 処理方法と目的 | 端末外への送信 |
|---|---|---|
| ゲームの進行記録と設定 | レベルの進行、コインとアイテムの数、購入記録(商品ID、取引ID、金額と通貨、時刻)、サウンドと振動の設定を、端末内のアプリ専用の保存領域のファイルに保存します。端末のバックアップ機能(Google アカウントまたは Apple iCloud)が有効な場合、OS がこのファイルをご本人のバックアップに含めることがあり、当社はそのバックアップにアクセスできません。 | ファイルそのものは送信しません(生まれた年を除いたコピーは下のクラウド保存へ、レベル番号、コインとアイテムの数などの値は下のアプリの利用統計に含まれます) |
| 生まれた年(年齢確認の回答) | 広告と統計サービスの設定を選ぶためだけに使います。月、日、氏名は尋ねません。上記の保存ファイルにだけ残り、クラウド保存のコピーにも入れません。回答した時刻と、そのときのアプリのバージョンも一緒に記録されます。 | なし(サービスには年齢区分から決まる設定だけが渡されます) |
| アプリの利用統計 | Google の Firebase Analytics が、ゲームの改善、ゲームの進み具合と購入と広告視聴の把握、不正利用(チート)の発見に使う統計を集計します。成人の利用者の統計は、広告の成果測定とパーソナライズ広告にも使われることがあります(下記と項目4)。対象は、レベルの開始と終了(レベル番号とレベルID、結果、挑戦回数、所要時間、ゲーム内で流れた時間、ボートの数、タップの回数と間隔、最長の停止時間、コンティニューの回数とそのうち広告によるものの回数、アイテムの使用数)、コンティニュー(手段: アイテム、コイン、広告)、コインの獲得と使用(有料と無料の区別、理由、使い道のアイテム名、変わった後の有料と無料の残高、そのときのレベル番号)、アイテムの使用(残りの数、行き詰まったレベルで使ったかどうか)と使用が断られた理由、広告を表示した結果(形式、掲載位置、最後まで見たかどうか)、広告の収益(広告会社の名前、形式、掲載位置、収益額と通貨)、購入の付与記録(商品ID、復元かどうか、付与したコインの数、金額と通貨、これまでの購入回数)、購入ボタンを押した記録(商品ID、ストアが示した価格と通貨、そのときのレベル番号、「広告を消す」の画面で押した場合は、その画面をホームのボタンで開いたか、最初の広告の後に自動で表示されたか)と購入が完了しなかった結果(取り消し、保留、失敗などの結果の種類と、理由を表す短い単語)、アプリを起動したときの状態(有料と無料のコインの残高、レベル番号、バッグに入っているアイテムの数、これまでの購入回数)、広告(または広告の直前に出る案内カード)が画面に出ている途中でアプリが終了したと推定される場合に、次にアプリを起動したときに送る記録(広告の形式と掲載位置、レベル番号、広告中かその直前のカードか、終了してから再び起動するまでの時間、広告会社がその表示の収益のシグナルを送ったかどうかと、その金額と通貨)、画面の閲覧、セーブファイルの状態(新規、読み込み、復旧、破損)、不正利用が疑われる兆候(ゲーム内の時間が実際の時間より速く進む、ゲームのルール上ありえない速さのクリア、コインの残高が記録と合わない、購入の記録がない有料コイン、勝たずに上がったレベル、端末の時計の巻き戻しなど、兆候の種類と測った値)です。クラウド保存とサーバー機能が入ったバージョンからは、サーバー機能(購入の確認、別の端末への移行、アカウント連携、クラウドの記録の削除)を呼び出したときの記録(どの機能か、かかった時間、成功または失敗の種類を表す短い単語、アプリを起動してから最初の呼び出しかどうか、呼び出しの途中でアプリがバックグラウンドに移ったかどうか、Wi-Fi かモバイル通信か、App Check のトークンを受け取るまでにかかった時間)と、クラウド保存のコピーを送信または受信したときの記録(かかった時間、成功または失敗の種類、最初の試みかどうか、途中でアプリがバックグラウンドに移ったかどうか、接続の種類、二つの端末の記録が食い違ったかどうか)も含まれます。利用者単位の属性として、到達した最も高いレベル、購入したことがあるかどうか、広告を消す商品を持っているかどうか、直近の兆候の種類とサポート番号も記録されます。サポート番号は、アプリがランダムに作って端末の保存ファイルに記録する8文字の番号で、番号そのものに氏名、メールアドレス、端末の番号は含まれません。番号はインストールではなく保存ファイルに従います。アプリを削除して入れ直したり、アプリのデータを消去したりすると新しい番号になりますが、端末のバックアップから保存ファイルが復元されると、以前の番号が引き継がれることがあります。クラウド保存が有効になると、この番号もコピーに含まれるため、16歳以上の利用者がアカウントを連携している場合、当社はこの番号から連携したアカウントのメールアドレスを調べることができます。利用者がお問い合わせの際にこの番号を教えてくださった場合にだけ、当社がその番号で該当する統計とクラウドの記録を探し、問題の確認または削除のご請求(項目8)への対応のために使います。この番号を、記録を別の端末へ移したり取り戻したりするための鍵として使うことはありません。インストールごとに自動生成されるアプリインスタンスID、アプリのバージョン、端末モデル、OSのバージョン、言語も一緒に取得され、IPアドレスから国や市区町村レベルのおおよその位置が推定されます。Firebase が自動的に取得する基本イベント(初回起動、セッション開始、アプリの更新、アプリ内購入の完了など)と、インストール元の情報も含まれることがあります。広告IDの取得と広告目的での利用は、成人にだけ認めます。18歳未満または年齢が分からない利用者については、アプリを起動するたびに統計の広告目的の設定(広告の保存、広告用のユーザーデータ、広告のパーソナライズ)を拒否にし、広告IDを取得せず、Google シグナル、リマーケティング、パーソナライズ広告に使いません。成人については、同意が必要ない地域ではこの設定を許可し(広告IDの取得を含みます)、同意が必要な地域(欧州経済領域、英国、スイス)では同意画面での選択に従います(項目9)。生まれた年を回答した後に始まります。 | |
| エラー情報 | アプリが異常終了したりエラーに遭遇したりしたときに、Google の Firebase Crashlytics が、エラーのスタック、その時点のアプリの状態、端末の製造元とモデル、OSのバージョン、メモリ、ネットワーク接続の種類などの技術情報と、インストール単位の識別子を受け取ります。アプリが付け加えるのは、現在のレベル番号、画面名、アイテムの使用といった短い進行メモだけです。アプリを起動した直後から、生まれた年を回答する前にも動作します。 | |
| リモート設定 | Google の Firebase Remote Config で、広告の表示間隔やコインの報酬量などのゲームの数値をダウンロードします。このときインストール識別子、アプリの識別情報(アプリID、パッケージ名)、国、言語、タイムゾーン、OSのバージョンが Google に渡されます。生まれた年を回答した後に始まります。 | |
| 広告 | Google AdMob が、広告のリクエスト、表示、成果の測定、不正利用の防止のために、IPアドレス(端末のおおよその位置の推定に使われることがあります)、端末情報(モデル、OS、言語、ネットワークの状態)、広告の表示と操作の情報(アプリの起動、タップ、動画の視聴)、診断情報、端末の識別子(広告ID、アプリセットIDなど)を処理します。画面全体に表示するインタースティシャル広告と、利用者が選んで見るリワード広告があります。16歳未満または年齢が分からない利用者にはお子さま向け処理を適用し、広告IDを送信せず、パーソナライズ広告をオフにします(項目6)。成人については、Google が広告IDをもとにアプリの利用状況の情報を処理して、興味関心に基づく(パーソナライズ)広告を表示することがあり、同意が必要な地域では、同意した場合にだけパーソナライズ広告が有効になります。広告は Android でも iOS でも Google AdMob が表示します。iOS では、18歳以上の成人にだけアプリのトラッキング許可の画面を表示し、成人が許可した場合にだけ広告ID(IDFA)をパーソナライズ広告に使います。18歳未満または年齢が分からない利用者には、この画面を表示せず、広告IDも読み取りません。 | Google(とその広告パートナー) |
| 購入情報 | Android は Google Play 決済、iOS は Apple App Store 決済が、コインパックなどのアプリ内購入を処理します。当社はカード番号などの決済手段の情報を受け取りません。Google Play は、購入の処理のために、購入者の氏名とメールアドレスなどを当社に提供することがあり、当社はそれを購入、返金、お問い合わせの対応にだけ使います。購入をゲームに反映するため、アプリが商品ID、取引ID、金額と通貨、時刻、復元かどうかを端末に記録し、商品ID、付与結果、金額と通貨、これまでの購入回数はアプリの利用統計にも含まれます。クラウド保存とサーバー機能が入ったバージョンからは、有料コインを付与する前に当社のサーバーが購入を確認します(すぐ下の項目)。成人の利用者の購入は、広告の成果を測るために、コンバージョンとして Google 広告に渡されることがあります(項目4)。 | Google Play または Apple |
| 購入の確認と購入記録(この機能が入ったバージョンから) | コインパックなどの商品を購入すると、アプリは商品を付与する前に、ストアが発行した購入のレシート(Google Play の購入トークン、iOS では Apple が署名した取引情報)と、ストアが示した価格と通貨を当社のサーバーへ送り、サーバーがストアにその購入を確認してから有料コインを付与します。Google Play で購入を始めるときは、アカウント番号を元に戻せない形に変えた値を購入のリクエストに添えて、その購入がこのアカウントのものかを確認します。サーバーはレシートそのものを保存せず、同じ購入が二重に付与されないよう、レシートを元に戻せない形に変えた値でだけ見分けます。サーバーが購入ごとに保存するのは、注文番号、商品、数量、付与した有料コインと無料コインとアイテム、購入日時、購入した国、価格と通貨、テスト購入かどうか、その購入分のうちまだ使っていない有料コインの数、返金されたかどうかです。アカウントごとに、有料コインの残高、返金の前にすでに使ってしまった分、有料コインを使った記録(コインの数、使い道、時刻。アプリがまとめておき、次にコピーを送るときに一緒に送ります)、一度だけ購入できる商品(「広告を消す」「はじめての航海パック」)を購入したかどうか、返金された購入のコインを差し引くための指示も保存します。目的は、有料コインを正しく付与し、端末を替えても守ること、偽造されたレシートや二重付与を防ぐこと、返金と購入の取り消しに対応すること、法令で定められた取引記録を保存することです。返金は Google Play が送る返金と取り消しの通知、返金の一覧で確認し、その購入の有料コインを差し引きます。すでに使ってしまった分は、次に購入する有料コインから先に埋め合わせます。端末の買い替えの途中でログインだけが消えるなどしてアカウントが新しく結び付けられ、購入した有料コインが表示されないときは、お問い合わせいただければ、領収書の注文番号で以前のアカウントの購入記録を探し、今のアカウントへ移します。この作業は運営者がサーバーで直接行い、お問い合わせのメールに書かれた注文番号や、今のアカウントを探すためのサポート番号などの手がかりだけを使います。サーバーは利用者の年齢を知らず、購入はすべての年齢で同じです。 | 当社のサーバー(Google Cloud、ソウル)と Google Play または Apple |
| クラウド保存(この機能が入ったバージョンから) | レベル6に到達したとき、初めて購入したとき、または設定画面の「別の端末へ移す」を開いたときに、Google Firebase Authentication が匿名アカウントを作ります。匿名アカウントは、名前やメールアドレスを持たないランダムなアカウント番号で、利用者が何かをする必要はありません。アカウントを作ってログインするとき、Firebase Authentication がセキュリティと不正利用の防止のために IP アドレスを記録します。その後、レベルが終わったとき、アプリを閉じたとき、購入した直後に(変わったことがあるときだけ、送りすぎないよう間隔をあけて)、保存ファイルのコピーを当社の Cloud Firestore(Google Cloud、ソウル)に送り、アプリの起動時に一度読み込みます。コピーに含まれるのは、レベルの進行とレベル結果の累計、無料コインとアイテムの数、毎日の贈り物、ミッション、連続記録、イベントへの参加などのゲーム内の記録、広告を見た回数と時刻、案内と評価のお願いを表示した記録、端末の時計を確かめるための時刻の記録、サウンドと振動の設定、保存ファイルを作った時刻と更新した時刻、サポート番号です。コピーと一緒に、アカウント番号、このアカウントを今使っている端末を見分けるランダムな値(端末固有の番号ではありません)、OSの種類、アプリのバージョン、保存形式の番号、送った時刻、破損を見分けるための確認値が保存されます。生まれた年、有料コイン、購入記録はコピーに入れません(有料コインと購入記録は上の「購入の確認と購入記録」の項目)。目的は、新しい端末へ記録を移すことと、アプリを入れ直したときに記録を復元することです。ほかの利用者がこのコピーを読み書きすることはできず、広告やマーケティングには使いません。設定画面で「クラウドの記録を消す」を押すとクラウド保存はオフになり、設定画面の「クラウド保存をオンに戻す」を押すか、購入を始めるまで(購入にはアカウントが必要で、オンに戻す前にアプリがお知らせします)、新しい匿名アカウントを作らず、コピーも送りません。16歳未満または年齢が分からない利用者にも同じように動作します(項目6)。 | Google(コピーはソウルに保存、アカウントは米国で処理) |
| 移行コード(この機能が入ったバージョンから、利用者が使うときだけ) | 古い端末の「別の端末へ移す」でコードを作ると、当社のサーバーが12文字のコードを作って一度だけ表示します。サーバーには、コードそのものではなく、秘密の鍵を混ぜて元に戻せない形に変えた値と、そのコードを作ったアカウントと使ったアカウント、作った時刻と使った時刻、有効期限(7日)、コードの状態だけを残します。新しい端末でコードを入力すると、サーバーが移ってくる記録のレベルとコインの合計を先に知らせ(新しい端末の記録のほうが進んでいる場合は、移すかどうかを一度確認します)、移すとアカウントが新しい端末へ移ります。古い端末は、次にアプリを起動したときに「別の端末へ移りました」とお知らせし、端末内の記録を消して年齢確認から始め直します(同じコインが二つの端末で使われないようにするためです)。間違ったコードを何度も試せないよう、アカウントごとに入力の回数を数えます。 | Google(ソウル) |
| Google または Apple のアカウント連携(この機能が入ったバージョンから、16歳以上の方が希望するときだけ) | 設定画面の「別の端末へ移す」から Google アカウント(iOS では Apple アカウントも)でログインすると、そのアカウントが今使っている匿名アカウントに連携されます。このとき Google Firebase Authentication が、そのログインサービスが知らせるメールアドレス(Apple で「メールを非公開」を選んだ場合は Apple が作る転送用のアドレス)と名前などの基本的なプロフィール情報、そのアカウントの固有番号を保存します。目的は、スマートフォンをなくしたり買い替えたりしたときに、新しい端末で同じアカウントでログインして記録を取り戻すことだけで、メールアドレスを連絡や広告に使うことはありません。記録を取り戻すときは、ログインサービスが発行した確認情報を当社のサーバーが受け取って本物かどうかを確かめ、連携された記録を探すためだけに使い、保存しません。Google と Apple のログイン用のトークンを当社のサーバーに保存することはありません。一つのアカウントに連携できるのは Google アカウントか Apple アカウントのどちらか一つで、一つ連携すると、連携のボタンの代わりに連携したアカウントが表示されます。一つのアカウントは一台の端末でだけ使えるため、別の端末で記録を取り戻すと、もとの端末は次に起動したときに最初から始まります(取り戻す前に一度確認します)。16歳未満または年齢が分からない利用者には連携のボタンが表示されず、ログインの機能も動作しません。ログインしなくても、ゲームのすべての機能をお使いいただけます。 | Google(米国で処理)、Appleでサインインを使う場合は Apple |
| サーバーへのリクエストの記録と正規アプリの確認(この機能が入ったバージョンから) | アプリがクラウド保存とサーバー機能を使うとき、Firebase App Check が、そのリクエストが正規のアプリと端末から来たものかを、Google Play(iOS では Apple)の端末の完全性の確認で見分けます。確認に使った資料は保存せず、購入の確認のように一度しか使ってはならないリクエストの確認用トークンは、最長30日間保存します。サーバー機能を呼び出すと、Google Cloud がリクエストの記録(時刻、呼び出した機能、結果。リクエストした端末の IP アドレスが含まれることがあります)を残し、30日が過ぎると自動的に削除されます。 | |
| お問い合わせメール(利用者が送るときだけ) | 設定画面の「お問い合わせ」を押すと、利用者ご自身のメールアプリが開き、本文にアプリのバージョン、現在のレベル番号とレベルID、端末モデル、OSのバージョン、言語、サポート番号があらかじめ書かれます(サポート番号は設定画面にも表示され、押すとコピーされます)。送信前に画面で確認して消すことができ、利用者がご自身のメールアカウントから送信したときにだけ当社に届きます。このとき、利用者のメールアドレスと書かれた内容が当社に見え、お問い合わせへの回答と不具合の調査にだけ使います。購入や返金などの取引に関する苦情と紛争の対応記録は、法令に従い3年間保存します(項目7)。ただし、送信者がお子さまだと伝えている場合、または保護者の方からそのように連絡があった場合は、そのメールアドレスをこの記録にも残さず、返信した後、遅滞なく削除します(項目6)。 | 利用者が送信したときだけ |
取得した情報は、表に記載した目的にだけ利用し、それ以外には利用しません。氏名、メールアドレス、電話番号、住所、正確な位置情報、写真、連絡先、マイクやカメラのデータは取得しません。例外は、利用者ご自身がお問い合わせメールを送るときのメールアドレスと内容、16歳以上の利用者がアカウントを連携するときにログインサービスが知らせるメールアドレスと名前だけです。アプリの版(Android、iOS)とバージョンによっては一部のサービスが含まれないことがあり、このポリシーは実際に含まれているサービスに適用されます。当社は、信条や病歴のように、個人のプライバシーを侵害するおそれのある機微な情報を取得しません。
以下は、アプリに組み込まれている第三者サービス(情報収集モジュール、SDK)と、当社がクラウド保存、サーバー機能、分析データの保存に使うサービス(Google Firebase と Google BigQuery)です。SDKは、利用者の端末で情報を直接取得して各社へ送るもので、アプリがどう使われているかを把握するために、インストール単位の識別子のような技術を使います。Google BigQuery はアプリに組み込まれておらず、端末から情報を直接受け取ることはありません。Google Firebase が取得したアプリの利用統計を、当社が書き出して保存する場所です。当社は、これらのサービスが、このポリシーに書いたものと同等かそれ以上の水準で利用者の情報を保護することを条件に利用しています。
外国での処理: 上記のサービスは、米国の会社(Google LLC、Apple Inc.)が提供しており、情報は米国のサーバー、およびそのほかの日本国外のサーバーでも処理されることがあります。提供先、情報の項目、目的は、項目3の表と上の一覧のとおりです。SDKが取得する情報は、アプリの利用中に、暗号化された通信でインターネットを通じて随時送信されます。Google BigQuery には、Google Firebase が取得したアプリの利用統計が、端末を経由せずに Google のサービス間で1日に1回書き出されます。クラウド保存とサーバー機能が入ったバージョンからは、クラウド保存のコピー、購入記録、移行コードの記録を Google Cloud のソウル(韓国)に保存し、そこにある当社のサーバー機能が取り扱います(運営する会社は Google LLC です)。匿名アカウント、アカウント連携の情報(メールアドレス、名前、アカウントの固有番号)、ログインするときの IP アドレスは、Firebase Authentication が米国のデータセンターでだけ処理し、アカウントを作るときやログインするときに、インターネットを通じて送信されます(暗号化された通信)。Appleでサインインを使う場合、そのログインの情報は Apple Inc.(米国)が処理します。保存期間は項目7と各社のポリシーに従います。
送信を止める方法: アプリの中に、統計やエラー報告の送信を止める設定はありません。送信を止めるには、アプリを削除してください。削除すると、新しい情報は送信されません。すでに送信された情報の削除は、項目8のとおりご請求いただけます。クラウド保存が入ったバージョンでは、アプリを削除しても、クラウド保存のコピーとアカウントは消えません。削除をご希望の場合は、アプリを削除する前に設定画面で「クラウドの記録を消す」を行うか、項目8の方法でご請求ください。広告IDは、端末の設定から削除またはリセットできます。Android は「設定」、「プライバシー」、「広告」で広告IDの削除またはリセットを選びます。iOS(iPhone、iPad)では、「設定」、「プライバシーとセキュリティ」、「トラッキング」でこのアプリのトラッキングの許可をオフにします。オフにするか、最初に許可しなければ、このアプリは広告ID(IDFA)を読み取りません。トラッキング許可の画面は18歳以上の成人にだけ表示し、18歳未満または年齢が分からない利用者には表示せず、広告IDも読み取らないため、止める操作はありません。メニューの名前は、機種とOSのバージョンによって異なることがあります。パーソナライズ広告を止める方法: 上のとおり広告IDを削除すると、このアプリの統計が広告IDを通じて広告に結び付かなくなり、Google アカウントの広告のパーソナライズを無効にすると(Google マイアドセンター、https://myadcenter.google.com)、Google シグナルと Google のパーソナライズ広告の対象から外れます。
アプリと、アプリに組み込まれたサービスは、次の権限を一覧に含めています。インターネットの利用とネットワークの接続状態の確認(広告、統計、決済、そしてこの機能が入ったバージョンからはクラウド保存とサーバー機能)、振動(振動の設定)、Google Play の課金(購入)、端末のスリープ防止とバックグラウンド処理、Google Play のインストール元の照会です。広告サービスが必要とする Android の広告ID権限(AD_ID)と、広告に関する Android のプライバシー サンドボックス権限3種(広告IDへのアクセス、広告の成果測定、関心のあるトピック)も一覧に含まれます。広告IDは、お子さま向け処理の対象者(16歳未満、年齢不明)には送信せず、アプリの利用統計は、18歳未満または年齢が分からない利用者の広告IDを取得しません。位置情報、カメラ、マイク、連絡先、写真やファイルへのアクセス権限は要求しません。
Duck Harbor は、お子さまを含むすべての年齢の方が楽しむゲームです(Google Play ファミリー ポリシーの混合年齢アプリ)。項目2の回答によって、次のように動作が変わります。
このゲームは、みなさんの名前や住んでいる場所をたずねません。最初に生まれた年だけをたずねますが、その数字はこの端末の中にだけ残ります。ゲームの記録をなくさないように、記録をもう一つ私たちのクラウドに預けることもありますが、生まれた年は入れません。みなさんだけに合わせた広告は見せません。この文章がむずかしいときは、保護者の方といっしょに読んでください。知りたいことがあれば、保護者の方が私たちにメールを送ることができます。
削除の方法: 情報が不要になったときは、遅滞なく削除します。電子ファイルにある情報は、復元できないように削除します。安全管理: 当社は自社でサーバー機器を持たず、Google Cloud(Firebase)上でクラウド保存とサーバー機能を運用しています(この機能が入ったバージョンから)。クラウド保存のコピー、購入記録、移行コードの記録はこのアプリの Firebase プロジェクト(ソウル)に、分析のために書き出したアプリの利用統計のコピーは Google Cloud 上の当社の BigQuery プロジェクトに保存しています(項目4)。クラウド保存のコピーは、アプリからはそのアカウントだけが読み書きできるようアクセスのルールで制限し、購入記録、移行コードの記録、分けて保存する取引記録は、アプリから直接読み書きできないようにして、当社のサーバー機能だけが取り扱います。サーバー機能は、正規のアプリからのリクエストだけを受け付けます(Firebase App Check)。移行コードと購入のレシートはそのものを保存せず、元に戻せない形に変えた値だけを残し、Google と Apple のログイン用のトークンはサーバーに保存しません。統計とエラー情報は各SDKが、クラウド保存とサーバー機能のリクエストはアプリが、暗号化された通信(HTTPS)で送信し、お問い合わせメールは運営者だけが閲覧し、Google(AdMob、Firebase、Google Cloud)のコンソールには運営者だけがアクセスします。お子さま向け処理の対象者の識別子がほかの目的に使われないよう、18歳未満または年齢が分からない利用者の統計は、アプリを起動するたびに広告目的の設定(広告の保存、広告用のユーザーデータ、広告のパーソナライズ)を拒否にして Google シグナルと Google 広告との連携の対象から外し、お子さま向け処理の対象者(16歳未満、年齢不明)にはアカウント連携を提供しないため、識別子と結び付けられる連絡先などの情報を保管しません。
この項目は、GDPR、英国GDPR、スイス連邦データ保護法(FADP)が適用される利用者に向けたものです。
管理者(コントローラー): DeepCraft — contact@deepcraft.app
処理の法的根拠
| 内容 | 根拠 |
|---|---|
| 16歳以上の利用者の広告識別子と広告の表示(Google AdMob) | 利用者の同意 — Google の同意画面を経た後にだけ広告をリクエストし、同意しない場合はパーソナライズ広告を表示しません。16歳と17歳の利用者には、同意してもパーソナライズ広告を有効にしません |
| 16歳未満または年齢が分からない利用者の広告の表示(Google AdMob) | 正当な利益 — ゲームを無料で提供するための広告収益。同意画面を表示せず、パーソナライズ広告と広告識別子なしで、お子さま向け処理だけで広告をリクエストします |
| アプリの利用統計とエラー診断(Firebase Analytics、Crashlytics) | 正当な利益 — ゲームを安定して運営し、改善し、不正利用を防ぐこと |
| 18歳以上の利用者の統計を広告に使うこと(広告ID、Google シグナル、Google 広告との連携 — 広告の成果測定とパーソナライズ広告) | 利用者の同意 — Google の同意画面での選択に従い、同意しない場合は統計を広告の目的に使いません。18歳未満または年齢が分からない利用者の統計は広告に使いません |
| アプリ内購入の処理(Google Play 決済) | 契約の履行 — 購入された場合にだけ発生します |
| クラウド保存、別の端末への移行、アカウント連携(この機能が入ったバージョンから) | 契約の履行 — 利用者が使うゲームの機能(記録を預ける、新しい端末へ移す、取り戻す)を提供するために必要です。アカウント連携は、16歳以上の利用者がご自身で選んだときにだけ行います |
| 購入の確認と購入記録(この機能が入ったバージョンから) | 契約の履行 — 購入された商品の付与と返金への対応。正当な利益 — 偽造されたレシートや二重付与を防ぐこと。法的義務 — アカウントの削除後も、韓国の電子商取引に関する法律が定める取引記録を5年間保存すること |
| お問い合わせメール(利用者が送るときだけ) | 正当な利益 — お問い合わせに回答し、不具合を調査すること(その後、遅滞なく削除)。法的義務 — 購入に関する苦情や紛争の対応記録を、韓国の電子商取引に関する法律が定める3年間保存すること |
| サーバーへのリクエストの記録と正規アプリの確認(Google Cloud、Firebase App Check。この機能が入ったバージョンから) | 正当な利益 — サーバーと購入を不正利用や攻撃から守ること |
同意の取得方法: Google の認定を受けた同意管理プラットフォーム(Google User Messaging Platform)で、アプリを初めて起動したときに、生まれた年の回答の後でお尋ねします。同意画面の内容と言語は、Google が利用者の端末の言語で表示します。同意できる年齢は欧州の国によって13歳から16歳まで異なり、当社は最も高い16歳を基準に、16歳未満または年齢が分からない利用者には同意をお尋ねしません。
同意の変更と撤回: 設定画面の「プライバシー設定」から、いつでも開き直して変更または撤回できます(この行は、上記の地域で同意画面をご覧になった利用者にだけ表示されます)。撤回は将来の処理にだけ影響し、撤回前に適法に行った処理には影響しません。
同意しない場合: ゲームはそのままお楽しみいただけます。ただし、パーソナライズ広告は表示されず、同意の設定によって、パーソナライズされていない広告が表示されるか、広告が表示されないことがあります。
利用者の権利: 開示、訂正、削除、処理の制限、処理への異議、データポータビリティを請求でき、居住地の監督機関(Supervisory Authority)に苦情を申し立てる権利があります。16歳未満の利用者に代わる保護者の方からのご請求も受け付けます。請求は contact@deepcraft.app で受け付け、本人確認のうえ対応します。
国際的な移転: 上記のサービスは Google が運営しており、米国を含む EEA 域外で処理されることがあります。クラウド保存とサーバー機能が入ったバージョンからは、クラウド保存のコピーと購入記録を Google Cloud のソウル(韓国)に保存し、匿名アカウントとアカウント連携の情報は Firebase Authentication が米国で処理します。Appleでサインインを使う場合、そのログインの情報は Apple が処理します。Google は、標準契約条項(SCC)など GDPR が定める移転手段を適用します。https://business.safety.google/privacy/
保存期間: クラウド保存のコピー、アカウント、購入記録、移行コードの記録は、Google Cloud 上のこのアプリの Firebase プロジェクトに、項目7の期間に従って保存します。Google Cloud 上の当社の BigQuery プロジェクトに書き出したアプリの利用統計のコピーは、Google のポリシーではなく当社がそのプロジェクトに設定した保存期限に従い、2か月が過ぎると自動的に削除されます。そのほかの情報は上記の第三者が各社のポリシーに従って保存し(項目7)、端末に保存されたゲームの記録と生まれた年は、アプリの削除または端末の設定でのアプリデータの消去で消えます。
ポリシーを変更した場合は、このページの内容と施行日を更新します。法令で定められた手続きが必要な変更は、その手続きに従います。