Last updated: April 24, 2026 (§2b rewritten for the Supporter-type monetization pivot: one-time Supporter tips replacing the previous recurring Pro subscription)
Steel Darts Pro ("the App") is a free progressive web application for steel darts score tracking and practice. Every game feature is free for everyone, with no advertising. Optional Supporter tiers are available as one-time tips. Your privacy is important to us.
Privacy at a glance: All your game data is stored on your device. Checkout route calculations run entirely in your browser — no score data is sent to any server for route recommendations. Online features (leaderboard, rooms, sync) are strictly opt-in. Supporter-tier payments (Coffee / Lunch / Dinner / Founder) are processed by Stripe — your card details go directly to Stripe and never touch this app or our servers. A separate optional Supporter reservation form collects an email address for a one-time launch notification.
The App collects three categories of data:
The App uses Firebase Realtime Database and Firebase Authentication (Google) for its online features. When you use these features, the following data is transmitted to Firebase servers:
trial_requests/<your-anonymous-uid> containing the email you typed, an optional display name, the feature key that triggered the form (e.g. has_premium_theme, has_custom_caller), your browser language, user agent, an explicit consent flag set to true, and a server timestamp. If Firebase is unreachable, the fallback is a mailto: link that pre-composes a message to hello@steeldarts.pro — your email client sends it only if you press Send. We use the email address solely to notify you once when Supporter-tier payments open; we do not add you to any marketing list. See section 9 for retention.Firebase is operated by Google. Data is stored on Google's servers. See Firebase Privacy Information and Google Privacy Policy.
Online features (leaderboard, rooms, sync) and the Supporter reservation are optional. The App is fully functional offline without them.
Supporter-tier payments (Coffee / Lunch / Dinner / Founder) are processed by Stripe, Inc. as one-time payments. There is no recurring subscription or auto-renewal. Stripe processes your payment directly — the App and our backend never see card numbers, CVCs, or full billing addresses.
coffee, lunch, dinner, or founder), the supported USD amount, a Founder flag (true only if the Founder tier was purchased during the Beta window), and a refund timestamp if any refund is later issued. No card data, no email, no billing address is written to our database.users/<your-anonymous-uid>/supporter. This node is readable only by you (the owner) and is written exclusively by our server-side webhook handler (clients cannot modify it). The database rules enforce this at the Firebase level.events_processed/<stripe-event-id> for up to 90 days (Stripe's maximum replay window), after which it is purged.If you never purchase a Supporter tier, none of the above applies to you — Stripe receives no data about you.
The App uses Google Analytics 4 (gtag.js) to collect anonymous usage statistics:
game_start, game_complete, checkout_attempt, checkout_success, bust, score_180, practice_start, practice_complete, checkout_quiz_start, checkout_quiz_complete, focus_drill_start, focus_drill_complete, x01_segment_toggled, beta_arrival, pro_gate_touched, pro_upgrade_view, pro_upgrade_click, pro_upgrade_dismiss, pro_upgrade_maybe_later, pro_trial_signup, pro_trial_submit_fail, pro_checkout_attempt, pro_checkout_redirect, pro_checkout_success, pro_checkout_cancelled, pro_checkout_failed. (The event-name prefix pro_ is a historical label for what is now the Supporter-tier funnel — the events and names were introduced before the 2026-04-23 Supporter pivot and kept as-is to preserve GA4 historical data continuity.) These events carry aggregate counts, the feature key that triggered the upsell dialog (e.g. has_badge, has_premium_theme), the selected Supporter tier (coffee / lunch / dinner / founder) for Stripe funnel events, and — for failure events only — a short machine-readable reason code (e.g. invalid_email, no_consent, http_401). No dart scores, player names, email addresses, card data, Stripe customer IDs, or Stripe payment-intent IDs are sent to GA4.web_vitals event reports anonymous page-performance measurements (LCP, INP, CLS, TTFB, FCP) so we can keep the app fast. No content is captured.This data is aggregated and anonymous. No personally identifiable information is collected.
EEA/UK — Consent Mode v2: visitors from the European Economic Area, United Kingdom, or Switzerland see a consent banner on first arrival. Until you accept, Google Analytics and Web Vitals events are withheld. Choices are stored in localStorage.consent_v1 and can be changed at any time.
Opt-out (anywhere): You can disable analytics entirely by setting localStorage['analytics_opt_out'] = '1' in your browser's DevTools console, or by using a browser extension that blocks Google Analytics. The Do-Not-Track browser signal is also honored.
Error tracking (Sentry): Sentry browser-SDK error tracking is integrated in the codebase and becomes active only when a DSN is configured by the operator. When active, Sentry receives JavaScript stack traces, release version, and browser environment info (user agent, URL). Scores, player names, history entries, and other in-app data are never sent. If you opt out of analytics or decline EEA consent, Sentry is also disabled.
The App stores the following data locally on your device:
Google Analytics may set cookies for its analytics functionality. No cookies are used for advertising.
The App's core differentiator — skill-based checkout route suggestions — runs entirely in your browser. Route tables are pre-computed at build time and shipped as a static JavaScript file. Your scores, averages, and throws are never sent to any server for route calculation.
If you are located in the EU, EEA, or United Kingdom, the General Data Protection Regulation (GDPR) or UK GDPR applies to our processing of your data. Under these laws you have the following rights:
localStorage.consent_v1.To exercise any right in Section 7, please submit a Data Subject Access Request:
We keep data only as long as needed for the purpose it was collected. Concrete retention periods:
trial_requests/<uid>) — retained until Supporter-tier payments launch and the one-time notification email has been sent, after which we delete all entries within 30 days. You can request immediate deletion at any time via section 8 (DSAR). If the Supporter program is cancelled before launch, all entries are deleted within 90 days of that decision.users/<uid>/supporter (tier, supportedUsd, Founder flag, opaque Stripe IDs, timestamps) is retained while your anonymous ID is active, so your badge and theme perks keep working. You can request deletion via DSAR (section 8) at any time. The Stripe webhook idempotency log (events_processed/<event-id>) is auto-purged after 90 days.consent_v1 key) — stored on your device only; no retention period on our side.When you use the share feature, you choose what to share and where. The App does not automatically share any data with third parties beyond the services listed above.
The App does not knowingly collect personal information from children under 13. The online features use only anonymous identifiers and no personal information is required.
We may update this Privacy Policy from time to time. Material changes affecting your rights will be highlighted on this page with an updated revision date.
If you have questions about this Privacy Policy (including DSAR submissions), please open an issue on the GitHub repository.
← Back to Steel Darts Pro最終更新: 2026年4月24日(§2b を Supporter 型(一回払いの応援型)への移行に合わせて全面改訂)
Steel Darts Pro(以下「本アプリ」)は、スティールダーツのスコア管理と練習を目的とした PWA です。すべてのゲーム機能はすべてのユーザーに無料で開放され、広告も一切表示されません。任意の Supporter 枠(一回払いの応援型支払い)を提供しています。お客様のプライバシーを大切にしています。
一目でわかる要点: ゲームデータはすべてお客様の端末に保存されます。チェックアウトルートの計算はすべてブラウザ内で完結し、スコア情報がルート推薦のためにサーバーへ送信されることはありません。オンライン機能(リーダーボード・対戦・同期)は明示的なオプトインです。Supporter 枠の決済(Coffee / Lunch / Dinner / Founder)は Stripe が一回払いとして処理します — カード情報は本アプリやサーバーを一切経由せず Stripe に直接送信されます。別途、任意のSupporter 予約フォームはローンチ通知用のメールアドレスを 1 回だけ収集します。
本アプリは以下の3種類のデータを扱います:
coffee / lunch / dinner / founder)、支援金額(USD)、不可逆な Stripe カスタマー/Payment Intent ID のみが Webhook 経由で届き、匿名ユーザー ID に紐付けて Firebase Realtime Database に保存されます。カード番号・CVC・請求先住所は一切当方で保持しません。詳細はセクション 2 およびセクション 2b をご参照ください。本アプリはオンライン機能にFirebase Realtime DatabaseとFirebase Authentication(Google)を使用しています。これらの機能を使用した場合、以下のデータがFirebaseサーバーに送信されます:
trial_requests/<匿名ユーザー UID> に以下のデータを書き込みます: 入力されたメールアドレス、任意の表示名、フォームを起動した機能キー(has_premium_theme、has_custom_caller など)、ブラウザ言語、User Agent、明示的な同意フラグ(true 固定)、サーバータイムスタンプ。Firebase に到達できない場合は mailto: フォールバックとして hello@steeldarts.pro 宛ての下書きメールがメーラで開かれ、お客様が送信ボタンを押した場合のみ送信されます。収集したメールアドレスは Supporter 枠の決済開始時に 1 回通知するためだけに使用し、マーケティングリストへの追加は行いません。保存期間はセクション 9 をご参照ください。FirebaseはGoogleが運営するサービスです。詳細はFirebase プライバシー情報およびGoogleプライバシーポリシーをご参照ください。
オンライン機能(リーダーボード・対戦・同期)および Supporter 予約は任意です。これらを使用しなくてもアプリはオフラインで完全に動作します。
Supporter 枠の決済(Coffee / Lunch / Dinner / Founder)は Stripe, Inc. が一回払いとして処理します。継続課金・自動更新はありません。Stripe が決済を直接処理し、カード番号・CVC・完全な請求先住所が本アプリや当方のバックエンドを経由することはありません。
coffee、lunch、dinner、founder)、支援金額(USD)、Founder フラグ(ベータ期間中に Founder 枠を購入した場合のみ true)、返金発生時のタイムスタンプ。カード情報・メールアドレス・請求先住所は一切データベースに書き込まれません。users/<匿名ユーザー UID>/supporter。このノードはオーナー(お客様本人)のみ読み取り可能で、書き込みはサーバーサイドの Webhook ハンドラのみに許可されています(クライアントからの変更は不可)。これは Firebase のデータベースルールで強制されます。events_processed/<stripe-event-id> に最大 90 日間(Stripe のリプレイウィンドウ上限)保存し、その後自動削除します。Supporter 枠をご購入にならない場合、上記はすべて対象外です — Stripe にはお客様に関するいかなるデータも送信されません。
本アプリはGoogle Analytics 4(gtag.js)を使用し、以下の匿名利用統計を収集します:
game_start、game_complete、checkout_attempt、checkout_success、bust、score_180、practice_start、practice_complete、checkout_quiz_start、checkout_quiz_complete、focus_drill_start、focus_drill_complete、x01_segment_toggled、beta_arrival、pro_gate_touched、pro_upgrade_view、pro_upgrade_click、pro_upgrade_dismiss、pro_upgrade_maybe_later、pro_trial_signup、pro_trial_submit_fail、pro_checkout_attempt、pro_checkout_redirect、pro_checkout_success、pro_checkout_cancelled、pro_checkout_failed。(イベント名の pro_ 接頭辞は、2026-04-23 の Supporter 型方針変更以前から使用されている歴史的ラベルで、GA4 上の履歴連続性を保つため Supporter ファネルにもそのまま流用しています。)これらは集計カウント、アップセルダイアログを起動した機能キー(has_badge、has_premium_theme 等)、Stripe ファネルイベントの選択枠(coffee / lunch / dinner / founder)、および失敗イベントのみ短い失敗理由コード(invalid_email、no_consent、http_401 等)を含みますが、ダーツスコア・プレイヤー名・メールアドレス・カード情報・Stripe カスタマー ID・Stripe Payment Intent IDなどの個人識別情報は GA4 に送信されません。web_vitals イベントは LCP / INP / CLS / TTFB / FCP の匿名計測値を送信します。アプリの速度維持に使用するもので、コンテンツは一切収集しません。個人を特定できる情報は収集されません。
EEA/UK — Consent Mode v2: EEA、英国、スイスのユーザーには初回訪問時に同意バナーが表示されます。承諾するまで Google Analytics と Web Vitals のイベントは送信されません。選択は localStorage.consent_v1 に保存され、いつでも変更可能です。
オプトアウト(全地域): ブラウザの DevTools コンソールで localStorage['analytics_opt_out'] = '1' を実行するか、Google Analytics をブロックするブラウザ拡張機能を使用することで、アナリティクスを完全に無効化できます。ブラウザの Do-Not-Track シグナルも尊重します。
エラー追跡(Sentry): Sentry ブラウザ SDK はコードに組み込まれており、運営者が DSN を設定した時点で有効化されます。有効化時は JavaScript のスタックトレース・リリースバージョン・ブラウザ環境(User Agent、URL)を送信します。スコア・プレイヤー名・履歴データ等、アプリ内のデータは一切送信されません。アナリティクスをオプトアウトした場合、および EEA 同意を承諾していない場合、Sentry も自動的に無効化されます。
本アプリは以下のデータを端末内のローカルストレージに保存します:
Google Analytics は計測用のCookieを設定する場合があります。広告用のCookieは使用していません。
本アプリの中核機能である「スキル別チェックアウト成功確率・リカバリー推薦」は、すべてブラウザ内で計算されます。ルートテーブルはビルド時に事前計算され、静的な JavaScript ファイルとして配信されます。スコア・アベレージ・スロー情報がルート計算のためにサーバーへ送信されることはありません。
EU、EEA、または英国に居住されるお客様には、一般データ保護規則(GDPR)または英国 GDPR が適用されます。以下の権利が認められています:
localStorage.consent_v1 の消去で可能です。セクション 7 に記載された権利を行使されたい場合、以下の手順でデータアクセス要求を提出してください:
データは収集目的の達成に必要な期間のみ保存します。具体的な保存期間は以下のとおりです:
trial_requests/<uid>)— Supporter 枠の決済がローンチし、1 回限りの通知メールを送信するまで保存されます。送信後 30 日以内に全エントリを削除します。セクション 8(DSAR)に基づき、いつでも即時削除を請求できます。Supporter プログラムの提供を中止することが決定した場合は、その決定から 90 日以内に全エントリを削除します。users/<uid>/supporter のスナップショット(枠名・支援金額・Founder フラグ・不可逆な Stripe ID・タイムスタンプ)は、バッジ・テーマ特典を表示し続けるため、匿名 ID がアクティブな間保存されます。セクション 8(DSAR)に基づく削除請求はいつでも可能です。Stripe Webhook 冪等性ログ(events_processed/<event-id>)は 90 日後に自動削除されます。consent_v1 キー)— お客様の端末にのみ保存され、当方側では保存しません。共有機能を使用する場合、何を誰と共有するかはお客様が選択します。本アプリは上記のサービス以外に、データを自動的にサードパーティへ提供することはありません。
本アプリは13歳未満の子どもから個人情報を意図的に収集することはありません。オンライン機能は匿名識別子のみを使用し、個人情報の入力は不要です。
本プライバシーポリシーは随時更新される場合があります。お客様の権利に影響する重要な変更は、改訂日とともに本ページで強調掲載されます。
本プライバシーポリシーに関するご質問(DSAR の提出を含む)は、GitHubリポジトリにIssueをお立てください。
Steel Darts Pro は、 European Accessibility Act (EAA) および WCAG 2.2 AA 準拠を目指して開発されています。 2026 年 5 月時点で、 以下の項目に対応しています:
未対応・改善検討中の項目:
アクセシビリティに関するフィードバックは、 上記 GitHub Issues またはメール (privacy@steeldartspro.app) でお寄せください。 全てのフィードバックは公平に検討され、 可能な限り速やかに対応いたします。
← Steel Darts Proに戻る