UUIDでユニークユーザーを特定してアプリ広告の効果を測定

2018年1月10日


※本記事は2014.01.17の原稿を一部改訂の上再掲しています。
なお、2018年1月時点で閲覧できないリンク先などは修正しています。


以前の記事(「開発者なら分かるアプリ効果測定用SDKよもやま話」)で広告効果測定SDKついてお話しましたが、アプリのダウンロードを目的とした広告の効果測定を正確に行う為には、端末ごとのユニーク値を使い計測を行う必要があります。
今回はiOS端末側から「どのようなIDを使ってユーザーを特定するのか?」というお話です。

以前はiphoneの『UDID』で特定されていた


iPhoneにはUDID(Unique Device IDentifier)と呼ばれる個体識別番号があります。このIDは製造時に一台ごとに割り振られるもので、利用者が削除・変更することはできません。
かつてはUDIDを広告効果測定に使用するケースが多かったのですが、プライバシー・セキュリティー上の観点から問題視されるようになりました。前述のようにUDIDをユーザーは変更することが出来ないため、使い方によっては個人を特定し行動を監視することも可能ですし、改ざんすることによってなりすましにも使うことが出来たからです。
そのため2013年5月以降Apple社はUDIDの利用を禁止し、UDIDの取得を行うアプリはAppStoreへの登録申請を却下(リジェクト)するという対処がされています。

Using Identifiers in Your Apps
March 21, 2013
Starting May 1, the App Store will no longer accept new apps or app updates that access UDIDs. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6. You can find more details in the UIDevice Class Reference.

引用:https://developer.apple.com/news/index.php?id=3212013a


同様にユニーク値を取得するものとして端末のMACアドレスを利用するパターンも出てきましたが、MACアドレスの使用もApple側よりストップがかけられました(取得を行うアプリをリジェクトするわけではなく、取得した場合の値が全て0になります)。

ユーザー保護という意味では然るべき対応と言わざるを得ませんが、アプリ開発者側からするとデータ管理をはじめユーザー毎にユニークなIDを必要とする業務に頭を悩ませることになります。
そこでAppleが推奨しているのがUUID(Universally Unique IDentifier)です。

iosの『UUID』とは?


UUIDはアプリケーションでその都度生成するランダムな値で、全世界でも重複することの無いほどのパターン(256の16乗通り)が存在します。このIDはアプリ間で関連性がなく、ユーザーはアプリケーションを削除してから再取得すれば新たな値を発行できるため、変更不可能だったUDIDと比較して安全性は高いです。 アプリ開発者側はUUIDを発行しサーバーへ送信させ、その値をデータベース化することで情報を整理・分析することが可能です。

欠点は、UUIDを再取得をした場合(アプリを再インストールした場合など)に以前のUUIDが無くなってしまうので、IDの紐付けに注意が必要なことです。

より正確な識別の為に


iOS 6.0からは、ベンダー向け「デバイス識別子」(identifierForVendor)「広告事業者向けデバイス識別子」(advertisingIdentifier)というものも登場し、それらを組み合わせることによって、より正確な効果測定が可能になっています。特に「広告事業者向けデバイス識別子」はユーザが端末から取得を拒否する設定に変えることもでき、更に値のリセットも自由に行う事ができるため、よりユーザー保護に依ったものと言えます。

これらのIDは現在推奨されているものですが、未来永劫使えるベストな手段とは限りません。将来的に何らかのプライバシー侵害が発生する可能性を考慮すると、いずれこのIDも使えなくなることも考えられます。
データ分析とプライバシー保護が両天秤に掛けられている現状、新しいIDやアプリ再インストール時にも値を保持する仕組みなど、様々な手法が編み出されています。広告の効果測定ツールも日々こういったトレンドを鑑みて、改善を続けていかなければならないですね。