Rozpocznij

Wybierz platformę: Android iOS

Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do zarządzania ustawieniami prywatności i wyświetlania wiadomości. Więcej informacji znajdziesz w artykule Informacje o stronie Prywatność i wyświetlanie wiadomości. Działającą implementację IMA z pakietem UMP SDK możesz zobaczyć w przykładowych aplikacjach UMP w języku Objective-C lub Swift.

Tworzenie typu wiadomości

Twórz wiadomości dla użytkowników za pomocą jednego z dostępnych typów wiadomości na karcie Prywatność i wyświetlanie wiadomości na koncie Ad Managera. Pakiet UMP SDK próbuje wyświetlić wiadomość dotyczącą prywatności utworzoną na podstawie identyfikatora aplikacji Interactive Media Ads ustawionego w projekcie.

Więcej informacji znajdziesz w artykule Informacje o prywatności i wyświetlaniu wiadomości.

Importowanie pakietu SDK

Pakiet UMP SDK nie jest uwzględniony jako zależność pakietu IMA SDK, więc musisz go dodać samodzielnie.

CocoaPods (preferowany)

Najłatwiejszym sposobem importowania pakietu SDK do projektu iOS jest użycie CocoaPods. Otwórz plik Podfile projektu i dodaj ten wiersz do celu aplikacji:

pod 'GoogleUserMessagingPlatform'

Następnie uruchom to polecenie:

pod install --repo-update

Jeśli nie znasz CocoaPods, przeczytaj artykuł Korzystanie z CocoaPods, aby dowiedzieć się, jak tworzyć pliki Podfile i z nich korzystać.

Swift Package Manager

Pakiet UMP SDK obsługuje też Swift Package Manager. Aby zaimportować pakiet Swift, wykonaj te czynności:

  1. W Xcode zainstaluj pakiet UMP SDK Swift, wybierając kolejno File > Add Packages... (Plik > Dodaj pakiety...).

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

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Wybierz wersję pakietu UMP SDK Swift, której chcesz używać. W przypadku nowych projektów zalecamy używanie wersji Up to Next Major Version (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 pakietu znajdziesz w artykule Apple.

Dodawanie identyfikatora aplikacji

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

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

Przy każdym uruchomieniu aplikacji należy prosić o aktualizację informacji o zgodzie użytkownika za pomocą funkcji requestConsentInfoUpdateWithParameters:completionHandler:. To żądanie sprawdza te kwestie:

  • Czy wymagana jest zgoda. Na przykład zgoda jest wymagana po raz pierwszy lub poprzednia decyzja dotycząca zgody 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
  // ...
}

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 funkcję loadAndPresentIfRequiredFromViewController:completionHandler:, aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po wczytaniu formularze są wyświetlane natychmiast.

Swift


try await ConsentForm.loadAndPresentIfRequired(from: viewController)

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 opcji prywatności , przeczytaj artykuł Dostępne typy wiadomości dla użytkowników.

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

Po wywołaniu funkcji requestConsentInfoUpdateWithParameters:completionHandler: sprawdź UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus, aby określić, czy w aplikacji wymagany jest punkt wejścia opcji prywatności. Jeśli jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia opcji prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby był niewidoczny i nieinteraktywny.

Swift


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

Objective-C


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

- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
                                  consentGatheringComplete:
                                      (void (^)(NSError *_Nullable))consentGatheringComplete {
  UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
  // Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
  parameters.tagForUnderAgeOfConsent = NO;

  UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
  // Uncomment the following line to simulate a consent request from users in the
  // European Economic Area (EEA) for testing purposes.
  // debugSettings.geography = UMPDebugGeographyEEA;
  parameters.debugSettings = debugSettings;

  // Requesting an update to consent information should be called on every app launch.
  [UMPConsentInformation.sharedInstance
      requestConsentInfoUpdateWithParameters:parameters
                           completionHandler:^(NSError *_Nullable requestConsentError) {
                             // ...
                           }];
}

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

- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
                                  completionHandler:
                                      (void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                            completionHandler:completionHandler];
}

@end

Pełną listę stanów wymagania opcji prywatności znajdziesz w artykule UMPPrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji prywatności

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

Swift


ConsentForm.presentPrivacyOptionsForm(
  from: viewController, completionHandler: completionHandler)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Wysyłanie żądań reklam za zgodą użytkownika

Zanim wyślesz żądanie reklamy, sprawdź, czy masz zgodę użytkownika, za pomocą funkcji UMPConsentInformation.sharedInstance.canRequestAds:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

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

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

Zapobieganie zbędnym żądaniom reklam

Gdy sprawdzasz UMPConsentInformation.sharedInstance.canRequestAds po zebraniu zgody i po wywołaniu funkcji requestConsentInfoUpdateWithParameters:completionHandler:, upewnij się, że logika zapobiega zbędnym żądaniom reklam, które mogą spowodować, że oba sprawdzenia zwrócą wartość true. Na przykład za pomocą zmiennej logicznej.

Testowanie

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

  1. Wywołaj funkcję requestConsentInfoUpdateWithParameters:completionHandler:.
  2. Sprawdź dane wyjściowe logu pod kątem wiadomości podobnej do tego przykładu, która pokazuje identyfikator urządzenia i sposób dodania go jako urządzenia testowego:

    <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ć funkcję 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 UMP SDK umożliwia testowanie działania aplikacji tak, jakby urządzenie znajdowało się w różnych regionach, np. w Europejskim Obszarze Gospodarczym (EOG), w Wielkiej Brytanii i Szwajcarii, za pomocą funkcji UMPDebugGeography. 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 UMP SDK może się przydać zresetowanie stanu pakietu SDK, aby zasymulować pierwsze uruchomienie aplikacji przez użytkownika. Pakiet SDK udostępnia do tego metodę reset.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Przykłady na GitHubie

Pełny przykład integracji pakietu UMP SDK opisanej na tej stronie znajdziesz w przykładach Swift UmpExample i Objective-C UmpExample.