まとめ
- アカウントはありません。ログイン・メールアドレス・氏名・電話番号は一切集めません。
- 広告は一切ありません。アクセス解析(Google Analytics)は利用状況の把握のために使いますが、位置情報・編集した音・ジャーニーの記録は解析には一切送りません(下記)。
- 端末には匿名のランダムID(デバイスID)が1つ保存されます。あなたが誰かを示すものではありません。
- ただ聴いているだけなら、位置情報はサーバーに送られません。位置が送られるのは、あなたが明示的に PUBLISH(公開)したときと、ジャーニーを共有したときだけです。
- ジャーニー(録音した移動の記録)には GPS の軌跡が含まれます。共有すると自宅や職場が推定できます。共有は必ず明示的な操作で、事前に警告が出ます。
デバイスID
初回に、ランダムな UUID(v4)を1つ生成して端末の localStorage に ptg:device-id というキーで保存します。これは認証ではなく、公開した内容の帰属と、サーバー側のレート制限・不正利用対策のためだけの匿名IDです。氏名・メール・広告IDなどとは結び付いていません。
ブラウザのストレージを消すか、別のブラウザ・別の端末を使うと、別のIDになります(プライベートモードなどストレージが使えない環境では、ページを開くたびに使い捨てのIDになります)。バックアップの書き出し/取り込みでは、このIDも一緒に移せます。
サーバーに送信するもの
送信が起きるのは次の場面だけです。それぞれ、何が送られ、何が保存されるかを列挙します。
- 1. 公開する(PUBLISH)
-
あなたが EDIT MENU から明示的に PUBLISH したときだけ送信されます。送るもの:
- レイヤー(AREA / SPOT)とマスのID・座標
- 編集したパターン(ステップ・音程・分解能などの内容そのもの)
- トライブ(RED / GREEN / BLUE)
- ジェネレータのバージョン
- 再送を重複させないためのキー(冪等キー)
- デバイスID
- Cloudflare Turnstile のトークン(ボット判定用)
- 位置情報が取得できている場合は、そのときの測位(緯度・経度・精度・取得時刻)
サーバー(Cloudflare D1)に保存されるもの:上記のリビジョン一式(レイヤー・マスID・座標・連番・デバイスID・パターン・ジェネレータバージョン・冪等キー・作成時刻・トライブ)、測位(緯度・経度・精度)、その測位がマスの中だと確認できたかどうかのフラグ、および Cloudflare が接続元IPから判定した国コード。国コードは記録するだけで、これを理由に拒否することはありません。
測位はマスの中にいることの確認に使われ、確認に使ったのち緯度・経度が保存されます。位置情報が取得できていない場合、測位は送られず「未確認」として記録されます。
- 2. 足跡ビーコン
-
再生中に同じマスに一定時間滞在すると、「そのマスが実際に聴かれた」ことを伝える小さな信号が送られます。風化(decay)の時計をリセットし、足跡ヒートマップを作るためのものです。
送るもの:聴かれたマスのレイヤーとID、およびデバイスID。
保存されるもの:マス単位の集計だけ(レイヤー・マスID・座標・累計回数・最終時刻)。デバイスIDはデータベースに保存されません — リクエスト処理中のレート制限用にメモリ上で使われるだけで、リクエストが終われば消えます。誰がどこを聴いたかの記録は残りません。
地図に出る粒度:足跡ヒートマップは AREA(約250m四方)より細かくは表示しません。SPOT(約70m四方)の足跡は、すべて所属する AREA に合算した形でしか地図に出ませんし、API も SPOT 粒度では返しません(地図をどれだけ拡大しても同じです)。SPOT 単位の集計は風化(decay)の時計のために記録し続けますが、「誰かがその住所に立っていた」と読めてしまう粒度では見せない、という考え方です。
時刻についても同じ考え方です:外に出る「最後に聴かれた時刻」は日単位に丸めます(その日の 00:00 UTC)。ミリ秒のままだと「このマスに 14:32 に誰かがいた」という記録になってしまうためです。風化の計算はもともと日単位なので、丸めても音は変わりません(PUBLISH の時刻は丸めません。公開は意図的な行為で、帰属のある記録です)。
- 3. 通報エンドポイント
-
アプリ内に通報ボタンはありません(公開済みのマスは自由記述・画像・音声を含まず、通報が守るべき実害が乏しいため撤去済み)。エンドポイント自体は運営・お問い合わせ経由の通報や、将来のジャーニー通報のために残しています。使われた場合に送信されるもの:対象のレイヤーとマスのID、デバイスID、(あれば)理由のテキスト。保存されるもの:同じ内容と受付時刻、対応状況。詳しくはヘルプ。
- 4. ジャーニーを共有する
-
ジャーニーには GPS の軌跡が丸ごと入っています。共有したリンクを受け取った人は、あなたが歩いた経路をそのまま再生できます。自宅・職場・通勤経路が推定できます。
共有は必ずあなたの明示的な操作で行われ、その前に必ずプライバシー確認のダイアログが表示されます。録音しただけ・保存しただけでは、何も送信されません。
送るもの:ジャーニーのイベント列(GPS とリスニングの軌跡、マスごとのパターンと音色のスナップショット、地図タップによるジャンプ、録音中の編集、PLAY / STOP)を gzip 圧縮したもの。あわせてタイトル・開始時刻・長さ・イベント数、デバイスID、Turnstile のトークン。
保存されるもの:ジャーニーの本体は Cloudflare R2 に、メタデータ(ID・タイトル・開始時刻・長さ・イベント数・サイズ・デバイスID・作成時刻・取り下げ状態)は D1 に保存されます。ここでのデバイスIDは、悪用時にモデレーションできるよう意図的に保存しています。
共有IDはランダムな12文字です。リンクを知っている人は誰でも再生できます。
- 5. 世界を読み込む
-
再生同期の基準時刻や、いま表示している範囲の公開済みデータを読み込むリクエストです。デバイスIDは送られません。送られるのは、必要としている区画の座標だけです。ただし通信である以上、Cloudflare には接続元のIPアドレスとリクエスト時刻が渡ります。
保存期間と削除
- 公開された内容は追記のみの履歴として蓄積されます。上書きしても過去のリビジョンは残り、いまの内容が「公開ヘッド」になります。
- 取り下げはソフト削除です。通報や運営の判断で取り下げた場合、そのリビジョンには取り下げの印が付き、鳴らなくなり、公開ヘッドは残りのリビジョンから再構成されます。履歴の行そのものは削除されません。
- 共有ジャーニーを取り下げる場合は、メタデータに取り下げの印を付けたうえで、実体(R2 のファイル)も実際に削除します。直リンクからも到達できなくなります。
- 公開されたマスの内容は、誰も公開せず誰も聴かなくなると、14日の猶予のあと 90日かけて少しずつ元の生成内容へ戻ります(風化)。
端末に留まるもの(共有しない限り送信されません)
- ジャーニー(録音) — IndexedDB(
ptg-journeys)。共有しない限りこの端末の中だけにあります。 - 未公開の下書き — localStorage。PUBLISH するまで送信されません。
- トライブ・言語・ムーブメントFXの設定・音量 — localStorage。
- OUTPUT EQ — localStorage。モニタリング用の設定で、録音にもサーバーにも一切乗りません。
- バックアップファイル — 書き出し/取り込みはあなたの端末上で完結します。サーバーには送られません。
- デバイスID — localStorage(
ptg:device-id)。
ブラウザのサイトデータを消すと、これらはすべて消えます(すでに公開した内容や共有したジャーニーは、サーバー側に残ります)。
位置情報について
- 位置情報の取得はブラウザの許可が必要で、GPS ボタンを押したときにだけ始まります。
- 取得した位置は基本的に端末内で処理されます(どのマスにいるかの判定、地図の追従、音への反映)。
- サーバーへ位置が渡るのは、PUBLISH に添える測位と、共有したジャーニーに含まれる軌跡の2つだけです。
- ただの再生・地図の閲覧では位置は送信されません。
ページを開くだけで通信が発生する第三者
これらは、あなたが何も操作しなくても、ページの読み込みによって接続が発生します。各社にはあなたのIPアドレスとブラウザの基本情報(User-Agent など)が渡ります。
- Cloudflare(ホスティング・API・データ保存)
-
サイトの配信とAPIの処理、および D1・R2 への保存を担っています。IPアドレス、接続元の国、リクエストの記録が渡ります。
Cloudflare プライバシーポリシー - Cloudflare Turnstile(ボット判定)
-
PUBLISH とジャーニー共有のときだけのボット対策です。スクリプトは EDIT モードに初めて入ったときに初めて読み込まれます — ただ聴いているだけなら読み込まれません。
Cloudflare プライバシーポリシー - CARTO(地図タイル)/ OpenStreetMap(地図データ)
-
地図の背景画像は CARTO の配信サーバーから読み込みます。どの範囲の地図を表示しているか(タイルの座標とズーム)が、IPアドレスとともに渡ります。地図データ自体は OpenStreetMap 由来です。
CARTO プライバシーポリシー / OSM Foundation プライバシーポリシー - Google Fonts
-
アプリ本体は UI のピクセルフォントを読み込みます。ヘルプ・プライバシー・寄付窓口などの説明ページ(このページを含む)も、本文用の書体(LINE Seed JP)を読み込みます。いずれも
fonts.googleapis.com/fonts.gstatic.comからの読み込みで、IPアドレスとブラウザ情報が Google に渡ります。
Google プライバシーポリシー - unpkg(CDN)
-
地図ライブラリ Leaflet のスタイルシートを
unpkg.comから読み込みます。IPアドレスとブラウザ情報が渡ります。
- Cloudflare Zaraz / Google Analytics(アクセス解析)
- 同意が得られた場合に、利用状況の計測のために読み込まれます。詳細と、位置情報などを送らないという線引きはアクセス解析の項に書いています。
これら以外に、外部へ通信するものは組み込んでいません。広告ネットワーク、SNS のトラッキングピクセル、A/Bテストツールの類はありません。
アクセス解析(Google Analytics)
サイト全体の利用状況を把握するために Google Analytics 4(GA4)を使っています。導入は Cloudflare Zaraz 経由で、アプリのコードに解析タグを直接埋め込む形はとっていません。
位置情報(GPS)、編集した音、ジャーニーの記録内容は、アナリティクスには一切送信されません。
解析が扱うのは「ページが見られた」という粒度までです。マス(セル)のID、緯度・経度、ジャーニーの中身、そして上記のデバイスID(ptg:device-id)を、解析のイベントパラメータやカスタムディメンションとして送ることはありません。これらが渡るのは、上に列挙した自分たちの API だけです。
解析が集めるもの
- ページビュー(どのページが、いつ、何回開かれたか。URL をどう扱うかは下記)
- 参照元(どこから来たか)
- IPアドレスから推定されるおおまかな地域(国・地方レベル。正確な位置ではありません)
- 端末とブラウザの種類、画面サイズ、言語などの一般的な情報
-
どのような操作をしたか、という行動イベント。送るのはあらかじめ決めた種類と選択肢だけです:
- モードの切り替え(PLAY / EDIT)
- 再生の開始・停止
- ジャーニーの記録の開始・終了、リプレイの開始・終了、共有の成否
- 公開(PUBLISH)の成否と、対象が1層か2層か
- 地図の STAIN 表示の切り替え、OUTPUT EQ のプリセット選択、トライブの変更、バックアップの書き出し・取り込み
これらのイベントに乗るのは、上の括弧内にあるような決められた選択肢と小さな数字だけです。自由入力のテキストや識別子を渡せない形で実装しています。
URL の扱い — 情報ページとアプリ本体で違います
「どのページが読まれたか」を知るために URL を記録しますが、このサイトには性質の違う2種類のページがあるため、扱いを分けています。
- 情報ページ(このプライバシー、ヘルプ、寄付窓口)
-
URL をそのまま記録します(
/help/、/privacy/、/support/)。どの説明ページが読まれているかを知るためです。これらの URL に位置情報は含まれておらず、どのページを開いたかがわかるだけです。 - アプリ本体
-
アプリの URL には現在地のマスが入っていて(
/{zone}/{area}/{spot})、URL そのものが座標になっています。そのため、アプリのページビューは、マスの部分を取り除いた/(サイトのトップ)という一定の値に置き換えてから解析へ送ります。記録として残るのは「アプリが開かれた」ということだけで、この座標が解析側へ渡ることはありません。歩いてマスが変わるたびにアドレスバーの URL は書き換わりますが、その書き換えが解析に送られることもありません。
つまり記録されるのは「情報ページのうちどれが読まれたか」までで、アプリ側の「どこにいたか」は、どのページの記録からも復元できません。冒頭の約束(位置情報・編集した音・ジャーニーの内容はアナリティクスに一切送信しない)は、この扱いによって保たれています。
同意について
解析の同意管理は Cloudflare Zaraz の同意ツールが担当しています。対象地域からの訪問者には、解析が動き出す前に同意を確認します。同意の内容は、同じ同意バナー(画面に表示される設定リンクから再度開けます)からいつでも変更・撤回できます。撤回すると、以後の解析は停止します。
解析が使う Cookie / 識別子
Google Analytics は、同じブラウザからの訪問をまとめて数えるために、Cookie(_ga など)またはそれに相当するローカルの識別子を使います。これらは このアプリ独自のデバイスID(ptg:device-id)とは完全に別物で、互いに結び付けていません。デバイスIDが解析側に渡ることも、解析の識別子がこのアプリの世界データに紐づくこともありません。
参考リンク: Google プライバシーポリシー / Google Analytics のデータ利用について / Cloudflare プライバシーポリシー(Zaraz)
Cookie
アプリ自身の状態(下書き・設定・ジャーニーなど)は Cookie ではなく localStorage / sessionStorage / IndexedDB に保存しています。Cookie を使うのは上記のアクセス解析と、その同意管理まわりです。ほかの第三者が独自に Cookie を設定する場合もあります。
子どもの利用について
アカウントも決済もなく、氏名や連絡先を集めることもありません。ただし位置情報を扱うため、お子さまが使う場合は保護者の方の判断のもとでご利用ください。特にジャーニーの共有は、移動経路がそのまま相手に渡ります。
削除・訂正の依頼
- 公開された内容について — ご自身では取り下げられませんが、現地でその場に立てば LOAD SEED → PUBLISH で誰でも上書きできます。誰も訪れなければ自然に風化して元の生成音へ戻ります(ヘルプ)。それでも対応が必要な場合は下記の連絡先までご連絡ください。
- 共有したジャーニーについて、または上記で対応できない場合は、下記の連絡先までご連絡ください。共有IDや、公開した場所・おおよその時刻をお知らせいただけると特定できます。
- デバイスIDは匿名のランダム値であり、こちらからあなたを特定する手段はありません。そのため、ご依頼の対象を特定できる情報(共有ID、URL、日時など)を添えていただく必要があります。
変更について
内容を変更した場合は、このページの「最終更新」の日付を更新します。