利用規約およびプライバシーポリシーフロー
このページでは、MAXの利用規約およびプライバシーポリシーフローを使用して、利用規約およびプライバシーポリシーの承諾を促す方法について説明しています。
SDK 12.0.0 リリース
AppLovin MAX SDK, when used with Google UMP, complies with TCF v2: the MAX SDK can ingest the consent string and the AC string and can forward the TCF v2 Consent strings / states to the mediated networks as described in TCF v2 Consent.
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のみ)
- 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利用規約とプライバシーポリシーフローを有効化
はじめに、モジュールのアプリレベルのGradleファイルにGoogle User Messaging Platform SDKの依存関係を追加します。
このファイルは通常app/build.gradle
です。
dependencies { implementation 'com.google.android.ump:user-messaging-platform:2.1.0'}
dependencies { implementation("com.google.android.ump:user-messaging-platform:2.1.0")}
MAX規約とプライバシーポリシーフローは、プログラムを利用するか、アプリケーションリソースに設定ファイルを追加することで有効にできます。 以下のセクションでは、これらの方法について説明します。
プログラムで
MAX規約とプライバシーポリシーフローをプログラムで有効にするには、SDKのsettings
オブジェクトのプロパティをいくつか設定します。
SDKを初期化する前に、以下のコードサンプルを参考に設定を行ってください。
package com.applovin.apps.test;
import android.net.Uri;
import com.applovin.sdk.AppLovinMediationProvider;import com.applovin.sdk.AppLovinSdk;import com.applovin.sdk.AppLovinSdkSettings;
public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate();
val settings = AppLovinSdk.getInstance( this ).getSettings(); settings.getTermsAndPrivacyPolicyFlowSettings().setEnabled( true ); settings.getTermsAndPrivacyPolicyFlowSettings().setPrivacyPolicyUri( Uri.parse( "«https://your-company-name.com/privacy-policy»" ) );
// Terms of Service URL is optional settings.getTermsAndPrivacyPolicyFlowSettings().setTermsOfServiceUri( Uri.parse( "«https://your-company-name.com/terms-of-service»" ) ); // Showing Terms & Privacy Policy flow in GDPR region is optional (disabled by default) settings.getTermsAndPrivacyPolicyFlowSettings().setShowTermsAndPrivacyPolicyAlertInGdpr( true );
// Set the mediation provider value to "max" to ensure proper functionality AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder( "«SDK-key»", this ) .setMediationProvider( AppLovinMediationProvider.MAX ) .build();
// Initialize the SDK with the configuration AppLovinSdk.getInstance( this ).initialize( initConfig, new AppLovinSdk.SdkInitializationListener() { @Override public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig) { ⋮ } } ); }}
package com.applovin.apps.test
import android.net.Uriimport com.applovin.sdk.AppLovinMediationProviderimport com.applovin.sdk.AppLovinSdkimport com.applovin.sdk.AppLovinSdkSettings
class MyApplication : Application(){ override fun onCreate() { super.onCreate()
val settings = AppLovinSdk.getInstance(this).settings settings.termsAndPrivacyPolicyFlowSettings.isEnabled = true settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyUri = Uri.parse("«https://your-company-name.com/privacy-policy»")
// Terms of Service URL is optional settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceUri = Uri.parse("«https://your-company-name.com/terms-of-service»") // Showing Terms & Privacy Policy flow in GDPR region is optional (disabled by default) settings.termsAndPrivacyPolicyFlowSettings.showTermsAndPrivacyPolicyAlertInGdpr = true
// Set the mediation provider value to "max" to ensure proper functionality val initConfig = AppLovinSdkInitializationConfiguration.builder("«SDK-key»", this) .setMediationProvider(AppLovinMediationProvider.MAX) ).build()
// Initialize the SDK with the configuration AppLovinSdk.getInstance(this).initialize(initConfig) { sdkConfig -> ⋮ } }}
SDK KeyはAppLovinダッシュボードのAccount > General > Keys のセクションにてご確認ください。
AndroidリソースでMAXの利用規約とプライバシーポリシーフローを有効にする方法
- ローリソースディレクトリに、
applovin_settings.json
という名前のJSONファイルを作成します。 - このファイル内で、キー
consent_flow_settings
を含む新しいJSONオブジェクトを作成します。 - この
consent_flow_settings
オブジェクト内に、以下のキーと値のペアを追加します。- キー
consent_flow_enabled
と値true
が含まれます。 - キー
consent_flow_privacy_policy
とプライバシーポリシーURLの値が含まれます。 - オプションで、キー
consent_flow_terms_of_service
と利用規約URLの値が含まれます。 - オプションとして、キー
consent_flow_show_terms_and_privacy_policy_alert_in_gdpr
と値true
で、GDPR地域の利用規約とプライバシーポリシーのアラートをGoogle UMPフローの前に表示します。
- キー
最終的な結果は次のようになります。
{ "consent_flow_settings": { "consent_flow_enabled": true, "consent_flow_terms_of_service": "«https://your-company-name.com/terms-of-service»", "consent_flow_privacy_policy": "«https://your-company-name.com/privacy-policy»", "consent_flow_show_terms_and_privacy_policy_alert_in_gdpr": true }}
連携
SDKを初期化する際に、 SDKは同意フローを表示します。 ユーザーがフローを完了すると、SDKはinitialization-completionコールバックを呼び出します。
MMP(モバイル計測パートナー)の連携でユーザーIDを設定する場合は、AppLovinのユーザーIDを設定する場所で設定してください。以下のコードスニペットは、Adjustを例にしています。AdjustドキュメントのAdjustを初期化する方法やユーザーIDを設定する方法を参照してください。
package com.applovin.apps.test;
import com.adjust.sdk.Adjust;import com.adjust.sdk.AdjustConfig;import com.adjust.sdk.LogLevel;import com.applovin.sdk.AppLovinMediationProvider;import com.applovin.sdk.AppLovinSdk;import com.applovin.sdk.AppLovinSdkConfiguration;import com.applovin.sdk.AppLovinSdkInitializationConfiguration;import com.applovin.sdk.AppLovinSdkSettings;
import lombok.val;
public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate();
// Create the initialization configuration AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder( "«SDK-key»", this ) .setMediationProvider( AppLovinMediationProvider.MAX ) .build();
// Set the user ID val settings = AppLovinSdk.getInstance( this ).getSettings(); settings.setUserIdentifier( "«user-ID»" );
// Initialize the SDK with the configuration AppLovinSdk.getInstance( this ).initialize( initConfig, new AppLovinSdk.SdkInitializationListener() { @Override public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig) { // Initialize the Adjust SDK inside the AppLovin SDK's initialization callback AdjustConfig adjustConfig = new AdjustConfig( this, "«your-Adjust-app-token»", AdjustConfig.ENVIRONMENT_SANDBOX or AdjustConfig.ENVIRONMENT_PRODUCTION ); Adjust.onCreate( adjustConfig );
// Start loading ads } } ); }}
package com.applovin.apps.test
import com.adjust.sdk.Adjustimport com.adjust.sdk.AdjustConfigimport com.applovin.sdk.AppLovinMediationProviderimport com.applovin.sdk.AppLovinSdkimport com.applovin.sdk.AppLovinSdkInitializationConfiguration
class MyApplication : Application(){ override fun onCreate() { super.onCreate()
// Create the initialization configuration val initConfig = AppLovinSdkInitializationConfiguration.builder("«SDK-key»", this) .setMediationProvider(AppLovinMediationProvider.MAX) .build()
// Configure the SDK settings if needed before or after SDK initialization. val settings = AppLovinSdk.getInstance(this).settings settings.userIdentifier = "«user-ID»"
// Initialize the SDK with the configuration AppLovinSdk.getInstance(this).initialize(initConfig) { sdkConfig ->
// 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 val adjustConfig = AdjustConfig( this, "«your-Adjust-app-token»", AdjustConfig.ENVIRONMENT_SANDBOX or AdjustConfig.ENVIRONMENT_PRODUCTION ) Adjust.onCreate(adjustConfig )
// Start loading ads } }}
既存ユーザーにGDPRフローを表示
AppLovinでは、GDPR地域の既存ユーザーが再度GDPRフローに入れるようにすることを推奨しています。通常、ユーザーがGDPRフローに入るには、アプリの設定セクションで既存のプライバシー設定の管理オプションを利用します。
ユーザーがGDPR地域内にいる場合にのみ、設定オプションを表示させることができます。
ユーザーがGDPR地域内にいることを確認するには、AppLovinSdkConfiguration.getConsentFlowUserGeography()
を呼び出します。ユーザーがGDPR地域にいる場合は、getConsentFlowUserGeography()
がConsentFlowUserGeography.GDPR
を返します。
ユーザーが既存のプライバシー設定の管理またはそれと同等のオプションをクリックした際に、AppLovinCmpService.showCmpForExistingUser()
を呼び出します。
これにより、ユーザーの既存の同意情報がリセットされることに注意してください。
package com.applovin.apps.test;
import android.app.Activity;
import com.applovin.sdk.AppLovinSdk;import com.applovin.sdk.AppLovinCmpService;
public class MyActivity extends Activity{ private void showAppLovinConsentFlow() { AppLovinCmpService cmpService = AppLovinSdk.getInstance( this ).getCmpService();
cmpService.showCmpForExistingUser( this, new AppLovinCmpService.OnCompletedListener() { @Override public void onCompleted(final AppLovinCmpError error) { if ( null == error ) { // The CMP alert was shown successfully. } } } ); }}
package com.applovin.apps.test
import android.app.Activity
import com.applovin.sdk.AppLovinSdk
public class MyActivity : Activity(){ private fun showAppLovinConsentFlow() { val cmpService = AppLovinSdk.getInstance(this).cmpService cmpService.showCmpForExistingUser(this) { error -> if (null == error) { // The CMP alert was shown successfully. } } }}
テスト
GDPR地域外でGoogle CMPをテストする場合は、以下のいずれかの方法を使用して、デバッグ用のユーザー地理情報をGDPR
に設定します。
AppLovinSdkSettings settings = AppLovinSdk.getInstance( this ).getSettings();⋮settings.getTermsAndPrivacyPolicyFlowSettings().setDebugUserGeography( AppLovinSdkConfiguration.ConsentFlowUserGeography.GDPR );
val settings = AppLovinSdk.getInstance(this).settings⋮settings.termsAndPrivacyPolicyFlowSettings.debugUserGeography = AppLovinSdkConfiguration.ConsentFlowUserGeography.GDPR
デバッグ用のユーザー地理情報を設定するには、consent_flow_settings
オブジェクトにキーconsent_flow_debug_user_geography
と値gdpr
を追加します。
{ "consent_flow_settings": { ⋮ "consent_flow_debug_user_geography": "gdpr" }}
次に、MAX SDKを初期化する前に、テストデバイスのハッシュIDを設定します。デバイスでアプリが実行されると、Google CMP SDKは、このテストデバイスのハッシュIDをログに記録します。以下の呼び出しで、テストデバイスのハッシュIDを設定してください。
settings.setExtraParameter("google_test_device_hashed_id", "«your-test-device-hashed-ID»");
settings.setExtraParameter("google_test_device_hashed_id", "«your-test-device-hashed-ID»")
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の同意ステータスも表示します。