SDK Google User Messaging Platform (UMP) — это инструмент для управления конфиденциальностью и обменом сообщениями, который поможет вам управлять настройками конфиденциальности. Подробнее см. в разделе «Конфиденциальность и обмен сообщениями» .
Создайте тип сообщения
Создайте пользовательские сообщения, используя один из доступных типов сообщений на вкладке «Конфиденциальность и сообщения» вашего аккаунта AdMob. UMP SDK пытается отобразить сообщение о конфиденциальности, созданное на основе идентификатора приложения AdMob, заданного в вашем проекте.
Более подробную информацию см. в разделе О конфиденциальности и обмене сообщениями .
Импортируйте SDK
CocoaPods (предпочтительно)
Самый простой способ импортировать SDK в проект iOS — использовать CocoaPods . Откройте Podfile вашего проекта и добавьте следующую строку в целевой объект приложения:
pod 'GoogleUserMessagingPlatform'
Затем выполните следующую команду:
pod install --repo-update
Если вы новичок в CocoaPods, ознакомьтесь с разделом Использование CocoaPods, где подробно описывается, как создавать и использовать файлы Podfiles.
Менеджер пакетов Swift
UMP SDK также поддерживает Swift Package Manager. Чтобы импортировать пакет Swift, выполните следующие действия.
В Xcode установите пакет UMP SDK Swift, перейдя в Файл > Добавить пакеты... .
В появившемся окне найдите репозиторий GitHub UMP SDK Swift Package:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Выберите нужную версию пакета UMP SDK Swift. Для новых проектов мы рекомендуем использовать версию Up to Next Major Version .
Затем Xcode определяет зависимости пакетов и загружает их в фоновом режиме. Подробнее о добавлении зависимостей пакетов см. в статье Apple .
Ручная загрузка
Другой способ импорта SDK — вручную.
Затем перетащите фреймворк в свой проект Xcode, убедившись, что при необходимости выбрана опция Копировать элементы .
Затем вы можете включить фреймворк в любой нужный вам файл, используя:
Быстрый
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
Добавьте идентификатор приложения
Идентификатор вашего приложения можно найти в интерфейсе AdMob . Добавьте его в файл Info.plist
, используя следующий фрагмент кода:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Получить информацию о согласии пользователя
Вам следует запрашивать обновление информации о согласии пользователя при каждом запуске приложения, используя requestConsentInfoUpdate(with:completionHandler:)
. Этот запрос проверяет следующее:
- Требуется ли согласие . Например, согласие требуется впервые или срок действия предыдущего решения о согласии истек.
- Требуется ли точка входа в параметры конфиденциальности ? Некоторые сообщения о конфиденциальности требуют, чтобы приложения позволяли пользователям изменять параметры конфиденциальности в любое время.
Быстрый
// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
SwiftUI
// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
Загрузите и представьте форму сообщения о конфиденциальности
Получив актуальную информацию о статусе согласия, вызовите loadAndPresentIfRequired(from:)
чтобы загрузить все формы, необходимые для получения согласия пользователя. После загрузки формы отображаются немедленно.
Быстрый
try await ConsentForm.loadAndPresentIfRequired(from: viewController)
SwiftUI
try await ConsentForm.loadAndPresentIfRequired(from: nil)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
Параметры конфиденциальности
Некоторые формы сообщений о конфиденциальности отображаются в точке входа параметров конфиденциальности, созданной издателем, что позволяет пользователям управлять своими настройками в любое время. Подробнее о том, какие сообщения пользователи видят в точке входа параметров конфиденциальности, см. в разделе Доступные типы сообщений для пользователей .
Проверьте, требуется ли точка входа в параметры конфиденциальности.
После вызова requestConsentInfoUpdate(with:completionHandler:)
проверьте UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
, чтобы определить, требуется ли вашему приложению точка входа для параметров конфиденциальности. Если точка входа требуется, добавьте в приложение видимый и интерактивный элемент пользовательского интерфейса, представляющий форму параметров конфиденциальности. Если точка входа не требуется, настройте элемент пользовательского интерфейса так, чтобы он был невидимым и не интерактивным.
Быстрый
var isPrivacyOptionsRequired: Bool {
return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
Полный список статусов требований к параметрам конфиденциальности см. в разделе UMPPrivacyOptionsRequirementStatus
.
Представить форму параметров конфиденциальности
Когда пользователь взаимодействует с вашим элементом, предоставьте ему форму параметров конфиденциальности:
Быстрый
try await ConsentForm.presentPrivacyOptionsForm(from: viewController)
SwiftUI
try await ConsentForm.presentPrivacyOptionsForm(from: nil)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Запрос рекламы с согласия пользователя
Прежде чем запрашивать рекламу, используйте UMPConsentInformation.sharedInstance.canRequestAds
, чтобы проверить, получили ли вы согласие пользователя:
Быстрый
ConsentInformation.shared.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
Ниже перечислены места, где можно проверить, можете ли вы запрашивать рекламу при получении согласия:
- После того, как UMP SDK соберет согласие в текущем сеансе.
- Сразу после вызова
requestConsentInfoUpdate(with:completionHandler:)
. UMP SDK мог получить согласие в предыдущем сеансе приложения.
Если во время сбора согласия произошла ошибка, проверьте, можете ли вы запрашивать рекламу. UMP SDK использует статус согласия из предыдущего сеанса приложения.
Предотвращение избыточной работы с запросами объявлений
При проверке UMPConsentInformation.sharedInstance.canRequestAds
после получения согласия и вызова requestConsentInfoUpdate(with:completionHandler:)
убедитесь, что ваша логика предотвращает избыточные запросы рекламы, которые могут привести к тому, что обе проверки вернут значение true
. Например, с помощью логической переменной.
Тестирование
Если вы хотите протестировать интеграцию в своём приложении в процессе разработки, выполните следующие шаги для программной регистрации тестового устройства. Перед выпуском приложения обязательно удалите код, задающий идентификаторы тестовых устройств.
- Вызовите
requestConsentInfoUpdate(with:completionHandler:)
. Проверьте вывод журнала на наличие сообщения, похожего на следующее, в котором указан идентификатор вашего устройства и порядок его добавления в качестве тестового устройства:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Скопируйте идентификатор тестового устройства в буфер обмена.
Измените свой код так, чтобы он вызывал
UMPDebugSettings().testDeviceIdentifiers
и передавал список идентификаторов тестовых устройств.Быстрый
let parameters = RequestParameters() let debugSettings = DebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. ConsentInformation.shared.requestConsentInfoUpdate( with: parameters, completionHandler: { error in // ... })
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init]; UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init]; debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ]; parameters.debugSettings = debugSettings; // Include the UMPRequestParameters in your consent request. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error){ // ... }];
Навязать географию
UMP SDK позволяет протестировать поведение приложения, как если бы устройство находилось в различных регионах, например, в ЕЭЗ или Великобритании, используя geography
. Обратите внимание, что настройки отладки работают только на тестовых устройствах.
Быстрый
let parameters = RequestParameters()
let debugSettings = DebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.requestConsentInfoUpdate(
with: parameters,
completionHandler: { error in
// ...
})
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
// ...
}];
Сбросить состояние согласия
При тестировании приложения с помощью UMP SDK может быть полезно сбросить состояние SDK, чтобы смоделировать первую установку приложения пользователем. В SDK предусмотрен метод reset
для этой цели.
Быстрый
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Примеры на GitHub
Полный пример интеграции UMP SDK, представленный на этой странице, см. в