2013年7月20日土曜日

iOSのIdentification For Advertisers(IDFA)の取得方法とかの話

ちょっとだけIDFAに触れる機会があり、興味深い事があったのでブログに書いてみようと思う。

■IDFAとは何か

IDFAは広告のターゲティングのために使用されるID。
このターゲティングというのは特定の種類のユーザーにのみ広告を表示させたりする行為のことで、例えばテレビを購入したユーザーに自動的にテレビ台の広告を表示させたりするような行動やプログラムのこと。
この時に個別のユーザーを識別するためのに割り振られるIDがIDFAである。
かつては端末が個別にもっているUDIDが使用されていたが、アップルが公式に使用を禁止し、公式リリースの2013年3月21日の項にもある通り、UDIDにアクセスするアプリは承認しない旨を表明している。

■UDIDとの違い

UDIDは機械に固有のもの、IDFAはソフトウェア(iOS)が発行するもの。
例えばiPhoneを友人から譲ってもらったりするような場面では、UDIDを使用したターゲティングの場合、前のユーザーのデータを使用したターゲティングになってしまうが、IDFAを使用したターゲティングの場合はデータがリセットされていればUDIDのような事態にはならない。

■アプリからのIDFAの取得方法

下記の通り。
公式ドキュメントはコレ
1.XCode上で/System/Library/Frameworks/AdSupport.frameworkを追加
2.ヘッダファイルにインポート文を追加 3.取得コード advertisingTrackingEnabledがiOSの設定→一般→情報→アドバタイズの「追跡型広告を制限」の設定によってtrue/falseが切り替わる模様。
つまり、実際のコードは以下の様な感じになるものと思う。
実際に弄ってみたところ、上記の「追跡型広告を制限」をonにしても、IDFAはアプリから読めてしまう(リセットされるだけ)
これはおかしいと思って公式ドキュメント(上と同じもの)を確認してみると、
If the user has limited ad tracking, use the advertising identifier only for the following purposes: frequency capping, conversion events, estimating the number of unique users, security and fraud detection, and debugging.
「追跡型広告を制限の設定がonになっていても、頻度キャッピング、コンバージョン計測、ユニークユーザーの計測、セキュリティや詐欺行為の発見、デバッグの用途には使用して良い」とある。

あんまり制限できてないような気がしますけど

ユーザーの意思で簡単にリセット出来るIDだから問題は無いし、個人が特定されるような事態には間違いなくならないからOK、ってことなんでしょうがこれってどうなんだろうか。

というわけで、対応に追われているアドネットワーク関連会社は多いのではないでしょうか。