SDK платформы обмена сообщениями Google (UMP) — это инструмент для управления настройками конфиденциальности и обмена сообщениями. Дополнительную информацию см. в разделе «О конфиденциальности и обмене сообщениями» .
Создайте тип сообщения
Создавайте сообщения для пользователей, используя один из доступных типов сообщений на вкладке «Конфиденциальность и сообщения» в вашем аккаунте Ad Manager. UMP SDK попытается отобразить сообщение о конфиденциальности, созданное на основе идентификатора приложения Ad Manager, заданного в вашем проекте.
Более подробную информацию см. в разделе «О конфиденциальности и обмене сообщениями» .
Импортируйте SDK
CocoaPods (предпочтительно)
Самый простой способ импортировать SDK в iOS-проект — использовать CocoaPods . Откройте Podfile вашего проекта и добавьте следующую строку в целевой объект вашего приложения:
pod 'GoogleUserMessagingPlatform'
Затем выполните следующую команду:
pod install --repo-updateЕсли вы новичок в CocoaPods, ознакомьтесь с разделом «Использование CocoaPods» для получения подробной информации о создании и использовании Podfiles.
Swift Package Manager
UMP SDK также поддерживает Swift Package Manager. Выполните следующие шаги для импорта пакета Swift.
В Xcode установите пакет UMP SDK Swift, перейдя в меню Файл > Добавить пакеты... .
В появившемся окне найдите репозиторий GitHub с пакетом UMP SDK Swift:
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>
Добавьте идентификатор приложения.
Идентификатор вашего приложения можно найти в пользовательском интерфейсе Ad Manager . Добавьте идентификатор в файл 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:)SDK UMP мог получить согласие в предыдущей сессии приложения.
Если в процессе сбора согласия возникает ошибка, проверьте, можете ли вы запрашивать рекламу. 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, описанный на этой странице, можно найти в