UMP SDK を設定する

プラットフォームを選択: Android iOS Unity Flutter Android(レガシー)

Google User Messaging Platform(UMP)SDK は、プライバシー設定の管理に役立つプライバシーとメッセージングのツールです。詳しくは、 [プライバシーとメッセージ] についてをご覧ください。

メッセージ タイプを作成する

Ad Manager アカウントの [Privacy & messaging] タブで、[Available user message types] のいずれかを使用してユーザー メッセージを作成します。UMP SDK は、プロジェクトで設定された Ad Manager アプリケーション ID から作成されたプライバシー メッセージを表示しようとします。

詳しくは、 プライバシーとメッセージについてをご覧ください。

requestConsentInfoUpdate() を使用して、アプリの起動ごとにユーザーの同意情報の更新をリクエストする必要があります。このリクエストでは、次の点が確認されます。

  • 同意が必要かどうか 。たとえば、初回の場合や、以前の同意の決定が期限切れになった場合などです。
  • プライバシー オプションのエントリ ポイントが必要かどうか 。一部のプライバシー メッセージでは、ユーザーがいつでもプライバシー オプションを変更できるようにする必要があります。
@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      // Called when consent information is successfully updated.
    },
    (FormError error) {
      // Called when there's an error updating consent information.
    },
  );
}

プライバシー メッセージ フォームを読み込んで表示する

最新の同意ステータスを取得したら、loadAndShowConsentFormIfRequired() を呼び出して、ユーザーの同意を得るために必要なフォームを読み込みます。読み込み後、フォームがすぐに表示されます。

@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
        if (loadAndShowError != null) {
          // Consent gathering failed.
        }

        // Consent has been gathered.
      });
    },
    (FormError error) {
      // Handle the error.
    },
  );
}

プライバシー オプション

一部のプライバシー メッセージ フォームは、パブリッシャー レンダリングのプライバシー オプションのエントリ ポイントから表示され、ユーザーはいつでもプライバシー オプションを管理できます。 プライバシー オプションの エントリ ポイントでユーザーに表示されるメッセージについて詳しくは、 利用可能なユーザー メッセージ タイプをご覧ください。

プライバシー オプションのエントリ ポイントが必要かどうかを確認する

requestConsentInfoUpdate() を呼び出したら、getPrivacyOptionsRequirementStatus() をチェックして、アプリにプライバシー オプションのエントリ ポイントが必要かどうかを判断します。エントリ ポイントが必要な場合は、プライバシー オプション フォームを表示する、表示可能で操作可能な UI 要素をアプリに追加します。プライバシー エントリ ポイントが不要な場合は、UI 要素が表示されず、操作できないように設定します。

/// Helper variable to determine if the privacy options entry point is required.
Future<bool> isPrivacyOptionsRequired() async {
  return await ConsentInformation.instance
      .getPrivacyOptionsRequirementStatus() ==
      PrivacyOptionsRequirementStatus.required;
}

プライバシー オプションの要件ステータスの完全なリストについては、 PrivacyOptionsRequirementStatusをご覧ください。

プライバシー オプション フォームを表示する

ユーザーが要素を操作すると、プライバシー オプション フォームが表示されます。

ConsentForm.showPrivacyOptionsForm((formError) {
  if (formError != null) {
    debugPrint("${formError.errorCode}: ${formError.message}");
  }
});

ユーザーの同意を得て広告をリクエストする

広告をリクエストする前に、canRequestAds() を使用して、ユーザーから同意を得ているかどうかを確認します。

await ConsentInformation.instance.canRequestAds()

同意を得ながら広告をリクエストできるかどうかを確認する場所は次のとおりです。

  • UMP SDK が現在のセッションで同意を得た後。
  • requestConsentInfoUpdate() を呼び出した直後。UMP SDK は、以前のアプリ セッションで同意を得ている可能性があります。

同意を得るプロセスでエラーが発生した場合は、広告をリクエストできるかどうかを確認します。UMP SDK は、以前のアプリ セッションの同意ステータスを使用します。

冗長な広告リクエスト作業を回避する

同意を得た後、requestConsentInfoUpdate() を呼び出した後に canRequestAds() をチェックする場合は、両方のチェックで true が返される可能性のある冗長な広告リクエストを回避するロジックを実装してください。たとえば、ブール変数を使用します。

テスト

開発中のアプリで統合をテストする場合は、次の手順に沿ってプログラムでテストデバイスを登録します。アプリをリリースする前に、テストデバイス ID を設定するコードを必ず削除してください。

  1. requestConsentInfoUpdate() を呼び出します。
  2. ログ出力で、次のようなメッセージを確認します。ここには、デバイス ID とテストデバイスとしてデバイスを追加する方法が示されています。

    Android

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")
    to set this as a debug device.
    

    iOS

    <UMP SDK>To enable debug mode for this device,
    set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. テストデバイスの ID をクリップボードにコピーします。

  4. コードに変更を加え、 ConsentDebugSettings.testIdentifiers を呼び出し、 テスト用のデバイス ID のリストに渡します。

    ConsentDebugSettings debugSettings = ConsentDebugSettings(
      testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
    );
    
    ConsentRequestParameters params =
        ConsentRequestParameters(consentDebugSettings: debugSettings);
    
    ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
      // ...
    };
    

地域を強制的に適用する

UMP SDK では、デバイスが欧州経済領域(EEA)、英国(UK)、スイスなど、さまざまな地域にあるかのようにアプリの動作をテストできます。debugGeographyデバッグ設定はテスト用デバイスでのみ機能します。

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
  // ...
};

UMP SDK でアプリをテストする際、ユーザーの初回インストール エクスペリエンスをシミュレーションできるように、SDK の状態をリセットすると便利な場合があります。 SDK には、これを行うための reset() メソッドが用意されています。

ConsentInformation.instance.reset();

GitHub の例

このページで説明する UMP SDK 統合例の全文については、 Flutter の例をご覧ください