22
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOSアプリ開発者のための「iOS14 IDFAオプトイン問題 」

Last updated at Posted at 2020-08-07

2020/09/04:追記更新

「IDFA許諾必須化」が、2021年初旬まで延期されることが発表されました。

Details for app privacy questions now available - News - Apple Developer

IDFAについては、許諾ダイアログを出さずに今まで通り取得可能となる様です。

さっそくiOS14 Beta7で検証したところ、

ASIdentifierManager.shared().advertisingIdentifier.uuidString

をいきなり呼んでも取得可能でした。

なお、AppTrackingTransparencyを使って許諾を得ることももちろん可能です。

概要

iOS14ではIDFAを取得する場合は、ユーザから「明示的な同意」を得ることが必須となりました。
WWDC2020でこの件が発表された当時、広告界隈では「IDFAの死か!?」などと言われたりして大きな話題となっていました。

あれから1ヶ月以上が経過し、現在の主な計測プロバイダー(MMP)の動向について整理したいと思います。

まずはこの問題の主要キーワード

  • IDFA
  • SKAdNetwork
  • AppTrackingTransparency

を簡単に見ていきます。

IDFA

IDFA (Identifier for Advertisers) は、Appleがユーザーの端末にランダムに割り当てるデバイスIDです。
Adjustより

各広告プラットフォーマー(Google広告やYahoo広告など)やモバイル計測プロバイダー(AdjustやAppsFlyerなど)は、基本的にこのIDFAを使ってアプリユーザーを追跡しています。

このIDは、大抵は広告SDKや計測系SDK側で取得されていたりするので、あまり自分で実装して取得するケースは少ないかも知れません。

ちなみにAndroidの場合はGPS ADID(Google Play Services ID for Android)があります。

SKAdNetwork

SKAdNetwork

StoreKit Frameworkのクラス。
このクラス自体はiOS11.3から存在していて「どの広告からのインストールか?」などを判断するために使用したりします。
(主にアフィリエイト用途)

これが今回のiOS14で**「どのアプリの広告から来たか?」**等のより細かい粒度の情報が追える様に更新されました。
(それでも計測プロバイダーからは実用的な効果測定のためには役不足と言われている)

Appleとしては、今後の広告効果計測にはこのクラスを使った方法を推していくのだと思いますが、
これに従うかどうかでは、各社計測プロバイダーでも方向性が分かれているようです。

AppTrackingTransparency

AppTrackingTransparency

今回新しく追加されたフレームワーク。
これまでは「AdSupport framework」のASIdentifierManagerからIDFAを直接取得していました。

対応が2021年まで延期されたので、その間は許諾ダイアログ出さずとも今まで通りIDFAの取得が可能です。
iOS14ではこのフレームワークを使いユーザから許諾を得てから、IDFAを取得する必要があります。
(ASIdentifierManagerからIDFAを取ってくることは変わりない)

iOS 14、iPadOS 14、tvOS 14では、AppTrackingTransparencyフレームワークを通じてユーザーの許可を得ない限り、デベロッパがユーザーを追跡したり、ユーザーのデバイスの広告識別子にアクセスしたりすることはできません。
ユーザーのプライバシーとデータの使用より | Apple Developer

iOS14でのIDFA取得の流れ

1. 許諾メッセージを作成

Info.plistに「Privacy-Tracking Usage Description」(NSUserTrackingUsageDescription)を追加。
値にIDFAのオプトインを求めるアラート用のメッセージを指定します。

2. ユーザーへのオプトイン提示

AppTrackingTransparency frameworkの

ATTrackingManager.requestTrackingAuthorization(completionHandler:)

を実行すると、初回のみ許諾を求めるアラートがユーザに提示され、
そのコールバックで以下のお馴染みの結果ステータスが返ってきます。

authorized
denied
notDetermined
restricted

ちなみに設定アプリ上でiOS13までの「追跡型広告を制限」をONにしているユーザー(いわゆるLATオンのユーザ)にはアラートは表示されません。
また、iOS14ではオプトイン許諾を求める事に自体の可否を設定する事も可能になり、当然これが拒否されている場合でもアラートは出ません。

3. IDFAの取得

許諾を得た後は、従来通りASIdentifierManagerからIDFAを取得するという流れになると思います。

guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else {
    return
}
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString

今のアプリをアップデートしないで放っておくとどうなる?

2021年初頭まで対応が延期されたので、それまではIDFAの取得が可能です。
ただし、AppTrackingTransparencyでの許諾フローは有効なので
ダイアログを提示し「拒否」したユーザーからは当然取得出来ません。(値はゼロ)

iOS14では、ATTrackingManagerを使って許諾を得ていないユーザから、直接IDFAを取得してもその値はゼロとなってしまいます。

// IDFAの値
00000000-0000-0000-0000-000000000000

つまり、現在使用しているアドネットワークの広告SDK(imobileやnendなど)も影響を受けます。
(SDK側で取得済みIDFAをキャッシュしていれば暫くは使用できるかも?)

また、今言われている可能性として

「広告プロモーションを実施する側のアプリ」

→ プロモーションを実施した際に正しい効果測定、分析が出来なくなる可能性

すでにプロモーションを実施中の場合は今までのデータとの解離がおこる可能性があります。
また広告屋さんからは「広告配信の選択肢が減った」という話も出てくるかも知れません。
(特定のユーザを狙ったリターゲティング広告配信などが今後出来なくなったりする)

「広告を掲載する側のアプリ」

→ 収益が減る

カジュアルゲーム系やメディア系などの広告収益モデルのアプリでは、アプリ内で配信している広告の効果が追えない事で、価値が下がり、CPM(1000回表示して稼げる金額)が低下・・・という現象が起こり、その結果収益が減る可能性があります。

これらの点については、モバイル計測プロバイダー各社がどの技術を採用するか、または別のソリューションをリリースしてくるか?によって大きく左右される事になると思います。

どちらにしてもアプリのアップデートは必須となってきそうです。

主な各計測プロバイダー(MMP)動向について

Adjust

ブログで対応方針などの情報を発信しています。

Adjustの考えとしては

  • 現時点のSKAdNetworkの仕様では役不足
  • 取り急ぎフィンガープリント技術で対応
  • アトリビューションハッシュを使った新たな仕組みを導入してく

最後の「アトリビューションハッシュを使った仕組み」とは

デバイス上でIDFAとIDFA(一意のベンダーID)を使用してハッシュ値を生成。
このハッシュ値をサーバ側で許諾を得て取得しているIDFAと照合すると言うもの。

ポイントとしては、前提として広告掲載側アプリでのIDFAは取得が必要な点と
ローカルでのみのIDFA使用(オプトインなし)がAppleから承認されるか?がキモとなる。

オプトインなしで追跡可能な方法として、こちらで触れられているが。。。

You may track users without obtaining user permission through the AppTrackingTransparency framework if it is for one of the following purposes:
User Privacy and Data Use - App Store - Apple Developer

Adjustでは、現在Apple側と協議中とのことです。

AppsFlyer

こちらの考えとしては

  • より具体的な内容はiOS14のベータ版の過程で進化していくのでは?
  • とにかくアトリビューション(どの広告効果なのか)は大事
  • IDFAが取れない場合でも計測出来るソリューションを準備中

このソリューションと言うのはIDFA、SKAdnetwork、フィンガープリント技術の組み合わせで対応していく様です。
(ここで出てくる「Aggregated Attribution」と言うのは具体的にはよく分かりませんでした。ざっくりとした大まかな測定の意味?)

Singular

IDFA Alternative: SKAdNetwork launch by Singular

こちらは上記とは対照的に

  • Apple公式のSKAdNetworkを使った仕組み

で行く様です。(フィンガープリントなど他の技術も併用しつつ)

こちらはN3TWORKへのインタビュー。今後の展望について。
Prepare for iOS 14: Insights from N3TWORK

ここでは今後の展望について、フォローチャート形式で解説しています。
iOS attribution: visualizing the crossroads for mobile measurement

まとめ

「IDFAオプトイン問題」は開発者には関係ある話なのか?

一見、この「IDFAオプトイン問題」は、そこまでアプリ開発者やエンジニアにとっては関係の無い話、それ程大きな問題では無い様に思えます。

ただし、広告プロモーションを行っていたり、アプリ内広告を行っている場合は、IDFAを取るにしても止めるにしても何かしらの対応が必須となり、今後も関係がある話となりそうです。

またIDFAを今後も積極的に取得する選択をとった場合、
**「どの様にしてオプトイン率をあげていくか?」「どの様にユーザーへ説明するのか?」**などを
継続的にテストする為、アップデートしていくことになりそうです。


22
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?