Rozpocznij

Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom od Google to narzędzie do zarządzania prywatnością i wyświetlania wiadomości, które ułatwia zarządzanie ustawieniami 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 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 na temat prywatności i wyświetlania wiadomości.

Importowanie pakietu SDK

CocoaPods (preferowany),

Najłatwiejszym sposobem importowania 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 Pod.

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 SDK UMP 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 opcji Aktualizuj do następnej głównej 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 framework do projektu Xcode, pamiętając o zaznaczeniu opcji Copy items if needed (Skopiuj elementy w razie potrzeby).

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>

Dodawanie identyfikatora aplikacji

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

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

Za każdym razem, gdy uruchamiasz aplikację, powinnaś poprosić o zaktualizowanie informacji o zgodzie użytkownika, używając do tego tagu requestConsentInfoUpdate(with:completionHandler:). Ta prośba sprawdza:

  • Czy wymagana jest zgoda użytkownika. Może to być na przykład pierwsza zgoda na wykorzystanie danych lub zgoda udzielona wcześniej wygasła.
  • Czy wymagany jest punkt wejścia opcji prywatności. Niektóre komunikaty dotyczące prywatności wymagają, aby aplikacje umożliwiały użytkownikom zmianę ustawień prywatności w dowolnym momencie.

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

Wczytywanie i prezentowanie formularza wiadomości dotyczącej prywatności

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

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

Opcje prywatności

Niektóre formularze wiadomości dotyczące prywatności są wyświetlane w punktach wejścia opcji prywatności przygotowanych przez wydawcę, co pozwala użytkownikom w dowolnym momencie zarządzać opcjami prywatności. Więcej informacji o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do ustawień prywatności, znajdziesz w artykule Dostępne typy wiadomości dla użytkowników.

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

Po wywołaniu funkcji requestConsentInfoUpdate(with:completionHandler:) sprawdź, czy w przypadku Twojej aplikacji wymagany jest punkt wejścia opcji prywatności (użyj do tego celu funkcji UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus). Jeśli jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który przedstawia 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


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

Objective-C


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

Pełną listę stanów wymagań dotyczących opcji prywatności znajdziesz na stronie UMPPrivacyOptionsRequirementStatus.

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)

SwiftUI


try await UMPConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Prośba o reklamy z wymuszoną zgodą użytkownika

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

Swift

UMPConsentInformation.sharedInstance.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

W tych miejscach możesz sprawdzić, czy możesz wyświetlać reklamy podczas zbierania zgody:

Jeśli podczas zbierania zgody wystąpi błąd, sprawdź, czy możesz poprosić o reklamy. Pakiet SDK UMP korzysta ze stanu zgody z poprzedniej sesji aplikacji.

Zapobieganie zbędnemu przetwarzaniu żądań reklam

Gdy sprawdzasz UMPConsentInformation.sharedInstance.canRequestAds po zebraniu zgody i po wywołaniu funkcji requestConsentInfoUpdate(with:completionHandler:), upewnij się, że Twoja logika zapobiega zbędnym żądaniom reklam, które mogłyby spowodować, że oba sprawdzania zwrócą wartość true. Na przykład z wartością logiczną.

Testowanie

Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby zarejestrować urządzenie testowe za pomocą kodu. Zanim opublikujesz aplikację, usuń kod, który ustawia te identyfikatory testowych urządzeń.

  1. Zadzwoń do firmy requestConsentInfoUpdate(with:completionHandler:).
  2. Sprawdź dane wyjściowe dziennika pod kątem komunikatu podobnego do tego, który zawiera identyfikator urządzenia i informacje o dodaniu 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){
                              // ...
    }];
    

Wymuszenie 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 lub Wielkiej Brytanii. Aby to zrobić, użyj geography. 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ć jego stan, aby zasymulować pierwsze użycie aplikacji przez użytkownika. W tym celu pakiet SDK udostępnia metodę reset.

Swift

UMPConsentInformation.sharedInstance.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Przykłady w GitHub

Pełny przykład integracji pakietu UMP SDK omówiony na tej stronie znajdziesz