プライバシーポリシー
「Hi Taigi」(以下「本アプリ」といいます)の開発者は、ユーザーのプライバシーを尊重し、最小限のデータしか扱わない設計を採用しています。本ポリシーは、本アプリにおける個人情報の取扱いを定めるものです。
1. 収集する個人情報
本アプリは、氏名やメールアドレスなど、利用者個人を識別できる情報を収集しません。アカウントにサインインした場合も、保存するのは Apple が発行する仮名の識別子とランダムなアカウント ID だけです(第 6 節)。
- 利用者アカウントの登録は不要です。アカウントへのサインイン(Sign in with Apple)は任意で、サインインしなくても本アプリは問題なく使えます。
- 利用者がサインインして Plus の同期を使う場合(第 6 節を参照)を除き、検索履歴・お気に入り・閲覧履歴・学習の進捗はすべて利用者の端末内のみに保存され、外部に送信されることはありません。
- 利用者の氏名、メールアドレス、電話番号、位置情報、連絡先などを取得することはありません。
- 例外は、利用者が自ら回報ボタンを押した場合に送信される情報(第 3 節を参照)と、購入フローと使い始めの様子の匿名イベント(既定でオン、いつでもオフにできます。第 4 節を参照)と、App 内購入の記録(第 5 節を参照)と、利用者が任意でサインインした場合のアカウントの情報と Plus の同期データ(第 6 節を参照)だけです。いずれにも氏名・メールアドレスなど個人を識別できる内容は含まれません。
2. ネットワーク通信
本アプリは、語句・例文の音声ファイルを取得するため、開発者が運用する配信元(Cloudflare R2)に対して HTTPS リクエストを送信します。この通信には以下の標準的なネットワーク情報が含まれます。
- IP アドレス(一般的なインターネット通信に必要)
- User-Agent(OS バージョン等の標準ヘッダ)
- リクエストする音声ファイル名
これらの情報は Cloudflare のアクセスログとして一時的に保管されますが、本アプリ開発者は利用者個人を識別する目的でこれらを参照・分析しません。Cloudflare のプライバシーポリシーは https://www.cloudflare.com/privacypolicy/ を参照してください。
利用者がサインインするとき、およびサインインした Plus 購読者のデータを同期するときは、開発者のサーバー(Cloudflare Worker)と HTTPS で通信します(第 6 節を参照)。
音声ファイルをダウンロードせず(辞典本体は端末同梱)、第 3 節の回報ボタンも押さず、第 4 節の匿名計測をオフにし、第 6 節のサインインもしていない場合でも、App 内購入の状態を確認するため、第 5 節の RevenueCat との通信は行われます。それ以外のネットワーク通信は行いません。
3. 内容の誤りの回報
本アプリには、辞典内容の問題をワンタップで知らせるボタンが 2 か所あります。学習タブの「認證700」学習カードの「回報:這裡有誤(内容に誤りがある)」と、検索して見つからなかったときに出る「找不到?回報這個詞(この語を報告)」です。利用者がこれらのボタンを押したときにのみ、辞典内容の誤りを修正し、収録されていない語を把握する目的で、以下の情報を開発者のサーバー(Cloudflare Worker)へ HTTPS で送信します。自動送信やバックグラウンドでの送信は行いません。
送信する情報は、以下の項目のみです。
- 辞典項目の ID(entry id)
- 回報対象の漢字・語(例: 「茉莉」。見つからなかった語の回報では、そのとき検索していた語)
- 出所タグ(例: 「cert700」「missing」)
- アプリのバージョン(例: Taigi 2.1.0 (6))
- OS のバージョン(例: iOS 18.5)
送信しない情報:
- 氏名、メールアドレス、電話番号、位置情報、連絡先
- 写真などの利用者コンテンツ
- ユーザー ID・デバイス ID などの識別子
IP アドレスは、悪用や連続送信を防ぐためのレート制限の目的で Cloudflare が一時的に処理しますが、データベースには保存しません。
送信されたデータは Cloudflare D1(データベース)に保存され、開発者への通知メールは Resend(メール配信サービス)経由で送信されます。用途は誤った内容の修正のみであり、個人の識別にもトラッキングにも利用しません。回報の内容には個人を識別できる情報が含まれないため、期間を定めず、辞典の修正記録として保持します。なお、誰が送信したかを判別できる情報がないため、特定の利用者の回報を抽出して削除することはできません。
Apple の App Privacy における分類は「診断(その他の診断データ)」および「使用状況データ(製品の操作)」で、いずれも「利用者本人に非紐付け」「トラッキングなし」、用途は「アプリの機能」です。
なお、「情報」画面の「意見、回報問題(ご意見・不具合の報告)」は、上記とは別に端末のメールアプリを開く導線です。下書きに入るのはアプリのバージョン・OS・言語のみで、送信するかどうかは利用者が決めます。本アプリが自動で送ることはありません。送信された場合は、返信と本アプリの改善のために、そのメールアドレスと本文を開発者が受け取ります。
声調判定の回報(學習の「唸出來」)
學習の「唸出來」では、漢字を見て声に出すと、声の高さの変化を公式音声と比べて声調を判定します。録音と判定はすべて端末内で行い、録音は保存も送信もしません。判定がおかしいと感じたときは、判定の下の「判定怪怪的?(判定がおかしい?)」を押し、「我唸對了,卻判不對(正しく読んだのに違うと判定された)」か「我唸錯了,卻判對(間違えたのに正しいと判定された)」を選んだときにのみ、判定の精度を改善する目的で以下の情報を第 3 節と同じサーバーへ送信します。
- 声の高さの変化(10 ミリ秒ごとの高さを、その人の普段の高さからの差として表した数列)と、その基準の高さ(Hz)
- 表示した判定(3 段階)と音節ごとの指摘、選んだ申告
- 出題した語(辞典項目の ID・漢字・台湾ローマ字・手本の音声ファイル名)
- アプリのバージョン、OS のバージョン
録音そのものは送信しません。ユーザー ID・デバイス ID などの識別子も含みません。IP アドレスの扱いと保存先は上記の回報と同じで(通知メールは送りません)、誰が送信したかを判別できないため、特定の利用者の回報を選んで削除することはできません。
Apple の App Privacy における分類は、声の高さの数列が「ユーザコンテンツ(その他のユーザコンテンツ)」、その他は上記の回報と同じ「使用状況データ(製品の操作)」と「診断(その他の診断データ)」で、いずれも「利用者本人に非紐付け」「トラッキングなし」、用途は「アプリの機能」です。
4. 匿名計測(購入フローと使い始めの様子)
どこで手が止まっているかを把握するため、本アプリはごく少量の匿名イベントを送信することがあります。知りたいことは 2 つで、購入フローのどこで止まっているか(購入画面を開いた人が何人か、試用を始めた人が何人かなど)と、使い始めに何をした人が使い続けているか、です。
- 既定はオンです(いつでもオフにできます)。アプリ内の「情報 → 改善への協力 → App の改善に協力する」でオフにすると、その時点で送信を停止し、以後は一切送信しません。オフにした後に起きたことを遡って送ることもありません。
- 送信する内容: 段階の名前(アプリを起動した——割合を出すための母数/購入画面を開いた/プラン画面へ進んだ/試用を開始した/購入した/購入せずに閉じた)、その段階の入口、アプリのバージョン、OS のバージョン。
- 送信する内容(使い始めの様子): 初回の利用が終わったとき、およびインストールから 7 日後の最初の起動時に、「した/していない」5 つぶんの記録を 1 回ずつ送信します——発音を再生したか、お気に入りに追加したか、學習タブを開いたか、學習を 1 回終えたか、辞典を 5 回以上引いたか。回数・時刻・引いた語句は送信せず、したかどうかだけを送信します。7 日後に送るのは初回の利用が終わった時点で記録した同じ 1 件で、7 日間の累計ではありません。
- 送信しない内容: 識別子(インストール識別子・セッション識別子を含め一切ありません)、検索内容、辞典の内容、閲覧履歴、購入金額。
- 識別子を含まないため、サーバー側で同じ端末の 2 件の記録を結び付けることはできず、全体の件数しか分かりません。同じ理由で、送信済みの記録を特定の利用者ごとに選んで削除することはできません。
- 送信先は第 3 節の回報と同じく Cloudflare Workers と D1 です。IP アドレスはレート制限のためにのみ処理し、データベースには保存しません。
- 第三者の解析サービスは使用せず、広告やアプリをまたぐトラッキングにも使用しません。
Apple の App Privacy における分類は第 3 節と同じ「診断(その他の診断データ)」および「使用状況データ(製品の操作)」で、いずれも「利用者本人に非紐付け」「トラッキングなし」、用途は「アプリの機能」および「分析」です。
5. App 内購入とサブスクリプション
App 内購入(買い切りとサブスクリプション「Plus」)の状態を判定し、将来 iOS 以外の版でも同じ購入を使えるようにするため、本アプリは購入の記録を RevenueCat(購入管理サービス)へ送信します。支払いそのものは Apple が処理し、開発者も RevenueCat も支払い情報には触れません。
Taigi Plus を Web で購入してほかの人に贈る場合(「家族に Plus をリクエスト」のリンクなど)、お支払いは Stripe が処理します。お支払い時に入力するメールアドレスなどの情報は Stripe のプライバシーポリシーに従って扱われ、開発者はカード番号などの支払い情報に触れません。購入の記録はリクエストごとのランダムな ID で RevenueCat に残り、支払った人の身元とは結び付けません。詳しくは利用規約をご覧ください。
- 送信する内容: App 内購入の記録(商品 ID、購入日、有効期限、ストアの国・地域、Apple の取引 ID など Apple が発行するもの)と、RevenueCat の SDK が端末ごとに作るランダムな匿名 ID(サインイン後はアカウント ID。第 6 節を参照)。
- 送信しない内容: 氏名、メールアドレス、支払い情報、広告識別子(IDFA)、ベンダー識別子(IDFV)。
- 送信するとき: 購入したとき、購入を復元したとき、および起動時などに購入の状態を確認するとき。
- 用途: 購入した機能を開くための判定と、売上・購読者数・解約の集計です。広告やアプリをまたぐトラッキングには使用しません。
- 購入の記録は、購入状態の判定と集計に必要な間、RevenueCat に保存されます。削除をご希望の場合は第 12 節の連絡先までご連絡ください。
Apple の App Privacy における分類は「購入(購入履歴)」および「識別子(ユーザ ID)」で、いずれも「利用者本人に紐付け」「トラッキングなし」、用途は「アプリの機能」および「分析」です。匿名 ID は氏名などを含みませんが、端末ごとに固定で Apple の取引 ID と一緒に送るため、「紐付け」として申告しています。
6. アカウントへのサインインと同期
ある端末で(または Android 版・Web 版で)購入した Plus を他の端末でも使えるようにし、端末間でデータを同期するため、本アプリは任意のアカウントへのサインイン(Sign in with Apple)を用意しています。場所は「情報 → アカウント」です。サインインしなくても本アプリは問題なく使えます。
サインイン
- 送信する内容: Apple が発行する ID トークン。開発者のサーバー(Cloudflare Worker と D1)がこれを検証し、Apple が本開発者チーム向けに発行する仮名の識別子(sub)だけを保存します。
- 取得しない内容: 氏名とメールアドレスは求めません。トークンに含まれていても読み取りません。
- サーバーは別にランダムなアカウント ID(UUID)を作ります。サインイン後は、このアカウント ID が第 5 節のランダムな匿名 ID に代わって RevenueCat のユーザー ID(App User ID)になります。
- IP アドレスはレート制限のために一時的に処理するだけで、保存しません。
- 「情報 → アカウントを削除」でアカウントを削除すると、サーバー上のアカウントと、それに紐付くすべてのデータが削除されます。
同期(サインインした Plus 購読者のみ)
サインインした Plus 購読者の場合、以下のデータがアカウントに紐付けて開発者のサーバー(Cloudflare D1)に保存されます。
- お気に入り、単語リスト(リストの名前と収めた語を含む)、学習中にしたデッキ
- 学習の記録(語・観点ごとの復習の進み具合と、復習の記録: どの語を、どの評価で、いつ)
- 引いた辞典項目の履歴(項目 ID、見出し語をそのまま写したもの、閲覧した時刻、開いた回数)
送信するのは項目 ID・見出し語・リスト名・時刻・学習の結果だけです。入力しただけで開かなかった検索語は送信しません。用途は利用者自身の端末どうしで同じデータを表示することだけで、分析・広告・トラッキングには使用しません。
- Plus が終了してもデータは残り、再び購読すると戻ります。
- アカウントを削除すると、これらのデータも削除されます。
- サインアウトしても、端末内のデータはそのまま残ります。
Apple の App Privacy における分類は、お気に入り・単語リスト・学習の記録が「ユーザコンテンツ(その他のユーザコンテンツ)」、引いた項目の履歴が「検索履歴」、アカウント ID が「識別子(ユーザ ID)」(第 5 節で申告済み)で、いずれも「利用者本人に紐付け」「トラッキングなし」、用途は「アプリの機能」です。サインインも用途「アプリの機能」に含まれます。
7. 第三者への提供
本アプリは、広告や解析などの目的で利用者のデータを第三者に提供・販売することはありません。広告 SDK およびトラッキング SDK は一切組み込まれていません。組み込んでいる第三者の SDK は、第 5 節の App 内購入の管理に使う RevenueCat だけです。第 3 節と第 4 節に記載した送信はいずれも本アプリが自前で実装したものです。第 3 節は利用者がボタンを押した場合にのみ行われ、第 4 節は既定でオンの状態で行われます(アプリ内でいつでもオフにできます)。第 6 節のサインインと同期も本アプリが自前で実装したもので、利用者がサインインした場合にのみ行われます。
上記の回報機能・匿名計測・App 内購入の管理・サインインと同期、および音声配信の運用のため、以下のサービス提供者(サブプロセッサ)を利用しています。
- Cloudflare(Workers・D1・R2 のホスティングと保存。アカウントと同期データを含む)— プライバシーポリシー
- Apple(Sign in with Apple によるサインインの認証)— プライバシーポリシー
- Resend(回報の通知メール配信)— プライバシーポリシー
- RevenueCat(App 内購入の記録と購入状態の判定)— プライバシーポリシー
8. クラッシュレポート
iOS の「設定 → プライバシーとセキュリティ → 解析と改善」で App デベロッパとの共有を有効にしている場合、Apple 経由で匿名化されたクラッシュログが開発者に共有される場合があります。この共有は利用者が iOS の設定で完全に制御でき、本アプリ独自の収集ではありません。
9. 子どもの個人情報
本アプリは年齢制限なく利用できますが、上記のとおり個人を識別できる情報を収集しないため、13 歳未満の利用者からも個人情報を収集することはありません。アカウントへのサインインは任意で、サインインしなくても本アプリを使えます。サインインしても氏名やメールアドレスは取得しません。回報機能でも個人情報の入力を求めることはありません。
10. Android 版
Google Play で配信している Android 版にも本ポリシーが適用されます。第 1〜9 節は、次の点を除いて Android 版にもそのまま当てはまります。
- サインイン(第 6 節)は Google アカウントで行います(Sign in with Apple はありません)。場所は「情報 → アカウント」で、任意です。送るのは Google が発行する ID トークンで、開発者のサーバーはこれを検証し、Google アカウントの識別子(sub)だけを保存します。氏名とメールアドレスは求めず、トークンに含まれていても読み取りません。サインイン後は第 6 節と同じく、アカウント ID が RevenueCat のユーザー ID になり、他の端末で購入した Plus が使えます。
- 同期(第 6 節)はありません。サインインしても、Android 版のお気に入り・単語リスト・閲覧履歴・学習の進捗は、すべて端末内のみに保存されます。
- アカウントの削除は「情報 → アカウント → アカウントを削除」から行えます。アプリを削除した後などは、アカウント削除の依頼のページからも依頼できます。
- App 内購入(第 5 節)の支払いは Google Play が処理します。RevenueCat へ送るのは、Google Play が発行する購入の記録(商品 ID、購入日、有効期限、ストアの国・地域、購入トークンなど)と、RevenueCat の SDK が端末ごとに作るランダムな匿名 ID です。購入は Google アカウントに付き、「恢復購買」で戻せます。広告 ID(Google 広告 ID)は取得も送信もしません。
- 回報(第 3 節)は、検索して見つからなかったときの「找不到?回報這個詞」だけです。送るアプリのバージョンと OS のバージョンは「Taigi Android 1.0.1(2)」「Android 15」のような形で、端末の機種名は送りません。声調判定の回報はありません。
- 「唸出來」はマイクの使用許可を求めます。録音と声調の判定はすべて端末内で行い、録音は保存も送信もしません。許可しなくても、唸出來以外の機能はそのまま使えます。
- 「相機掃描」(カメラで漢字を読む)は、端末のカメラアプリで撮った 1 枚を、Google の ML Kit(文字認識。認識モデルはアプリに同梱)で端末内で読みます。写真も読んだ文字も送信しません。ただし ML Kit は、機能の不具合の診断と利用状況の把握のため、端末の機種・OS のバージョン・アプリのバージョン・処理時間・エラーコードと、インストールごとの識別子を Google へ送ることがあります(ML Kit のデータ開示)。そのため Android 版では、第 7 節の RevenueCat に加えて ML Kit を組み込んでいます。
- 匿名計測(第 4 節)は iOS 版と同じ内容で、「資訊 → 協助改善 App」でオフにできます。
- クラッシュレポート(第 8 節)は、端末の設定で使用状況と診断情報の送信を許可している場合に、Google Play を通じて匿名化されたクラッシュ情報が開発者に共有されることがあります。本アプリ独自の収集ではありません。
- Google Play のデータ セーフティでは、購入履歴とユーザー ID(第 5 節。サインインした場合のアカウント ID と Google の識別子を含む)、アプリの操作と診断情報(第 3・4 節)、ML Kit が送るデバイス ID と診断情報(上記)を申告しています。いずれも送信時は暗号化され、第三者への共有・販売はしません。
Google(Google Play による配信と支払いの処理、Google アカウントによるサインインの認証)のプライバシーポリシーは https://policies.google.com/privacy を参照してください。
11. ポリシーの変更
本ポリシーの内容は、法令の変更や本アプリの仕様変更に応じて改定することがあります。重要な変更を行う場合は、本ページにて告知します。
12. 連絡先
本ポリシーに関するお問い合わせ:
- メール: noform.dev@gmail.com