見出し画像

ATT (AppTrackingTransparency) について

アプリディベロッパーの皆さん こんにちは!アドネットワークnend (ネンド) の「えばんじぇりすととーる」です。Appleが昨年のWWDC20でSKAdNetwork2.0の発表を行って早1年、来月WWDC21が6月7日 (日本時間8日未明) から1週間開催される予定です。恐らく昨年同様、ディベロッパー向けのアプリで、プライバシーのセッションが出てくるはずなので、皆さん一緒に見ましょう!手短に私自身のことについて少し。先日、先輩が私のアドテクキャリアをサクッと書いてくれましたので、ご厚意に甘えそのまま引用します(先輩、ありがとうございます!)

nendを運営するファンコミュニケーションズの海外向け代理店部門から始まって、現在は海外の直クライアント&直パブリッシャーを担当している。比較的欧米の情報もリアルタイムに収集してる人

では、今回はAppleのATTについて基礎知識から応用まで一気に説明します。レッツゴー!

ATT (AppTrackingTransparency) 概要

ATTはAppTrackingTransparency、日本語直訳は「アプリ追跡透明性」です。これをざっくりと業界知識も入れて意訳すると、アプリを使うユーザーに対して広告追跡(ターゲティング/トラッキング)の透明化を図る骨組み/構造(フレームワーク)になります。このフレームワークが適応された範囲の中では、広告追跡の透明性が図られるため、広告追跡を行いたいアプリ管理者はアプリを使うユーザーに対して、広告追跡を行っていいかの許諾をAppleが規定したポップアップの形式で求める必要があります。この許諾を「オプトイン (opt-in)」と呼びます。

「ATTポップアップ」「ATTオプトイン」「ATTダイアログ」これらは全て同じ意味で、ユーザーに広告追跡の許諾を求めるときに表示するポップアップのことです。広告事業社から「オプトイン率はどれくらい?」とか「ATTダイアログをカスタマイズしないの?」とか「ATTポップアップ出してますか?」とか話があるかもしれませんが、基本的にあの広告追跡の許諾を求めるポップアップの事を指していて、それを「許可する」ユーザーのざっくりとした割合のことをオプトイン率と呼び、ポップアップの中で書き換えられる文言やポップアップを出す前に補足説明のスライドを1枚入れたりするので、それを相称してカスタマイズしましょうなどと話すことがあります。

適応範囲

「アプリ」と聞くとApp Storeでダウンロードするアプリを思い浮かべると思いますが、このATTフレームワークはiPhone/iPadの端末の中に入っている全てのアプリになるので、プリインストールされているSafari等のAppleアプリ、Appleが提供しているアプリも対象になります。Appleのリリースによると、フレームワークが本適応されたのが昨月の4月26日からで、対象となる端末のOSがiOS/iPadOS/tvOS 14.5以降。iOS14.5の一般公開が上記のATTフレームワーク適応日と同日だったので、日本ではGW前に全てが一気に始まった感じがあるかもしれません。

ATT関連のApple公開情報

AppleはiOS14.5からのプライバシー強化に先立ち、Appleが定める「プライバシー」とは何を示しているのか、個別でウェブサイト(英語/日本語訳)を立ち上げて説明をしています。このページの推移/アップデートを注視している人はお気づきかと思いますが、英語のページがオリジナルで、日本語ページは英語ページの日本語訳です。英語ページの方が更新が早く、少し経って日本語ページが更新される傾向にあります。日本語訳が間違っていることもあります。以前、英語のFingerprintが「指紋」になっていて、当時私は頭を抱えて悩みました。数回の更新で今は「フィンガープリント」になっていますが、Fingerprint/Fingerprintingは広告の業界単語なので、日本語訳の担当者が知らずに、当てはまる日本語で直訳してしまうケースもあります。大事なことはオリジナルも参照にすると良いかと思います。

ATTの細かい仕様を見ていく前に、もう少し周りの環境について説明します。ATT/プライバシー関連のAppleのウェブサイトはいくつかあります。App Storeでのプライバシー情報(英語/日本語訳)。App Storeのアプリ審査に適応されるガイドライン(英語/日本語 - 左リンクは特にプライバシーに関係のあるLegal/法的事項)。結構前かもしれませんが、ストア規約はペラ1のウェブサイトに規約内容がテキストで所狭しに敷き詰められていた感じだったと思います。規約違反としてリジェクトされたアプリの該当の項目 5.〇.〇とかを探すのに苦労した経験が昔あります。今は項目ごとに分けられていて、調べやすくなっているので、上述のページも含めこのリソースページ(英語/日本語訳)などで色々見ても面白いかと。

ATT - App Storeのアプリページ情報

さて、ようやく本題に入りましょう。現在、アプリのアップデートを行う際、アプリが端末のどんな情報を取得しているのか、App Storeの各アプリのページで明示しなければいけなくなりました。これはiOS/iPadOS14から追加された必須項目で、アプリをApp Store審査に出す際の追加情報として、必ずAppleに提出しなければいけません。例えばnendの会社、FAN Communications Inc.,が運営するお笑い芸人のラジオアプリ GERAでは、App Storeページ中腹「Appのプライバシー」で、「ユーザのトラッキングに使用されるデータ」が何になるのかを明示して、App Storeの審査を受けています。GERAにはnendSDKも入っているので、ストアページにはnend広告マネタイズ向けのSDK (nendSDK) で収集している情報が何なのか反映されたものになっています。そもそもユーザーを「トラッキング」するとはどういうことなのか、Appleが定義した説明文がこちら(英語/日本語訳)のページにあるので、このあたりも大事な認識の一つになるかと思います。

ATTはユーザートラッキングのフレームワークになるので、「ユーザのトラッキングに使用されるデータ」が一つでもあれば、それを審査時に明示するのと同時に、ATTフレームワークのアプリ内実装(オプトインのダイアログ表示)を行わなければいけません。これはnendSDKなどの広告マネタイズSDK以外にも、アプリ内実装しているSDKで、Appleが定義する「トラッキング」に当てはまる挙動を取るSDKは、同様に審査時の明示とATTフレームワーク実装を行う必要があります。アプリ向けSDKを提供している企業はiOS14プライバシー向けのページがあるところが多いので、導入SDKで気になる点があれば、「該当SDK名+iOS14+Privacy」などのキーワード検索で出てくる可能性は高いと思います。

もう少し上記について説明したいと思います。Googleは今年初め、自社提供のiOSアプリで、ユーザーを「トラッキング」しないことを宣言しました(以下該当箇所引用)。そのため、youtubeなどのGoogle自社アプリのApp Storeページで、「ユーザのトラッキングに使用されるデータ」の項目がなく、アプリ内でもATTオプトインのダイアログが表示されないと思います。

When Apple’s policy goes into effect, we will no longer use information (such as IDFA) that falls under ATT for the handful of our iOS apps that currently use it for advertising purposes. As such, we will not show the ATT prompt on those apps, in line with Apple’s guidance.

Googleは自社のiOS/iPadOSアプリで、ATTフレームワークを導入しなくても、Appleが提供するSKAdNetworkの仕組みを使うことで、アプリプロモーションのコンバージョン計測ができます。GoogleはそのAppleの仕組み以外にも "Modeled Online Conversion (推定オンラインコンバージョン)" (英語/日本語)と呼ばれる自社開発/展開している計測の仕組みがあります。恐らくこれらを駆使して、自社のiOS/iPadOSアプリで従来通り広告サービスを継続しているのだろうと予想されます。

ATTフレームワーク仕様

では、ATTフレームワークの技術仕様について見ていきましょう。Appleはディベロッパー向けの細かい仕様を日本語訳しないことが多いため、以後の説明のほぼ全てに、私の翻訳もしくは意訳が入っています。参照元のオリジナルURLも併せて確認お願いします。App Tracking Transparency (英語) フレームワークの構成要素は3つあります。

■ NSUserTrakingUsageDescription 

これをinfo.plistに導入して、トラッキングの許諾を得るための値(文言)を記入すると、ATTポップアップダイアログを表示することができます。この文言はカスタマイズが可能で自由に書けますが、少しでも同意を促す文言(例:○○お願いします、○○のインセンティブを付与します等)にしてしまうと、アプリ審査で「App Store Reviewガイドライン」の5.1.1(iv)の規定違反とみなされ、リジェクトされることが多いです。ここではあくまで、文言での説明をデータの使用目的にとどめる必要があると思います。
ATTポップアップを出す前のカスタムスライドについても同様で、Appleはこのページの一つ目の「よくある質問」で以下の様に説明しています。

トラッキングの許可を求める画面を表示する前に、トラッキングを許可してほしい理由をユーザーに説明することはできますか?

はい。データの使用方法を明確に説明する限りは許容されます。「App Store Reviewガイドライン」の5.1.1(iv)の規定により、Appではユーザーのアクセス許可設定を尊重する必要があります。不要なデータアクセスに同意するようユーザーを誘導したり、だましたり、強制したりすることはできません。

"NSUserTrackingUsageDescription" これをtwitter検索、Google検索、もしくはnoteで "iOS14 ダイアログ" と検索するといくつか実装例が出てくると思います。この英語サイトは各アプリのATTポップアップをまとめています。言語によってセグメントが切れるようにしている様なので、海外向けアプリの場合は参考にしても良いかもしれません。

■ requestTrackingAuthorization

このコードを呼び出すことで、ATTオプトインの許諾を求めるポップアップを表示することができます。Appleの説明にもありますが、リクエストできるのは1回のみで、端末からアプリが削除されて再インストールされない限り、ユーザーが行った選択(トラッキングを許可 / Appにトラッキングしないように要求)を変えることはできません。後述しますが、このコードでポップアップが出せる端末の状態は、ATTの確認ステータスが4パターンある内のnotDetermined=0のみの場合です。

trackingAuthorizationStatus

このコードで端末のアプリに対する4つのATTステータス(0=notDetermined/未決定, 1=restricted/制限, 2=denied/拒否, 3=authorized/許諾) を確認します。AppleのPrivacy関連のDeveloper Forumsにも報告がいくつかありますが、この許諾確認ステータス周りでバグがあるようで、AppleはOSのアップデートで解決している様子です。

iOS/iPadOS 14.5以降の端末でユーザーを「トラッキング」できるステータスはauthorized=3のみになります。他はいわゆるIDFA値が000...のLATユーザーになります。では、それぞれのステータスを見ていきましょう。

0=notDetermined (ATTrackingManager.AuthorizationStatus.notDetermined

・アプリがダウンロードされたiOS/iPadOS 14以降の端末で、「設定」>「プライバシー」>「トラッキング」の「Appからのトラッキング要求を許可」がオン(緑色)になっている。
・上述のrequestTrackingAuthorizationがまだ呼ばれていなく、ATTポップアップがまだ出ていない。
***ATTオプトインのダイアログが表示できる状態
***iOS14.5未満の端末では、この状態でIDFA取得が出来る。

1=restricted (ATTrackingManager.AuthorizationStatus.restricted

・上述の「Appからのトラッキング要求を許可」がオフ(灰色)になっていて動かすことができない、無効の状態。
***Appleはこのrestricted=制限の状態について明確な説明を行ってきませんでしたが、前述のバグのこともあってか、最近になって情報を出すようにしたようです。Developer ForumsでのAppleのJasonさんの回答や、Appleのユーザーサポートのページ(英語/日本語訳)で制限に該当する場合の記載があります。最後のApple ID作成が3日以内は、恐らくAppleが不正に作成されたアカウントを判別する期間ではないかと見られています。

場合によっては、たとえば以下に該当する場合などは、「App からのトラッキング要求を許可」設定が無効になります。
● お子様用アカウントを使っているユーザまたは 18 歳未満 (生まれ年で計算) のユーザが自分の Apple ID でサインインしている場合*
● お使いの Apple ID が、教育機関によって管理されているか、トラッキングを制限する構成プロファイルを使っている場合
● お使いの Apple ID が 3 日以内に作成されたものである場合

2=denied (ATTrackingManager.AuthorizationStatus.denied

・ATTポップアップが表示され、「Appにトラッキングしないように要求」が選択された
・ユーザーが「Appからのトラッキング要求を許可」の設定をオフ(灰色)にしていて、この間にアプリがトラッキング許可を求めてきた場合(ATTダイアログは表示されない)。
・これまでATTポップアップを表示してトラッキング許可(オプトイン)されたが、「Appからのトラッキング要求を許可」の設定がオフになった。
***この途中からオフになった状態の時、Appleはプライバシーとデータの使用ウェブサイトで対処方法について記載しています。

ユーザーがAppからのトラッキングリクエストを許可したものの、App上でトラッキング設定を無効にしている場合、「設定」へのショートカット(英語)を提供することで、当該Appのトラッキング設定を変更するよう求めることができます。

3=authorized (ATTrackingManager.AuthorizationStatus.authorized

・ATTポップアップが表示され、「許可」が選択された。
・「Appからのトラッキング要求を許可」の設定がオン(App単体の個別設定がオンでも同様)

iOS/iPadOS 14.5以降の端末では、上述の3=authorizedの状態で初めてadvertisingIdentifier = IDFAが端末から入手できます。これにより広告SDKなどからの広告識別子のリクエストにIDFAを渡すことができ、ターゲティングやトラッキングが出来る様になります。上記advertisingIdentifier (広告識別子) の説明の箇所にLAT状態(00000000-0000-0000-0000-000000000000)についての記載がありますので、そちらも併せて確認しておくと良いかと思います。

終わりに - 「プライバシーMktg」のSlackグループご案内

以上で、今回のATT (AppTrackingTransparecy)の説明といたします。いかがでしたでしょうか。もしAppleのプライバシー関連で質問がある場合、nendでは「プライバシーMktg/marketing」のオープンSlackチャンネルを用意しています。このリンクからどなたでも参加できます。その中で質問/コメントいただければ、nendの担当者 or 参加者が分かる範囲で返答しています。是非、気軽に参加してもらい、互いに有益な情報を交換・蓄積していくことで各々のマーケティングの一助となれば嬉しいです。

次回はiOS14プライバシーで重要視されているSKAdNetworkの仕様について説明していきます。