利用規約およびプライバシーポリシーフロー
このページでは、MAXの利用規約およびプライバシーポリシーフローを使用して、利用規約およびプライバシーポリシーの承諾を促す方法について説明しています。
SDK 12.0.0 リリース
AppLovin MAX SDK v12.0.0は、Google UMPを使用する場合、TCF v2に準拠しています。MAX SDKは、同意文字列およびAC文字列を取得し、TCF v2同意で説明されている通り、TCF v2の同意文字列 / ステータスをメディエーションネットワークに転送することができます。
AppLovinの自動フローまたはその他の方法でGoogle UMPをCMPとして使用しない場合、選択したCMPが連携するすべてのメディエーションネットワークをサポートしていることを確認してください。
CMPを使用しない場合は、GDPRおよびその他の地域における同意や該当フラグで説明されているとおり、AppLovin SDKのバイナリ同意フラグを引き続き設定する必要があります。
Google UMP 自動連携
Versions 12.0.0以降のAppLovin MAX SDKは、Google UMPとの連携を自動化します。 そのため、MAX SDK以外にGoogle UMPを手動で連携する必要はありません。 この機能は完全にオプトインであり、AppLovinがGoogle UMPとの連携を有効化するための手順をサポートします。 以下は、可視化されたフローです。
- MAX SDKを初期化します。
- 地域別にコンプライアンスを確認:AppLovinは、ユーザーがGDPR地域に居住しているかどうかを特定します。ユーザーがGDPR地域にいる場合、MAX SDKはGoogle UMPを表示します。
- (iOSのみ)Google UMPがATTプロンプトを表示するように設定されていない場合、またはユーザーがGoogle UMPフローを確認していない場合、MAX SDKがMAXのATTプロンプトを表示します。
- MAX SDKは初期化完了コールバックを呼び出し、広告の読み込みを開始できるようになったことを通知します。
Google UMPを有効化
AdMobダッシュボードでGoogle CMPを有効化する
MAXの同意フローでGoogle GDPRフォームを表示するには、まずAdMobダッシュボードでGoogle GDPRメッセージを作成し、公開する必要があります。 それを行うには、以下の手順に従ってください。
- apps.admob.comからAdMobアカウントにログインします。
- まだ設定していない場合は、AdMobダッシュボードにアプリを追加します。
- Privacy & messagingをクリックします。
- GDPRをクリックします。
- Create messageをクリックします。 GDPR messageページが開きます。
- メッセージを表示したいアプリを選択します:
- Select appsをクリックします。
- 希望のアプリを選択します。
- Saveをクリックします。
- メッセージを表示する言語を選択します。
- User consent optionsセクションにて、Consent or Manage optionsを選択します。
- Targetingセクションにて、Countries subject to GDPR (EEA and UK)を選択します。
- Continueをクリックします。 Edit messageページが開きます。
- Messageフィールドに、後でメッセージを特定しやすくするために、わかりやすいメッセージ名を入力してください。この名前はPrivacy & messagingページにのみ表示され、ユーザーには表示されません。
- Stylingタブを選択します。
- Globalセクションで、Secondary colorを白色 (
#ffffff
)に設定します。 - Buttonsセクションで、Secondary colorを灰色(
#6e6e6e
)に設定します。
- Globalセクションで、Secondary colorを白色 (
- Publishをクリックします。
広告パートナーリストをカスタマイズする
GDPRメッセージで表示する広告パートナーをカスタマイズする方法:
- GDPR settingsページを開きます。
- Review your ad partnersにある編集アイコン(
)をクリックします。 - Custom ad partnersのトグルを選択し、次にアプリに連携したすべてのネットワークを選択してください。
- Confirmをクリックします。
- GDPR settingsページの下のSaveをクリックします。
MAX利用規約とプライバシーポリシーフローを有効化
まず、Google User Messaging Platform SDKの依存関係をアプリのターゲットに追加します。
これをプロジェクトの Podfile
で行ってください。
target '«your-project-name»' do pod 'Google-Mobile-Ads-SDK'end
アプリの Info.plist
に、Stringタイプの NSUserTrackingUsageDescription
という新しいキーを作成します。この文字列は、アプリがユーザーまたはデバイスをトラッキングするデータの使用許可を求める理由をユーザーに伝えるためのものです。
AppLovinは、その値を「This uses device info for more personalized ads and content(よりパーソナライズされた広告やコンテンツのためにデバイス情報を使用します)」に設定することを推奨しています。
MAX利用規約とプライバシーポリシーフローは、プログラムまたはアプリケーションリソースに設定ファイルを追加することで有効化することができます。 以下のセクションでは、これらの方法について説明します。
アプリをApp Store Connectに提出する際、iOS 14.5以降のApp Tracking Transparencyフレームワークの許可リクエストを有効にしたことをレビュアーに通知する必要があります。 これはレビューノートセクションで行ってください。 これを行わない場合、Appleはビルドを拒否する可能性があります。
プログラムで
MAX利用規約とプライバシーポリシーフローをプログラムで有効化するには、settings
オブジェクトの複数のプロパティをSDKの初期化前に設定します。以下のコードサンプルはその方法を示しています。
#import <AppLovinSDK/AppLovinSDK.h>⋮
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ ⋮ ALSdkSettings *settings = [[ALSdkSettings alloc] init]; settings.termsAndPrivacyPolicyFlowSettings.enabled = YES; settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = [NSURL URLWithString: @"«https://your-company-name.com/privacy-policy»"];
// Terms of Service URL is optional settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = [NSURL URLWithString: @"«https://your-company-name.com/terms-of-service»"];
ALSdk *sdk = [ALSdk sharedWithKey: sdkKey settings: settings];
// Set the mediation provider value to @"max" to ensure proper functionality sdk.mediationProvider = @"max"; [sdk initializeSdkWithCompletionHandler:^(ALSdkConfiguration *configuration) { ⋮ }];}
@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate{ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ⋮ let settings = ALSdkSettings() settings.termsAndPrivacyPolicyFlowSettings.isEnabled = true settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = URL(string: "«https://your-company-name.com/privacy-policy»")
// Terms of Service URL is optional settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = URL(string: "«https://your-company-name.com/terms-of-service»")
let sdk = ALSdk.shared(with: settings)
// Please make sure to set the mediation provider value to "max" to ensure proper functionality sdk.mediationProvider = "max" sdk.initializeSdk { (configuration: ALSdkConfiguration) in ⋮ } }}
AppLovin-Settings.plist
アプリのAppLovin-Settings.plist
を使用してMAX利用規約とプライバシーポリシーフローを有効にするには、以下を行ってください。
- プロジェクトのmain targetに、
AppLovin-Settings.plist
という名前の新しいプロパティリストファイルを追加します。 AppLovin-Settings.plist
で、DictionaryタイプのConsentFlowInfo
という名前の新しいキーを作成します。ConsentFlowInfo
内に以下のキーと値のペアを追加します。- キー
ConsentFlowEnabled
と値YES
を持つBoolean
。 - キー
ConsentFlowPrivacyPolicy
とプライバシーポリシーURLの値を持つString
。 - オプションで、キー
ConsentFlowTermsOfService
と利用規約URLの値を含む String。
- キー
最終的な結果は次のようになります。
連携
SDKを初期化する際に、 SDKは同意フローを表示します。 ユーザーがフローを完了すると、SDKはinitialization-completionコールバックを呼び出します。
MMP(モバイル計測パートナー)の連携でユーザーIDを設定する場合は、AppLovinのユーザーIDを設定する場所で設定してください。以下のコードスニペットは、Adjustを例にしています。AdjustドキュメントのAdjustを初期化する方法やユーザーIDを設定する方法を参照してください。
#import <AppLovinSDK/AppLovinSDK.h>#import <Adjust/Adjust.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ ⋮ // Set the mediation provider value to @"max" to ensure proper functionality [ALSdk shared].mediationProvider = @"max";
[ALSdk shared].userIdentifier = @"«user-ID»"; [Adjust addSessionCallbackParameter: @"«your-user-ID-key»" value: @"«user-ID»"];
[[ALSdk shared] initializeSdkWithCompletionHandler:^(ALSdkConfiguration *configuration) {
// You can check app transparency tracking authorization via configuration.appTrackingTransparencyStatus // Initialize other 3rd-party SDKs - do not initialize mediated advertising SDKs; MAX will automatically do that for you. Not following this step will result in noticeable integration issues
// Initialize the Adjust SDK inside the AppLovin SDK's initialization callback ADJConfig *adjustConfig = [ADJConfig configWithAppToken: @"«your-Adjust-app-token»" environment: ADJEnvironmentSandbox or ADJEnvironmentProduction]; [Adjust appDidLaunch: adjustConfig];
// Start loading ads }];}
import AppLovinSDKimport Adjust
@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate{ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ⋮ // Set the mediation provider value to "max" to ensure proper functionality ALSdk.shared().mediationProvider = "max"
ALSdk.shared().userIdentifier = "«user-ID»" Adjust.addSessionCallbackParameter("«your-user-ID-key»", value: "«user-ID»")
ALSdk.shared().initializeSdk { (configuration: ALSdkConfiguration) in // App transparency tracking authorization can be checked via `configuration.appTrackingTransparencyStatus` // Initialize other 3rd-party SDKs - do not initialize mediated advertising SDKs, MAX will do that for you automatically. Not following this step will result in noticeable integration issues
// Initialize the Adjust SDK inside the AppLovin SDK's initialization callback let adjustConfig = ADJConfig(appToken: "«your-Adjust-app-token»", environment: ADJEnvironmentSandbox or ADJEnvironmentProduction) Adjust.appDidLaunch(adjustConfig)
// Start loading ads } }}
NSUserTrackingUsageDescriptionをローカライズ
以下の表には、英語(ベース)の説明と、任意で使用できるさまざまなローカリゼーションの例が示されています。アプリをローカライズする方法については、ドキュメント > Xcode > Localization の手順を参照してください。
ローカル | String |
---|---|
英語 (base) | This uses device info for more personalized ads and content |
簡体中国語 (ZhHans) | 我们使用设备信息来提供个性化的广告和内容。 |
繁体中国語(ZhHant) | 我們使用設備信息來提供個性化的廣告和內容。 |
フランス語 (fr) | Cela permet d’utiliser les informations du téléphone pour afficher des contenus publicitaires plus pertinents. |
ドイツ語 (de) | Dies benutzt Gerätinformationen für relevantere Werbeinhalte |
日本語 (Ja) | これはユーザーデータをもとに、より関連性の高い広告コンテンツをお客様に提供します |
韓国語 (Ko) | 보다 개인화된 광고 및 콘텐츠를 위해 기기 정보를 사용합니다. |
スペイン語 (es) | Esto utiliza la información del dispositivo para anuncios y contenido más personalizados |
既存ユーザーにGDPRフローを表示
AppLovinでは、GDPR地域の既存ユーザーが再度GDPRフローに入れるようにすることを推奨しています。
通常、ユーザーはアプリの「設定」セクションにある「プライバシー設定の管理」から設定を行います。
SDK API ALSdkConfiguration.consentFlowUserGeography
を使って、ユーザーがGDPR地域内にいるかどうかを判断することが可能です。
consentFlowUserGeography
がALConsentFlowUserGeographyGDPR
の場合、ユーザーはGDPR地域内にいます。
そうであれば、条件付きでその設定オプションをユーザーに表示することができます。
ユーザーがManage Existing Privacy Settings(またはそれ相当)をクリックした際に、 -[ALCMPService showCMPForExistingUserWithCompletion]
を呼び出します。
これにより、ユーザーの既存の同意情報がリセットされます。
#import "MyViewController.h"#import <AppLovinSDK/AppLovinSDK.h>
@interface MyViewController ()
@end
@implementation MyViewController
- (void)loadAndShowCMPFlow{ ALCMPService *cmpService = [ALSdk shared].cmpService;
[cmpService showCMPForExistingUserWithCompletion:^(ALCMPError * _Nullable error) {
if ( !error ) { // The CMP alert was shown successfully. } }];}
@end
import AppLovinSDK
class MyViewController: UIViewController{ func loadAndShowCmpFlow() { let cmpService = ALSdk.shared().cmpService cmpService.showCMPForExistingUser { error in
if (nil == error) { // The CMP alert was shown successfully. } } }}
テスト
GDPR地域外でGoogle CMPをテストする場合は、以下のいずれかの方法を使用してデバッグ用のユーザー地理情報を設定してください。
プログラムで
AppLovin-Settings.plist
デバッグ用のユーザー地理情報を設定するには、ConsentFlowInfo
オブジェクト内にキー ConsentFlowDebugUserGeography
と文字列値 gdpr
を追加します。
Mediation Debuggerを使用したGoogle UMP連携テスト
インストールを検証する
MAX Mediation DebuggerのPrivacyセクションでは、CMP (同意管理プラットフォーム)の行に、連携したGoogle認定のCMP SDKの名前が表示されます。 Google UMP SDKの連携に成功すると、名称として「Google consent management solutions」と表示されます。
IAB TCFパラメーターを検証する
CMP (同意管理プラットフォーム)行を選択すると、IAB TCFパラメーターIABTCF_gdprApplies、IABTCF_TCString、IABTCF_AddtlConsentを調べることができます。 後者の2つについては、行をクリックしてその値をコピーするか共有することができます。
欠落したネットワークを確認する
CMP CONFIGURATIONセクションでは、Google UMP設定に連携されているネットワークや欠落しているネットワークを確認できます。 ここには、MAXで利用可能なすべてのネットワークが掲載されています。 アプリケーションに連携していないネットワークについては、考慮する必要がありません。
CMPフローには、アプリケーションに連携するすべてのネットワークを含める必要があります。 これらのネットワークに欠落がないか確認し、問題を解決する方法:
- CMPフローを完了し、すべてのネットワークに同意を付与します。
- Mediation Debuggerを開きます。
Mediation DebuggerはTCとACの文字列を解析し、2つのリストを表示します:
- CMPフローに記載した連携ネットワーク
- 追加が必要な可能性がある、欠落したネットワーク(CMP CONFIGURATIONセクションのConfigured CMP Networks の下)。
- MISSING ATP NETWORKSまたはMISSING TCF VENDORSリストに欠落しているネットワークが表示されます。
これらのいずれかがアプリケーションに連携したネットワークの場合:
- CMPのダッシュボードに戻ります。 GDPRメッセージでカバーされるネットワークに、欠落しているネットワークを追加します (Googleの統一同意フローでの設定方法については、広告パートナーリストをカスタマイズする を参照してください)」。
- アプリを再起動します。
すべてのネットワークがCMPフローに正しく含まれていることを確認するまで、これらの手順を繰り返します。


メディエーションネットワークの同意ステータスの検証
すべてのネットワークの同意ステータスを表示するには、Mediation DebuggerにてNetwork Consent Statusesを展開します。 Mediation DebuggerはTC文字列を解析し、すべてのネットワークの同意ステータスを表示します。 また、Google UMPが生成するAC文字列から解析するAppLovinの同意ステータスも表示します。