Начать

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

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

Создайте пользовательские сообщения с одним из доступных типов пользовательских сообщений на вкладке Конфиденциальность и сообщения вашего аккаунта 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.

  1. В Xcode установите пакет UMP SDK Swift, перейдя в Файл > Добавить пакеты... .

  2. В появившемся окне найдите репозиторий GitHub UMP SDK Swift Package:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Выберите версию пакета UMP SDK Swift, которую вы хотите использовать. Для новых проектов мы рекомендуем использовать Up to Next Major Version .

Затем Xcode разрешает зависимости пакетов и загружает их в фоновом режиме. Более подробную информацию о том, как добавлять зависимости пакетов, см. в статье Apple .

Ручная загрузка

Другой способ импорта SDK — вручную.

Загрузить 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 . Например, с помощью логической переменной.

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

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

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

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Скопируйте идентификатор тестового устройства в буфер обмена.

  4. Измените свой код так, чтобы он вызывал 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, описанный на этой странице, см. в