This page explains how you can use the MAX Terms Flow to prompt acceptance of your Terms of Use and Privacy Policy, based on the relevant operating system (Android or iOS):
-
Coming soon.
-
For iOS, you can use the MAX Terms Flow to prompt users to accept your Terms of Use and Privacy Policy and to support compliance with Apple’s App Tracking Transparency framework.
MAX provides this built-in flow in iOS SDK 10.0.0 and later, as well as a standalone solution for iOS 14.5+. Please note that AppLovin disables the MAX Terms Flow by default, because many publishers use their own flow for these purposes. To enable the MAX Terms Flow, follow the instructions below.
Overview
- On iOS 14.5+, the SDK typically presents the MAX Terms Flow to your user when your app initializes the SDK, if the user has a “not determined” authorization status for ATT purposes.
- Users who have indicated that they do not allow apps to ask to track them (by setting Settings > Privacy, Allow Apps to Request to Track to true) will not see the ATT aspect of this flow, but they will see the Terms phase of the flow.
- By default, certain ineligible users also do not see the ATT phase of the MAX Terms Flow, but they may see the Terms phase of the flow. Ineligible users include the following:
- users on iOS versions before iOS 14.5
- users with child accounts, or who are under age 18, who are signed in via their Apple ID
- users whose Apple ID is managed by an educational institution
- users whose Apple ID has a configuration profile that limits tracking
- users whose Apple ID was created in the past three days
- To optimize performance and to improve the user experience, localize the
NSUserTrackingUsageDescription
string. See the examples below. - You must include values for the Privacy Policy URL and base User Tracking Usage Description in order to enable the flow. MAX provides English (base) values and a variety of pre-selected localization values that you can use for this purpose.
- The Terms of Service URL value is optional, but AppLovin encourages you to include it where possible.
When you submit your app to App Store Connect for review, you must notify the reviewer, in the Review Notes section, that you have enabled the App Tracking Transparency framework permission request for iOS 14.5+ only. If you do not do this, Apple may reject your build.
Enabling MAX Terms Flow
You can enable the MAX Terms Flow by using your app’s
Info.plist
, which is located in your application descriptor XML file. First, add theNSUserTrackingUsageDescription
string into your app’sInfo.plist
. This string is how you inform your user why the app is requesting permission to use data that tracks the user or the device. AppLovin recommends that you use the string “This uses device info for more personalized ads and content”.To enable the MAX Terms Flow by using your app’s
Info.plist
, do the following:- In your app’s
Info.plist
, create a new key namedAppLovinConsentFlowInfo
of typeDictionary
. - Add a new key-value pair inside
AppLovinConsentFlowInfo
with the keyAppLovinConsentFlowEnabled
and the valuetrue
. - Add a new key-value pair inside
AppLovinConsentFlowInfo
with the keyAppLovinConsentFlowPrivacyPolicy
and the value of your Privacy Policy URL. - Optionally, add a new key-value pair inside
AppLovinConsentFlowInfo
with the keyAppLovinConsentFlowTermsOfService
and the value of your Terms of Service URL.
The final result should look similar to this:
Integration
The SDK presents the MAX Terms Flow when you initialize the SDK. When the user completes the flow, the SDK calls your initialization-completion callback.
You must wait until the user finishes the MAX Terms Flow before you initialize third-party SDKs (such as MMPs or analytics SDKs). For this reason, initialize such SDKs from within your initialization-completion callback. If you were to initialize these third-party SDKs before the user completes the flow, these third-party SDKs would not be able to access relevant identifiers, which would adversely affect ad measurement reporting, and ad revenue.
Do not initialize MAX mediated network SDKs in your initialization callback. MAX performs this initialization automatically.
If you set the user ID in your MMP integration, set it where you set the AppLovin user ID. The code snippets below use Adjust as an example. Please refer to Adjust’s documentation for more information on how to initialize Adjust and set the user ID.
Localizing
NSUserTrackingUsageDescription
The table below gives you an English (base) description and a variety of localizations that you can use at your discretion. Please follow the Documentation > Xcode > Localization instructions to learn how to localize your app.
Locale String English (base) This uses device info for more personalized ads and content Chinese Simplified (ZhHans) 点击"允许"以使用设备信息获得更加相关的广告内容 Chinese Traditional (ZhHant) 點擊"允許"以使用設備信息獲得更加相關的廣告內容 French (fr) "Autoriser" permet d'utiliser les infos du téléphone pour afficher des contenus publicitaires plus pertinents German (de) "Erlauben" drücken benutzt Gerätinformationen für relevantere Werbeinhalte Japan (Ja) "許可"をクリックすることで、デバイス情報を元により最適な広告を表示することができます Korean (Ko) "허용"을 누르면 더 관련성 높은 광고 콘텐츠를 제공하기 위해 기기 정보가 사용됩니다 Spanish (es) Presionando "Permitir", se usa la información del dispositivo para obtener contenido publicitario más relevante
Consent and Data APIs
In order to ensure you obtain consent from your users in applicable jurisdictions on behalf of AppLovin’s monetization partners and correctly pass consent flag values to AppLovin, please review Privacy—Consent and Data APIs.