IDFAによるAppStoreの『アプリリジェクト問題』を振り返る

アプリ効果測定SDK、特にアプリインストール時のユニークIDについては以前「UUIDでユニークユーザーを特定してアプリ広告の効果を測定」でお話しました。

この記事にも出てきているAdvertising Identifier(=IDFA、「広告事業者向けデバイス識別子」)に関する「リジェクト問題」という騒動が2014年頃にありました。少し昔のお話にはなりますが、今回はそんな騒動を振り返ってみます。

事の起こり – アプリの「リジェクト」の発生

2014年2月初旬、広告を表示していない、かつAdvertising Identifier(IDFA)を使用しているiOSアプリがAppStoreからリジェクトされるという事象が発生しました。それまではIDFAを使用していることが原因によるリジェクトはなく、突然のことにアプリ業界が騒然としました。ちなみにAppStoreへの申請のチェック時にリジェクトされたので、この時点で既にストア上で公開されているアプリには影響はありませんでした。

リジェクト理由の一文はこちらです。

“You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier.”

《訳》貴社及び貴社が申請したアプリケーション(及び広告提供についての契約を締結している第三者)は IDFAの使用が可能です。また、IDFAを利用して取得されたあらゆる情報は広告の配信の用途に限り 使用することが可能です。 ユーザーがIDFAをリセットした際には、リセット以前のIDFAから取得された情報及びリセットに付随する情報について、 直接的・間接的を問わず以前のIDFAと統合したり、相関付け、接続あるいは関連付けしないことに同意しなければなりません。

と記載されています。要約すると「広告を表示していないアプリはIDFAを使用できない」という内容です。 当時、広告の表示ではなくトラッキングを目的としてIDFAを使用していたアプリは多数存在していたので、リジェクトされたアプリも相当数でした。 この変更に際して事前の告知がなされていなかったことも騒がれた要因でした。

iOSのID問題

それまでにもAppleは、UUIDの使用禁止やMACアドレス取得の無意味化など、個人を特定できうる値の使用を禁止してきました。 しかし、このIDFAは”スーパークッキー”としての位置づけであり、ユーザが取得されるのを拒否できる・値をリセットできるなどの機能により個人を特定するには難解な仕様のシロモノです(実際のところ取得の拒否については、プログラム側で無視して取得することが可能ではあります)。これらを考慮すると、あえてリジェクトしなければならない程だったのか…という疑問は残ります。

UUIDやMACアドレス禁止の流れを受けAppleの推奨IDとして登場したIDFAでもこの騒動です。今後使用できるようになるIDでも念入りな調査を心がける必要がありますね。

リジェクトされた基準を調査

リジェクトされる原因は広告以外の目的でIDFAを使用したから、というところまでは分かりました。では、リジェクトされる基準はどこにあったのでしょう?

IDFAを取得するには『AdSupport.framework』というフレームワークをプロジェクトに追加する必要があります。 この『AdSupport.framework』を追加しているだけでリジェクトされるのか、または取得のコードを書いているとリジェクトされるのか…。当時、当社ではこの基準を確認するために実際に『AdSupport.framework』を追加しただけの状態で申請を出してみました。

結論として、『AdSupport.framework』を追加しただけの状態ではリジェクトはされませんでした。ここからリジェクト対象は取得のコードを書いている場合であると推測できます。

ただ、そもそも「広告表示をしている」ということをどのように確認しているのかには疑問が残ります。極端な話、広告っぽい(けれど広告ではない)ものを表示しておけば良い…という言い訳めいた手段も可能なわけです。 この点も検証してみたいところでしたが、Appleのアプリ申請期間の手間の都合で調査には至りませんでした…。 当時「広告表示なしでIDFAを使っているアプリが申請を通った」という情報も飛び交い、様々な考察を呼んだこの騒動。急な変更に振り回されないよう常に動向を注視して先手を打っていく、というのは重要な教訓ですね。