PEG HERO POP! Privacy Policy
This policy covers the iOS and Android game PEG HERO POP! (com.wookdev.pegheropop) and the account, cloud-save, online raid and daily leaderboard service at raid.wookdev.com that the game uses. It explains what stays on your device, what the game sends to us, who can see it, how long it is kept and how to delete it.
1. At a glance
- Sign-in is optional. You can play the whole game as a guest, with progress saved on this device. Sign in with Apple or Google to save and restore progress across devices.
- Your game progress is saved on your device.
- The online raid and the daily leaderboard use a random raid ID issued by our server. Your public name is the name you enter in the game. Until you enter one, a generated name such as
Captain_4821is used. Anyone can see it on the rankings, so please do not use your real name. - Google AdMob provides ads, and Google UMP manages privacy choices. Google may process advertising data as described in section 9; the advertising identifier may be used when iOS tracking permission allows it. You can decline tracking and continue playing. On Android, the advertising ID may be used depending on device settings and privacy choices.
- Google Analytics for Firebase collects app identifiers, device information and gameplay events to measure installs, conversions and game progress. In the EEA, UK and Switzerland, collection stays off until UMP consent; elsewhere it starts when the app opens. See section 9.
- Apple processes iOS payments, and Google Play processes Android payments. We never receive your card or bank details.
- You can delete your online raid and daily leaderboard data at any time in Settings with Delete online raid data.
- App update checks: our update server does not store or log the request contents or device ID (section 6).
Anonymous gameplay statistics: The app sends level results, attempt counts, pins and objects used, dodge counts, progress and in-game currency spending, and once a day the previous day’s total foreground time and number of play sessions, the platform (iOS or Android) and the app version and build number, to our Cloudflare D1 database. These statistics are not linked to a device, account or IP address. We store only the UTC date, not the time, and do not store IP addresses, User-Agent headers or player identifiers with these events. We use them only to adjust game balance and improve the game, and delete them after 90 days, at the next daily cleanup when a telemetry request arrives. Because these events have no player identifier, we cannot find an individual player’s events for deletion. This is separate from leaderboard submissions and advertising data.
2. Device data, sign-in and cloud save
- Game progress, stars, gold, items, heroes, pass progress, purchase records, settings and your typed nickname are saved on your device. A random local player ID is created on first launch and used to generate your default name. The name you enter is sent to our server when you play the online raid or submit a ranked daily run, and again when you change it, so that this week’s raid ranking and your stored daily entries show the new name. When signed in, the whole profile, including the nickname and local player ID, is also saved to the cloud.
- Raid data: if you open the online raid, open Invite friends or submit a ranked daily run, the device also stores your raid ID and its secret token, raid results and ranked daily runs still waiting to be sent, and the last server time. These are kept apart from your game profile. They are not stored in the iOS Keychain and the app does not encrypt them.
- Backups: iOS device backups (iCloud or a computer) may include this data. Deleting the app removes it from the device but does not delete records on our server. Use Delete account and Delete online raid data before removing the app, as applicable.
- Sharing: if you tap Share on a result, the text goes to the app you choose in the iOS share sheet. It does not pass through our server.
Your game profile is saved on this device and, when signed in, copied to Cloudflare Workers and D1. iPhone backups may also contain it.
The cloud copy includes progress and stars, lives and recovery times, gold, items, owned heroes and selected captain, pass progress, purchase grants and transaction records, entitlements, settings, nickname and local player ID, daily results and streaks, tutorial and reward history, event and shop state, level attempts, notification settings, schedules and reminder history.
Our server stores a random account ID, the sign-in provider, its account identifier (subject), account creation time, and the cloud copy with its version and update time. For Apple, it also stores the app client identifier and, when token exchange is configured, an encrypted refresh token for revoking authorization.
We do not ask you for an email address or real name, request extra email or name scopes, or save those fields. A provider identity token is sent to our server for verification and may contain other claims. We do not retain the identity token or its other claims, apart from the subject and Apple app client identifier described above.
Your sign-in session is stored on this device and expires after 30 days. We use account and cloud-save data to save and restore progress and continue across devices, not for advertising or tracking. Cloud accounts and saves remain until you delete the account; signing out keeps both device progress and the cloud copy.
For sign-in verification, the server temporarily stores a one-use challenge (nonce) and an expiry time ten minutes later. Used challenges are deleted immediately; expired challenges are removed when an account endpoint next receives a request.
3. Online raid
The online raid is a weekly world boss that all players attack together. Apart from the online raid, the daily leaderboard (section 4), sign-in, cloud save, friend invites, coupon codes (section 7), ads (section 9) and app update checks (section 6), the game works offline. Offline practice raids are not submitted to the online raid leaderboard; anonymous balance statistics are described in section 1.
- Raid ID: when you first open the RAID tab, the app asks
raid.wookdev.comfor a random raid ID and a secret token. The server keeps the raid ID and a SHA-256 hash of the token, not the token itself. The raid ID is not an advertising identifier and is not connected to your Apple ID. - When you attack: the app sends your raid ID, your public name, the week, an attack ID, the captain you picked, and your board setup or recorded moves. The server replays the battle and calculates the damage itself. It does not accept scores or damage from the device.
- What the server keeps for each week you play: raid ID, public name, platform label, total damage, number of attacks, the UTC dates you attacked, the order in which you reached your current total damage (used to break ties), attack receipts (attack ID, start time, result, and the board setup or a SHA-256 fingerprint of the recorded moves), and whether you landed the final blow on the boss.
- What is public: anyone can view the raid rankings. They show the public name, platform label, damage, rank and any ranking frame earned the week before, plus the public name of the player who landed the final blow. The rankings never show the raid ID or the token. They may also include players of the PEG HERO game on Reddit, shown with a Reddit label. Each app player's row also carries a public row ID: the first 16 characters of a SHA-256 hash of the raid ID. It is used to report or hide that row, and the raid ID cannot be worked out from it. Reddit rows have none. If we reset a reported name, we add this public row ID and the time to a reset table in our Cloudflare D1 database, and the rankings show a generated name such as
Captain_4821instead. That entry stays until we remove it, even after Delete online raid data. - Reporting and hiding names: tap another player’s name to report or hide it. Report name opens your mail app with a message to hello@wookdev.com that lists the name, the board, the week or day and the public row ID; we receive your email address and anything you add. We use reports only to review and reset names, and delete them once they are no longer needed to handle the report. Hide this name saves that public row ID only on your device (up to 200 names); it is not sent to us or included in the cloud save.
- Friend invites: if you open Invite friends or enter a friend’s code, the app uses this same raid ID, creating one if needed; the server stores your invite code, which raid ID used which code and the reward status until you use Delete online raid data, and counts code attempts under a SHA-256 hash of the UTC date and your IP address to limit abuse.
4. Daily leaderboard
The daily challenge is one level that everyone plays on the same UTC day. Only your first ranked run of the day is sent. Practice runs, retries and challenge codes are not sent to the daily leaderboard; anonymous balance statistics are described in section 1.
- When you submit: the app sends your raid ID and token, your public name, the challenge date, your score, a submission ID, your recorded moves and the game’s simulation version. If you do not have a raid ID yet, the app first asks the server for one, as described in section 3. The server replays the moves to check the score and refuses any score it cannot reproduce. If the run cannot be sent, the app keeps it on the device and tries again until shortly after that UTC day ends.
- What the server keeps for each challenge date: raid ID, public name, verified score, submission ID, the order in which entries were accepted, your rank when the entry was accepted, a SHA-256 fingerprint of the recorded moves, and a list of the dates you took part. The recorded moves themselves are not kept.
- What is public: the daily top 10 shows public names, scores and ranks for a date. Your own row is shown only to your app. The raid ID and token are never shown. App players' rows also carry the public row ID, and reset names are shown as described in section 3.
- How long: daily entries, receipts and fingerprints expire 14 days after the start of the challenge’s UTC date and are then deleted automatically.
5. Server time check
So that time-based content unlocks fairly, the app asks raid.wookdev.com for the current time while it is open and online, about once a minute. This request contains no player ID and no game data. The time it returns is saved on the device.
6. App update checks
From version 1.0.3, the app checks our update server at https://ota.wookdev.com when it starts or is reopened. It sends the app ID, platform, app and bundle versions, build number, OS version, update plugin version, update channel, whether it is a test build or emulator, how the app was installed, and a random device ID that the update plugin creates and keeps on the device (it may remain after the app is reinstalled).
We use this information to choose a suitable update and assign devices to a staged rollout. Our update server does not store or log the request contents or device ID. Cloudflare processes these requests, as described in section 10.
Update files come only from our server. Nothing is sent to the third-party update service Capgo Cloud. These checks are part of normal app operation; there is no separate on/off setting.
7. IP addresses and abuse limits
Every request to raid.wookdev.com passes through Cloudflare, which sees your IP address. Our server code reads the IP address only to enforce abuse limits. Daily limits: per IP address and UTC day, up to 100 new raid IDs, 40 raid attacks, 40 accepted daily leaderboard entries and 60 daily replay attempts (failed replays count; retrying an accepted entry does not); and 3 raid attacks per raid ID per UTC day. For IPv6 addresses, the daily leaderboard limits count each /64 network as one address. The sign-in and cloud-save endpoints also limit requests per minute using a SHA-256 hash of the minute and the IP address, stored in a Cloudflare D1 database with an expiry time about two minutes later. Expired hashes are deleted the next time one of those endpoints receives a request, so one can stay stored longer than two minutes.
For these limits the server stores a SHA-256 hash of the UTC date and the IP address, with counters. For each accepted daily leaderboard entry it also stores, with that IP hash, a SHA-256 hash of your raid ID and the challenge date, so a retried entry is not counted twice. It does not store raw IP addresses in its raid database. These hashes are not keyed with a secret, so we do not treat them as fully anonymous. We use them only for these limits and delete them after the UTC day ends.
When you enter a coupon code, the app sends the code to our server to check it. The code is not saved with your data. To limit attempts to 10 per minute, the server keeps a counter under a SHA-256 hash of the UTC date and your IP address and deletes it about a minute later.
8. Purchases
On iOS, in-app purchases are processed by Apple through the App Store. Apple handles your payment, and we never receive your card or bank details. Through StoreKit the app receives the transaction ID, product ID and purchase date, and stores them on your device to grant and restore your items. When signed in, purchase records are included in your cloud save. Restore purchases is in Settings. Apple’s privacy policy applies to App Store purchases.
On Android, Google Play processes in-app purchases. We never receive your card or bank details. The app receives the order ID, product ID and purchase time to grant and restore items. Google’s privacy policy applies to Google Play purchases.
9. Advertising and privacy choices
The game uses Google AdMob for optional rewarded ads and occasional ads after campaign clears. Ads need an internet connection. Remove Ads turns off the ads after clears; optional rewarded ads stay available. Players with any saved purchase history do not receive forced ads.
Google may collect device identifiers, IP address and approximate location, ad views and interactions, and crash or performance data to provide and measure ads and prevent fraud. The advertising identifier may be used when iOS tracking permission allows it. Our game does not send your raid ID, raid token, typed name or purchase journal to AdMob through a custom advertising payload. On Android, the advertising ID may be used depending on device settings and privacy choices.
After the tutorial, we check your privacy choices through Google UMP before initializing advertising. When needed, UMP presents a consent form before the separate iOS tracking prompt. You can decline tracking and continue playing. In game Settings, use Ad privacy choices to reopen any privacy form available for your region. Change tracking permission in iOS Settings. Refusing tracking does not necessarily remove ads; advertising availability also depends on your UMP choices and your region. On Android, you can reset or delete the advertising ID in device settings.
Google processes advertising data under its own privacy policy, including processing outside your country. See Google Privacy Policy and How Google uses information from apps. We do not set a single retention period for Google's advertising data. The game does not request precise location, contacts, photos, camera or microphone access.
Google Analytics for Firebase: From version 1.0.2, analytics runs only in the iOS and Android apps. It is separate from the anonymous Cloudflare D1 balance statistics in section 1.
Firebase automatically collects a random app instance ID for each installation, which changes on reinstall. It also collects events such as first launch, session start and app updates; device model, OS version, app version and language; and country or region estimated from the IP address (approximate location). Google Analytics does not store the IP address itself.
The game sends these events without names or other directly identifying details: first tutorial completion; stage results (stage number and success or failure); first reaching stages 5, 10 and 20; successful purchases (product ID, amount and currency exactly as supplied by the store); and completed rewarded ads (ad placement name). We do not send names or nicknames, account IDs, raid IDs or tokens, email addresses, purchase receipts or precise location to Firebase Analytics.
On iOS, IDFA can be used only with App Tracking Transparency (ATT) permission. On Android, the advertising ID may be used depending on device settings and privacy choices.
In the European Economic Area (EEA), UK and Switzerland, analytics collection stays off until you consent through Google UMP. Analytics storage, advertising storage and advertising data/personalization signals are set according to that consent. Elsewhere, analytics collection starts when the app opens. In those other regions, advertising signals (ad_storage, ad_user_data and ad_personalization) are granted on iOS only with tracking permission, and are set to granted on Android. You can reopen the form available for your region in Settings › Ad privacy choices. Changed choices also apply to Firebase.
We use this data to measure which ads and other sources lead to installs and conversions, understand game progress and where players stop, and optimize Google Ads campaigns. Google Analytics data may be linked to Google Ads to measure advertising performance.
Google Analytics event-level data is kept for 2 months (the default). Aggregated reports may remain longer. Analytics data is not linked to your game account, so we cannot identify a specific user’s data for deletion. Removing the app removes its app instance ID; a new ID is created on reinstall. This does not delete previously collected analytics data. For questions, contact hello@wookdev.com.
10. Service providers and where data is processed
- Cloudflare hosts
raid.wookdev.comand stores the raid and daily leaderboard data (Cloudflare Workers and Durable Objects). Cloudflare runs a global network, so your requests may be processed outside your country. We have Cloudflare Workers Logs turned on forraid.wookdev.com: for each request it records the time, request URL (which can include your raid ID), response status and request details added by Cloudflare, which can include your IP address and approximate location. These logs are kept in our Cloudflare account for up to 7 days. Cloudflare may also keep its own operational logs under its own retention settings. Our code logs the attack ID, damage and result hash of completed attacks. It never logs tokens. It also processes accounts and cloud saves with Cloudflare Workers and D1. Cloudflare also processes app update checks atota.wookdev.com. Workers Logs are turned off for this update server; our update server does not store or log the request contents or device ID. - Apple distributes the app and processes payments under Apple’s own privacy policy. It also provides optional Sign in with Apple.
- Google provides advertising through AdMob and privacy choices through UMP. Advertising data may be processed outside your country under Google Privacy Policy and How Google uses information from apps. See section 9 for data and choices. It also provides optional Google sign-in. It also provides Google Analytics for Firebase for analytics and Google Play for Android distribution and payments.
11. How long data is kept
- App update checks: our update server does not store or log the request contents or device ID.
- Game data on your device has no automatic expiry. It stays until you delete the app or its data; the sign-in session expires after 30 days.
- Your sign-in session is stored on this device and expires after 30 days. We use account and cloud-save data to save and restore progress and continue across devices, not for advertising or tracking. Cloud accounts and saves remain until you delete the account; signing out keeps both device progress and the cloud copy.
- Your raid ID, token hash, weekly raid records and receipts do not expire automatically. They stay until you delete them. Past weeks are kept so you can see your results and rewards.
- Daily leaderboard entries, receipts, fingerprints and the list of dates you took part are deleted automatically 14 days after the start of each challenge’s UTC date.
- Daily IP hash counters are deleted after the UTC day ends. Attack counters are normally removed within about 24 to 48 hours. New-ID counters are removed 24 hours after their last use.
- After you delete your raid data, a deletion marker with the token hash stays for 24 hours so that a lost response can be retried safely. Then it is removed.
- Your ranking row is removed, but the damage you dealt stays counted in the weekly boss HP and total damage as an anonymous shared total.
- Workers Logs for
raid.wookdev.com(kept up to 7 days) and Cloudflare’s own operational logs are not removed by in-app deletion; they expire on their own. - Google Analytics event-level data is kept for 2 months (the default). Aggregated reports may remain longer.
12. Deleting your data
- Delete your account: Open Settings › Save status › Delete account. The app first deletes this installation’s online raid and daily ranking records and pending daily submissions. It then requests deletion of the cloud account and save. For Apple accounts, when revocation is configured, Apple authorization is revoked before the cloud account is deleted. If that step fails, the cloud account and save remain so you can retry; the raid deletion may already be complete.
- After successful deletion, the app signs out and clears this account’s local sync queue. Progress and purchases on this device stay available as a guest. Raid records from another installation are not linked to the cloud account and must be deleted separately. Deleting the app alone does not delete the cloud account or save.
- In the app: open Settings and tap Delete online raid data. For every week, the server deletes your ranking row, attack receipts, open attacks and final-blow credit. It also deletes your stored daily leaderboard entries, receipts and fingerprints. Your invite code and this raid ID’s invite records are deleted too. A friend’s pending reward and invite record stay without this raid ID. A long history is deleted in steps, and the app keeps going until the server confirms. Then the app removes the raid ID and token from your device. Your local progress stays.
- If you never opened the RAID tab or Invite friends and never sent a ranked daily run, there is no linked raid, daily leaderboard or invite record to delete; anonymous gameplay statistics are still collected as described in section 1.
- If you play the online raid again after deleting, a new raid ID is created.
- Delete before removing the app. Without the token on your device, the app cannot prove the records are yours. If you already removed the app or lost the token, email hello@wookdev.com with your public name and the raid weeks you played. Do not send a token by email. We will tell you what can be identified and removed.
- Local data: delete the app to remove your progress from the device. This does not delete server records.
- Firebase analytics data is not linked to your game account, so we cannot identify a specific user’s analytics data for deletion. Removing the app removes its app instance ID; a new ID is created on reinstall. This does not delete previously collected analytics data. For questions, contact hello@wookdev.com.
13. Your rights and contact
Depending on where you live, you may have the right to access, correct or delete your data, or to object to how it is used. Your raid results are visible in the game, and you can delete your raid data in Settings. For any other request or question, email hello@wookdev.com.
14. Children
PEG HERO POP! is a general-audience game and is not directed to children under 13. Please do not use the game if you are under 13. If you are 13 to 17, please use it only with the permission of a parent or guardian who has reviewed this policy; by using the game, you confirm that you have that permission. We do not knowingly collect personal information from children under 13 (or under the higher age set by local law) without the consent of a parent or guardian, and if we learn that we have, we will delete it.
The game does not ask for a real name, email address, age or other contact details. A nickname typed in the game is saved on the device, included in the cloud save when signed in, and shown on the public rankings. Common offensive words are blocked, and the name screen asks players not to use real names. The game has no chat. A parent who wants a child’s online raid data deleted can use Delete online raid data on the child’s device or contact us at hello@wookdev.com.
15. Changes
If this policy changes, we will post the new version on this page with a new effective date. This policy includes optional sign-in and cloud save. From version 1.0.2, it also includes Firebase analytics on iOS and Android.
November 12, 2026: added app update checks from version 1.0.3, the information sent and the rule that our update server does not store or log it.
PEG HERO POP! 개인정보처리방침
이 방침은 iOS·안드로이드 게임 PEG HERO POP!(com.wookdev.pegheropop)과 게임이 사용하는 계정·클라우드 저장·온라인 레이드·데일리 순위 서비스 raid.wookdev.com에 적용됩니다. 기기에 남는 정보, 게임이 보내는 정보, 공개 범위, 보관 기간과 삭제 방법을 설명합니다.
1. 요약
- 로그인은 선택입니다. 로그인하지 않아도 게스트로 끝까지 플레이할 수 있고 진행은 이 기기에 저장됩니다. Apple 또는 Google로 로그인하면 진행을 클라우드에 저장·복원하고 다른 기기에서 이어할 수 있습니다.
- 게임 진행은 기기에 저장됩니다.
- 온라인 레이드와 데일리 순위는 서버가 발급한 무작위 레이드 ID를 사용합니다. 공개 이름은 게임에서 입력한 이름입니다. 입력하기 전에는
Captain_4821처럼 자동으로 만든 이름을 씁니다. 순위표에서 누구나 볼 수 있으니 본명은 쓰지 마세요. - Google AdMob으로 광고를 제공하고 Google UMP로 개인정보 선택을 확인합니다. Google은 9항에 설명된 광고 데이터를 처리할 수 있으며, iOS 추적 권한이 허용되면 광고 식별자를 사용할 수 있습니다. 추적을 거부해도 계속 플레이할 수 있습니다. 안드로이드에서는 기기 설정과 개인정보 선택에 따라 광고 ID를 사용할 수 있습니다.
- Google Analytics for Firebase는 앱 식별자·기기 정보·게임 이벤트를 수집해 설치·전환과 게임 진행을 분석합니다. EEA·영국·스위스에서는 UMP 동의 전까지 수집이 꺼져 있고, 그 밖의 지역에서는 앱 시작 시 켜집니다. 자세한 내용은 9항을 참고하세요.
- iOS 결제는 Apple이, 안드로이드 결제는 Google Play가 처리합니다. 카드나 계좌 정보를 받지 않습니다.
- 설정의 온라인 레이드 데이터 삭제로 언제든 온라인 레이드와 데일리 순위 데이터를 삭제할 수 있습니다.
- 앱 업데이트 확인: 우리 업데이트 서버는 요청 내용과 기기 ID를 저장하거나 로그로 남기지 않습니다(6항).
익명 게임 플레이 통계: 앱은 레벨 결과, 시도 수, 사용한 핀·오브젝트 수, 회피 수, 진행도, 게임 재화 사용, 하루 한 번 전날 앱을 화면에 띄워 둔 총 시간과 접속 횟수, 플랫폼(iOS·안드로이드), 앱 버전과 빌드 번호를 Cloudflare D1 데이터베이스로 보냅니다. 이 통계는 기기·계정·IP와 연결하지 않습니다. UTC 날짜만 저장하고 시각, IP 주소, User-Agent, 이용자 식별자는 이벤트와 함께 저장하지 않습니다. 게임 밸런스 조정과 게임 개선에만 사용하며 90일 뒤 통계 요청이 들어올 때 수행하는 다음 일일 정리에서 삭제합니다. 이용자 식별자가 없어 특정 이용자의 이벤트만 찾아 삭제할 수는 없습니다. 순위 제출 및 광고 데이터와는 별개입니다.
2. 기기 데이터, 로그인과 클라우드 저장
- 진행, 별, 골드, 아이템, 영웅, 패스 진행, 구매 기록, 설정과 입력한 닉네임은 기기에 저장됩니다. 첫 실행 때 무작위 로컬 플레이어 ID를 만들고 기본 이름을 만드는 데 사용합니다. 입력한 이름은 온라인 레이드를 하거나 랭킹 데일리를 제출할 때 서버로 전송되고, 이름을 바꾸면 이번 주 레이드 순위와 보관 중인 데일리 기록에 새 이름이 보이도록 다시 전송됩니다. 로그인하면 닉네임과 로컬 플레이어 ID를 포함한 프로필 전체가 클라우드에도 저장됩니다.
- 레이드 데이터: 온라인 레이드나 친구 초대를 열거나 데일리 랭크 기록을 보내면 레이드 ID와 비밀 토큰, 아직 보내지 못한 레이드 결과와 데일리 랭크 기록, 마지막 서버 시각도 기기에 저장합니다. 게임 프로필과 따로 보관합니다. iOS 키체인에 저장하지 않으며 앱이 따로 암호화하지 않습니다.
- 백업: iCloud나 컴퓨터로 만든 iOS 기기 백업에 이 데이터가 포함될 수 있습니다. 앱을 지우면 기기에서는 사라지지만 서버 기록은 지워지지 않습니다. 앱을 지우기 전에 해당하는 계정 삭제와 온라인 레이드 데이터 삭제를 사용해 주세요.
- 공유: 결과 화면에서 공유를 누르면 문구가 iOS 공유 시트에서 고른 앱으로 전달됩니다. 우리 서버를 거치지 않습니다.
게임 프로필은 이 기기에 저장되고, 로그인하면 Cloudflare Workers와 D1에도 복사됩니다. iPhone 백업에도 포함될 수 있습니다.
클라우드 저장본에는 진행과 별, 하트와 회복 시각, 골드, 아이템, 보유 영웅과 선택한 대장, 패스 진행, 구매 지급 내역과 거래 기록, 보유 권한, 설정, 닉네임과 로컬 플레이어 ID, 데일리 결과와 연속 기록, 튜토리얼·보상 이력, 이벤트·상점 상태, 레벨 시도 수, 알림 설정·예약·알림 이력이 포함됩니다.
서버는 무작위 계정 ID, 로그인 제공자 종류와 제공자의 계정 식별자(subject), 계정 생성 시각, 클라우드 저장본과 저장 버전·갱신 시각을 보관합니다. Apple은 앱 클라이언트 식별자도 보관하며, 토큰 교환이 설정되어 있으면 인증 철회를 위한 암호화된 refresh token도 보관합니다.
이메일이나 실명을 입력하도록 요구하거나 이메일·이름의 추가 권한을 요청하지 않으며, 해당 항목을 저장하지 않습니다. 제공자의 신원 토큰은 검증을 위해 서버로 전달되며 다른 클레임이 포함될 수 있습니다. 위의 subject와 Apple 앱 클라이언트 식별자를 제외하고 신원 토큰이나 그 밖의 클레임은 보관하지 않습니다.
로그인 세션은 이 기기에 저장되고 30일 뒤 만료됩니다. 계정·클라우드 저장 데이터는 진행 저장·복원과 기기 간 이어하기에 사용하며 광고·추적에 사용하지 않습니다. 클라우드 계정과 저장본은 계정을 삭제할 때까지 남으며, 로그아웃해도 기기 진행과 클라우드 저장본은 남습니다.
로그인 검증을 위해 서버는 일회용 확인값(nonce)과 10분 뒤의 만료 시각을 임시로 저장합니다. 사용한 확인값은 즉시 삭제하며, 만료된 확인값은 계정 관련 주소에 다음 요청이 들어올 때 삭제합니다.
3. 온라인 레이드
온라인 레이드는 모든 이용자가 함께 공격하는 주간 월드 보스입니다. 온라인 레이드, 데일리 순위(4항), 로그인, 클라우드 저장, 친구 초대, 쿠폰 코드(7항), 광고(9항), 앱 업데이트 확인(6항)을 빼면 게임은 오프라인으로 동작합니다. 오프라인 연습 레이드는 온라인 레이드 순위에 전송되지 않습니다. 익명 밸런스 통계는 1항에 설명되어 있습니다.
- 레이드 ID: 레이드(RAID) 탭을 처음 열면 앱이
raid.wookdev.com에 무작위 레이드 ID와 비밀 토큰을 요청합니다. 서버는 레이드 ID와 토큰의 SHA-256 해시만 보관하고 토큰 원문은 보관하지 않습니다. 레이드 ID는 광고 식별자가 아니며 Apple ID와 연결되지 않습니다. - 공격할 때: 앱은 레이드 ID, 공개 이름, 주차, 공격 ID, 고른 캡틴, 보드 배치 또는 기록된 조작을 보냅니다. 서버가 전투를 직접 재생해 피해량을 계산하며, 기기가 보낸 점수나 피해량은 받지 않습니다.
- 참여한 주마다 서버가 보관하는 정보: 레이드 ID, 공개 이름, 플랫폼 표시, 누적 피해량, 공격 횟수, 공격한 UTC 날짜, 동점 처리에 쓰는, 현재 누적 피해량에 도달한 순서, 공격 영수증(공격 ID, 시작 시각, 결과, 그리고 보드 배치 원본 또는 기록된 조작의 SHA-256 지문), 보스에게 마지막 일격을 넣었는지 여부.
- 공개되는 정보: 레이드 순위는 누구나 볼 수 있습니다. 공개 이름, 플랫폼 표시, 피해량, 순위, 지난주에 받은 순위 프레임과 마지막 일격을 넣은 이용자의 공개 이름이 표시됩니다. 레이드 ID와 토큰은 표시되지 않습니다. Reddit용 PEG HERO 게임 이용자도 Reddit 표시와 함께 순위에 나올 수 있습니다. 앱 이용자의 줄에는 공개 줄 ID도 붙습니다. 레이드 ID의 SHA-256 해시 앞 16자리이며, 그 줄을 신고하거나 숨기는 데 쓰고, 이 값으로 레이드 ID를 알아낼 수는 없습니다. Reddit 줄에는 없습니다. 신고된 이름을 초기화하면 이 공개 줄 ID와 시각을 Cloudflare D1 데이터베이스의 초기화 표에 넣고, 순위에는
Captain_4821처럼 자동으로 만든 이름을 표시합니다. 이 항목은 온라인 레이드 데이터를 삭제해도 우리가 지울 때까지 남습니다. - 이름 신고와 숨기기: 다른 이용자의 이름을 누르면 신고하거나 숨길 수 있습니다. ‘이름 신고’를 누르면 메일 앱이 열리고 이름, 순위표, 주차 또는 날짜, 공개 줄 ID가 적힌 메일을 hello@wookdev.com으로 보내게 됩니다. 우리는 보낸 분의 메일 주소와 추가로 적은 내용을 받습니다. 신고는 이름 확인과 초기화에만 쓰고, 처리에 더 필요하지 않게 되면 삭제합니다. ‘이 이름 숨기기’는 그 공개 줄 ID를 기기에만 저장하며(최대 200개), 우리에게 보내거나 클라우드 저장에 넣지 않습니다.
- 친구 초대: 친구 초대를 열거나 친구 코드를 입력하면 앱은 같은 레이드 ID를 쓰고 없으면 새로 만들며, 서버는 온라인 레이드 데이터 삭제를 할 때까지 초대 코드, 코드를 입력한 레이드 ID와 그 코드, 보상 상태를 보관하고, 남용을 막기 위해 코드 입력 횟수를 UTC 날짜와 IP 주소의 SHA-256 해시로 기록합니다.
4. 데일리 순위
데일리 챌린지는 같은 UTC 날짜에 모든 이용자가 같은 판을 하는 도전입니다. 그날 첫 랭크 기록만 전송합니다. 연습, 재도전, 챌린지 코드 재생은 데일리 순위에 전송하지 않습니다. 익명 밸런스 통계는 1항에 설명되어 있습니다.
- 전송할 때: 앱은 레이드 ID와 토큰, 공개 이름, 도전 날짜, 점수, 제출 ID, 기록된 조작, 게임 시뮬레이션 버전을 보냅니다. 레이드 ID가 아직 없으면 3항처럼 먼저 서버에 레이드 ID를 요청합니다. 서버는 조작을 직접 재생해 점수를 확인하며, 재현되지 않는 점수는 받지 않습니다. 전송하지 못한 기록은 기기에 보관했다가 그 UTC 날짜가 끝난 직후까지 다시 보냅니다.
- 도전 날짜마다 서버가 보관하는 정보: 레이드 ID, 공개 이름, 검증된 점수, 제출 ID, 접수 순서, 접수 당시 순위, 기록된 조작의 SHA-256 지문, 참여한 날짜 목록. 기록된 조작 원문은 보관하지 않습니다.
- 공개되는 정보: 데일리 TOP 10에는 그날의 공개 이름, 점수, 순위가 표시됩니다. 내 순위 행은 내 앱에만 표시됩니다. 레이드 ID와 토큰은 표시되지 않습니다. 앱 이용자의 줄에는 공개 줄 ID도 붙고, 초기화된 이름은 3항과 같이 표시됩니다.
- 보관 기간: 데일리 기록, 영수증, 지문은 해당 도전 날짜의 UTC 0시부터 14일 뒤 만료되어 자동으로 삭제됩니다.
5. 서버 시각 확인
시간에 따라 열리는 콘텐츠를 공정하게 열기 위해, 앱이 켜져 있고 온라인일 때 약 1분마다 raid.wookdev.com에 현재 시각을 묻습니다. 이 요청에는 플레이어 ID나 게임 데이터가 들어가지 않습니다. 받은 시각은 기기에 저장됩니다.
6. 앱 업데이트 확인
1.0.3부터 앱이 실행되거나 다시 열릴 때 우리 업데이트 서버 https://ota.wookdev.com에 확인 요청을 보냅니다. 앱 ID, 플랫폼, 앱·묶음 버전, 빌드 번호, OS 버전, 업데이트 플러그인 버전, 업데이트 채널, 테스트 빌드·에뮬레이터 여부, 설치 경로, 그리고 업데이트 플러그인이 만들어 기기에 보관하는 무작위 기기 ID(앱을 다시 설치해도 남을 수 있음)를 보냅니다.
맞는 업데이트를 고르고 단계적 배포 비율을 나누는 데 사용합니다. 우리 업데이트 서버는 요청 내용과 기기 ID를 저장하거나 로그로 남기지 않습니다. 요청은 10항에 설명된 Cloudflare에서 처리합니다.
업데이트 파일은 우리 서버에서만 받습니다. 제3자 업데이트 서비스인 Capgo 클라우드로는 아무것도 보내지 않습니다. 앱 정상 동작을 위한 확인이며, 따로 켜거나 끄는 설정은 없습니다.
7. IP 주소와 남용 방지 한도
raid.wookdev.com으로 가는 모든 요청은 Cloudflare를 거치며, Cloudflare는 IP 주소를 봅니다. 서버 코드는 남용 방지 한도를 적용할 때만 IP 주소를 읽습니다. 하루 한도는 IP 주소당 UTC 하루에 새 레이드 ID 100개, 레이드 공격 40회, 데일리 순위 접수 40건, 데일리 재생 시도 60회(실패한 재생 포함, 이미 접수된 기록의 재전송은 제외)이고, 레이드 ID당 UTC 하루 레이드 공격 3회입니다. IPv6 주소는 데일리 순위 한도를 셀 때 /64 대역을 하나의 주소로 봅니다. 로그인·클라우드 저장 주소도 분당 요청 수를 제한하며, 이때 분 단위 시각과 IP 주소를 합친 값의 SHA-256 해시를 Cloudflare D1 데이터베이스에 저장하며 약 2분 뒤를 만료 시각으로 정합니다. 만료된 해시는 이 주소들에 다음 요청이 올 때 삭제되므로 2분보다 오래 남을 수 있습니다.
한도 계산을 위해 서버는 UTC 날짜와 IP 주소를 합친 값의 SHA-256 해시와 횟수를 저장합니다. 접수된 데일리 순위 기록마다, 같은 기록의 재전송을 두 번 세지 않도록 그 IP 해시와 함께 레이드 ID와 도전 날짜를 합친 값의 SHA-256 해시도 저장합니다. 레이드 데이터베이스에 IP 주소 원문은 저장하지 않습니다. 이 해시들은 비밀 키를 섞지 않으므로 완전한 익명 정보로 보지 않습니다. 한도 적용에만 쓰고 해당 UTC 날짜가 지나면 삭제합니다.
쿠폰 코드를 입력하면 앱은 확인을 위해 코드를 서버로 보냅니다. 코드는 이용자 데이터와 함께 저장되지 않습니다. 시도를 분당 10회로 제한하기 위해 서버는 UTC 날짜와 IP 주소의 SHA-256 해시로 횟수를 기록하고 1분쯤 뒤에 지웁니다.
8. 구매
iOS 인앱 구매는 App Store를 통해 Apple이 처리합니다. 결제는 Apple이 맡으며 우리는 카드나 계좌 정보를 받지 않습니다. 앱은 StoreKit으로 거래 ID, 상품 ID, 구매 일시를 받아 아이템 지급과 복원을 위해 기기에 저장합니다. 로그인하면 구매 기록도 클라우드 저장본에 포함됩니다. 구매 복원은 설정에 있습니다. App Store 구매에는 Apple의 개인정보 처리방침이 적용됩니다.
안드로이드 인앱 구매는 Google Play가 처리합니다. 우리는 카드나 계좌 정보를 받지 않습니다. 앱은 아이템 지급과 복원을 위해 주문 ID, 상품 ID, 구매 시각을 받습니다. Google Play 구매에는 Google의 개인정보처리방침이 적용됩니다.
9. 광고와 개인정보 선택
게임은 Google AdMob으로 선택형 보상 광고와 캠페인 클리어 후 가끔 표시되는 광고를 제공합니다. 광고에는 인터넷 연결이 필요합니다. 광고 제거를 구매하면 클리어 후 광고가 꺼지고, 선택형 보상 광고는 계속 볼 수 있습니다. 저장된 결제 이력이 있는 이용자에게는 강제 광고를 표시하지 않습니다.
Google은 광고 제공과 효과 측정, 부정행위 방지를 위해 기기 식별자, IP 주소와 대략적인 위치, 광고 조회·상호작용, 오류·성능 데이터를 수집할 수 있습니다. iOS 추적 권한이 허용된 경우 광고 식별자를 사용할 수 있습니다. 게임은 레이드 ID·토큰, 직접 입력한 이름, 구매 기록을 별도 광고 데이터로 AdMob에 보내지 않습니다. 안드로이드에서는 기기 설정과 개인정보 선택에 따라 광고 ID를 사용할 수 있습니다.
튜토리얼 이후 광고를 초기화하기 전에 Google UMP로 개인정보 선택을 확인합니다. 필요한 경우 UMP 동의 양식을 먼저 표시하고, 그 뒤 iOS 추적 권한을 별도로 묻습니다. 추적을 거부해도 계속 플레이할 수 있습니다. 게임 설정의 광고 개인정보 선택에서 해당 지역에 제공되는 양식을 다시 열 수 있습니다. 추적 권한은 iOS 설정에서 변경합니다. 추적을 거부해도 광고가 표시될 수 있으며, 광고 제공 여부는 UMP 선택과 지역에도 영향을 받습니다. 안드로이드에서는 기기 설정에서 광고 ID를 재설정하거나 삭제할 수 있습니다.
Google은 자체 개인정보처리방침에 따라 광고 데이터를 처리하며 국외에서 처리할 수 있습니다. Google 개인정보처리방침과 앱 정보의 Google 사용 방식을 참고하세요. Google 광고 데이터의 일률적인 보관 기간을 게임에서 정하지 않습니다. 게임은 정확한 위치, 연락처, 사진, 카메라, 마이크 접근 권한을 요청하지 않습니다.
Google Analytics for Firebase: 1.0.2부터 iOS·안드로이드 앱에서만 분석이 동작합니다. 1항의 Cloudflare D1 익명 밸런스 통계와는 별개입니다.
Firebase는 설치마다 무작위 앱 인스턴스 ID를 만들고 수집하며, 재설치하면 ID가 바뀝니다. 첫 실행·세션 시작·앱 업데이트 같은 자동 이벤트, 기기 모델·OS 버전·앱 버전·언어도 수집합니다. IP 주소로 추정한 국가·지역(대략적인 위치)을 수집하지만, Google Analytics는 IP 주소 자체를 저장하지 않습니다.
게임이 보내는 이벤트에는 이름 등 직접 식별 정보가 없습니다. 첫 튜토리얼 완료, 스테이지 결과(스테이지 번호·성공 여부), 5·10·20스테이지 첫 도달, 결제 성공(상품 ID·금액·통화 — 스토어가 준 값 그대로), 보상 광고 시청 완료(광고 위치 이름)를 보냅니다. 이름(닉네임), 계정 ID, 레이드 ID·토큰, 이메일, 결제 영수증, 정확한 위치는 Firebase Analytics에 보내지 않습니다.
iOS에서는 앱 추적 투명성(ATT) 추적 허용을 했을 때만 IDFA를 사용할 수 있습니다. 안드로이드에서는 기기 설정과 개인정보 선택에 따라 광고 ID를 사용할 수 있습니다.
유럽경제지역(EEA)·영국·스위스에서는 Google UMP 양식에서 동의하기 전까지 분석 수집이 꺼져 있습니다. 동의 결과에 따라 분석 저장·광고 저장 및 광고 데이터·개인화 신호를 설정합니다. 그 밖의 지역에서는 앱 시작 시 분석 수집이 켜집니다. 이 지역의 광고 관련 신호(ad_storage, ad_user_data, ad_personalization)는 iOS에서 추적 허용일 때만 허용으로, 안드로이드에서는 허용으로 설정합니다. 설정 › 광고 개인정보 선택에서 해당 지역에 제공되는 양식을 다시 열 수 있습니다. 바뀐 선택은 Firebase에도 반영됩니다.
어떤 광고·경로로 설치와 전환이 발생하는지 측정하고, 게임 진행·이탈 지점을 분석하며, Google Ads 캠페인을 최적화하는 데 사용합니다. Google Analytics 데이터를 Google Ads와 연결해 광고 성과 측정에 사용할 수 있습니다.
Google Analytics의 이벤트 단위 데이터는 2개월(기본값) 보관합니다. 집계 보고서는 더 오래 남을 수 있습니다. 분석 데이터는 게임 계정과 연결되지 않아 특정 이용자의 데이터를 찾아 삭제할 수 없습니다. 앱을 삭제하면 앱 인스턴스 ID가 제거되고, 다시 설치하면 새 ID가 만들어집니다. 이전에 수집된 분석 데이터가 삭제되는 것은 아닙니다. 문의는 hello@wookdev.com으로 보내 주세요.
10. 처리 위탁과 국외 처리
- Cloudflare가
raid.wookdev.com을 호스팅하고 레이드와 데일리 순위 데이터를 저장합니다(Cloudflare Workers, Durable Objects). Cloudflare는 전 세계 네트워크로 운영되므로 요청이 이용자의 국가 밖에서 처리될 수 있습니다. 우리는raid.wookdev.com의 Cloudflare Workers Logs를 켜 두었습니다. 요청마다 시각, 요청 URL(레이드 ID가 포함될 수 있음), 응답 상태, Cloudflare가 붙이는 요청 정보(IP 주소와 대략적인 위치가 포함될 수 있음)가 기록되며, 우리 Cloudflare 계정에 최대 7일 보관됩니다. Cloudflare도 자체 운영 로그를 자체 보관 설정에 따라 남길 수 있습니다. 우리 코드는 완료된 공격의 공격 ID, 피해량, 결과 해시를 로그로 남기며 토큰은 기록하지 않습니다. Cloudflare Workers와 D1으로 계정·클라우드 저장도 처리합니다. Cloudflare는ota.wookdev.com의 앱 업데이트 확인도 처리합니다. 이 업데이트 서버의 Workers Logs는 꺼져 있으며, 우리 업데이트 서버는 요청 내용과 기기 ID를 저장하거나 로그로 남기지 않습니다. - Apple은 앱 배포와 결제를 Apple의 개인정보 처리방침에 따라 처리합니다. 선택 기능인 Apple로 로그인도 제공합니다.
- Google은 AdMob으로 광고를 제공하고 UMP로 개인정보 선택을 확인합니다. 광고 데이터는 Google 개인정보처리방침과 앱 정보의 Google 사용 방식에 따라 국외에서 처리될 수 있습니다. 데이터와 선택 사항은 9항을 참고하세요. 선택 기능인 Google 로그인도 제공합니다. Google Analytics for Firebase로 분석을 제공하고, Google Play로 안드로이드 앱 배포와 결제를 처리합니다.
11. 보관 기간
- 앱 업데이트 확인: 우리 업데이트 서버는 요청 내용과 기기 ID를 저장하거나 로그로 남기지 않습니다.
- 기기의 게임 데이터는 앱이나 앱 데이터를 지울 때까지 남습니다. 로그인 세션은 30일 뒤 만료됩니다.
- 로그인 세션은 이 기기에 저장되고 30일 뒤 만료됩니다. 계정·클라우드 저장 데이터는 진행 저장·복원과 기기 간 이어하기에 사용하며 광고·추적에 사용하지 않습니다. 클라우드 계정과 저장본은 계정을 삭제할 때까지 남으며, 로그아웃해도 기기 진행과 클라우드 저장본은 남습니다.
- 레이드 ID, 토큰 해시, 주간 레이드 기록과 영수증은 자동으로 만료되지 않으며 이용자가 삭제할 때까지 보관합니다. 결과와 보상을 볼 수 있도록 지난 주 기록도 보관합니다.
- 데일리 순위 기록, 영수증, 지문과 참여 날짜 목록은 각 도전 날짜의 UTC 0시부터 14일 뒤 자동으로 삭제합니다.
- 하루 단위 IP 해시 횟수는 해당 UTC 날짜가 지나면 삭제합니다. 공격 횟수 기록은 보통 24~48시간 안에 지워지고, 새 ID 발급 횟수 기록은 마지막 사용 24시간 뒤에 지워집니다.
- 레이드 데이터를 삭제한 뒤에는 응답이 유실돼도 안전하게 다시 요청할 수 있도록 토큰 해시가 담긴 삭제 표시를 24시간 보관한 뒤 지웁니다.
- 랭킹 행은 삭제되지만, 이용자가 입힌 피해는 익명 공동 합계로 주간 보스 HP와 전체 피해량에 그대로 남습니다.
raid.wookdev.com의 Workers Logs(최대 7일 보관)와 Cloudflare 자체 운영 로그는 앱 안의 삭제로 지워지지 않으며, 보관 기간이 지나면 사라집니다.- Google Analytics의 이벤트 단위 데이터는 2개월(기본값) 보관합니다. 집계 보고서는 더 오래 남을 수 있습니다.
12. 데이터 삭제
- 계정 삭제: 설정 › 저장 상태 › 계정 삭제를 누릅니다. 앱은 먼저 이 설치본의 온라인 레이드·데일리 순위 기록과 전송 대기 중인 데일리 기록을 지웁니다. 그다음 클라우드 계정과 저장본 삭제를 요청합니다. Apple 계정은 인증 철회 연동이 설정되어 있으면 Apple 인증을 철회한 뒤 클라우드 계정을 지웁니다. 이 단계가 실패하면 다시 시도할 수 있도록 클라우드 계정·저장본은 남지만, 레이드 삭제는 이미 완료됐을 수 있습니다.
- 삭제가 완료되면 로그아웃하고 해당 계정의 기기 내 동기화 대기 정보를 지웁니다. 기기의 진행과 구매 내역은 게스트로 계속 이용할 수 있습니다. 다른 설치본의 레이드 기록은 클라우드 계정에 연결되지 않아 별도로 삭제해야 합니다. 앱만 지워서는 클라우드 계정과 저장본이 삭제되지 않습니다.
- 앱에서: 설정에서 온라인 레이드 데이터 삭제를 누릅니다. 서버는 모든 주차에서 순위 행, 공격 영수증, 진행 중인 공격, 마지막 일격 기록을 삭제하고, 보관 중인 데일리 순위 기록, 영수증, 지문도 함께 삭제합니다. 초대 코드와 이 레이드 ID의 초대 기록도 함께 삭제합니다. 친구가 받을 보상과 친구의 초대 기록은 이 레이드 ID 없이 남습니다. 기록이 길면 여러 단계로 나누어 지우며, 앱은 서버가 완료를 확인할 때까지 계속 요청합니다. 그다음 앱이 기기에서 레이드 ID와 토큰을 지웁니다. 기기의 게임 진행은 그대로 남습니다.
- 레이드(RAID) 탭과 친구 초대를 연 적이 없고 데일리 랭크 기록도 보낸 적이 없다면 삭제할 연결된 레이드·데일리 순위·초대 기록은 없습니다. 1항의 익명 게임 플레이 통계는 별도로 수집됩니다.
- 삭제 뒤 온라인 레이드를 다시 하면 새 레이드 ID가 만들어집니다.
- 앱을 지우기 전에 삭제해 주세요. 기기에 토큰이 없으면 앱이 본인 기록임을 증명할 수 없습니다. 이미 앱을 지웠거나 토큰을 잃었다면 공개 이름과 참여한 레이드 주차를 적어 hello@wookdev.com으로 보내 주세요. 토큰은 이메일로 보내지 마세요. 확인하고 삭제할 수 있는 범위를 안내해 드립니다.
- 기기 데이터: 앱을 삭제하면 기기의 진행 기록이 지워집니다. 서버 기록은 지워지지 않습니다.
- Firebase 분석 데이터는 게임 계정과 연결되지 않아 특정 이용자의 분석 데이터를 찾아 삭제할 수 없습니다. 앱을 삭제하면 앱 인스턴스 ID가 제거되고, 다시 설치하면 새 ID가 만들어집니다. 이전에 수집된 분석 데이터가 삭제되는 것은 아닙니다. 문의는 hello@wookdev.com으로 보내 주세요.
13. 이용자의 권리와 문의
거주 지역에 따라 개인정보의 열람, 정정, 삭제, 처리 정지를 요구할 권리가 있을 수 있습니다. 레이드 결과는 게임 안에서 볼 수 있고 레이드 데이터는 설정에서 삭제할 수 있습니다. 그 밖의 요청이나 문의는 개인정보 보호 담당 wookdev(hello@wookdev.com)로 보내 주세요.
14. 아동
PEG HERO POP!은 일반 이용자용 게임이며 13세 미만 아동을 대상으로 하지 않습니다. 13세 미만이면 이용하지 마세요. 13~17세이면 이 방침을 확인한 부모나 보호자의 허락을 받고 이용해 주세요. 게임을 이용하면 그 허락을 받았다고 확인한 것으로 봅니다. 우리는 부모나 보호자의 동의 없이 13세 미만(현지 법이 더 높은 나이를 정하면 그 나이 미만) 아동의 개인정보를 알면서 수집하지 않으며, 그런 사실을 알게 되면 삭제합니다.
게임은 실명, 이메일 주소, 나이 등 연락 정보를 묻지 않습니다. 게임 안에서 입력한 닉네임은 기기에 저장되고, 로그인하면 클라우드 저장본에도 포함되며, 공개 순위표에 표시됩니다. 흔한 욕설은 막고 있으며 이름 입력 화면에서 본명을 쓰지 말라고 안내합니다. 채팅은 없습니다. 보호자가 자녀의 온라인 레이드 데이터 삭제를 원하면 자녀 기기에서 온라인 레이드 데이터 삭제를 누르거나 hello@wookdev.com으로 연락해 주세요.
15. 변경
이 방침을 바꾸면 새 시행일과 함께 이 페이지에 게시합니다. 이 방침에는 선택 로그인과 클라우드 저장이 포함되어 있습니다. 1.0.2부터 iOS·안드로이드 앱의 Firebase 분석도 포함합니다.
2026-11-12: 1.0.3부터의 앱 업데이트 확인, 보내는 정보와 우리 업데이트 서버가 이를 저장하거나 로그로 남기지 않는다는 설명을 추가했습니다.
PEG HERO POP! 隐私政策
本政策适用于iOS和Android游戏 PEG HERO POP!(com.wookdev.pegheropop)及游戏使用的账号、云存档、在线突袭和每日排行榜服务 raid.wookdev.com。本政策说明哪些信息保存在您的设备上、游戏向我们发送哪些信息、谁可以查看这些信息、信息的保存期限以及删除方法。
1. 概览
- 登录为可选功能。不登录也可以游客身份游玩全部游戏,进度保存在本设备上。通过 Apple 或 Google 登录后,可以保存和恢复进度,并在其他设备上继续游戏。
- 您的游戏进度保存在设备上。
- 在线突袭和每日排行榜使用由我们的服务器发放的随机突袭ID。您的公开名称是您在游戏中输入的名字。输入之前,系统会使用自动生成的名称,例如
Captain_4821。任何人都可以在排行榜上看到它,因此请勿使用真实姓名。 - 游戏使用 Google AdMob 提供广告,并通过 Google UMP 确认隐私选项。Google 可能处理第9节所述的广告数据;iOS 允许追踪时,可能使用广告标识符。拒绝追踪仍可继续游戏。 在 Android 上,是否使用广告 ID 取决于设备设置和隐私选项。
- Google Analytics for Firebase 收集应用标识符、设备信息和游戏事件,用于衡量安装、转化和游戏进度。在欧洲经济区(EEA)、英国和瑞士,获得 UMP 同意前不会开启收集;其他地区在应用启动时开启。详见第9节。
- iOS付款由Apple处理,Android付款由Google Play处理。我们不会收到您的银行卡或银行账户详细信息。
- 您可以随时在设置中使用删除在线突袭数据,删除您的在线突袭和每日排行榜数据。
- 应用更新检查:我们的更新服务器不会保存请求内容或设备 ID,也不会将其记入日志(第6节)。
匿名游戏统计:应用会将关卡结果、尝试次数、使用的图钉和物件数量、闪避次数、进度、游戏货币消耗,以及每天一次的前一天应用在前台运行的总时长和游玩次数、平台(iOS 或 Android)、应用版本和构建号发送至我们的 Cloudflare D1 数据库。这些统计不会与设备、账户或 IP 地址关联。我们只保存 UTC 日期,不保存具体时间,也不随事件保存 IP 地址、User-Agent 或玩家标识符。数据仅用于调整游戏平衡和改进游戏,并在90天后收到统计请求时进行的下一次每日清理中删除。由于没有玩家标识符,我们无法查找并单独删除某位玩家的事件。这些统计与排行榜提交及广告数据分开处理。
2. 设备数据、登录与云存档
- 进度、星星、金币、道具、英雄、通行证进度、购买记录、设置及输入的昵称保存在设备上。首次启动时创建随机本地玩家 ID,用于生成默认名称。您输入的名字会在您参加在线突袭或提交每日排名成绩时发送到我们的服务器;更改名字时也会再次发送,以便本周突袭排名和已保存的每日记录显示新名字。登录后,包含昵称和本地玩家 ID 的完整档案也会保存到云端。
- 突袭数据:如果您打开在线突袭或“邀请好友”,或提交计入排名的每日挑战记录,设备还会保存您的突袭ID及其秘密令牌、尚待发送的突袭结果和计入排名的每日挑战记录,以及最近一次服务器时间。这些信息与您的游戏档案分开保存。它们不存储在iOS钥匙串中,应用也不会对其进行加密。
- 备份:iOS设备备份(通过iCloud或电脑)可能包含这些数据。删除应用会从设备上移除这些数据,但不会删除我们服务器上的记录。请在删除应用前,按需使用“删除账号”和“删除在线突袭数据”。
- 分享:如果您在结果画面点击“分享”,文字会传送到您在iOS分享面板中选择的应用,不会经过我们的服务器。
游戏档案保存在本设备上,登录后也会复制到 Cloudflare Workers 和 D1。iPhone 备份中也可能包含这些数据。
云存档包含进度与星星、生命值与恢复时间、金币、道具、已拥有的英雄与所选队长、通行证进度、购买发放记录与交易记录、已获得的权益、设置、昵称与本地玩家 ID、每日结果与连续记录、教程与奖励历史、活动与商店状态、关卡尝试次数、通知设置、计划及提醒历史。
服务器保存随机账号 ID、登录提供方及其账号标识符(subject)、账号创建时间,以及云存档、版本和更新时间。对于 Apple,还保存应用客户端标识符;已配置令牌交换时,也保存用于撤销授权的加密 refresh token。
我们不会要求您输入邮箱或真实姓名,也不会请求额外的邮箱或姓名权限或保存这些字段。提供方的身份令牌会发送到服务器进行验证,其中可能含有其他声明。除上述 subject 和 Apple 应用客户端标识符外,我们不保留身份令牌或其他声明。
登录会话保存在本设备上,30天后到期。账号与云存档数据用于保存和恢复进度及跨设备继续游戏,不用于广告或追踪。云账号与存档保留至删除账号;退出登录会保留设备进度和云存档。
为验证登录,服务器临时保存一次性验证值(nonce),有效期为10分钟。已使用的验证值立即删除;过期值在账号接口下次收到请求时删除。
3. 在线突袭
在线突袭是所有玩家共同攻击的每周世界首领。除在线突袭、每日排行榜(第4节)、登录、云存档、好友邀请、优惠码(第7节)、广告(第9节)和应用更新检查(第6节)外,游戏可离线运行。离线练习突袭不会提交至在线突袭排行榜;匿名平衡统计见第1节。
- 突袭ID:当您首次打开“突袭”(RAID)标签页时,应用会向
raid.wookdev.com请求一个随机突袭ID和一个秘密令牌。服务器保存突袭ID和令牌的SHA-256哈希值,不保存令牌本身。突袭ID不是广告标识符,也不与您的Apple ID关联。 - 攻击时:应用会发送您的突袭ID、公开名称、周次、攻击ID、所选队长,以及您的棋盘配置或记录的操作。服务器会重新演算战斗并自行计算伤害,不接受设备提供的分数或伤害值。
- 服务器为您参与的每周保存的信息:突袭ID、公开名称、平台标签、累计伤害、攻击次数、攻击的UTC日期、达到当前累计伤害的先后顺序(用于处理同分情况)、攻击回执(攻击ID、开始时间、结果,以及棋盘配置本身或记录操作的SHA-256指纹),以及您是否对首领造成了最后一击。
- 公开的信息:任何人都可以查看突袭排名。排名显示公开名称、平台标签、伤害、名次、前一周获得的排名边框,以及造成最后一击的玩家的公开名称。排名不会显示突袭ID或令牌。排名还可能包括Reddit平台上的PEG HERO游戏玩家,并带有Reddit标签。应用玩家的排名行还带有公开行ID,即突袭ID的SHA-256哈希值的前16个字符,用于举报或隐藏该行,无法由此推算出突袭ID。Reddit的排名行没有公开行ID。如果我们重置被举报的名称,会将此公开行ID和时间写入Cloudflare D1数据库的重置表,排名中改为显示自动生成的名称,例如
Captain_4821。即使您删除在线突袭数据,该条目也会保留,直到我们将其移除。 - 举报和隐藏名称:点按其他玩家的名称即可举报或隐藏。“举报名称”会打开您的邮件应用,向 hello@wookdev.com 发送一封列有该名称、排行榜、周或日期以及公开行ID的邮件;我们会收到您的电子邮箱地址和您补充的内容。举报仅用于审核和重置名称,不再需要用于处理举报时即予删除。“隐藏此名称”只会把该公开行ID保存在您的设备上(最多 200 个),不会发送给我们,也不会包含在云存档中。
- 好友邀请:打开“邀请好友”或输入好友的邀请码时,应用会使用同一个突袭ID(没有时会新建);服务器会保存您的邀请码、哪个突袭ID使用了哪个邀请码以及奖励状态,直到您使用删除在线突袭数据,并以UTC日期和IP地址的SHA-256哈希值统计输入次数以防滥用。
4. 每日排行榜
每日挑战是所有玩家在同一UTC日期游玩的同一关卡。每天只发送您的首次计入排名的挑战记录。练习、重试和挑战代码游玩记录不会提交至每日排行榜;匿名平衡统计见第1节。
- 提交时:应用会发送您的突袭ID和令牌、公开名称、挑战日期、分数、提交ID、记录的操作和游戏模拟版本。如果您还没有突袭ID,应用会先按照第3节所述向服务器申请。服务器会重放操作以验证分数,并拒绝任何无法重现的分数。如果无法发送记录,应用会将其保存在设备上,并持续重试,直到该UTC日期结束后不久。
- 服务器为每个挑战日期保存的信息:突袭ID、公开名称、验证后的分数、提交ID、记录的接收顺序、记录被接收时的名次、记录操作的SHA-256指纹,以及您参与过的日期列表。不会保存记录操作本身。
- 公开的信息:每日前10名排行榜显示相应日期的公开名称、分数和名次。您自己的排名行仅向您的应用显示。突袭ID和令牌不会显示。应用玩家的排名行还带有公开行ID,已重置的名称按第3节所述显示。
- 保存期限:每日挑战记录、回执和指纹自挑战日期的UTC起始时刻起14天后到期,并自动删除。
5. 服务器时间检查
为公平解锁按时间开放的内容,应用处于打开且联网状态时,会大约每分钟向 raid.wookdev.com 请求一次当前时间。该请求不包含玩家ID或游戏数据。返回的时间保存在设备上。
6. 应用更新检查
从1.0.3版本起,应用启动或重新打开时,会向我们的更新服务器 https://ota.wookdev.com 发送检查请求。发送的信息包括应用 ID、平台、应用与资源包版本、构建编号、操作系统版本、更新插件版本、更新渠道、是否为测试构建或模拟器、应用的安装来源,以及更新插件生成并保存在设备上的随机设备 ID(重新安装应用后可能仍会保留)。
这些信息用于选择合适的更新,并按比例分批发布更新。我们的更新服务器不会保存请求内容或设备 ID,也不会将其记入日志。请求由第10节所述的 Cloudflare 处理。
更新文件仅从我们的服务器下载,不会向第三方更新服务 Capgo 云服务发送任何信息。这些检查是应用正常运行的一部分,没有单独的开关设置。
7. IP地址与防滥用限制
发往 raid.wookdev.com 的每个请求都会经过Cloudflare,Cloudflare可以看到您的IP地址。我们的服务器代码仅为实施防滥用限额而读取IP地址。每日限额为:每个IP地址在每个UTC日期内,最多可创建100个新突袭ID、进行40次突袭攻击、接收40条每日排行榜记录,并尝试重放60次每日挑战(失败的重放计入次数;重试已接收的记录不计入);每个突袭ID在每个UTC日期内最多可进行3次突袭攻击。对于IPv6地址,每日排行榜限额将每个/64网段视为一个地址。登录和云存档接口也会按分钟限制请求次数:服务器将分钟时间与IP地址组合后的SHA-256哈希值保存在Cloudflare D1数据库中,并设定约两分钟后过期。过期的哈希值会在这些接口下次收到请求时删除,因此可能保存超过两分钟。
为实施这些限制,服务器保存UTC日期与IP地址组合后的SHA-256哈希值,以及相应计数。对于每条已接收的每日排行榜记录,服务器还会与该IP哈希值一起保存您的突袭ID与挑战日期组合后的SHA-256哈希值,以免重复计算重试的记录。突袭数据库中不保存原始IP地址。这些哈希值未使用秘密密钥,因此我们不将其视为完全匿名的信息。我们仅将其用于上述限制,并在该UTC日期结束后删除。
输入优惠码时,应用会将代码发送到服务器进行核对。代码不会与您的数据一起保存。为将尝试次数限制为每分钟10次,服务器以UTC日期和IP地址的SHA-256哈希值记录次数,并在约一分钟后删除。
8. 购买
iOS应用内购买由Apple通过App Store处理。Apple负责您的付款,我们不会收到您的银行卡或银行账户详细信息。应用通过StoreKit接收交易ID、商品ID和购买日期,并将其保存在您的设备上,用于发放和恢复您的物品。登录后,购买记录也会包含在云存档中。设置中提供恢复购买功能。App Store购买适用Apple的隐私政策。
Android 应用内购买由 Google Play 处理。我们不会收到您的银行卡或银行账户详细信息。应用接收订单 ID、商品 ID 和购买时间,用于发放和恢复物品。Google Play 购买适用 Google 的隐私政策。
9. 广告与隐私选项
游戏使用 Google AdMob 提供可选激励广告,以及战役通关后偶尔显示的广告。广告需要联网。购买移除广告后,通关后的广告将关闭,可选激励广告仍可观看。拥有已保存购买记录的玩家不会收到强制广告。
Google 可能收集设备标识符、IP 地址及大致位置、广告浏览与互动记录、崩溃或性能数据,用于广告投放、效果衡量和防欺诈。iOS 允许追踪时,可能会使用广告标识符。游戏不会将突袭 ID、突袭令牌、您输入的名字或购买记录作为自定义广告数据发送给 AdMob。 在 Android 上,是否使用广告 ID 取决于设备设置和隐私选项。
教程结束后,广告初始化前,我们通过 Google UMP 确认隐私选项。需要时先显示 UMP 同意表单,再由 iOS 单独征求追踪许可。拒绝追踪仍可继续游戏。在游戏设置的广告隐私选项中,可重新打开所在地区提供的隐私表单。追踪权限可在 iOS 设置中更改。拒绝追踪并不一定移除广告;广告是否可用还取决于 UMP 选项和所在地区。 在 Android 上,您可以在设备设置中重置或删除广告 ID。
Google 依照其隐私政策处理广告数据,其中可能包括在您所在国家或地区之外处理。请参阅 Google 隐私政策及 Google 如何使用来自应用的信息。游戏不会为 Google 广告数据设定统一的保留期限。游戏不会请求精确位置、通讯录、照片、相机或麦克风权限。
Google Analytics for Firebase:从1.0.2版本起,分析功能仅在 iOS 和 Android 应用中运行,与第1节的 Cloudflare D1 匿名游戏平衡统计分开处理。
Firebase 为每次安装生成并收集随机的应用实例 ID,重新安装后 ID 会改变。它还自动收集首次启动、会话开始和应用更新等事件,以及设备型号、操作系统版本、应用版本和语言。它根据 IP 地址推算国家或地区(大致位置),但 Google Analytics 不保存 IP 地址本身。
游戏发送的事件不包含姓名等直接识别信息,包括:首次完成教程;关卡结果(关卡编号、是否成功);首次到达第5、10和20关;购买成功(商品 ID、金额和币种,均采用商店提供的原始值);以及激励广告观看完成(广告展示位置名称)。我们不会向 Firebase Analytics 发送姓名或昵称、账号 ID、突袭 ID 或令牌、电子邮箱、购买收据或精确位置。
在 iOS 上,只有获得应用追踪透明度(ATT)许可后才能使用 IDFA。在 Android 上,是否使用广告 ID 取决于设备设置和隐私选项。
在欧洲经济区(EEA)、英国和瑞士,通过 Google UMP 表单获得您的同意前,分析收集保持关闭。我们根据同意结果设置分析存储、广告存储及广告数据和个性化信号。在其他地区,应用启动时会开启分析收集。在这些其他地区,广告相关信号(ad_storage、ad_user_data、ad_personalization)在 iOS 上仅在获得追踪许可时设为允许,在 Android 上则设为允许。您可在设置 › 广告隐私选项中重新打开所在地区提供的表单。更改后的选择也会应用到 Firebase。
这些数据用于衡量哪些广告或渠道带来安装和转化、分析游戏进度及玩家停止游玩的位置,以及优化 Google Ads 广告系列。Google Analytics 数据可能与 Google Ads 关联,用于衡量广告效果。
Google Analytics 的事件级数据保留2个月(默认值)。汇总报告可能保留更久。分析数据不与游戏账号关联,因此我们无法找出特定用户的数据进行删除。删除应用会移除应用实例 ID,重新安装会生成新的 ID。这不会删除之前收集的分析数据。如有疑问,请联系 hello@wookdev.com。
10. 服务提供商与数据处理地点
- Cloudflare托管
raid.wookdev.com,并保存突袭和每日排行榜数据(Cloudflare Workers和Durable Objects)。Cloudflare运营全球网络,因此您的请求可能在您所在国家以外处理。我们为raid.wookdev.com开启了Cloudflare Workers Logs:每个请求的时间、请求URL(可能包含您的突袭ID)、响应状态以及Cloudflare附加的请求信息(可能包括您的IP地址和大致位置)会被记录,并在我们的Cloudflare账户中最多保存7天。Cloudflare也可能按照其自身的保留设置保存运营日志。我们的代码记录已完成攻击的攻击ID、伤害和结果哈希值,绝不记录令牌。 还通过 Cloudflare Workers 和 D1 处理账号与云存档。 Cloudflare 也处理ota.wookdev.com的应用更新检查。此更新服务器的 Workers Logs 已关闭;我们的更新服务器不会保存请求内容或设备 ID,也不会将其记入日志。 - Apple依据其自身的隐私政策分发应用并处理付款。 还提供可选的 Apple 登录。
- Google 通过 AdMob 提供广告,并通过 UMP 确认隐私选项。广告数据可能依据 Google 隐私政策和 Google 如何使用来自应用的信息在您所在国家或地区之外处理。数据及选项详见第9节。 还提供可选的 Google 登录。 还通过 Google Analytics for Firebase 提供分析,并通过 Google Play 分发 Android 应用和处理付款。
11. 数据保存期限
- 应用更新检查:我们的更新服务器不会保存请求内容或设备 ID,也不会将其记入日志。
- 设备上的游戏数据保留至删除应用或其数据。登录会话在30天后到期。
- 登录会话保存在本设备上,30天后到期。账号与云存档数据用于保存和恢复进度及跨设备继续游戏,不用于广告或追踪。云账号与存档保留至删除账号;退出登录会保留设备进度和云存档。
- 您的突袭ID、令牌哈希值、每周突袭记录和回执不会自动到期,会一直保留,直到您删除它们。过去各周的记录会予以保留,以便您查看结果和奖励。
- 每日排行榜记录、回执、指纹和您参与过的日期列表,会在每个挑战日期的UTC起始时刻起14天后自动删除。
- 每日IP哈希计数器会在该UTC日期结束后删除。攻击计数器通常会在大约24至48小时内移除。新ID计数器会在最后一次使用24小时后移除。
- 您删除突袭数据后,包含令牌哈希值的删除标记会保留24小时,以便在响应丢失时安全重试。之后会将其移除。
- 您的排名行会被删除,但您造成的伤害仍会以匿名共同总计的形式计入每周首领的HP和总伤害。
raid.wookdev.com的 Workers Logs(最多保存7天)和Cloudflare自身的运营日志不会因应用内删除操作而移除,会在保留期满后自行删除。- Google Analytics 的事件级数据保留2个月(默认值)。汇总报告可能保留更久。
12. 删除您的数据
- 删除账号: 打开“设置 › 保存状态 › 删除账号”。应用先删除本次安装的在线突袭与每日排名记录及待发送的每日记录,再请求删除云账号与存档。对于 Apple 账号,已配置撤销授权时,会先撤销 Apple 授权,再删除云账号。如果该步骤失败,云账号与存档会保留以供重试;突袭记录可能已删除。
- 删除成功后,应用退出登录并清除该账号的本地同步队列。本设备的进度和购买内容仍可作为游客使用。其他安装的突袭记录未与云账号关联,需单独删除。仅删除应用不会删除云账号或存档。
- 在应用内:打开设置并点击删除在线突袭数据。服务器会删除您每一周的排名行、攻击回执、尚未完成的攻击和最后一击记录。它还会删除已保存的每日排行榜记录、回执和指纹。您的邀请码和此突袭ID的邀请记录也会一并删除。好友待领取的奖励及其邀请记录会保留,但不再包含此突袭ID。如果历史记录较长,则分步骤删除,应用会持续请求,直到服务器确认完成。随后,应用会从您的设备上移除突袭ID和令牌。您的本地进度将保留。
- 如果您从未打开“突袭”(RAID)标签页或“邀请好友”,也从未发送过计入排名的每日挑战记录,则没有关联的突袭、每日排行榜或邀请记录需要删除;第1节所述的匿名游戏统计仍会单独收集。
- 删除后再次游玩在线突袭,会创建一个新的突袭ID。
- 请在卸载应用前删除数据。如果设备上没有令牌,应用就无法证明这些记录属于您。如果您已卸载应用或丢失令牌,请发送电子邮件至 hello@wookdev.com,注明您的公开名称及参加突袭的周次。请勿通过电子邮件发送令牌。我们会告知您哪些信息可以识别和删除。
- 本地数据:删除应用即可从设备上移除您的进度。这不会删除服务器记录。
- Firebase 分析数据不与游戏账号关联,因此我们无法找出特定用户的分析数据进行删除。删除应用会移除应用实例 ID,重新安装会生成新的 ID。这不会删除之前收集的分析数据。如有疑问,请联系 hello@wookdev.com。
13. 您的权利与联系方式
根据您的居住地,您可能有权访问、更正或删除您的数据,或反对其使用方式。您可以在游戏中查看突袭结果,并在设置中删除突袭数据。如有其他请求或疑问,请发送电子邮件至 hello@wookdev.com。
14. 儿童
PEG HERO POP! 是面向普通用户的游戏,并非针对 13 岁以下儿童。如果您未满 13 岁,请不要使用本游戏。如果您是 13 至 17 岁,请在已阅读本政策的父母或监护人许可下使用;使用本游戏即表示您确认已获得该许可。未经父母或监护人同意,我们不会在知情的情况下收集 13 岁以下(如当地法律规定的年龄更高,则为该年龄以下)儿童的个人信息;如果发现此类情况,我们会将其删除。
游戏不会询问真实姓名、电子邮箱地址、年龄或其他联系方式。游戏内输入的昵称保存在设备上,登录后也会包含在云存档中,并显示在公开排行榜上。我们会屏蔽常见的冒犯性词语,并在输入名字的界面提醒玩家不要使用真实姓名。游戏没有聊天功能。如家长希望删除孩子的在线突袭数据,可以在孩子的设备上使用“删除在线突袭数据”,或通过 hello@wookdev.com 联系我们。
15. 变更
本政策如有变更,会在本页面发布新版本并注明新的生效日期。本政策已包含可选登录和云存档。 从1.0.2版本起,本政策还包含 iOS 和 Android 应用的 Firebase 分析。
2026-11-12:新增从1.0.3版本起的应用更新检查、发送的信息,以及我们的更新服务器不保存这些信息也不将其记入日志的说明。
PEG HERO POP! プライバシーポリシー
本ポリシーは、iOS・Androidゲーム PEG HERO POP!(com.wookdev.pegheropop)と、ゲームが利用する raid.wookdev.com のアカウント、クラウド保存、オンラインレイドおよびデイリーランキングサービスに適用されます。端末に保存される情報、ゲームから当方へ送信される情報、閲覧できる人、保存期間、削除方法について説明します。
1. 概要
- サインインは任意です。サインインせずにゲストとして最後までプレイでき、進行状況はこの端末に保存されます。AppleまたはGoogleでサインインすると、進行状況を保存・復元し、別の端末で続けられます。
- ゲームの進行状況は端末に保存されます。
- オンラインレイドとデイリーランキングでは、当方のサーバーが発行するランダムなレイドIDを使用します。公開名はゲーム内で入力した名前です。入力するまでは
Captain_4821のような自動生成の名前を使います。ランキングで誰でも見られるため、本名は使わないでください。 - Google AdMobで広告を提供し、Google UMPでプライバシーの選択を確認します。Googleは第9項に記載する広告データを処理する場合があり、iOSでトラッキングが許可されている場合は広告識別子を使用することがあります。拒否してもプレイを続けられます。 Androidでは、端末の設定とプライバシーの選択に応じて広告IDを使用する場合があります。
- Google Analytics for Firebaseはアプリ識別子、端末情報、ゲームイベントを収集し、インストール、コンバージョン、ゲームの進行を分析します。EEA・英国・スイスではUMPで同意するまで収集は無効です。それ以外の地域ではアプリ起動時に有効になります。詳しくは第9項をご覧ください。
- iOSの決済はAppleが、Androidの決済はGoogle Playが処理します。当方がカードや銀行口座の詳細情報を受け取ることはありません。
- 設定のオンラインレイドデータを削除から、オンラインレイドとデイリーランキングのデータをいつでも削除できます。
- アプリ更新の確認:当方の更新サーバーはリクエストの内容や端末IDを保存せず、ログにも記録しません(第6項)。
匿名のゲームプレイ統計:アプリはステージ結果、挑戦回数、使用したピンとオブジェクトの数、回避回数、進行状況、ゲーム内通貨の使用、1日1回、前日にアプリを前面に表示していた合計時間とプレイ回数、プラットフォーム(iOS・Android)、アプリのバージョンとビルド番号を当方の Cloudflare D1 データベースに送信します。この統計は端末、アカウント、IPアドレスと関連付けません。UTC日付のみを保存し、時刻、IPアドレス、User-Agent、プレイヤー識別子はイベントとともに保存しません。ゲームバランスの調整とゲームの改善にのみ使用し、90日後、統計リクエストを受けた際の次の日次クリーンアップで削除します。プレイヤー識別子がないため、特定のプレイヤーのイベントだけを検索して削除することはできません。ランキングへの送信や広告データとは別に扱います。
2. 端末のデータ、サインインとクラウド保存
- 進行状況、星、ゴールド、アイテム、英雄、パスの進行状況、購入記録、設定、入力したニックネームは端末に保存されます。初回起動時にランダムなローカルプレイヤーIDを作り、既定の名前の生成に使用します。入力した名前は、オンラインレイドをプレイするかランキング対象のデイリーを送信するときにサーバーへ送信されます。名前を変更したときも、今週のレイドランキングと保存中のデイリー記録に新しい名前を表示するため、再度送信されます。サインインするとニックネームとローカルプレイヤーIDを含むプロフィール全体をクラウドにも保存します。
- レイドデータ:オンラインレイドや友だち招待を開くか、ランキング対象のデイリープレイ記録を送信すると、レイドIDとその秘密トークン、送信待ちのレイド結果とランキング対象のデイリープレイ記録、最後に取得したサーバー時刻も端末に保存されます。これらはゲームプロフィールとは別に保存します。iOSキーチェーンには保存せず、アプリによる暗号化も行いません。
- バックアップ:iOS端末のバックアップ(iCloudまたはコンピュータ)にこれらのデータが含まれることがあります。アプリを削除すると端末からは消えますが、当方のサーバー上の記録は削除されません。アプリを削除する前に、必要に応じて「アカウントを削除」と「オンラインレイドデータを削除」を使用してください。
- 共有:リザルト画面で共有をタップすると、テキストがiOSの共有シートで選択したアプリに渡されます。当方のサーバーは経由しません。
ゲームプロフィールはこの端末に保存され、サインインするとCloudflare WorkersとD1にもコピーされます。iPhoneのバックアップにも含まれる場合があります。
クラウド保存には進行状況と星、ライフと回復時刻、ゴールド、アイテム、所持英雄と選択した隊長、パスの進行状況、購入による付与と取引の記録、保有権利、設定、ニックネームとローカルプレイヤーID、デイリー結果と連続記録、チュートリアル・報酬履歴、イベント・ショップの状態、ステージ挑戦回数、通知設定・予定・通知履歴が含まれます。
サーバーはランダムなアカウントID、サインイン提供元とそのアカウント識別子(subject)、作成時刻、クラウド保存とそのバージョン・更新時刻を保存します。Appleの場合はアプリのクライアント識別子も保存し、トークン交換が設定されている場合は認証取り消し用の暗号化されたrefresh tokenも保存します。
メールアドレスや本名の入力を求めず、メール・氏名の追加権限も要求せず、これらの項目を保存しません。提供元の本人確認トークンを検証のためサーバーに送信し、他のクレームが含まれる場合があります。上記のsubjectとAppleのアプリクライアント識別子を除き、本人確認トークンや他のクレームは保持しません。
サインインセッションはこの端末に保存され、30日後に期限切れとなります。アカウントとクラウド保存のデータは進行状況の保存・復元と端末間の引き継ぎに使用し、広告やトラッキングには使用しません。クラウドアカウントと保存データはアカウント削除まで残り、サインアウトしても端末の進行状況とクラウド保存は残ります。
サインインの検証用に、サーバーは一度だけ使う確認値(nonce)と10分後の有効期限を一時保存します。使用済みの確認値は直ちに削除し、期限切れの値はアカウント用の窓口への次のリクエスト時に削除します。
3. オンラインレイド
オンラインレイドは、すべてのプレイヤーが共同で攻撃する週替わりのワールドボスです。オンラインレイド、デイリーランキング(第4項)、サインイン、クラウド保存、友だち招待、クーポンコード(第7項)、広告(第9項)、アプリ更新の確認(第6項)を除き、ゲームはオフラインで動作します。オフラインの練習レイドはオンラインレイドのランキングに送信されません。匿名のバランス統計については第1項をご覧ください。
- レイドID:初めてレイド(RAID)タブを開くと、アプリは
raid.wookdev.comにランダムなレイドIDと秘密トークンを要求します。サーバーはレイドIDとトークンのSHA-256ハッシュを保存し、トークン自体は保存しません。レイドIDは広告識別子ではなく、Apple IDにも紐付きません。 - 攻撃時:アプリはレイドID、公開名、週、攻撃ID、選択したキャプテン、ボード配置または記録した操作を送信します。サーバーが戦闘を再現し、ダメージを自ら計算します。端末からのスコアやダメージ値は受け付けません。
- プレイした週ごとにサーバーが保存する情報:レイドID、公開名、プラットフォーム表示、累計ダメージ、攻撃回数、攻撃したUTC日付、現在の累計ダメージに到達した順番(同点時の順位決定に使用)、攻撃の受領記録(攻撃ID、開始時刻、結果、およびボード配置そのもの、または記録した操作のSHA-256フィンガープリント)、ボスに最後の一撃を与えたかどうか。
- 公開される情報:レイドランキングは誰でも閲覧できます。公開名、プラットフォーム表示、ダメージ、順位、前週に獲得したランキングフレーム、および最後の一撃を与えたプレイヤーの公開名が表示されます。レイドIDやトークンは表示されません。Reddit版PEG HEROのプレイヤーも、Reddit表示付きで掲載される場合があります。アプリのプレイヤーの行には公開行IDも付きます。レイドIDのSHA-256ハッシュの先頭16文字で、その行の報告や非表示に使い、ここからレイドIDを割り出すことはできません。Redditの行にはありません。報告された名前を初期化する場合、この公開行IDと時刻をCloudflare D1データベースの初期化表に記録し、ランキングには
Captain_4821のような自動生成の名前を表示します。この項目は、オンラインレイドデータを削除しても当方が削除するまで残ります。 - 名前の報告と非表示:他のプレイヤーの名前をタップすると、報告または非表示にできます。「名前を報告」はメールアプリを開き、名前、ランキング、週または日付、公開行IDを記載した hello@wookdev.com 宛てのメールを作成します。当方はあなたのメールアドレスと追記した内容を受け取ります。報告は名前の確認と初期化にのみ使い、対応に必要なくなった時点で削除します。「この名前を隠す」は、その公開行IDを端末内にのみ保存し(最大200件)、当方へ送信したりクラウド保存に含めたりしません。
- 友だち招待:友だち招待を開くか友だちのコードを入力すると、アプリは同じレイドIDを使い(なければ新しく作成します)、サーバーはオンラインレイドデータを削除するまで招待コード、どのレイドIDがどのコードを使ったか、報酬の状態を保存し、不正利用を防ぐためコードの入力回数をUTC日付とIPアドレスのSHA-256ハッシュで数えます。
4. デイリーランキング
デイリーチャレンジは、同じUTC日に全員が同じステージをプレイするチャレンジです。その日の最初のランキング対象プレイ記録だけを送信します。練習、再挑戦、チャレンジコードでのプレイ記録はデイリーランキングに送信しません。匿名のバランス統計については第1項をご覧ください。
- 送信時:アプリはレイドIDとトークン、公開名、チャレンジの日付、スコア、送信ID、記録した操作、ゲームのシミュレーションバージョンを送信します。レイドIDがまだない場合は、第3項の説明に従い、先にサーバーに要求します。サーバーは操作を再現してスコアを確認し、再現できないスコアは受け付けません。プレイ記録を送信できない場合、アプリは端末に保存し、そのUTC日が終了した直後まで再送を試みます。
- チャレンジの日付ごとにサーバーが保存する情報:レイドID、公開名、検証済みスコア、送信ID、記録の受付順、受付時の順位、記録した操作のSHA-256フィンガープリント、および参加した日付の一覧。記録した操作そのものは保存しません。
- 公開される情報:デイリー上位10名のランキングには、その日の公開名、スコア、順位が表示されます。自分の順位の行は自分のアプリにのみ表示されます。レイドIDやトークンは表示されません。アプリのプレイヤーの行には公開行IDも付き、初期化された名前は第3項のとおり表示されます。
- 保存期間:デイリーの記録、受領記録、フィンガープリントは、チャレンジのUTC日付の開始時刻から14日後に期限切れとなり、自動削除されます。
5. サーバー時刻の確認
時間に応じて解放されるコンテンツを公平に提供するため、アプリが開いていてオンラインの間、およそ毎分 raid.wookdev.com に現在時刻を問い合わせます。このリクエストにはプレイヤーIDやゲームデータは含まれません。返された時刻は端末に保存されます。
6. アプリ更新の確認
バージョン1.0.3から、アプリの起動時や再び開いたときに、当方の更新サーバー https://ota.wookdev.com に確認リクエストを送信します。アプリID、プラットフォーム、アプリとバンドルのバージョン、ビルド番号、OSバージョン、更新プラグインのバージョン、更新チャンネル、テストビルドやエミュレーターかどうか、アプリのインストール元、そして更新プラグインが作成して端末に保存するランダムな端末ID(アプリを再インストールしても残る場合があります)を送ります。
適切な更新を選び、段階的に配信する割合を振り分けるために使用します。当方の更新サーバーはリクエストの内容や端末IDを保存せず、ログにも記録しません。リクエストは第10項に記載するCloudflareが処理します。
更新ファイルは当方のサーバーからのみ取得します。第三者の更新サービスであるCapgoクラウドには何も送信しません。アプリの正常な動作のための確認であり、個別にオン・オフを切り替える設定はありません。
7. IPアドレスと不正利用防止の上限
raid.wookdev.com へのすべてのリクエストはCloudflareを経由し、CloudflareはIPアドレスを確認できます。当方のサーバーコードは、不正利用防止の上限を適用するためだけにIPアドレスを読み取ります。日ごとの上限は、各IPアドレスにつきUTC日ごとに、新規レイドIDの発行100件、レイド攻撃40回、デイリーランキングの受付40件、デイリープレイの再現試行60回(失敗した再現も含み、受付済みの記録の再送は含みません)、および各レイドIDにつきUTC日ごとにレイド攻撃3回です。IPv6アドレスについては、デイリーランキングの上限を数える際、各/64ネットワークを一つのアドレスとして扱います。ログイン・クラウドセーブ用の窓口も1分あたりのリクエスト数を制限しており、その際は分単位の時刻とIPアドレスを組み合わせたSHA-256ハッシュをCloudflare D1データベースに保存し、約2分後を期限とします。期限切れのハッシュは、これらの窓口が次にリクエストを受けたときに削除されるため、2分より長く残ることがあります。
これらの上限のため、サーバーはUTC日付とIPアドレスを組み合わせたSHA-256ハッシュと、回数を保存します。受け付けたデイリーランキングの記録ごとに、再送を二重に数えないよう、そのIPハッシュとあわせてレイドIDとチャレンジ日付を組み合わせたSHA-256ハッシュも保存します。レイドデータベースに生のIPアドレスは保存しません。これらのハッシュには秘密鍵を使用していないため、完全に匿名の情報とは扱いません。上限の適用にのみ使用し、そのUTC日の終了後に削除します。
クーポンコードを入力すると、アプリは確認のためコードをサーバーへ送信します。コードは利用者のデータと一緒には保存されません。試行を1分あたり10回に制限するため、サーバーはUTC日付とIPアドレスのSHA-256ハッシュで回数を記録し、約1分後に削除します。
8. 購入
iOSのアプリ内課金は、App Storeを通じてAppleが処理します。支払いはAppleが扱い、当方がカードや銀行口座の詳細情報を受け取ることはありません。アプリはStoreKitを通じて取引ID、商品ID、購入日を受け取り、アイテムの付与と復元のために端末に保存します。サインインすると、購入記録もクラウド保存に含まれます。購入の復元は設定にあります。App Storeでの購入にはAppleのプライバシーポリシーが適用されます。
Androidのアプリ内課金はGoogle Playが処理します。当方がカードや銀行口座の詳細情報を受け取ることはありません。アプリはアイテムの付与と復元のため、注文ID、商品ID、購入時刻を受け取ります。Google Playでの購入にはGoogleのプライバシーポリシーが適用されます。
9. 広告とプライバシーの選択
ゲームはGoogle AdMobで任意のリワード広告と、キャンペーンクリア後に時折表示される広告を提供します。広告にはインターネット接続が必要です。広告削除を購入するとクリア後の広告が無効になり、任意のリワード広告は引き続き視聴できます。保存された購入履歴があるプレイヤーには強制広告を表示しません。
Googleは広告配信、効果測定、不正防止のため、端末識別子、IPアドレスとおおよその位置、広告の閲覧・操作、クラッシュやパフォーマンスのデータを収集する場合があります。iOSでトラッキングが許可されている場合、広告識別子を使用することがあります。ゲームはレイドID・トークン、入力した名前、購入記録を独自の広告データとしてAdMobに送信しません。 Androidでは、端末の設定とプライバシーの選択に応じて広告IDを使用する場合があります。
チュートリアル後、広告の初期化前にGoogle UMPでプライバシーの選択を確認します。必要な場合はUMPの同意フォームを先に表示し、その後iOSが別途トラッキングの許可を求めます。拒否してもプレイを続けられます。ゲーム設定の広告のプライバシー設定から、地域で利用可能なフォームを再度開けます。トラッキング許可はiOSの設定で変更できます。拒否しても広告が表示される場合があり、広告の利用可否はUMPでの選択や地域にも左右されます。 Androidでは、端末の設定で広告IDをリセットまたは削除できます。
Googleは自社のプライバシーポリシーに従って広告データを処理し、国外で処理する場合もあります。Googleプライバシーポリシーとアプリから得た情報の利用をご覧ください。Googleの広告データに一律の保存期間をゲーム側で定めてはいません。ゲームは正確な位置情報、連絡先、写真、カメラ、マイクへのアクセスを求めません。
Google Analytics for Firebase:バージョン1.0.2から、分析機能はiOS・Androidアプリ内でのみ動作します。第1項のCloudflare D1による匿名のゲームバランス統計とは別のものです。
FirebaseはインストールごとにランダムなアプリインスタンスIDを作成・収集し、再インストールするとIDが変わります。初回起動、セッション開始、アプリ更新などの自動イベントと、端末モデル、OSバージョン、アプリバージョン、言語も収集します。IPアドレスから国や地域(おおよその位置)を推定しますが、Google AnalyticsはIPアドレス自体を保存しません。
ゲームが送信するイベントには、名前などの直接個人を識別する情報は含まれません。初めてのチュートリアル完了、ステージ結果(ステージ番号と成功・失敗)、ステージ5・10・20への初到達、購入成功(商品ID・金額・通貨はストアから受け取った値のまま)、リワード広告の視聴完了(広告の表示枠名)を送信します。名前やニックネーム、アカウントID、レイドID・トークン、メールアドレス、購入レシート、正確な位置情報はFirebase Analyticsに送信しません。
iOSでは、App Tracking Transparency(ATT)でトラッキングを許可した場合のみIDFAを使用できます。Androidでは、端末の設定とプライバシーの選択に応じて広告IDを使用する場合があります。
欧州経済領域(EEA)・英国・スイスでは、Google UMPのフォームで同意するまで分析データの収集は無効です。同意の結果に応じて、分析用ストレージ、広告用ストレージ、広告データとパーソナライズの信号を設定します。それ以外の地域では、アプリ起動時に分析データの収集が有効になります。これらの地域の広告関連信号(ad_storage、ad_user_data、ad_personalization)は、iOSではトラッキングを許可した場合のみ許可に、Androidでは許可に設定します。設定 › 広告のプライバシー設定から、地域で利用可能なフォームを再度開けます。変更した選択はFirebaseにも反映されます。
どの広告や経路からインストールとコンバージョンにつながったかを測定し、ゲームの進行やプレイをやめる地点を分析し、Google Adsのキャンペーンを最適化するために使用します。Google AnalyticsのデータをGoogle Adsと連携し、広告効果の測定に使用する場合があります。
Google Analyticsのイベント単位のデータは2か月間(初期設定)保存します。集計レポートはそれより長く残る場合があります。分析データはゲームのアカウントと関連付けていないため、特定の利用者のデータを探して削除することはできません。アプリを削除するとアプリインスタンスIDが削除され、再インストール時に新しいIDが作成されます。以前に収集した分析データが削除されるわけではありません。お問い合わせは hello@wookdev.com へお願いします。
10. サービス提供者とデータの処理場所
- Cloudflareは
raid.wookdev.comをホスティングし、レイドとデイリーランキングのデータを保存します(Cloudflare WorkersおよびDurable Objects)。Cloudflareは世界規模のネットワークを運営しているため、リクエストが利用者の居住国以外で処理される場合があります。当方はraid.wookdev.comのCloudflare Workers Logsを有効にしています。リクエストごとに時刻、リクエストURL(レイドIDを含む場合があります)、応答ステータス、Cloudflareが付加するリクエスト情報(IPアドレスやおおよその位置を含む場合があります)が記録され、当方のCloudflareアカウントに最長7日間保存されます。Cloudflareも自社の保存設定に従い、独自の運用ログを保存する場合があります。当方のコードは、完了した攻撃の攻撃ID、ダメージ、結果のハッシュを記録します。トークンは記録しません。 Cloudflare WorkersとD1でアカウントとクラウド保存も処理します。 Cloudflareはota.wookdev.comのアプリ更新の確認も処理します。この更新サーバーのWorkers Logsは無効です。当方の更新サーバーはリクエストの内容や端末IDを保存せず、ログにも記録しません。 - Appleは、自社のプライバシーポリシーに従ってアプリを配信し、決済を処理します。 任意のAppleでサインインも提供します。
- GoogleはAdMobで広告を提供し、UMPでプライバシーの選択を確認します。広告データはGoogleプライバシーポリシーとアプリから得た情報の利用に従い、国外で処理される場合があります。データと選択肢については第9項をご覧ください。 任意のGoogleサインインも提供します。 Google Analytics for Firebaseによる分析と、Google PlayによるAndroidアプリの配信・決済も提供します。
11. データの保存期間
- アプリ更新の確認:当方の更新サーバーはリクエストの内容や端末IDを保存せず、ログにも記録しません。
- 端末のゲームデータはアプリまたはそのデータを削除するまで残ります。サインインセッションは30日後に期限切れとなります。
- サインインセッションはこの端末に保存され、30日後に期限切れとなります。アカウントとクラウド保存のデータは進行状況の保存・復元と端末間の引き継ぎに使用し、広告やトラッキングには使用しません。クラウドアカウントと保存データはアカウント削除まで残り、サインアウトしても端末の進行状況とクラウド保存は残ります。
- レイドID、トークンのハッシュ、週ごとのレイド記録と受領記録は自動失効せず、利用者が削除するまで残ります。結果や報酬を確認できるよう、過去の週の記録も保存します。
- デイリーランキングの記録、受領記録、フィンガープリント、参加した日付の一覧は、各チャレンジのUTC日付の開始時刻から14日後に自動削除されます。
- 日ごとのIPハッシュの回数記録は、そのUTC日の終了後に削除します。攻撃回数の記録は通常およそ24~48時間以内に削除します。新規ID発行の回数記録は、最後に使用してから24時間後に削除します。
- レイドデータの削除後、応答が失われても安全に再試行できるよう、トークンのハッシュを含む削除マーカーを24時間保持します。その後、削除します。
- ランキングの行は削除されますが、与えたダメージは匿名の共有合計として週ごとのボスHPと総ダメージに引き続き含まれます。
raid.wookdev.comのWorkers Logs(最長7日間保存)とCloudflare独自の運用ログはアプリ内の削除操作では削除されず、保存期間が過ぎると消去されます。- Google Analyticsのイベント単位のデータは2か月間(初期設定)保存します。集計レポートはそれより長く残る場合があります。
12. データの削除
- アカウントの削除: 「設定 › 保存状況 › アカウントを削除」を開きます。まず、このインストールのオンラインレイド・デイリーランキング記録と送信待ちのデイリー記録を削除し、次にクラウドアカウントと保存データの削除を要求します。Appleアカウントは認証取り消しが設定されている場合、Apple認証を取り消してからクラウドアカウントを削除します。この段階で失敗した場合、再試行できるようクラウドアカウントと保存データは残りますが、レイド記録の削除は完了している場合があります。
- 削除完了後にサインアウトし、このアカウントの端末内同期キューを消去します。端末の進行状況と購入内容はゲストとして引き続き利用できます。別のインストールのレイド記録はクラウドアカウントに紐付いておらず、別途削除が必要です。アプリを削除するだけではクラウドアカウントや保存データは削除されません。
- アプリ内:設定を開き、オンラインレイドデータを削除をタップします。サーバーは、すべての週について、ランキングの行、攻撃の受領記録、未完了の攻撃、最後の一撃の記録を削除します。保存されているデイリーランキングの記録、受領記録、フィンガープリントも削除します。招待コードとこのレイドIDの招待記録も削除します。友だちの受け取り待ちの報酬と招待記録は、このレイドIDなしで残ります。履歴が長い場合は段階的に削除し、アプリはサーバーが完了を確認するまで処理を続けます。その後、アプリは端末からレイドIDとトークンを削除します。ローカルの進行状況は残ります。
- レイド(RAID)タブや友だち招待を一度も開かず、ランキング対象のデイリープレイ記録も送信していなければ、削除対象の関連付けられたレイド、デイリーランキング、招待の記録はありません。第1項の匿名ゲームプレイ統計は別途収集されます。
- 削除後に再びオンラインレイドをプレイすると、新しいレイドIDが作成されます。
- アプリを削除する前に、データを削除してください。端末にトークンがなければ、アプリはその記録が利用者本人のものだと証明できません。すでにアプリを削除したかトークンを失った場合は、公開名と参加したレイドの週を記載し、hello@wookdev.com へメールしてください。メールでトークンを送らないでください。特定および削除できる情報をお伝えします。
- ローカルデータ:アプリを削除すると、端末上の進行状況が削除されます。サーバーの記録は削除されません。
- Firebaseの分析データはゲームのアカウントと関連付けていないため、特定の利用者の分析データを探して削除することはできません。アプリを削除するとアプリインスタンスIDが削除され、再インストール時に新しいIDが作成されます。以前に収集した分析データが削除されるわけではありません。お問い合わせは hello@wookdev.com へお願いします。
13. 利用者の権利とお問い合わせ
お住まいの地域によっては、ご自身のデータへのアクセス、訂正、削除、またはその利用方法に異議を申し立てる権利がある場合があります。レイド結果はゲーム内で確認でき、レイドデータは設定で削除できます。その他のご要望やご質問は、hello@wookdev.com へメールしてください。
14. 子ども
PEG HERO POP! は一般の利用者向けのゲームであり、13歳未満の子どもを対象としていません。13歳未満の方は利用しないでください。13〜17歳の方は、このポリシーを確認した保護者の許可を得たうえで利用してください。ゲームを利用することで、その許可を得ていることを確認したものとみなします。当方は、保護者の同意なく13歳未満(現地の法律がより高い年齢を定める場合はその年齢未満)の子どもの個人情報を、それと知りながら収集することはありません。収集したことが判明した場合は削除します。
ゲームは本名、メールアドレス、年齢、その他の連絡先情報を尋ねません。入力したニックネームは端末に保存され、サインインするとクラウド保存にも含まれ、公開ランキングに表示されます。よくある不適切な語句はブロックし、名前の入力画面で本名を使わないよう案内しています。チャットはありません。保護者が子どものオンラインレイドデータの削除を希望する場合は、子どもの端末で「オンラインレイドデータを削除」を使用するか、hello@wookdev.com までご連絡ください。
15. 変更
本ポリシーを変更する場合、新しい発効日を付して本ページに掲載します。本ポリシーには任意のサインインとクラウド保存が含まれています。 バージョン1.0.2から、iOS・AndroidアプリのFirebaseによる分析も含まれます。
2026-11-12:バージョン1.0.3からのアプリ更新の確認、送信する情報と、当方の更新サーバーがその情報を保存せずログにも記録しないことを追記しました。