PalOptimizer
Alpha版テスト中本サービスは非公式の開発中ツールです。動作の保証はなく、予告なく仕様変更・データクリアが発生する場合があります。

プライバシーとデータ削除

施行日: 2026年8月10日(制定: 2026年7月28日。2026年8月4日にアクセス解析と保存機能、2026年8月5日に広告配信、2026年8月8日にブラウザー内Web Decoderと端末ローカル保存、2026年8月9日にAgentのPlayer save読取範囲とprivateスキルセット・パル構成、2026年8月10日にsnapshotの復旧・保持とAgentのprocess memory利用を追記)

PalOptimizerが取り扱うデータ、利用目的、保持期間、削除方法を説明します。

収集するデータ

ログインと同期機能を利用した場合に、次のデータを取り扱います。

  • OAuth providerから受け取るアカウント識別子、表示名、email、画像、scope
  • 認証・provider連携の維持に必要なsession token、OAuth access / refresh / ID token、 verificationの識別子・値・有効期限(providerや認証flowにより保存されない項目もあります)
  • sessionに紐づくIP address、user-agent、作成・更新・有効期限
  • 10分有効なpairing code、その作成・有効期限
  • 連携deviceの名前、tokenのhash、作成・失効・最終同期時刻
  • world ID、world名、最終同期時刻、character件数
  • 通知filterの名前、条件、有効状態、更新世代
  • 配合ルートブックマーク、privateスキルセット、パル構成とその参照関係(対象Pal、役割、戦術、passive / active skill、説明、一致条件、作成・更新・archive時刻、version)
  • cloud MyParty assignment(名前、source Party/PalBuild参照、world、owner、slot、割り当てたinstance ID、version)
  • Level.savから抽出した CharacterRow のsnapshot。表示名、Pal ID、level、性別、 passive / active skill、個体値、instance ID、player / owner / groupの識別子などを含みます。
  • Players/*.savから抽出したplayer別の収集進捗。Player UID、取得済みGUID、手記ID、古代の遺跡GUIDを含みます。

図鑑などの未ログイン機能は静的assetを表示します。通常のHTTPアクセスについては、 Cloudflareやhosting基盤がsecurity・配信のためのrequest情報を処理する場合があります。

送信しないデータ

raw save(Level.savPlayers/*.sav)はPCの外へ送信せず、Cloudflareにも保存しません。AgentはSaveGames/<slot>/<world>/Level.savと同じworld直下のPlayers/*.savを読み、backup配下は同期しません。 snapshot抽出に不要なGVAS全体、ローカルpath、file名は送信しません。

Web Decoderを利用する場合も、Level.savLevelMeta.savPlayers/*.savはブラウザー内の専用Workerで解析し、外部へ送信しません。 PalOptimizerへは中立データを検証・変換した結果だけを返します。 「この端末」のMyParty assignmentはnetwork、analytics、logへ送信しません。

保存先と目的

Cloudflare D1
login account、session / OAuth token、verification、IP address / user-agent、device、world metadata、 pairing code、通知filter、配合ルートブックマーク、privateスキルセット・パル構成・参照関係、cloud MyParty assignment、移行元の旧パッシブセットを保存し、本人認証、provider連携の維持、device連携、 同期済みworld一覧、通知条件の配信、保存したブックマーク・セット・構成の表示に使います。 device token本体は保存せずhashを保存します。これらのtokenやcodeを公開しません。
Cloudflare R2
user / worldごとの最新world snapshot JSON(CharacterRowとplayer別の収集進捗を含む)を、 current generationとrollback互換mirrorとして保存し、同期した本人の所持Pal・収集進捗表示に使います。 legacy mirrorだけは同期ごとに最新版へ上書きし、current generationは毎回新しいopaque keyを使います。 更新・削除の復旧中は直前generationや回収対象objectが一時的に残る場合があります。
利用者のPC
Agent設定、device token、保存先、受信済みfilter、通知判定のlocal stateを%APPDATA%\PalOptimizer\に保存します。既存worldの同期継続判定に使うknown world IDと global retry時刻はAgent processのmemoryだけに保持し、このfolderや他のfileへ保存しません。Agentを終了・再起動すると失われます。
ブラウザーのIndexedDB
Web Decoderから読み込んだワールドは、検証・変換済みのsnapshotと、そのworldのlocal MyParty assignmentだけを「この端末」のデータとして保存します。 raw saveと中立WorldDocument全体は保存しません。ログインは不要で、ログアウトやaccount削除でも暗黙に削除しません。

同期データを広告目的で公開したり、別userへ表示したりする機能はありません。

保持期間

R2のactive world snapshotはcurrent generationとrollback互換mirrorで最新版を保持します。更新失敗時の復旧に必要な 直前generationを一時的に保持する場合がありますが、superseded / orphaned objectと不要になった復旧情報はhourly cleanupで boundedに自動回収します。activeなworldのsnapshotとmetadataは、日数だけを理由に削除せず、 利用者がそのworldを削除するまで保持します。cloud MyParty assignmentも対象world削除またはaccount削除まで保持します。account、device、filter、配合ルートブックマーク、privateスキルセット・パル構成・参照関係、移行元の旧パッシブセット、 認証関連データはaccountを削除するまで保持し、 失効したdeviceの記録もaccountを削除するまで保持します。日数による自動削除は行いません。

「この端末」のsnapshotとlocal MyParty assignmentはworld削除または明示一括削除まで保存を試みますが、browser設定、容量制限、閲覧データ削除、 storage evictionにより消える場合があります。永続保存を保証するものではありません。

pairing codeは10分で失効し、新しいcodeの発行時に同じuserの古いcodeとその時点で期限切れのcodeを削除します。 sessionとverificationには認証flow上の有効期限がありますが、account削除までは期限切れの記録が残る場合があります。

データを削除する方法

  • 1つのworld: 「所持パル」で対象worldを選び「このワールドの同期データを削除」
  • この端末のworld: 「所持パル」で「この端末」の対象worldを選び「この端末のワールドを削除」
  • この端末のMyPartyのみ: 「アカウント」で「この端末のMyPartyを一括削除」
  • deviceの接続: 「アカウント」の連携device一覧で「失効」
  • 全データ: 「アカウントを削除」で確認文字列を入力し「完全に削除」
  • PC側: Agentを終了・uninstall後、必要に応じて%APPDATA%\PalOptimizer\を削除

world / account削除は、先に削除fenceを確保して新しいsnapshot更新を止め、対応するR2 snapshotとD1 dataを削除します。 snapshot uploadまたは別の削除処理が実行中の場合は、削除せず409Retry-Afterを返すことがあります。 upload leaseと削除fenceの所有権はD1の時刻を基準に180秒ずつ更新され、期限切れ後は再試行で引き継げます。hourly cleanupも 期限切れ処理を自動的に再開し、request内で完了しなかったR2回収をboundedに繰り返します。account削除の対象はR2の全snapshot、D1の device / pairing code / world / filter / ブックマーク・privateスキルセット・パル構成・参照関係・cloud MyParty assignment・旧パッシブセット / session / OAuth account / verification / user情報です。device失効は以後の同期と WebSocket接続を拒否します。Agentのuninstallだけではcloud上のデータは削除されません。

account削除はIndexedDBの「この端末」worldを暗黙に削除しません。確認欄で選んだ場合だけlocal MyParty assignmentを同時削除でき、browserのsite data削除でも消去できます。 Web Decoderの静的hostには通常のaccess log(IP address、user-agent等)が残る場合がありますが、save fileは含まれません。

アクセス解析(外部送信)

サービス改善のため、Google LLCが提供するGoogle Analytics 4を利用します。page閲覧時に、閲覧page URL、 referrer、browser・OS・画面サイズなどの環境情報、cookieに保存される識別子(client ID)が Googleへ送信されます。これらは利用状況の統計分析にのみ使い、氏名・emailなどのaccount情報とは 紐付けません。

Googleによるデータの取り扱いはGoogleのpolicy(パートナーのサイトやアプリから収集したデータ)を参照してください。計測を望まない場合はGoogle Analytics opt-out add-onの利用やbrowserでのcookie無効化により停止できます。

広告配信(外部送信)

運営費用に充てるため、Google LLCが提供する第三者配信の広告サービスGoogle AdSenseを利用します。 広告の配信、表示回数の計測、不正防止のため、閲覧page URL、referrer、browser・OS・画面サイズなどの 環境情報、cookieに保存される広告識別子がGoogleおよびそのパートナーへ送信されます。cookieにより、 過去の閲覧履歴に基づく広告(パーソナライズ広告)が表示される場合があります。これらを氏名・emailなどの account情報や、同期したsave dataと紐付けることはありません。

パーソナライズ広告はGoogleの広告設定で無効にできます。 Googleによるcookieの利用と第三者配信事業者の取り扱いはGoogleのpolicy(広告)を参照してください。

問い合わせ

プライバシーとデータ削除に関する問い合わせはprivacy@paloptimizer.comで受け付けます。受信箱は少なくとも週1回確認し、 原則7暦日以内に一次回答します。pairing code、token、save dataなどの秘密情報をメールやpublic Issueへ投稿せず、 個人情報は問い合わせに必要な最小限にしてください。