利用規約とプライバシーポリシーのフロー

このページでは、MAXの利用規約とプライバシーポリシーのフロー(Terms & Privacy Policy Flow)を使用して、利用規約およびプライバシーポリシーへの同意を促す方法について説明します。

MAX SDKに含まれているCMPフローを使用することも、独自のフローを統合することもできます。 独自のCMPフローを統合する場合は、MAX SDKを初期化する前にそのフローが完了していることを確認してください。

iOS 17.4のバグにより、App Tracking Transparency (ATT) プロンプトが、ユーザーがATTを拒否したと誤って早期に判断してしまう場合があります。 これにより、ATTに同意する可能性のあるユーザーであっても、AppLovin SDKがLAT設定された広告ネットワークで広告ユニットを初期化してしまいます。 AppLovinのUnified Consent Flowを使用している場合は、この問題を軽減するために最新のiOS SDK (12.3.0以降) にアップデートしてください。

AppLovin MAX SDKは、Google UMPと併用することでTCF v2に準拠します。 MAX SDKは、TCF v2同意で説明されているように、同意文字列およびAC文字列を取り込み、TCF v2同意文字列/ステータスをメディエーション対象のネットワークに転送できます。

AppLovinの自動フローまたはその他の方法でGoogle UMPをCMPとして使用しない場合は、選択したCMPが統合するすべてのメディエーション対象ネットワークをサポートしていることを確認する必要があります。

CMPを使用しない場合は、GDPRおよびその他の地域における同意およびその他の適用可能なフラグで説明されているように、AppLovin SDKのバイナリ同意フラグを設定し続ける必要があります。

MAXを通じてGoogleデマンドにアクセスする場合は、統合プロセスを開始する前にGoogle CMPの要件を必ず確認してください。

Google UMPの自動化

AppLovin MAX SDKは、Google UMPの統合を自動化します。 Google UMPを手動で統合する必要はありません。 これはオプトイン方式であり、AppLovinはこのGoogle UMP統合を有効にする方法についての手順を提供します。 以下はフローの視覚的な表現です。

MAX SDKの初期化。GDPR地域内?Google UMPフロー。MAX利用規約/プライバシーポリシーフロー。MAX ATTプロンプト(iOSのみ)。SDK初期化完了コールバック

  1. MAX SDKが初期化されます。
  2. 地域のコンプライアンスチェック:AppLovinはユーザーがGDPR地域にいるかどうかを判断します。該当する場合、MAX SDKはGoogle UMPを表示します。
  3. (iOSのみ)Google UMPがATTプロンプトを表示するように設定されていない場合、またはユーザーにGoogle UMPフローが表示されなかった場合、MAX SDKはMAX ATTプロンプトを表示します。
  4. MAX SDKは初期化完了コールバックを呼び出し、広告のロードを開始できることを通知します。

TCFの同意ステータスは、以下のいずれかの状況においてfalseになる場合があります。

  1. ユーザーが、メッセージで指定されたデータ収集の条件に同意しないことを示した。
  2. アプリケーションに統合した一部の広告ネットワークがUMPに設定されていないため、UMPが常に同意を拒否する。 これを修正する方法については、「不足しているネットワークの確認」を参照してください。

Google UMPの有効化

AdMobダッシュボードでのGoogle CMPの有効化

MAX同意フローでGoogle GDPRフォームを表示するには、まずAdMobダッシュボードでGoogle GDPRメッセージを作成して公開する必要があります。 手順は以下の通りです。

  1. apps.admob.comからAdMobアカウントにサインインします。
  2. プライバシーとメッセージをクリックします。
  3. GDPRをクリックします。
  4. メッセージを作成をクリックします。 GDPRメッセージページが開きます。
  5. メッセージを表示するアプリを選択します。
    1. アプリを選択をクリックします。
    2. 対象のアプリを選択します。
    3. 保存をクリックします。
  6. メッセージを表示する言語を選択します。
  7. ユーザーの同意オプションセクションで、同意またはオプションの管理を選択します。

**閉じる(同意しない)**オプションにはチェックを入れないでください。

  1. ターゲット設定セクションで、すべての場所を選択します。
  2. 続行をクリックします。 メッセージの編集ページが開きます。
  3. メッセージ名フィールドに、後でメッセージを識別しやすいわかりやすい名前を入力します。 この名前はプライバシーとメッセージページに表示され、ユーザーには表示されません。
  4. スタイル設定タブを選択します。
    1. 全般セクションで、セカンダリ カラーを白(#ffffff)に設定します。
    2. ボタンセクションで、セカンダリ カラーをグレー(#6e6e6e)に設定します。
  5. 公開をクリックします。
広告パートナーリストのカスタマイズ

デフォルトのGDPRメッセージでは、Googleがすべての広告ネットワークパートナーを表示しない場合があります。 これらのネットワークを含めないと、広告収益に悪影響を及ぼす可能性があります。 このセクションの手順に従って、すべての広告パートナーがGDPRメッセージに表示されるようにしてください。

  1. GDPR設定ページを開きます。
  2. 広告パートナーの確認セクションの下にある編集アイコン()をクリックします。
  3. よく使われる広告パートナーを自動的に含めるまたはよく使われる広告パートナーを自動的に含めないのいずれかを選択します。 その後、アプリに統合したすべてのネットワークを選択します。

GoogleでGDPR認定されている広告パートナーのリストについては、Google AdMobヘルプサイトの「GDPRの広告パートナーの管理」を参照してください。

  1. 確認をクリックします。
  2. GDPR設定ページの下部にある保存をクリックします。

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利用規約とプライバシーポリシーフローをプログラムから有効にするには、SDKを初期化する前にSDKのsettingsオブジェクトの特定のプロパティを設定します。 以下のコードサンプルは、その方法を示しています。

#import <AppLovinSDK/AppLovinSDK.h>
⋮
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ⋮
  ALSdkSettings *settings = [ALSdk shared].settings;
  settings.termsAndPrivacyPolicyFlowSettings.enabled = YES;
  settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = [NSURL URLWithString: @"«https://your-company-name.com/privacy-policy»"];

  // 利用規約のURLは任意です
  settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = [NSURL URLWithString: @"«https://your-company-name.com/terms-of-service»"];
  // GDPR地域で利用規約とプライバシーポリシーのフローを表示するかどうかは任意です(デフォルトは無効)
  settings.termsAndPrivacyPolicyFlowSettings.showTermsAndPrivacyPolicyAlertInGDPR = YES;

  // 適切な機能を提供するために、メディエーションプロバイダーの値を @"max" に設定してください
  ALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
    builder.mediationProvider = ALMediationProviderMAX;
  }];

  // 設定を使用してSDKを初期化します
  [[ALSdk shared] initializeWithConfiguration: initConfig completionHandler:^(ALSdkConfiguration *sdkConfig) {
    ⋮
  }];
}

SDKキーは、AppLovinダッシュボードのAccount > General > Keysセクションで確認できます。

AppLovin-Settings.plist

アプリのAppLovin-Settings.plistを使用してMAX利用規約とプライバシーポリシーフローを有効にするには、以下の手順を行います。

  1. プロジェクトのメインターゲットに、AppLovin-Settings.plistという名前の新しいプロパティリストファイルを追加します。
  2. AppLovin-Settings.plistに、Dictionary型のConsentFlowInfoという新しいキーを作成します。 ConsentFlowInfoの中に、以下のキーと値のペアを追加します。
    1. キーがConsentFlowEnabled、値がYESBoolean
    2. キーがConsentFlowPrivacyPolicy、値がプライバシーポリシーのURLのString
    3. (任意)キーがConsentFlowTermsOfService、値が利用規約のURLのString
    4. (任意)キーがConsentFlowShowTermsAndPrivacyPolicyAlertInGDPR、値がYESBoolean。これにより、Google UMPフローの前にGDPR地域で利用規約とプライバシーポリシーのアラートが表示されます。

最終的な結果は以下のようになります。

Root > ConsentFlowInfo > ConsentFlowEnabled (Boolean) = YES, ConsentFlowPrivacyPolicy (String) = https://lionstudios.cc/privacy/, ConsentFlowTermsOfService (String) = https://lionstudios.cc/terms/

統合

SDKは、SDKの初期化時に同意フローを表示します。 ユーザーがフローを完了すると、SDKは初期化完了コールバックを呼び出します。

サードパーティSDK(MMPやアナリティクスSDKなど)を初期化する前に、ユーザーが同意フローを完了するまで待つ必要があります。 そのため、これらのSDKは初期化完了コールバック内で初期化してください。 ユーザーが同意フローを完了する前にサードパーティSDKを初期化すると、これらのSDKは関連する識別子にアクセスできなくなり、計測、レポート、および広告収益に重大な影響を及ぼします。

初期化コールバック内でMAXのメディエーション対象ネットワークSDKを初期化しないでください。 MAXは、この初期化を自動的に行います。

MMPの統合でユーザーIDを設定する場合は、AppLovinのユーザーIDを設定する場所と同じ場所で設定してください。 以下のコードスニペットでは、Adjustを例として使用しています。 Adjustの初期化方法およびユーザーIDの設定方法については、Adjustのドキュメント(Adjustの初期化方法およびユーザーIDの設定方法)を参照してください。

#import <AppLovinSDK/AppLovinSDK.h>
#import <Adjust/Adjust.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ⋮
    // 初期化設定を作成します
    ALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
      builder.mediationProvider = ALMediationProviderMAX;
    }];

    // 必要に応じて、SDK初期化の前後にSDK設定を構成します。
    ALSdkSettings *settings = [ALSdk shared].settings;
    settings.userIdentifier = @"«user-ID»";

    [Adjust addSessionCallbackParameter: @"«your-user-ID-key»" value: @"«user-ID»"];

    // 設定を使用してSDKを初期化します
    [[ALSdk shared] initializeWithConfiguration: initConfig completionHandler:^(ALSdkConfiguration *sdkConfig) {

        // configuration.appTrackingTransparencyStatus を介して、アプリのトラッキング透明性の追跡権限を確認できます
        // 他のサードパーティSDKを初期化します。メディエーション対象の広告SDKは初期化しないでください。MAXが自動的に行います。この手順に従わない場合、顕著な統合の問題が発生します

        // AppLovin SDKの初期化コールバック内でAdjust SDKを初期化します
        ADJConfig *adjustConfig = [ADJConfig configWithAppToken: @"«your-Adjust-app-token»"
                                                    environment: ADJEnvironmentSandbox or ADJEnvironmentProduction];
        [Adjust appDidLaunch: adjustConfig];

        // 広告のロードを開始します
    }];
}
NSUserTrackingUsageDescriptionのローカライズ

以下の表は、英語(ベース)の説明と、必要に応じて使用できるさまざまなローカライズ版を示しています。 アプリをローカライズする方法については、Documentation > Xcode > Localizationの手順を参照してください。

ロケール文字列
英語 (ベース)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フローに再進入できるようにすることをお勧めします。 通常、ユーザーはアプリの設定セクションにある既存のプライバシー設定の管理(Manage Existing Privacy Settings)などのオプションからこれを行います。 ユーザーがGDPR地域にいるかどうかは、SDK APIのALSdkConfiguration.consentFlowUserGeographyで判断できます。 consentFlowUserGeographyALConsentFlowUserGeographyGDPRの場合、ユーザーはGDPR地域にいます。 その場合、その設定オプションを条件付きでユーザーに表示できます。

ユーザーが既存のプライバシー設定の管理(またはそれに相当するもの)をクリックしたときに、-[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 )
    {
      // CMPアラートが正常に表示されました。
    }
  }];
}

@end
テスト

GDPR地域外でGoogle CMPをテストする場合は、以下に示すいずれかの手法を使用してデバッグ用のユーザー地域を設定します。

このフローは新規ユーザーにのみ表示されます。 CMPプロンプトを完了した後にフローをテストする場合は、アプリを一度削除してから再インストールする必要があります。

    プログラムによる設定

    デバッグ用のユーザー地域をGDPRに設定するには、以下のようなコードを使用します。

    ALSdk.shared.termsAndPrivacyPolicyFlowSettings.debugUserGeography = ALConsentFlowUserGeographyGDPR;
    
    AppLovin-Settings.plist

    デバッグ用のユーザー地域を設定するには、ConsentFlowInfoオブジェクトの下に、文字列値がgdprであるConsentFlowDebugUserGeographyキーを追加します。

    ConsentFlowInfo > ConsentFlowDebugUserGeography (String) = gdpr

Mediation Debuggerを使用したGoogle UMP統合のテスト

インストールの確認

MAX Mediation DebuggerのPrivacyセクションの下にある**CMP (Consent Management Platform)**の行には、統合したGoogle認定CMP SDKの名前が表示されます。 Google UMP SDKを統合した場合、名前として「Google consent management solutions」が表示されます。

MAX Mediation Debugger. CMP (Consent Management Platform): Google consent management solutions

IAB TCFパラメータの確認

CMP (Consent Management Platform)の行を選択すると、IAB TCFパラメータであるIABTCF_gdprAppliesIABTCF_TCString、およびIABTCF_AddtlConsentを検査できます。 後者の2つについては、行をクリックしてその値をコピーまたは共有できます。

IAB TCF Parameters: IABTCF_gdprApplies, IABTCF_TCString, IABTCF_AddtlConsent

不足しているネットワークの確認

CMP CONFIGURATIONセクションでは、Google UMP設定に統合されているネットワーク、または不足しているネットワークを確認できます。 これは、MAXで利用可能なすべてのネットワークの網羅的なリストです。 アプリケーションに統合していないネットワークについては無視して構いません。

CMPフローでは、アプリケーションに統合するネットワークをリストする必要があります。 それらのネットワークのいずれかが不足しているかどうかを確認し、この問題を修正するには、以下の手順を行います。

  1. すべてのネットワークに同意を付与して、CMPフローを完了します。
  2. Mediation Debuggerを開きます。 Mediation DebuggerはTC文字列とAC文字列を解析し、次の2つのリストを表示します。
    1. CMPフローにリストした統合済みネットワーク
    2. 追加が必要な可能性のある不足しているネットワーク(CMP CONFIGURATIONセクションのConfigured CMP Networksの下)
  3. MISSING ATP NETWORKSまたはMISSING TCF VENDORSリストに不足しているネットワークが表示されます。 これらがアプリケーションに統合したネットワークである場合:
    1. CMPのダッシュボードに戻ります。 GDPRメッセージの対象となるネットワークに、不足しているネットワークを追加します。 (GoogleのUnified Consent Flowでこれを行う方法については、広告パートナーリストのカスタマイズを参照してください。)
    2. アプリを再起動します。

すべてのネットワークがCMPフローに含まれていることを確認できるまで、これらの手順を繰り返します。

メディエーション対象ネットワークの同意ステータスの確認

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

Network Consent Statuses: TCF Vendors (TC String), ATP Networks (AC String)


search