Guideline 5.1.1 – Legal – Privacy – Data Collection and Storage にNSUserTrackingUsageDescriptionの内容を変更して対応した

App Store Connection からリジェクトのメールが飛んできました。

Hello,

Thank you for your resubmission. Upon further review, we identified an additional issue that needs your attention. See below for more information.

If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know.

Guideline 5.1.1 – Legal – Privacy – Data Collection and Storage

We noticed your app includes App Tracking Transparency permissions requests, but it encourages or directs users to accept tracking. Specifically, your app directs the user to accept tracking in the following way(s):

– A message appears before the permission request, and to proceed users press a “Consent” button. Use words like “Continue” or “Next” on the button instead.

Permission requests give users control of their personal information. It is important to respect their decision about how their data is used.

Next Steps

To resolve this issue, please revise the permission request process in your app to not display messages before the tracking request with inappropriate words on buttons.

If necessary, you may provide more information about why you are requesting permission to track before the request appears. If the user is trying to use a feature in your app that won’t function without tracking, you may include a notification to inform the user and provide a link to the Settings app.

原因(1) NSUserTrackingUsageDescription に許可を促すような文言を使っていた

NSUserTrackingUsageDescription": "「許可」するとお客様に最適化された広告が表示されます。" のように、「許可」を促すような文章になっているのが原因です。

languages/ja.json
{
  "CFBundleDisplayName": "家計簿",
  "NSContactsUsageDescription": "予測できる家計簿 - 収支をシミュレーション",
  "NSUserTrackingUsageDescription": "「許可」するとお客様に最適化された広告が表示されます。"
}

特に英語の方で以下のように「許可せよ」みたいな偉そうな書き方が良くなかったようです。

en-AU.json
{
  "CFBundleDisplayName": "Budget",
  "NSContactsUsageDescription": "Forecasting budget - Simulate income and expenses",
  "NSUserTrackingUsageDescription": "By allowing, you'll receive ads optimized for you."
}

…とここまで書きましたが、どうもアプリ上では上の NSUserTrackingUsageDescription ではなく、下の app.json の user_tracking_usage_description が表示されているようです。

app.json
  "react-native-google-mobile-ads": {
    "ios_app_id": "ca-app-pub-xxxx",
    "delay_app_measurement_init": true,
    "user_tracking_usage_description": "This identifier will be used to deliver personalized ads to you."
  }

原因(2) IDFA説明メッセージに Allow という単語を使っていた

おそらく原因はこちらです。 Admob の設定画面から登録するメッセージです。

Our app wants to stay free for you

Ads help support our business. Tap “Allow” on the next screen to give permission to show ads that are more relevant to you.

ChatGPTの助けも借りつつ、以下のように修正してみました。

タイトル: Our app wants to provide a better experience

本文: Ads help support our app. By granting permission, you can receive more relevant ads. It’s your choice.

リジェクトの内容解説

このメールはAppleからのアプリの審査結果を通知するもので、あなたが再提出したアプリが、データの収集と保存に関するガイドラインに違反していると指摘されています。

指摘内容

  • ガイドライン: 5.1.1 – Legal – Privacy – Data Collection and Storage
  • あなたのアプリが「App Tracking Transparency」の権限リクエストを含むことに対する指摘ではありませんが、ユーザーがトラッキングを許可するように奨励または指示していることが問題とされています。
  • 具体的には、権限リクエストの前にメッセージが表示され、ユーザーが「Consent」というボタンを押すことで進行するようになっています。このボタンの表示文言として、「Continue」や「Next」といった言葉を使用することを推奨しています。

対応方法

  1. アプリ内で、トラッキングのリクエストの前に表示されるメッセージのボタンの文言を変更してください。具体的には、”Consent”の代わりに”Continue”や”Next”といった文言を使用してください。
  2. 必要に応じて、トラッキングの許可をリクエストする理由を、リクエストが表示される前にユーザーに明示しても良いとのこと。例えば、アプリの特定の機能がトラッキングなしでは機能しない場合、ユーザーに通知を送り、設定アプリへのリンクを提供してもよいとのことです。