Начать

Выберите платформу: Android iOS Unity Flutter

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, выполните следующие действия.

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