Nianticに情報開示の請求をしてみた
Nianticに収集した情報を開示する請求を立ててみようと思った。どんな情報を収集しているのかという興味もあったけど、それ以上にどんなデータで応えるのか、というほうの興味が大きかったので。
少し前にGDPR(EU一般データ保護規則)に準じての規約改訂と同意を求める画面が出ていたので、それがきっかけとなって出していたのが5月24日のお昼頃(JST)。PoKéMoN GOのサポート画面から申し込んだ。
Dear Niantic Labs. 様
いつも楽しくゲームをプレイさせていただいてます、ありがとうございます。さて、ゲームを起動したところ規約変更の確認画面が表示されました。もちろん同意しましたが、収集について気になるところもありました。そこで、私のingressおよびPokemon Goで収集したデータの開示をしていただくことは可能でしょうか?
ご検討のほどよろしくお願いいたします。
これに対し、サポートは日本語かつ日本人名の担当の署名で「30日ほど時間を」という旨の返信をしてきた。Appleが一週間で詳細なデータを送り返したのとはちょっと対照的だけど、こちらは急いでないので特に気になるものでもないし。
GDRPは欧州経済領域(European Economic Area:EEA=EU加盟28カ国およびアイスランド、リヒテンシュタイン、ノルウェー)を対象とした個人データ保護の管理規則だけど、EEA内の企業でなくともEEA所在者の個人データをやり取りする場合は対象となる。なので、全世界で遊べるNianticのゲームは当然この法の影響を受け対応する準備があるはず。GDPRは企業に説明責任を課しているので日本からの開示請求でもちゃんと準備されているんじゃないか? と思ったのが動機みたいなもの。
で、ほぼ一ヶ月が経過した今月の26日に、英文(一部日本語混じり)にてサポートからデータ送信の案内が届いた。その内容について所感で少し触れてみようと思う。
PoKéMoN Goのデータは6月25日の2時51分(PDT = 太平洋標準時の夏時間)に送られてきた。データは添付ではなくsupport.pokemongo.nianticlabs.comからダウンロードするリンクが記述されている。ダウンロードしたファイル名はタイムイタンプっぽく2018年6月18日なので何かしら了承の手順を踏んでから案内されたのだと思う。
ingressのデータは6月26日の10時25分でISTとなってた。これがインドなのかイランなのかイスラエルなのかイングランドなのか、Zendesk経由でよくわからない。niantic.zendesk.comからダウンロードするリンクが記述されている。展開について7-zipで案内されていたけど、ダウンロードしたファイルは普通にZIPだったので困る人はそんなに居ないかと思う。
それぞれ、解凍に必要なパスワードが別送されてくるので展開時にパスワードを入力する...長いのでコピペしたほうがいいかな。展開したファイルの内容は以下の通り。
ポケモンGO
2つファイルが送られて来たけど、片方はサポートとのやりとりを記したものでもう一方にも似たものが含まれていた。
やりとりの日本語が化けていてUTF、EUC、SHIF-JIS、ISO-2202などなどあれこれ試したもののさっぱり正しくデコードできなかった。 https://uic.jp/encode-detector/ にかけてみたらただのUS-ASCIIだというので、?で埋め尽くした伏字になってただけってオチのようだ。
日時は全てUTCになっている。
- Aruy0_AccountInformation.txt
- ユーザ名(トレーナー名)、メールアドレス、使用言語、認証アカウント(GoogleIDなど)の基本情報。
- Aruy0_Gameplay.txt
- 開始日、レベル、取得経験値、ポケコイン、歩行距離などのほか、所持しているポケモンの一覧(名付けしたニックネームを含む)や卵の状態、所持アイテム、メダルなど、画面で見られるもの全般。
- Aruy0_InAppPurchase.tsv
- ポケコインの使用履歴。日時といくら支払ったか、何を購入したか、など。ジムから戻ったポケモンが獲得したポケコインは未記載なので購入したポケコインの記録もきっと載らないと予想。
- Aruy0_Journal.tsv
- ジムに配置したポケモンからの通知。日時と疲れたポケモン、帰還したポケモン、捕まえたポケモン、リサーチの達成、等々。半年分くらい...あー、私ほとんど活動してないなー(^_^;
- Aruy0_Locations.tsv
- 半年分くらいのGPS記録。日時と緯度(Latitude)と経度(Longitude)のみで、どのタイミングで記録しているのかはさっぱり。
- Aruy0_Logins.tsv
- 開始当初からのセッション (アプリを起動した時ではなくセッション開始(サインイン)した時点) の日時が並ぶ。項目にはSession length(in minutes)とセッション時間があるけど内容は空。
- Aruy0_PokemonGoPlusRegistrations.tsv
- ポケモンGO Plusとペアリングした日時。不調でペアリングやり直したのも記録されている。
- Aruy0_UserSupportInteractions.tsv
- サポートとのやりとり。日時とサポートチケット番号、サポートとやりとりした内容(日本語は?になってる)が記載されている。
思った以上に情報が少ない。
開示請求の伝え方を間違ったかな?
Ingress
基本はゲーム開始からの全部で日時(PSTかPDT)がついてる。一部は数年前からの情報にリミットされているけど基準が今ひとつ読み取れない。
ポータルやエージェントなど対象のIDは内部使用されているIDではなく供出用に振られた仮番号のようで、ユニークな番号が1から順でシーケンシャルに割り当てられている(つまり、同じ対象が再出現すると前に割り当てられた仮IDが記載されている)。
- agents_recruited.tsv
- リクルート(勧誘)した日時かと思いきや、同じエージェントIDが多いのは6回記載されている。相手と確認してみた結果Lv3(リクルート成功扱い)達成日時が初出で、以後はレベルアップした日時だと判明。
- all_portals_approved.tsv
- ポータル申請が承認された日時。Portals Discoverdとレコード数が合致。
- comm_mentions
- 飛んで来たmentionsの日時と会話の内容。日時はタイムゾーン記述がないのでJSTかも。ポケGOと違い日本語は普通に読める。最古が2015年中頃なので3年分だけ? もっと前にmentionが飛んで来なかっただけかもしれないけど。
- deploys.tsv
- レゾネーターを挿した日時と数。数は1.0しか無いのでもしかしたら...とレコード数を確認したらbuildingに近似してるし、1本づつ日時が記載されてるみたい。本数の意味あんのかよー! と思いつつ。
- exo5_controller_fields_created.tsv
- EXO5の対象となるCFを作成した日時とCFの数。こちらも1.0の羅列なので1CF毎の日時となる。わたくし、905個でした。
- field_held_days.tsv
- CFが破壊された日時とそのCFの生存日数(MAX Time Field Held)。私の最長は2017-04-02 22:44:01(PDT)の67.2453231812日と2017-04-03 04:38:16(PDT)の67.4913253784日の2つが67日として該当してる。
- fields_active.tsv
- 生存しているCFだと思う。1レコードしか無いので開示請求に応じて個人データを処理した日時とその時点でのCF数とみて間違いなさげ。
- fields_created.tsv
- CFを作成した日時と数。例によって数は1.0の羅列なのでレコードは1CF毎の作成ログということで。ゲームを開始してから初CFであろう最初の記録まで2ヶ月近く開いてるんだけど...ぐぬぬ。
- fields_destroyed.tsv
- CFを破壊した日時と数。1ポータルで複数破壊してるところは数が増えているので合算すればEnemy Fields Destroyedになるはず。私の最大は2017-08-23 04:02:38 PDTの42で、最初の破戒は開始から3ヶ月後(^_^;
- game_log.tsv
- ゲーム全般のログで一番でかく、私のような気まぐれに活動する程度でも14MB。テーブルは日時(時間帯不明)、緯度、軽度、行動内容、結果。2015年9月からなので過去のすべてでは無い。
- glyph_hack_1_perfect.tsv
- glyph_hack_2_perfect.tsv
- glyph_hack_3_perfect.tsv
- 日時と内容(1.0のみ)の羅列。興味なかったせいか少ない!! ログの内容が古いので、グリフハックメダルが導入されてポイント制になる(2015.1.30)前の成功ログかと。問題数で別れているようだ。
- glyph_hack_points.tsv
- グリフハックに成功した日時と獲得ポイント。
- hacks.tsv
- hackした日時と内容(当然1.0の羅列)。
- kilometers_walked.tsv
- 日時と歩いた距離、単位はキロメートル。 定時でもないしまったく出歩いてない(0km)日でも1日に何度か記録がされていたりと、タイミングが不明。距離は小数点以下16桁くらいまでと実に細かい。
- link_destroyed.tsv
- リンクを破壊した日時と本数。同時破壊は本数が増える。
- link_held_days.tsv
- リンクが破戒された日時と生存日数(MAX Time ink Maintenanced)。小数点の桁数は大きく合算がStatusに出ているものと思われる。
- link_length_kilometers_times_days_held.tsv
- 破壊されたリンクの距離と生存日数(MAX Time ink Maintenanced)を掛けた距離あたりの生存日数になるのかな?(Max Link Length x Days) リンク効力とでも言うところか。
- link_length_kilometers.tsv
- リンクを引いた日時と距離。先頭のがfactionででるcreated their first linkの日時ってことで。
- links_active.tsv
- 集計日時と生きているリンク数。
- links_created.tsv
- リンクを引いた日時と本数。1本つづつ記録されてるので本数の列には1.0が並んでるだけ。
- magnus_builder_slots_deployed.tsv
- MAGNUS Bulder期間中にデプロイした日時とポータルのスロットID。スロット毎にユニークIDを持っているのか!と言うことがわかる。既に挿したスロットに挿した時も既出のIDで記録されている。
- mind_units_controlled_active.tsv
- 日時とValueの1レコードのみ。CFに関する何かの最終記録だろうけどよくわからず。6/25時点で481というのが何も結びつかないのだけど、想像するに生残っているCFのMU値あたりとか?
- mind_units_controlled.tsv
- CFを作成した日時とMU値のログ。
- mind_units_times_days_held.tsv
- CFが破壊された日時と生存日数。これも小数点以下の桁数が大きい。
- mission_day_points.tsv
- mods_deployed.tsv
- MODを追加した日時と数...といってもデプロイ毎に記録されてるので個数の列には1.0が並んでるだけ。
- nl1331_meetup_points.tsv
- NL-1331のチェックアウトが承認された日時とイベント ID。
- opr_agreements.tsv
- リコーンで認証が通過した日時と生成されたポータルID。Reconメダルの数に合致。
- OprAssignmentLog.csv
- 一番レコードが多く、恐らくは担当分として割り振られた審査の一覧。審査対象ID、担当(配分)日時、が記載されている。
- OprProfile.csv
- 設定の内容。eMail、ボーナスロケーションの設定日時、ボーナスロケーションの座標、OPR参加日時、審査数、発生数、却下数、ホームタウン変更数(一回しか変更できないのに項目はあるのね)、ホームタウン変更日次、最終ログインのGPS座標、使用言語、最終ログイン日時、審査能力(Great/Good/Poor)、適性試験状態(Pass/?)、適正試験通過日時、訓練終了日次。
- OprSkippedLog.csv
- 空だったので謎。
- OprSubmissionLog.csv
- 全審査の結果。数枯らして割り当てられても時間切れだったり中断したものは含まれていないと思われる。カラムは、審査対象ID、担当(配分)日時、審査時に付与したコメント、歴史的or文化的かの採点、タイトルと説明の採点、重複判定、重複ポータルID(これまでと違い実際のIDのような桁数の文字列)、位置の採点、提案された正しい位置の座標、ふさわしいか(品質)の採点、安全度の採点、詳細不明なフラグ"OneStarSubmission"(True/False)、審査完了日時、個性度の採点、「これはなんですか?」、と言った項目がある。
- portal_held_days.tsv
- 所持していたポータルが破壊された日時と生存日数(小数点以下16桁くらいまで)
- portals_captured.tsv
- ポータルをキャプった日時とポータルID
- portals_neutradtzed.tsv
- ポータルを破戒して白ポータルにした日時とポータルID
- portals_owned.tsv
- 集計日時とオーナーポータルの数
- portals_visited.tsv
- hackでもなくcaptureでも無いポータル触った日時(詳細不明)とポータルID
- profile.txt
- エージェント名、開始日時、SMS認証日時、リクルート課題数と出した数と受理された数(レベル3未到達も含む)、最終ログイン情報(GPS含む)、他
- resonators_destroyed.tsv
- レゾネーターを破壊した日時と数。タイムスタンプが秒単位のため、よほどの密集地帯でもそうそう条件が揃わないと破壊数が1レコードで高かったりする事はそんなに無さげ
- seer_portals.tsv
- たぶん、申請したポータルがLIVEした日時、それとポータルID
- store_purchases.tsv
- ストアでの購入日時とアイテム名など。最終レコードにCMUの残高が記載されている。私は無課金なので5周年バンドルで0CMUが記録されていた
- xm_collected.tsv
- 収集日時とXM量の数値。
- xm_recharged.tsv
- ポータルにリチャージした日時とXMの数値
- zendesk_records.tsv
- サポートとのやりとりの記録。文字化けは無い。エージェント名の変更依頼でのやりとりが記録されてた
ポケモンGoと違って随分と詳細な。ポータルIDを伏せるために置き換えるならシーケンシャルな数字よりもポータル名だと良かったのになあとは思うけど、思った以上に興味深いデータだったかな。 これらは単に項目毎にまとめただけで、実際のデータはGPS情報と密接に紐づいて特定づける個人情報を保持していると思うけど。
game_logは「行動内容」と「結果」に色々な要素があったので目についたものからいくつか、自分用メモとしてここに付記しておこう。
- 落としたアイテムは結果(アイテム名)が記載されている
- 落としたアイテムはGPSが記載されてないものが意外と多くそれらは結果がnoneとなっているけど全く同じ日時で成功したものと並んでいるので失敗とは違うみたい
- 落としたアイテムのflip cardという結果がハッシュ化された数値が併記されていてよくわからない。EMITTER_Aもな
- パスコード使用も記録されている(GPSと使用したコード自体は記録なし)
- commでの発言も記録されている(飛んで来たmentionは無い)
- LINK作成には位置情報がついている(多分起点?)けどCF作成には無い
- hackはポータルが敵陣か自陣か白ポか区別されていて結果に成功と失敗がある(running hotかな?)
- 一部アイテムが併記されたhackがある...Softbank Ultra Link、Ages(AXA)、Lawson Power Cube、Ito En Transmuter(+/-)、Quantum Capsule(MUFG)などを取得した時
- 行動「hacked quantum capsule」結果「Created Interest Capsule」は増植?
- その増殖と思われるレコードにはGPSがついているのでOffline時間では無い
- Disbursed HOGE HOGE in portal hack.はハックして得たもの
- リサイクルは何をリサイクルしたのかまでは記述が無い
- レゾネーターのデプロイは「TOO_MANY_RESONATORS_FOR_LEVEL_BY_USER」「PORTAL_OUT_OF_RANGE」などのエラーも記録
- レゾネーターのデプロイは最後のスロットがlast resonator on portal destroyedとして区別されているようだ
- MODのデプロイは基本は成否だけど何故かvirusとultra link ampだけ区別されている
- リチャージはすべてGPS情報付きで、「PORTAL_BELONGS_TO_ENEMY」「TOO_BUSY_RECHARGE」「RESONATORS_FULLY_CHARGED」「NEED_MORE_ENERGY」といった失敗も記録されている
- ポータル申請、情報変更の申請、写真の追加も区別され一部はGPS情報付きで記録されている
- loginもGPSと共に記録されている...新旧iPhoneで使い分けた時期以外はログアウトをしたことが無いのにやたら多いのでアプリの起動時に裏方でやっている認証かも?
- GPS無しのログインもあるがこれは多分intel mapだと推測
- 今回の開示請求の処理も行動内容が「admin modify profile」結果が「editAccountInfo」として記録されていた。
proile.txtも書いとこう...面倒臭くなってきたので雑に。
- highest media idってのがよくわかんない...4桁の数字、RESとENLとGENERAL
- 通知設定のあれこれなどConfig的なものも記載されてる...私はプロフィールを隠してないので「Display stats to others: True」である
- 最終GPSと日時はちゃんと記録してる
- ブロックしてるエージェント...私はゼロだけど
- チュートリアルの各段階の実行日時も記載されている...一部項目は座標だった
- メダルの一覧と取得日時
- インベントリ状態
以上
ここのように公開するのも面白ろそうね。
[ アップルに私の情報を開示請求してみた : CNET Japan ]
追記
正直なところを言うと、もっと突っ込んだデータを出して欲しかった。それぞれのデータは淡白で物足りない気もして、想像以上にオブラートに包んでるな! と言う印象だったりする。
いくつかのデータをGoogle Docsで公開してみた。