UMP SDK を設定する

[プラットフォームを選択]: Android(ベータ版) 新規 Android iOS Unity Flutter

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

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

AdMob アカウントの [**プライバシーとメッセージ**] タブで、[利用可能なユーザー向けメッセージ タイプ]を使用してユーザー向けメッセージを作成します。UMP SDK は、プロジェクトで設定された AdMob アプリケーション 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)、英国、スイスなど、さまざまな地域にあるかのようにアプリの動作をテストできます。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 の例をご覧ください