iOS6がついに先月19日にリリースされましたね!
マップやマップについて混沌とした状況が続いており1ネットウォッチャーとしては
興味深く見守っていますが、やはり開発者としては
前々より噂されていたトラッキング用の広告IDが気になるところです。
検証自体は実はずいぶん前に終わらせていたのですが今回Blog編集長から
NDA明けたならBlogに書きなよ!とお誘いをうけたので公開いたします。
まず、今回追加されたトラッキング用の広告ID(以下adID)と、主要な
トラッキングに用いる事の出来るIDの比較は下記の通りです。
アプリ間共有 | 復元した場合でも 値は変わらないか | ユーザはオプトアウトできるか | |
UDID | ○ | ○ | × |
UUID | × | × | × |
adID | ○ | × | 情報>アドバタイズ>Ad
Trackingを制限 でオプトアウト可能 |
openUDID | ○ | × | × |
こうしてみるとadIDは他のIDと比較するとプライバシーに配慮された設計に見えますね。
しかしadIDは以下の2点の問題点があるためまだ使用するべきではないと考えます。
- オプトアウトが実質機能していない
- UDIDの問題点がほぼ解決していない
まず1点目オプトアウトについて、adIDはソース中で下記の様に呼び出す事で
値を取得する事が出来ます。
#import ASIdentifierManager *asId = [ASIdentifierManager sharedManager]; NSUUID *uuid = asId.advertisingIdentifier; NSString *sUuid = uuid.UUIDString; NSLog(@"%d",asId.advertisingTrackingEnabled); NSLog(@"%@",sUuid);ASIdentifierManagerクラスのadvertisingTrackingEnabledプロパティには
エンドユーザがAd Trackingを制限しているかのBOOL値が入っています。
appleの方針としてはこの値がNOの場合、adIDをトラッキング用途で使用しない様に
注意喚起していますが、要は開発者の良心に依存しており開発者が
advertisingTrackingEnabledの値を無視しようと思えば無視できてしまうということです。
Webで一般的なcookieでのトラッキングを例に挙げると、
safariではcookieの受け入れを「しない」に設定した場合、サイトの管理者がトラッキング
を行いたいと考えていてもcookieを書き込む事が出来ない仕様で、
この様に動作する事がユーザが期待した動作だと考えます。
過去に起きた事例を思い返すと、adIDのこの動作は筋が悪いです。
次に2点目、UDIDの問題点がほぼ解決していない点について。
そもそもUDIDのどの様な点が問題視されていたかというと
大雑把に上記の様な問題点があります。
adIDによって改善されるのは
- 恒久的に値が変更できない点
これだけです。
しかも復元(工場出荷状態にもどす)を行ってようやくIDが変わるという、かなりユーザにとって
ハードルの高い操作を行わなければならず、実質ほぼ恒久的に値が変わらないIDであると
いえます。
appleの推奨するトラッキング 方法という事で、今後多くの開発者がadIDを使用すると
思いますが、現状を鑑みるとまだまだadIDを使用するのは時期尚早だというのが私の見解です。