Google User Messaging Platform (UMP) SDK — это инструмент конфиденциальности и обмена сообщениями, который поможет вам управлять вариантами конфиденциальности. Для получения дополнительной информации см. раздел О конфиденциальности и обмене сообщениями .
Создать тип сообщения
Создайте пользовательские сообщения с одним из доступных типов пользовательских сообщений на вкладке Конфиденциальность и сообщения вашего аккаунта AdMob. UMP SDK пытается отобразить сообщение о конфиденциальности, созданное из идентификатора приложения AdMob, установленного в вашем проекте.
Более подробную информацию см. в разделе О конфиденциальности и обмене сообщениями .
Получить информацию о согласии пользователя
Вам следует запрашивать обновление информации о согласии пользователя при каждом запуске приложения, используя 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 .