Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom od Google to narzędzie do ochrony prywatności i wyświetlania wiadomości, które pomaga zarządzać ustawieniami prywatności. Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości. Działającą implementację IMA z pakietem SDK UMP możesz zobaczyć w przykładowych aplikacjach UMP w językach Objective-C i Swift.
Tworzenie typu wiadomości
Twó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 Ad Managera. Pakiet SDK UMP próbuje wyświetlić wiadomość dotyczącą prywatności utworzoną na podstawie identyfikatora aplikacji do wyświetlania interaktywnych reklam medialnych ustawionego w projekcie.
Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.
Zaimportuj pakiet 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 zaimportowania 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ć 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.
W Xcode zainstaluj pakiet SDK UMP Swift, klikając File > Add Packages... (Plik > Dodaj pakiety...).
W wyświetlonym oknie wyszukaj repozytorium pakietu SDK UMP Swift w GitHubie:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Wybierz wersję pakietu SDK UMP Swift Package, której chcesz używać. W przypadku nowych projektów zalecamy używanie 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 firmy Apple.
Dodaj identyfikator 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>
Uzyskiwanie informacji o zgodzie użytkownika
Przy każdym uruchomieniu aplikacji należy prosić o aktualizację informacji o stanie zgody 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 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
// ...
}
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 komunikatu dotyczącego prywatności
Po uzyskaniu najbardziej aktualnego stanu zgody wywołaj funkcję
loadAndPresentIfRequiredFromViewController:completionHandler:
, aby wczytać formularze wymagane do
uzyskania zgody użytkownika. Po wczytaniu formularze są od razu wyświetlane.
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 w punkcie wejścia opcji prywatności renderowanym przez wydawcę, co umożliwia użytkownikom zarządzanie opcjami prywatności w dowolnym momencie. Więcej informacji o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do opcji prywatności, znajdziesz w sekcji 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 Twojej aplikacji wymagany jest 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 był niewidoczny i nie można było z nim wchodzić w interakcję.
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 wymagań dotyczących opcji prywatności znajdziesz w sekcji
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 próśb o reklamy po uzyskaniu zgody użytkownika
Zanim poprosisz o reklamy, użyj funkcji
UMPConsentInformation.sharedInstance.canRequestAds
, aby sprawdzić, czy masz zgodę użytkownika:
Swift
ConsentInformation.shared.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
Oto miejsca, w których możesz sprawdzić, czy możesz wysyłać prośby o reklamy podczas uzyskiwania zgody użytkowników:
- Po uzyskaniu zgody przez pakiet UMP SDK w bieżącej sesji.
- Natychmiast po wywołaniu funkcji
requestConsentInfoUpdateWithParameters:completionHandler:
. Pakiet SDK UMP mógł uzyskać zgodę w poprzedniej sesji aplikacji.
Jeśli podczas procesu zbierania zgody wystąpi błąd, sprawdź, czy możesz wysyłać żądania reklam. Pakiet SDK UMP korzysta ze stanu zgody z poprzedniej sesji aplikacji.
Zapobieganie zbędnym żądaniom reklam
Podczas sprawdzania
UMPConsentInformation.sharedInstance.canRequestAds
po uzyskaniu zgody i po wywołaniu
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 w przypadku 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 identyfikatory tych urządzeń testowych.
- Zadzwoń do firmy
requestConsentInfoUpdateWithParameters:completionHandler:
. Sprawdź w danych wyjściowych dziennika komunikat podobny do tego poniżej, 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]
Skopiuj identyfikator urządzenia testowego do schowka.
Zmodyfikuj kod, aby wywoływać funkcję
UMPDebugSettings().testDeviceIdentifiers
i przekazywać do niej 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 lub Wielkiej Brytanii, 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){
// ...
}];
Resetowanie stanu zgody
Podczas testowania aplikacji z pakietem SDK UMP możesz zresetować stan pakietu SDK, aby symulować pierwsze wrażenia użytkownika po zainstalowaniu aplikacji.
Pakiet SDK udostępnia do tego celu metodę reset
.
Swift
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Przykłady w GitHubie
Pełny przykład integracji pakietu SDK UMP opisany na tej stronie znajdziesz w Swift UmpExample i Objective-C UmpExample.