Konfigurowanie pakietu SDK UMP

Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do zarządzania ustawieniami prywatności i wiadomościami, które pomaga zarządzać ustawieniami prywatności. Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.

Tworzenie typu wiadomości

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

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

Importowanie pakietu SDK

CocoaPods (preferowane)

Najłatwiejszym sposobem zaimportowania pakietu SDK do projektu na iOS jest użycie CocoaPods. Otwórz plik Podfile projektu i dodaj ten wiersz do środowiska docelowego aplikacji:

pod 'GoogleUserMessagingPlatform'

Następnie uruchom to polecenie:

pod install --repo-update

Jeśli nie znasz CocoaPods, zapoznaj się z artykułem Korzystanie z CocoaPods, aby dowiedzieć się, jak tworzyć i używać plików Podfile.

Swift Package Manager

Pakiet SDK UMP 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, klikając File > Add Packages… (Plik > Dodaj pakiety…).

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

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

Xcode przetworzy zależności pakietu i pobierze je w tle. Więcej informacji o dodawaniu zależności pakietów znajdziesz w artykule Apple.

Pobieranie ręczne

Innym sposobem importowania pakietu SDK jest importowanie ręczne.

Pobieranie pakietu SDK

Następnie przeciągnij platformę do projektu Xcode, upewniając się, że zaznaczona jest opcja Copy items if needed (Skopiuj elementy w razie potrzeby).

Następnie możesz dołączyć platformę do dowolnego pliku, używając:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Dodawanie identyfikatora aplikacji

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

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

Przy każdym uruchomieniu aplikacji należy poprosić o aktualizację informacji o zgodzie użytkownika, używając metody requestConsentInfoUpdate(with:completionHandler:). To żądanie sprawdza:

  • Czy zgoda jest wymagana? Na przykład zgoda jest wymagana po raz pierwszy lub poprzednia decyzja o zgodzie wygasła.
  • Czy wymagany jest punkt wejścia opcji prywatności. Niektóre wiadomości dotyczące prywatności wymagają, aby aplikacje umożliwiały użytkownikom modyfikowanie opcji prywatności w dowolnym momencie.

Swift


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

Wczytywanie i wyświetlanie formularza wiadomości dotyczącej prywatności

Po otrzymaniu najbardziej aktualnego stanu zgody wywołaj metodę loadAndPresentIfRequired(from:), aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po wczytaniu formularze są natychmiast wyświetlane.

Swift


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

Opcje prywatności

Niektóre formularze wiadomości dotyczących prywatności są wyświetlane z punktu wejścia opcji prywatności renderowanego przez wydawcę, co umożliwia użytkownikom zarządzanie opcjami prywatności w dowolnym momencie. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do opcji dotyczących prywatności, przeczytaj artykuł Dostępne typy wiadomości dla użytkowników.

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

Po wywołaniu metody requestConsentInfoUpdate(with:completionHandler:) sprawdź UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus, aby określić, czy w aplikacji jest wymagany punkt wejścia opcji prywatności. Jeśli jest on wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia do ustawień prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby nie był widoczny i nie można było z nim wejść w interakcję.

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


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

Pełną listę stanów wymagań dotyczących opcji związanych z prywatnością znajdziesz w artykule UMPPrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji ochrony prywatności

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

Swift


try await ConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await ConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Wysyłanie żądań reklam po uzyskaniu zgody użytkownika

Zanim wyślesz żądanie reklamy, użyj metody UMPConsentInformation.sharedInstance.canRequestAds, aby sprawdzić, czy użytkownik wyraził zgodę:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

Oto miejsca, w których możesz sprawdzić, czy możesz wysyłać żądania reklam podczas zbierania zgody:

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

Zapobieganie zbędnym żądaniom reklam

Gdy sprawdzasz UMPConsentInformation.sharedInstance.canRequestAds po uzyskaniu zgody i wywołaniu requestConsentInfoUpdate(with:completionHandler:), upewnij się, że Twoja logika zapobiega zbędnym żądaniom reklamy, które mogą spowodować, że oba sprawdzenia zwrócą true. Na przykład za pomocą zmiennej logicznej.

Testowanie

Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby zarejestrować urządzenie testowe w sposób zautomatyzowany. Przed opublikowaniem aplikacji usuń kod, który ustawia te identyfikatory urządzeń testowych.

  1. Zadzwoń do firmy requestConsentInfoUpdate(with:completionHandler:).
  2. Sprawdź, czy w danych wyjściowych dziennika znajduje się komunikat podobny do tego, który zawiera identyfikator urządzenia i informacje o tym, jak dodać je jako urządzenie testowe:

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

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

    Swift

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

Wymuszanie lokalizacji geograficznej

Pakiet SDK UMP umożliwia testowanie działania aplikacji tak, jakby urządzenie znajdowało się w różnych regionach, np. w Europejskim Obszarze Gospodarczym (EOG), Wielkiej Brytanii i Szwajcarii, za pomocą geography. Pamiętaj, że ustawienia debugowania działają tylko na urządzeniach testowych.

Swift

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

Podczas testowania aplikacji za pomocą pakietu SDK UMP warto zresetować stan pakietu SDK, aby zasymulować pierwsze uruchomienie aplikacji przez użytkownika. Pakiet SDK udostępnia metodę reset, która umożliwia wykonanie tej czynności.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Przykłady na GitHubie

Pełny przykład integracji pakietu SDK UMP opisanej na tej stronie znajdziesz w tych artykułach: