SDK Google User Messaging Platform (UMP) — это инструмент для управления конфиденциальностью и обменом сообщениями, который поможет вам управлять настройками конфиденциальности. Подробнее см. в разделе «Конфиденциальность и обмен сообщениями» .
Создайте тип сообщения
Создайте пользовательские сообщения, используя один из доступных типов сообщений на вкладке «Конфиденциальность и сообщения» вашего аккаунта Менеджера рекламы. UMP SDK пытается отобразить сообщение о конфиденциальности, созданное на основе идентификатора приложения Менеджера рекламы, заданного в вашем проекте.
Более подробную информацию см. в разделе О конфиденциальности и обмене сообщениями .
Получить информацию о согласии пользователя
Вам следует запрашивать обновление информации о согласии пользователя при каждом запуске приложения с помощью 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()
, чтобы определить, требуется ли вашему приложению точка входа для параметров конфиденциальности. Если точка входа требуется, добавьте в приложение видимый и интерактивный элемент пользовательского интерфейса, представляющий форму для настройки параметров конфиденциальности. Если точка входа не требуется, сделайте элемент пользовательского интерфейса невидимым и интерактивным.
/// 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 использует статус согласия из предыдущего сеанса приложения.
Предотвращение избыточной работы с запросами объявлений
При проверке canRequestAds()
после получения согласия и после вызова requestConsentInfoUpdate()
убедитесь, что ваша логика предотвращает избыточные запросы рекламы, которые могут привести к тому, что обе проверки вернут значение true
. Например, с помощью логической переменной.
Тестирование
Если вы хотите протестировать интеграцию в своём приложении в процессе разработки, выполните следующие шаги для программной регистрации тестового устройства. Перед выпуском приложения обязательно удалите код, задающий идентификаторы тестовых устройств.
- Вызовите
requestConsentInfoUpdate()
. Проверьте вывод журнала на наличие сообщения, похожего на следующее, в котором указан идентификатор вашего устройства и порядок его добавления в качестве тестового устройства:
Андроид
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]
Скопируйте идентификатор тестового устройства в буфер обмена.
Измените свой код так, чтобы он вызывал
ConsentDebugSettings.testIdentifiers
и передавал список идентификаторов тестовых устройств.ConsentDebugSettings debugSettings = ConsentDebugSettings( testIdentifiers: ["TEST-DEVICE-HASHED-ID"], ); ConsentRequestParameters params = ConsentRequestParameters(consentDebugSettings: debugSettings); ConsentInformation.instance.requestConsentInfoUpdate(params, () async { // ... };
Навязать географию
UMP SDK позволяет протестировать поведение приложения, как если бы устройство находилось в различных регионах, например, в ЕЭЗ или Великобритании, с помощью 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 .