開始する

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

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

AdMob アカウントの [プライバシーとメッセージ] タブで、利用可能なユーザー向けメッセージの種類のいずれかを使用してユーザー向けメッセージを作成します。UMP SDK は、プロジェクトで設定された AdMob アプリケーション ID から作成されたプライバシー メッセージを表示しようとします。

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

同意を得るには、次の手順を行います。

  1. 最新のユーザーの同意情報をリクエストします。
  2. 必要に応じて同意フォームを読み込んで提示します。

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

  • 同意が必要かどうか。たとえば、初めて同意が必要な場合や、以前の同意決定が期限切れになっている場合です。
  • プライバシー オプションのエントリ ポイントが必要かどうか。プライバシー メッセージによっては、ユーザーがプライバシー オプションをいつでも変更できるようにアプリで設定する必要があります。

必要に応じてプライバシー メッセージ フォームを読み込んで表示する

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

次のコードは、ユーザーの最新の同意情報をリクエストする方法を示しています。必要に応じて、コードがプライバシー メッセージ フォームを読み込んで表示します。

void Start()
{
    // Create a ConsentRequestParameters object.
    ConsentRequestParameters request = new ConsentRequestParameters();

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

void OnConsentInfoUpdated(FormError consentError)
{
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }

    // If the error is null, the consent information state was updated.
    // You are now ready to check if a form is available.
    ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
    {
        if (formError != null)
        {
            // Consent gathering failed.
            UnityEngine.Debug.LogError(consentError);
            return;
        }

        // Consent has been gathered.
    });
}

プライバシー オプション

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

プライバシー オプションのエントリ ポイントを実装する手順は次のとおりです。

  1. Update() を呼び出した後、 PrivacyOptionsRequirementStatus をチェックして、プライバシー オプションのエントリ ポイントが必要かどうかを判断します。
  2. 必要に応じて、プライバシー オプションのエントリ ポイントとして機能する、可視で操作可能な UI 要素をアプリに追加します。プライバシー エントリ ポイントが不要な場合は、UI 要素を非表示にして操作できないように構成します。
  3. ShowPrivacyOptionsForm() を使用してプライバシー オプション フォームを表示します。

次のコード例は、これらの手順を示しています。

[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;

private void Start()
{
  // Enable the privacy settings button.
  if (_privacyButton != null)
  {
      _privacyButton.onClick.AddListener(UpdatePrivacyButton);
      // Disable the privacy settings button by default.
      _privacyButton.interactable = false;
  }
}

/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
    Debug.Log("Showing privacy options form.");

    ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
    {
        if (showError != null)
        {
            Debug.LogError("Error showing privacy options form with error: " + showError.Message);
        }
        // Enable the privacy settings button.
        UpdatePrivacyButton();
    });
}

/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
    if (_privacyButton != null)
    {
        _privacyButton.interactable =
            ConsentInformation.PrivacyOptionsRequirementStatus ==
                PrivacyOptionsRequirementStatus.Required;
    }
}

広告をリクエスト

アプリで広告をリクエストする前に、 CanRequestAds() を使用してユーザーの同意を得ているかどうかを確認します。同意を得る際に確認する必要がある項目は 2 つあります。

  • 現在のセッションで同意が得られた場合。
  • Update() を呼び出した直後。前回のセッションで同意を得ている可能性があります。レイテンシに関するベスト プラクティスとして、コールバックの完了を待たずに、アプリの起動後できるだけ早く広告の読み込みを開始することをおすすめします。

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

void Start()
{
    // Create a ConsentRequestParameters object.
    ConsentRequestParameters request = new ConsentRequestParameters();

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

void OnConsentInfoUpdated(FormError consentError)
{
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }

    // If the error is null, the consent information state was updated.
    // You are now ready to check if a form is available.
    ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
    {
        if (formError != null)
        {
            // Consent gathering failed.
            UnityEngine.Debug.LogError(consentError);
            return;
        }

        // Consent has been gathered.
        if (ConsentInformation.CanRequestAds())
        {
            MobileAds.Initialize((InitializationStatus initstatus) =>
            {
              // TODO: Request an ad.
            });
        }
    });
    
}

テスト

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

  1. Update()までお電話ください。
  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. DebugGeography.TestDeviceHashedIds を呼び出してテストデバイス ID のリストを渡すようにコードを変更します。

    void Start()
    {
        var debugSettings = new ConsentDebugSettings
        {
            TestDeviceHashedIds =
            new List<string>
            {
                "TEST-DEVICE-HASHED-ID"
            }
        };
    
        // Create a ConsentRequestParameters object.
        ConsentRequestParameters request = new ConsentRequestParameters
        {
            ConsentDebugSettings = debugSettings,
        };
    
        // Check the current consent information status.
        ConsentInformation.Update(request, OnConsentInfoUpdated);
    }
    

地域を強制的に適用する

UMP SDK では、DebugGeography を使用して、デバイスが EEA や英国などのさまざまな地域にあるかのようにアプリの動作をテストできます。デバッグ設定はテスト用デバイスでのみ機能します。

void Start()
{
    var debugSettings = new ConsentDebugSettings
    {
        // Geography appears as in EEA for debug devices.
        DebugGeography = DebugGeography.EEA,
        TestDeviceHashedIds = new List<string>
        {
            "TEST-DEVICE-HASHED-ID"
        }
    };

    // Create a ConsentRequestParameters object.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        ConsentDebugSettings = debugSettings,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

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

ConsentInformation.Reset();

GitHub の例

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