見出し画像

ATT と GDPR の両立【プログラム・テクニカル】|AdMob|Flutter

Flutter(iOS)アプリに AdMob 広告を搭載しているのなら ATT(App Tracking Transparency)を既に実装済みではないかと思う。例えば、以下のパッケージで。

そこへ、少し前から、AdMob ホームページに以下の警告が表示されて、アプリ起動時の実装がよく分からなくなった。

欧州経済領域(EEA)と英国のユーザーに広告を配信するには、GDPR(General Data Protection Regulation)は必須の対応なのだが…。

お客様には、2024 年 1 月 16 日までに GDPR 同意メッセージを作成して公開することをご確認いただきました。TCF と統合した Google 認定の同意管理プラットフォーム(CMP)を必ず使用してください。期日までに公開されなかった場合は、可能であればインタースティシャル広告ユニットまたはアプリ起動時広告ユニットを使用して、デフォルトの同意メッセージが Google によって公開されます。

AdMob

[AD] iPhone 15 Pro Max|Apple(メルカリ)



リリース ターゲットとなる国は?

先ず、ATT は Apple が義務づけているので、実装は必須。絶対に出さないといけない。

しかし、GDPR は必須ではない。欧州経済領域(EEA)と英国から広告収入を得ないなら、GDPR の実装は不要。はい、以上。



…だが、これらの国からも広告収入は得たいので、それなら、GDPR の実装は必須。Flutter なら、以下で Google が公式に実装方法を説明している。凄く単純で簡単。

これ自体はアッという間に実装完了。


ATT と GDPR の表示順は?

迷ったというか悩んだのは、どういうフローでユーザへ表示していけばいいのかってこと。単純に、連続して ATT と GDPR を出せばいいのか?

でも、それぞれの同意が不整合を起こしたら…GDPR だけ同意って多分ダメだよね?

→ 同じことを考えて、実際に実践して、Apple からリジェクトを受けた人が居た。以下が、その会話。

おぉ、まさに欲しかった答え。

つまり、

  • ATT で同意を得ていないなら、GDPR の同意なんて有り得ないだろ!

  • ATT で同意を得てから、GDPR という地域の同意を得ろよ…

ということだ。実装的には以下。

status = await AppTrackingTransparency.requestTrackingAuthorization();
if (status == TrackingStatus.authorized) {
  ConsentInformation.instance.requestConsentInfoUpdate(...);
}

[AD] iPhone 15 Pro Max|Apple(メルカリ)


あっさり通過する Apple の審査

結果的には、凄くシンプルな実装で簡単だったのだが、考え過ぎたのか…調査に随分と時間が掛かってしまった。

文字カウント機能を搭載したメモ帳アプリ『DocumentallyiOS / Android)』に、上記の通りを実装して ATT と GDPR を両立させたのだが、Apple の審査が Waiting for Review から Ready for Sale になるまで僅か二時間弱(1:44)で終わって、拍子抜けだったくらいだ。

[AD] iPhone 15 Pro Max|Apple(メルカリ)


参考にしたサイト

公式の情報だけでも充分に対応可能だったが、無駄に調べてしまったので、一応、列挙しておく。

[AD] iPhone 15 Pro Max|Apple(メルカリ)

いいなと思ったら応援しよう!