👣

【Flutter】ATT(App Tracking Transparency)を作成。 Data Use and Sharingを解消する

2023/12/14に公開

ATT(App Tracking Transparency)とは

これ

Guideline 5.1.2 - Legal - Privacy - Data Use and Sharingを解消する

ユーザーの情報を取得しているとATTを入れないと審査でリジェクトされる。

解決方法はシンプルでATTを追加するだけ。

info.plistに下記のコードを追加

<key>NSUserTrackingUsageDescription</key>
<string>This app uses tracking data to show you personalized ads.</string>

インストール

https://pub.dev/packages/app_tracking_transparency

flutter pub add app_tracking_transparency

ATTのダイアログを表示する処理

Future<void> initATT() async {
 if (await AppTrackingTransparency.trackingAuthorizationStatus ==
     TrackingStatus.notDetermined) {
   await showCustomTrackingDialog(context);
   await Future.delayed(const Duration(milliseconds: 200));
   await AppTrackingTransparency.requestTrackingAuthorization();
 }
}

splash画面でATTを表示

インストール

https://pub.dev/packages/flutter_native_splash

実装

splash画面を表示してそこでinitATT()を表示する。その処理が終了したらsplash画面を閉じる。

void main() {
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  await initATT();
  FlutterNativeSplash.remove();
  runApp(const MyApp());
}

Future<void> initATT() async {
 if (await AppTrackingTransparency.trackingAuthorizationStatus ==
     TrackingStatus.notDetermined) {
   await showCustomTrackingDialog(context);
   await Future.delayed(const Duration(milliseconds: 200));
   await AppTrackingTransparency.requestTrackingAuthorization();
 }
}

Discussion