Google User Messaging Platform でのメッセージ分岐（IDFA関連）

Google User Messaging Platform (UMP) SDK の使用方法が書かれている Web サイト ([Get Started](https://developers.google.com/admob/ios/privacy)) には、以下のサンプルコードが記載されています。今回は、実際にこちらを使用し、アプリで IDFA 同意フォーム (ATT dialog) を表示させたときに確認した動作のお話です。

```swift:Get Started の抜粋
  override func viewDidLoad() {
    super.viewDidLoad()
    
    // Request an update for the consent information.
    UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: nil) {
      [weak self] requestConsentError in
      guard let self else { return }

      if let consentError = requestConsentError {
        // Consent gathering failed.
        return print("Error: \(consentError.localizedDescription)")
      }

      UMPConsentForm.loadAndPresentIfRequired(from: self) {
        [weak self] loadAndPresentError in
        guard let self else { return }

        if let consentError = loadAndPresentError {
          // Consent gathering failed.
          return print("Error: \(consentError.localizedDescription)")
        }
        // Consent has been gathered.
        if UMPConsentInformation.sharedInstance.canRequestAds {
          self.startGoogleMobileAdsSDK()
        }
      }
    }
    if UMPConsentInformation.sharedInstance.canRequestAds {
      startGoogleMobileAdsSDK()
    }
  }
```
## 環境
Google User Messaging Platform SDK： 2.4.0

## 動作概略
おおまかには、`UMPConsentInformation.sharedInstance.requestConsentInfoUpdate`で確認した情報をもとに`UMPConsentForm.loadAndPresentIfRequired`でメッセージが表示される流れになります。

表示されるメッセージは、iPhone や iPad の本体設定、ユーザーの居住地によって自動的に選択されるようになっており、自分で端末の状態をチェックしてメッセージを選択する必要はありません。私の調べた限りでは、以下のフローチャートに沿って、メッセージが自動選択されるようです。

![Ump.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853334/b665396f-7f02-7ba6-3ddf-c22c8c0adcfd.png)

GDPR メッセージ、IDFA 説明メッセージ、IDFA同意フォーム (ATT dialog) を表示させるためには、事前準備が必要です。GDPR メッセージ、IDFA 説明メッセージは、AdMob Web サイトの **プライバシーとメッセージ** で簡単に作成できます。

![AdMob.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853334/95fbfa31-8243-9c2f-665c-2223728cd75c.png)

また、IDFA 同意フォーム (ATT dialog) を表示させるための準備は、以下の Web サイトで紹介されています。特に難しくないので、サクッと終わると思います。

https://developers.google.com/admob/ios/privacy/idfa

以下、各 Case について補足していきます。

### Case 1. なにも表示されない
European Economic Area (EEA) 以外に居住しているユーザーが、iPhone や iPad の本体設定から `プライバシー → トラッキング → App からのトラッキング要求を許可` を OFF にしていると GDPR メッセージ、IDFA 説明メッセージ、IDFA 同意フォーム (ATT dialog) のいずれも表示されません。もちろん IDFA の使用がアプリから許可されることはありません。この場合は、IDFA が使用されませんが、SKAdNetwork を通じて、広告を表示させることはできます。

![tracking_off.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853334/5f314a94-a704-31a2-0101-e8ec575896f1.png)

### Case 2. GDPR メッセージのみ表示
AdMob の Web サイトで設定した GDPR メッセージが表示されますが、IDFA 同意フォーム (ATT dialog) は表示されないので、アプリから IDFA の使用を許可することはできません。この場合も Case 1.と同様に広告は配信できます。

### Case 3. IDFA 説明メッセージ表示後、IDFA 同意フォーム表示
IDFA 説明メッセージ表示後に自動的に IDFA 同意フォームが表示されます。
日本に居住する多くのユーザーがここに該当すると思います。

### Case 4. GDPR メッセージ表示後、IDFA 同意フォーム表示
European Economic Area (EEA) に居住していると UMP に判断された場合には、GDPR メッセージが表示された後に自動的に IDFA 同意フォームが表示されます。このとき、**IDFA 説明メッセージ** は表示されないことに注意してください。

## さいごに
自分でコードを書いて iPhone や iPad の設定状況、ユーザーの居住地をチェックしなくても UMP 側で全てやってくれるので楽でいいですね。

間違っている点や不明点がありましたら、コメントでお知らせいただければと思います。

## 参考URL
https://support.google.com/admob/answer/10114020?sjid=9684189853184633241-AP