Начать

Выберите платформу: Android iOS Unity Flutter

SDK Google User Messaging Platform (UMP) — это инструмент для управления конфиденциальностью и обменом сообщениями, который поможет вам управлять настройками конфиденциальности. Подробнее см. в разделе «Конфиденциальность и обмен сообщениями» .

Создайте тип сообщения

Создайте пользовательские сообщения, используя один из доступных типов сообщений на вкладке «Конфиденциальность и сообщения» вашего аккаунта AdMob. UMP SDK пытается отобразить сообщение о конфиденциальности, созданное на основе идентификатора приложения AdMob, заданного в вашем проекте.

Более подробную информацию см. в разделе О конфиденциальности и обмене сообщениями .

Вам следует запрашивать обновление информации о согласии пользователя при каждом запуске приложения с помощью Update() . Этот запрос проверяет следующее:

  • Требуется ли согласие . Например, согласие требуется впервые или срок действия предыдущего решения о согласии истек.
  • Требуется ли точка входа в параметры конфиденциальности ? Некоторые сообщения о конфиденциальности требуют, чтобы приложения позволяли пользователям изменять параметры конфиденциальности в любое время.
void Start()
{
    // Create a ConsentRequestParameters object.
    ConsentRequestParameters requestParameters = new ConsentRequestParameters();

    // Request an update of the user's consent information.
    ConsentInformation.Update(requestParameters, OnConsentInfoUpdated);
}

Загрузите и представьте форму сообщения о конфиденциальности

Получив актуальную информацию о статусе согласия, вызовите метод LoadAndShowConsentFormIfRequired() , чтобы загрузить все формы, необходимые для получения согласия пользователя. После загрузки формы отображаются немедленно.

ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
    if (formError != null)
    {
        // Consent gathering failed.
        Debug.LogError("Error loading/showing consent form: " + formError.Message);
    }

    // ...
});

Параметры конфиденциальности

Некоторые формы сообщений о конфиденциальности отображаются в точке входа параметров конфиденциальности, созданной издателем, что позволяет пользователям управлять своими настройками в любое время. Подробнее о том, какие сообщения пользователи видят в точке входа параметров конфиденциальности, см. в разделе Доступные типы сообщений для пользователей .

Проверьте, требуется ли точка входа в параметры конфиденциальности.

После вызова Update() проверьте PrivacyOptionsRequirementStatus , чтобы определить, требуется ли вашему приложению точка входа для параметров конфиденциальности. Если точка входа необходима, добавьте в приложение видимый и интерактивный элемент пользовательского интерфейса, представляющий форму для настройки параметров конфиденциальности. Если точка входа не требуется, настройте элемент пользовательского интерфейса так, чтобы он был невидимым и не интерактивным.

void UpdatePrivacyButton()
{
    if (_privacyButton != null)
    {
        // Enable the button only if a privacy options entry point is required.
        _privacyButton.interactable =
            ConsentInformation.PrivacyOptionsRequirementStatus == PrivacyOptionsRequirementStatus.Required;
    }
}

Полный список статусов требований к параметрам конфиденциальности см. ConsentInformation.PrivacyOptionsRequirementStatus .

Представить форму параметров конфиденциальности

Когда пользователь взаимодействует с вашим элементом, предоставьте ему форму параметров конфиденциальности:

public void ShowPrivacyOptionsForm()
{
    ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
    {
        if (showError != null)
        {
            Debug.LogError("Error showing privacy options form: " + showError.Message);
        }
    });
}

Запрос рекламы с согласия пользователя

Прежде чем запрашивать рекламу, используйте CanRequestAds() чтобы проверить, получили ли вы согласие пользователя:

ConsentInformation.CanRequestAds()

Ниже перечислены места, где можно проверить, можете ли вы запрашивать рекламу при получении согласия:

  • После того, как UMP SDK соберет согласие в текущем сеансе.
  • Сразу после вызова Update() . UMP SDK мог получить согласие в предыдущем сеансе приложения.

Если во время сбора согласия произошла ошибка, проверьте, можете ли вы запрашивать рекламу. UMP SDK использует статус согласия из предыдущего сеанса приложения.

Предотвращение избыточной работы с запросами объявлений

При проверке CanRequestAds() после получения согласия и после вызова Update() убедитесь, что ваша логика предотвращает избыточные запросы рекламы, которые могут привести к тому, что обе проверки вернут true . Например, с помощью логической переменной.

Тестирование

Если вы хотите протестировать интеграцию в своём приложении в процессе разработки, выполните следующие шаги для программной регистрации тестового устройства. Перед выпуском приложения обязательно удалите код, задающий идентификаторы тестовых устройств.

  1. Вызовите Update() .
  2. Проверьте вывод журнала на наличие сообщения, похожего на следующее, в котором указан идентификатор вашего устройства и порядок его добавления в качестве тестового устройства:

    Андроид

    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. Скопируйте идентификатор тестового устройства в буфер обмена.

  4. Измените свой код так, чтобы он вызывал DebugGeography.TestDeviceHashedIds и передавал список идентификаторов тестовых устройств.

    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 . Обратите внимание, что настройки отладки работают только на тестовых устройствах.

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 .