Rozpocznij

Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) to narzędzie do ochrony prywatności i wiadomości, które pomoże Ci zarządzać wyborami użytkowników dotyczącymi prywatności. Więcej informacji znajdziesz w artykule Informacje o narzędziu Prywatność i wyświetlanie wiadomości.

Tworzenie typu wiadomości

Utwórz wiadomości dla użytkowników za pomocą jednej z dostępnych opcji wiadomości dla użytkowników na karcie Prywatność i wyświetlanie wiadomości na koncie AdMob. Pakiet UMP SDK próbuje wyświetlić wiadomość dotyczącą ochrony prywatności utworzoną na podstawie identyfikatora aplikacji AdMob ustawionego w Twoim projekcie.

Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.

Importowanie pakietu SDK

CocoaPods (preferowane)

Najprostszym sposobem zaimportowania pakietu SDK do projektu iOS jest użycie CocoaPods. Otwórz plik Podfile swojego projektu i dodaj ten wiersz do miejsca docelowego aplikacji:

pod 'GoogleUserMessagingPlatform'

Następnie uruchom to polecenie:

pod install --repo-update

Jeśli dopiero zaczynasz korzystać z CocoaPods, przeczytaj artykuł Korzystanie z CocoaPods, aby dowiedzieć się, jak tworzyć i używać plików Podfiles.

Menedżer pakietów Swift

Pakiet UMP SDK obsługuje też menedżera pakietów Swift. Aby zaimportować pakiet Swift, wykonaj te czynności.

  1. W Xcode zainstaluj pakiet Swift pakietu SDK UMP, wybierając Plik > Dodaj pakiety….

  2. W wyświetlonym oknie wyszukaj repozytorium GitHub pakietu UMP SDK Swift Package:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Wybierz wersję pakietu UMP SDK Swift, której chcesz użyć. W przypadku nowych projektów zalecamy użycie wersji aż do następnej większej wersji.

Następnie Xcode wykrywa zależności pakietu i pobiera je w tle. Więcej informacji o dodawaniu zależności pakietu znajdziesz w artykule Apple.

Pobieranie ręczne

Innym sposobem importowania pakietu SDK jest ręczne wykonanie tej czynności.

Pobierz pakiet SDK

Następnie przeciągnij platformę do projektu Xcode, zaznaczając opcję Kopiuj elementy, jeśli to konieczne.

Następnie możesz umieścić framework w dowolnym pliku, którego potrzebujesz, korzystając z:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Dodaj identyfikator aplikacji

Identyfikator aplikacji znajdziesz w interfejsie AdMob. Dodaj identyfikator do Info.plist za pomocą tego fragmentu kodu:

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

Aby uzyskać zgodę użytkowników na wykorzystanie danych, wykonaj te czynności:

  1. Prośba o aktualne informacje o zgodzie użytkownika.
  2. W razie potrzeby wczytaj i wyświetl formularz zgody.

Należy prosić o aktualizację informacji o zgodzie użytkownika przy każdym uruchomieniu aplikacji za pomocą narzędzia requestConsentInfoUpdate(with:completionHandler:). Ta prośba sprawdza te kwestie:

  • Czy wymagana jest zgoda użytkownika. np. zgoda jest wymagana po raz pierwszy lub poprzednia decyzja już wygasła.
  • Czy wymagany jest punkt wejścia opcji prywatności. Niektóre wiadomości dotyczące ochrony prywatności wymagają, aby aplikacje umożliwiały użytkownikom zmianę opcji prywatności w dowolnym momencie.

W razie potrzeby wczytaj i wyświetl formularz wiadomości dotyczącej ochrony prywatności

Po otrzymaniu najnowszego stanu zgody wywołaj funkcję loadAndPresentIfRequired(from:), aby załadować formularze wymagane do uzyskania zgody użytkownika. Po załadowaniu formularze są od razu widoczne.

Poniższy kod pokazuje, jak poprosić o najnowsze informacje o zgodzie użytkownika. W razie potrzeby kod wczyta i wyświetli formularz z wiadomością dotyczącą prywatności:

Swift


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

  Task { @MainActor in
    do {
      try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
      // Consent has been gathered.
      consentGatheringComplete(nil)
    } catch {
      consentGatheringComplete(error)
    }
  }
}

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           if (requestConsentError) {
                             consentGatheringComplete(requestConsentError);
                           } else {
                             [UMPConsentForm
                                 loadAndPresentIfRequiredFromViewController:viewController
                                                          completionHandler:^(
                                                              NSError
                                                                  *_Nullable loadAndPresentError) {
                                                            // Consent has been gathered.
                                                            consentGatheringComplete(
                                                                loadAndPresentError);
                                                          }];
                           }
                         }];

Opcje prywatności

Niektóre formularze wiadomości dotyczących ochrony prywatności są wyświetlane w wyrenderowanym przez wydawcę punkcie wejścia opcji prywatności, dzięki czemu użytkownicy mogą w każdej chwili zarządzać tymi opcjami. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do ustawień prywatności, zapoznaj się z artykułem Dostępne typy wiadomości dla użytkowników.

Sprawdzanie, czy punkt wejścia opcji prywatności jest wymagany

Po wywołaniu funkcji requestConsentInfoUpdate(with:completionHandler:) sprawdź, czy w Twojej aplikacji jest wymagany punkt wejścia opcji prywatności. W tym celu wywołaj funkcję UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus:

Swift


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

Objective-C


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

Dodawanie widocznego elementu do aplikacji

Jeśli punkt wejścia prywatności jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu przedstawiający formularz opcji prywatności. Jeśli nie jest wymagany punkt wejścia dotyczący prywatności, skonfiguruj element interfejsu tak, aby nie był widoczny ani interaktywny.

Swift


self.privacySettingsButton.isEnabled =
  GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired

Objective-C


strongSelf.privacySettingsButton.enabled =
    GoogleMobileAdsConsentManager.sharedInstance
        .isPrivacyOptionsRequired;

Wyświetlanie formularza opcji prywatności

Gdy użytkownik wejdzie w interakcję z elementem, wyświetl formularz opcji prywatności:

Swift


try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Wyślij żądanie

Zanim wyślesz prośbę o reklamy w aplikacji, sprawdź, czy masz zgodę użytkownika za pomocą UMPConsentInformation.sharedInstance.canRequestAds. Podczas zbierania zgody należy sprawdzić 2 miejsca:

  • Po uzyskaniu zgody użytkownika w bieżącej sesji.
  • Natychmiast po zakończeniu rozmowy requestConsentInfoUpdate(with:completionHandler:). Możliwe, że w poprzedniej sesji użytkownik wyraził zgodę. Zalecamy, aby nie czekać na zakończenie wywołania zwrotnego i w razie potrzeby zacząć wczytywać reklamy jak najszybciej po uruchomieniu aplikacji.

Jeśli podczas procesu zbierania zgód wystąpi błąd, sprawdź, czy możesz nadal wysyłać żądania reklam. Pakiet UMP SDK używa stanu zgody z poprzedniej sesji.

Ten kod sprawdza, czy możesz wysyłać żądania reklam podczas procesu uzyskiwania zgody:

Swift


GoogleMobileAdsConsentManager.shared.gatherConsent(from: self) { [weak self] consentError in
  guard let self else { return }

  if let consentError {
    // Consent gathering failed.
    print("Error: \(consentError.localizedDescription)")
  }

  if GoogleMobileAdsConsentManager.shared.canRequestAds {
    self.startGoogleMobileAdsSDK()
  }
  // ...
}

// This sample attempts to load ads using consent obtained in the previous session.
if GoogleMobileAdsConsentManager.shared.canRequestAds {
  startGoogleMobileAdsSDK()
}

Objective-C


[GoogleMobileAdsConsentManager.sharedInstance
    gatherConsentFromConsentPresentationViewController:self
                              consentGatheringComplete:^(NSError *_Nullable consentError) {
                                if (consentError) {
                                  // Consent gathering failed.
                                  NSLog(@"Error: %@", consentError.localizedDescription);
                                }

                                __strong __typeof__(self) strongSelf = weakSelf;
                                if (!strongSelf) {
                                  return;
                                }

                                if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
                                  [strongSelf startGoogleMobileAdsSDK];
                                }
                                // ...
                              }];

// This sample attempts to load ads using consent obtained in the previous session.
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
  [self startGoogleMobileAdsSDK];
}

Ten kod konfiguruje pakiet SDK do reklam mobilnych Google po uzyskaniu zgody użytkownika:

Swift


private func startGoogleMobileAdsSDK() {
  DispatchQueue.main.async {
    guard !self.isMobileAdsStartCalled else { return }

    self.isMobileAdsStartCalled = true

    // Initialize the Google Mobile Ads SDK.
    GADMobileAds.sharedInstance().start()

    if self.isViewDidAppearCalled {
      self.loadBannerAd()
    }
  }
}

Objective-C


- (void)startGoogleMobileAdsSDK {
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    // Initialize the Google Mobile Ads SDK.
    [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
    [self loadBannerAd];
  });
}

Testowanie

Jeśli chcesz przetestować integrację z aplikacją podczas jej programowania, wykonaj te czynności, aby automatycznie zarejestrować urządzenie testowe. Pamiętaj, by przed opublikowaniem aplikacji usunąć kod, który ustawia te identyfikatory urządzeń testowych.

  1. Zadzwoń do firmy requestConsentInfoUpdate(with:completionHandler:).
  2. Sprawdź w logu, czy w danych wyjściowych znajduje się komunikat podobny do tego poniżej. Zawiera on identyfikator urządzenia i sposób dodawania go jako urządzenia testowego:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Skopiuj identyfikator testowego urządzenia do schowka.

  4. Zmodyfikuj kod, aby wywołać funkcję UMPDebugSettings().testDeviceIdentifiers i przekazać listę identyfikatorów urządzeń testowych.

    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){
                              // ...
    }];
    

Wymuś użycie lokalizacji geograficznej

Dzięki pakietowi UMP SDK możesz przy użyciu geography przetestować działanie aplikacji w taki sposób, jakby urządzenie znajdowało się w różnych regionach, np. Europejskim Obszarze Gospodarczym czy Wielkiej Brytanii. Pamiętaj, że ustawienia debugowania działają tylko na urządzeniach testowych.

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){
                           // ...
}];

Podczas testowania aplikacji za pomocą pakietu SDK UMP warto zresetować stan pakietu SDK, aby przeprowadzić symulację pierwszej instalacji aplikacji u użytkownika. Pakiet SDK udostępnia do tego metodę reset.

Swift

UMPConsentInformation.sharedInstance.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Przykłady w GitHubie

Pełny przykład integracji pakietu UMP SDK omówiony na tej stronie znajdziesz w plikach Swift BannerExampleObjective-C BannerExample.