iOSアプリ審査でAppTrackingTransparency対応(ATT対応)を求められて焦ってやり方を探している方へ

この記事ではUnityでUnityAdsを使っているアプリでのAppTrackingTransparency対応(ATT対応)方法を書いています。

今週(2021/4/29)、一生懸命作ったアプリをAppleの審査に出したところ、新しく始まったiOS14のガイドラインであるIDFAへのアクセス対応をもとめられました。 調べてみると最近必須になったようで、未対応はリジェクトになります。

初めてアプリを起動する時などに、広告にIDFA(広告用の識別IDです)へアプリがアクセスすることをユーザーに示して、許可をもらえれば追跡型広告などが利用できます。UnityAdsもIDFAを使うので、対応が必要というわけです。

これを出したい。

参考にできそうなサイトを探しましたが、必須になったばかりだからか、まだあまり情報がなく、サンプルコードもAdmob用の記事だったり、エラーが出たりして自分のアプリではスパッと行けるドキュメントが無かったので、苦労しました。
試行錯誤の結果、アプリの審査を無事通過したのでまとめます。

そんなに詳しくないので、不要なことをしているかもしれません…。

◆やること(1時間程度でした)

  • Unityのプラグインのバージョンを上げる
  • ios-supportライブラリを導入
  • 広告関連よりも前の部分にios-support用のコードを貼り付け
  • Xcode用にビルド
  • XcodeでFrameworkを2つ設定
  • Xcodeで Info.plistにダイアログに出す「使い道」を記入

◆UnityのAdvertisement 3.5.2以降 にあげます。

Package Manager から Advertisementを確認してバージョンを確認しましょう。ATT対応にはSKAdNetworkIdentifierをアプリ内に記述することという対応が必要なのですが、Advertisement 3.5.2以降 があれば自動で対応されるので大丈夫です。

下記の記事を参考にios-supportライブラリを導入します。

下記の記事の「3.アプリ追跡の透明性リクエストのトリガー」まで進めます。
コードを追加する場所は広告周りを扱うクラスのstart()の最初などでいいと思います。

Unityでのアプリ追跡の透明性(IDFAポップアップ)| アラン・イェイツ| Pocket SizedHandsの共同創設者| VR / AR開発者
https://alanyeats.com/post/unityapptrackingtransparencypopup/

GitHub-Unity-Technologies / com.unity.ads.ios-support:Apple iOS14で新しく導入されたAppTrackingTransparencyとSkAdNetworkAPIのサポートを提供します。
thttp:// https://github.com/Unity-Technologies/com.unity.ads.ios-support

◆これでUnityでの作業は終わりでビルドしてXcodeに移ります。

Xcodeへ移動してからの設定は下記のサイトを参考にさせていただきました。

【Unity】[iOS] IDFA へのアクセス許可設定 | hirokuma.blog
https://hirokuma.blog/?p=3003#toc5

Xcodeでは FrameWorkの追加とInfo.plistを設定します。

この作業はUnityでビルドするたびに必要になります。

フレームワークは以下の2つを足します。

AdSupport.framework
AppTrackingTransparency.framework

Info.plistはPrivacy – Tracking Useage Description項目を増やし値を入力します。
値は「 お好みの広告を表示するために使います。」 としました。

この時、⌘+Sで保存してからビルドして下さい。
この項目が空欄の場合、ダイアログが出ない動きになるのですが、保存せずに他の項目に移動しビルドすると、入力した値が項目ごと消えてしまう事があり、実機にて、なぜダイアログが出ないのか、と悩むことになります。

最後は実機でアプリを実行すればダイアログが出て対応完了です。

1つのアプリで1回しかダイアログは出ないので、何度か確認したい場合は実機からアプリを削除し再インストールする、と書いてある記事もありますが、アプリの削除&再インストールでは必ず再度ダイアログを出すことはできませんでした。

Bundle identifierを変えると別アプリと認識されるので何度でも確認が出来ました。ダイアログ表示のテスト時だけXcode上のBundle identifierを変えると必ずダイアログが出せるのでやりやすいかと思います。

この対応が終わり、許可設定をしたアプリは実機の
設定 > プライバシー > トラッキング
のところに並びます。アプリを削除するとこの一覧から消えます。
が、前述の通り、アプリを削除し、この一覧から消えている状態から再度実機インストールしてもポップアップが出ないことがありました。再起動やリセットをしましたが関係ありませんでした。

せっかくいいアプリを作ったのに最後に急に実装事項が増えて、しかも対応方法がわからず、アプリの公開ができない、なんてことになるのはとても悲しいと思いますので、少しでも役に立てたらと思います。

プロプログラマーではないので誤った情報を書いてしまっていたらごめんなさい。コメントとかで教えてください。
おわります…φ(‘A`)