Privacy policy
スクワット判定員 プライバシーポリシー
PanelPowerの共通アカウント削除では、通常のクラウドデータとFirebase Authを削除した後も、削除済みデータの復活を防ぐための情報を例外として保持します。確認できていないバックアップ消去時期などは約束しません。
1. 運営者と問い合わせ
運営者:hanageouji58-svg
問い合わせ先:panelpower.app@gmail.com
サポートURL:このメール窓口をご利用ください。
制定日:2026-09-08
2. 端末内に保存する情報
アプリは shared_preferences を使い、表示名、体重、重量・回数・セット・休憩、各種設定、ワークアウト履歴、EXP、レベル、称号、実績、テンポ解放状態、Pro権利キャッシュ、PanelPower送信待ちデータ、ランキングの状態・キャッシュ、選択したカスタム音声のローカルパスなどを端末内に保存します。
ワークアウト履歴は最大50件を保存する実装です。端末内データは設定画面の「この端末のデータを削除」、OSのアプリデータ削除、アンインストール等で消える可能性があります。OSのバックアップ・自動復元の扱いは端末・OS設定に依存し、公開前に確認します。
3. センサー、音声、通知
- 加速度センサーの値を、キャリブレーションとスクワット判定のため端末上で処理します。生値の保存・送信は監査したアプリ連携ペイロードでは確認できず、履歴には集計結果が保存されます。
- 効果音は同梱音声を再生します。カスタム音声は利用者が端末上のファイルを選択し、そのパスを保存します。録音・音声アップロードの処理は確認できません。
- リマインダー、ストリーク、休憩終了の通知は
flutter_local_notificationsによる端末内通知です。自社サーバーへ通知内容やプッシュトークンを送る処理は確認できません。 - 結果画像の共有では一時PNGをOS共有機能へ渡します。共有先アプリでの保存・送信は共有先のポリシーに従います。
4. 任意ログインとFirebase
通常モード、テンポモード、センサー判定、端末内履歴などの主要機能はログインなしで利用できます。PanelPower連携またはランキングを使う場合に、Googleログイン(対応環境ではAppleログイン)によるFirebase Authenticationを利用します。
Firebase AuthのUIDを認証コンテキストで使用し、実装上はメールアドレスが表示される場合があります。Appleログインは環境により氏名・メールのスコープを要求しますが、実際の返却値とFirebase側の保持は本番設定で確認します。Firebase App Checkはバックエンド呼び出しの正当性確認に使用し、Android公開構成ではPlay Integrity Providerを使用する実装です。
Firebase Functionsの本体、Firestore Rules、IndexesはPanelPower側で管理します。共通アカウント削除後に残る復活防止情報は第9項に記載します。バックアップや外部サービス側の保持は、確認できた範囲を超えて約束しません。
5. PanelPower連携
連携は任意です。ログイン済みで連携を有効にした後に完了したワークアウトだけを送信待ち箱に追加し、Firebase Callable Functionsへ同期します。クライアントで確認できる概要項目は次のとおりです。
| 項目 | 扱い |
|---|---|
| 送信対象 | recordId、実施日時、現地日付、タイムゾーン差、合計ボリューム、自重/外部重量の区分、normal/tempo、loadType、revision、syncGeneration |
| クライアント送信に含めないもの | 生センサー値、音声ファイル・音声パス、EXP、実績、称号、広告状態、Pro購入情報。UIDはJSONペイロードではなく認証コンテキストでサーバーが扱う可能性があります。 |
| 保存・削除 | アプリ単位削除または共通アカウント削除で対象の連携記録を削除します。共通アカウント削除後も、第9項の復活防止情報は例外として残ります。バックアップ消去時期など、ほかの運用上の保持は確認できた範囲を超えて断定しません。 |
6. ランキング
ランキング参加は任意で、PanelPower記録同期とは別の設定です。参加を有効にすると、設定ユーザーネーム、EXP、レベル、装備称号、実績数をランキングで公開します。メールアドレス、UID、体重、ワークアウト履歴は公開しません。ランキング順位はサーバー上の参加者データから算出されます。
参加をOFFにすると、サーバー上のランキング公開プロフィールを削除し、端末内のランキングキャッシュと送信待ちデータも削除します。これは表示を隠すだけの設定ではありません。参加OFFではワークアウト履歴、EXP、実績、PanelPower記録、Firebase Authアカウントは削除しません。再度参加を有効にすると、最新のプロフィール状態からランキング情報を作成します。4件の固定ライバルはアプリが用意した表示用データで、実ユーザーの個人データではありません。
Squatdegreesのクラウドデータ削除とPanelPower共通アカウント削除でもランキング関連データを削除します。共通アカウント削除後の復活防止情報は別項の保持例外です。
7. AdMob、同意、プライバシー設定
無料版は google_mobile_ads によるバナーと任意のリワード広告を使用します。tempoUnlockとexpBoostは別広告ユニットです。Google UMPで同意情報を更新し、必要なフォーム表示、広告リクエスト可否の確認を広告SDK初期化より前に行います。同意が得られない、または処理に失敗した場合は広告を安全側で無効にします。
AdMobは設定・地域・配信条件により、広告識別子、端末またはその他の識別子、IPアドレスのおおまかな地域、アプリ操作、診断情報などを処理・共有する可能性があります。現行SDKの正確な開示とRelease AABの実体を、Google Play ConsoleのData Safety申告前に照合します。アプリ内の「広告のプライバシー設定」から、UMPが必要とする場合に設定を見直せます。
Pro権利が起動前に確認できた場合、Mobile Ads SDKとUMPを初期化せず、広告枠を表示しません。購入・復元でProになった場合も広告の読み込み・表示を停止し、読み込み済み広告を破棄します。
公式情報:Google Mobile Adsのプライバシー、AdMobのData Safety開示、Google Playの広告ID。
8. Google Playの購入とPro権利
ProはGoogle Play Billingの買い切り非消費型商品 squatdegrees_pro です。購入・価格・注文情報・決済はGoogle Playが処理します。本アプリは商品ID、商品情報、購入状態を受け取り、端末の pro_entitled に権利を保存します。
購入成功または復元成功の状態を確認するとPro特典を有効にします。購入トークンのサーバー検証、返金・失効の常時同期はこのコード監査では確認できないため、公開前にPlay Billingの現行推奨フローと運用を確認します。Pro権利はFirebase AuthやPanelPowerへ送信しません。
9. 削除、保存期間、安全管理
アカウント・データ削除案内に、スクワット判定員だけのクラウドデータ削除、PanelPower共通アカウント削除、端末内データ削除の違いを記載しています。共通アカウント削除では、通常のPanelPowerクラウドデータ、Connected Training、ランキング情報、Firebase Authユーザーを削除します。
PanelPower共通アカウント削除後に保持する復活防止情報
共通アカウント削除後も、古い認証情報や端末に残った送信待ちデータによって削除済みデータが再作成されることを防ぐため、PanelPowerは削除済みアカウントのUIDからSHA-256で生成したハッシュ化識別子を文書IDとして保持します。文書に保存する項目は、削除operationの識別子とサーバーが付ける作成日時です。
この情報は、削除済みアカウントを再識別・追跡したり、広告、分析、ランキング、プロフィール作成に利用したりするためのものではありません。メールアドレス、raw UID、トレーニング履歴、ランキング情報、認証token、削除処理のresume tokenおよびそのhashは、この復活防止用文書へ保存しません。アプリなどのクライアントから直接閲覧・変更・削除することもできません。
このハッシュ化識別子は匿名化された情報ではなく、個人に関連し得る仮名化された識別子として管理します。現在は保持期限を設けず、削除状態を維持するため保存します。この保持はPanelPower共通アカウント削除の例外であり、スクワット判定員だけのクラウドデータ削除には新たな共通fenceを作りません。
端末内データの保持は削除操作、OSのアプリデータ削除、アンインストール等までです。Google Playの注文記録やバックアップの消去時期は、それぞれのサービスと設定に従います。通信・サービス側の暗号化は各公式仕様と本番設定を照合し、本アプリ全体について未確認の保証はしません。
10. 子どもの利用と変更
子ども向けプログラムへの参加、対象年齢、保護者同意、年齢確認、子ども向け広告設定は運営者がGoogle Play Consoleで確定します。未確認のため、子どもから情報を収集しない等の断定はしません。
法令、サービス、アプリ機能、広告・課金・連携の変更に応じて本ポリシーを更新します。重要な変更は本アプリまたは公開ページで告知し、更新日を表示します。