Começar

O SDK da plataforma de mensagens de usuários (UMP) do Google é uma ferramenta de privacidade e mensagens para ajudar você a gerenciar as opções de privacidade. Para mais informações, consulte Sobre a página "Privacidade e mensagens".

Criar um tipo de mensagem

Crie mensagens do usuário com um dos tipos disponíveis na guia Privacidade e mensagens da sua conta da AdMob. O SDK da UMP tenta mostrar uma mensagem de privacidade criada com base no ID do aplicativo da AdMob definido no seu projeto.

Para mais detalhes, consulte Sobre privacidade e mensagens.

Importar o SDK

CocoaPods (preferencial)

A maneira mais fácil de importar o SDK para um projeto iOS é usando o CocoaPods. Abra o Podfile do projeto e adicione esta linha ao destino do app:

pod 'GoogleUserMessagingPlatform'

Em seguida, execute o comando:

pod install --repo-update

Se você não conhece o CocoaPods, consulte Como usar o CocoaPods para saber como criar e usar arquivos Pod.

Gerenciador de pacotes do Swift

O SDK da UMP também oferece suporte ao Gerenciador de pacotes do Swift. Siga estas etapas para importar o pacote Swift.

  1. No Xcode, instale o pacote Swift do SDK do UMP acessando File > Add Packages….

  2. No prompt exibido, pesquise o repositório do GitHub do pacote Swift do SDK da UMP:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Selecione a versão do pacote Swift do SDK UMP que você quer usar. Para novos projetos, recomendamos usar a versão principal mais recente.

O Xcode resolve as dependências do pacote e faz o download delas em segundo plano. Para mais detalhes sobre como adicionar dependências de pacote, consulte o artigo da Apple.

Download manual

Outra maneira de importar o SDK é fazer isso manualmente.

Fazer o download do SDK

Em seguida, arraste o framework para o projeto do Xcode, selecionando Copy items if needed.

Em seguida, inclua o framework em qualquer arquivo usando:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Adicionar o ID do aplicativo

Encontre o ID do aplicativo na interface da AdMob. Adicione o ID ao Info.plist com o seguinte snippet de código:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

Solicite uma atualização das informações de consentimento do usuário em cada inicialização do app usando requestConsentInfoUpdate(with:completionHandler:). Essa solicitação verifica o seguinte:

  • Se o consentimento é obrigatório. Por exemplo, o consentimento é necessário pela primeira vez ou a decisão de consentimento anterior expirou.
  • Se um ponto de entrada de opções de privacidade é necessário. Algumas mensagens de privacidade exigem que os apps permitam que os usuários modifiquem as opções de privacidade a qualquer momento.

Swift


// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

SwiftUI


// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.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) {
                           // ...
                         }];

Carregar e apresentar o formulário de mensagem de privacidade

Depois de receber o status de consentimento mais atualizado, chame loadAndPresentIfRequired(from:) para carregar os formulários necessários para coletar o consentimento do usuário. Após o carregamento, os formulários são apresentados imediatamente.

Swift


try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)

SwiftUI


try await UMPConsentForm.loadAndPresentIfRequired(from: nil)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

Opções de privacidade

Alguns formulários de mensagem de privacidade são apresentados em um ponto de entrada de opções de privacidade renderizado pelo editor, permitindo que os usuários gerenciem as opções de privacidade a qualquer momento. Para saber mais sobre qual mensagem seus usuários veem no ponto de entrada das opções de privacidade, consulte Tipos de mensagem do usuário disponíveis.

Verificar se um ponto de entrada de opções de privacidade é necessário

Depois de chamar requestConsentInfoUpdate(with:completionHandler:), verifique UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus para determinar se um ponto de entrada para as opções de privacidade é necessário para o app. Se um ponto de entrada for necessário, adicione um elemento de interface visível e interativo ao app que apresente o formulário de opções de privacidade. Se um ponto de entrada de privacidade não for necessário, configure o elemento da interface para que ele não seja visível nem interativo.

Swift


var isPrivacyOptionsRequired: Bool {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

Para conferir a lista completa de status de exigência de opções de privacidade, consulte UMPPrivacyOptionsRequirementStatus.

Apresentar o formulário de opções de privacidade

Quando o usuário interagir com o elemento, apresente o formulário de opções de privacidade:

Swift


try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await UMPConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Solicitar anúncios com consentimento do usuário

Antes de solicitar anúncios, use UMPConsentInformation.sharedInstance.canRequestAds para verificar se você recebeu o consentimento do usuário:

Swift

UMPConsentInformation.sharedInstance.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

Confira a seguir os lugares em que é possível solicitar anúncios enquanto coletamos o consentimento:

.

Se ocorrer um erro durante o processo de coleta de consentimento, verifique se é possível solicitar anúncios. O SDK do UMP usa o status de consentimento da sessão anterior do app.

Evitar trabalho redundante de solicitações de anúncios

Ao verificar UMPConsentInformation.sharedInstance.canRequestAds depois de coletar o consentimento e chamar requestConsentInfoUpdate(with:completionHandler:), garanta que sua lógica impeça solicitações de anúncios redundantes que possam resultar em ambas as verificações retornando true. Por exemplo, com uma variável booleana.

Teste

Se você quiser testar a integração no seu app durante o desenvolvimento, siga estas etapas para registrar o dispositivo de teste por programação. Remova o código que define esses IDs de dispositivos de teste antes de lançar o app.

  1. Ligue para a requestConsentInfoUpdate(with:completionHandler:).
  2. Verifique se há uma mensagem semelhante ao exemplo a seguir na saída do registro, que mostra o ID do dispositivo e como adicioná-lo como um dispositivo de teste:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Copie o ID do dispositivo de teste para a área de transferência.

  4. Modifique o código para chamar UMPDebugSettings().testDeviceIdentifiers e transmitir uma lista dos IDs dos dispositivos de teste.

    Swift

    let parameters = UMPRequestParameters()
    let debugSettings = UMPDebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    UMPConsentInformation.sharedInstance.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){
                              // ...
    }];
    

Forçar uma região geográfica

O SDK da UMP oferece uma maneira de testar o comportamento do app como se o dispositivo estivesse localizado em várias regiões, como o EEE ou o Reino Unido, usando geography. As configurações de depuração só funcionam em dispositivos de teste.

Swift

let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
UMPConsentInformation.sharedInstance.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){
                           // ...
}];

Ao testar seu app com o SDK da UMP, pode ser útil redefinir o estado do SDK para simular a primeira experiência de instalação de um usuário. O SDK fornece o método reset para fazer isso.

Swift

UMPConsentInformation.sharedInstance.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Exemplos no GitHub

Confira um exemplo completo da integração do SDK da UMP abordada nesta página em