Aruyo

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は「行動内容」と「結果」に色々な要素があったので目についたものからいくつか、自分用メモとしてここに付記しておこう。

proile.txtも書いとこう...面倒臭くなってきたので雑に。

以上

ここのように公開するのも面白ろそうね。
[ アップルに私の情報を開示請求してみた : CNET Japan ]

追記

正直なところを言うと、もっと突っ込んだデータを出して欲しかった。それぞれのデータは淡白で物足りない気もして、想像以上にオブラートに包んでるな! と言う印象だったりする。

いくつかのデータをGoogle Docsで公開してみた。