[iOS] 2. Dokumentacja API

Klasa CMPManager klasa udostępnia metody do zarządzania zgodą użytkownika na przetwarzanie danych i śledzenie. Niniejsza dokumentacja obejmuje główne metody dostępne do integracji z aplikacjami mobilnymi 

Wszystkie wymienione poniżej przykłady pochodzą z naszej aplikacji demonstracyjnej i można je tam znaleźć.

Sprawdź przestarzałe metody, jeśli już integrujesz wersję v3 naszego SDK CMP.

Inicjalizacja

setUrlConfig()

Ustawia konfigurację adresu URL dla menedżera zgód.

Parametry:

  • config: A UrlConfig obiekt zawierający następujące właściwości:
    • id: Ciąg znaków – identyfikator kodu pobrany z panelu CMP
    • domain: Ciąg znaków – domena do zarządzania zgodami, również pobrana z panelu
    • language: Ciąg znaków – kod języka (np. „EN”, „IT”, „DE” itp.)
    • appName: Ciąg znaków – nazwa Twojej aplikacji, używana wyłącznie do celów raportowania 
    • jsonConfig: Obiekt JSON – opcjonalny, używany tylko w szczególnych przypadkach; nie należy go używać, chyba że jest to wyraźnie zaznaczone na pulpicie nawigacyjnym CMP wraz z pozostałymi parametrami powyżej. 
    • noHash: boolean – zapobiega wykorzystaniu przez wygenerowany adres URL ładowany przez widok internetowy znaku hash (#) do przekazania obiektu zgody 

Zwroty: Nieważne

Przykład:

CMPManager.shared.setUrlConfig(UrlConfig(
    id: "0a000000000a1",					// The Code-ID retrieved from your CMP dashboard
    domain: "delivery.consentmanager.net",  // The domain retrieved from your CMP dashboard
    language: "EN",							// Language code, examples: IT, DE, EN, etc. 
    appName: "MyApp"						// The name of your app, used for reporting purposes on your CMP dashboard
))

setWebViewConfig()

Konfiguruje wygląd i zachowanie widoku WebView zgody. Możesz ustawić pozycję, w której pojawi się obiekt WKWebView wyświetlający warstwę zgody, np. na całym ekranie, w dolnej lub górnej połowie ekranu. Można również zastosować styl tła, promień narożników, określić, czy warstwa będzie respektować bezpieczny obszar urządzenia, a także czy będzie reagować na zmiany orientacji, na wypadek gdyby urządzenie mobilne działało tylko w jednej orientacji, co zwykle ma miejsce w przypadku gier wykorzystujących wyłącznie poziomą konfigurację ekranu urządzenia.   

Parametry:

  • config: A ConsentLayerUIConfig obiekt o następujących właściwościach:
    • position: Pozycja – pozycja widoku WebView (np. .fullScreen)
    • backgroundStyle: BackgroundStyle – styl tła (np. .dimmed)
    • cornerRadius: CGFloat – promień zaokrąglenia narożników WebView
    • respectsSafeArea: Bool – czy uwzględniać obszar bezpieczny. Ten parametr jest obecny, ale nie ma wpływu w SDK dla iOS ze względu na to, jak różne urządzenia i orientacje (iPhone SE x iPhone 17 Pro Max w porównaniu ze wszystkimi iPadami) zachowywałyby się, zwłaszcza ze względu na różne proporcje zaokrąglonych boków w różnych urządzeniach lub sposób obsługi dynamicznej wyspy przez podstawową aplikację mobilną integrującą nasze SDK, żeby wymienić tylko kilka wyzwań, z jakimi borykaliśmy się podczas tworzenia.
    • allowsOrientationChanges: Bool – Czy zezwolić na zmiany orientacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.setWebViewConfig(ConsentLayerUIConfig(
    position: .fullScreen,
    backgroundStyle: .dimmed(.black, 0.5),
    cornerRadius: 10,
    respectsSafeArea: true,
    allowsOrientationChanges: true
))

setPresentingViewController()

Ustawia kontroler widoku, który wyświetli warstwę zgody. Zazwyczaj przekazuje się self jako bieżący kontroler widoku. 

Parametry:

  • viewController: UIViewController – kontroler widoku służący do wyświetlania warstwy zgody

Zwroty: Nieważne

Przykład:

CMPManager.shared.setPresentingViewController(self)

setATTStatus()

Ustawia status ATT pobrany z ATTManager.AuthorizationStatus, aby mogła zostać wyświetlona odpowiednia warstwa zgody.

Parametry:

  • _: wartość surowa z AuthorizationStatus

Zwroty: Nieważne

Przykład:

cmpManager.setATTStatus(2)  // 0 = NotDetermined, 1 = Restricted, 2 = Denied, and 3 = Authorized
         					// retrieved from ATTManager.AuthorizationStatus

 

Zarządzanie warstwą zgody

getUserStatus()

Zwraca szczegółowy zrzut aktualnego statusu zgody użytkownika i jego preferencji. Ta metoda dostarcza wyczerpujących informacji na temat wyborów użytkownika dotyczących zgody, w tym jego ogólnego statusu zgody, indywidualnych uprawnień dostawców, zgód na konkretne cele oraz odpowiednich ciągów znaków zgody.

Parametry:

  • Brak

Zwroty:

Typ zwracanej wartości: CMPUserStatusResponse obiekt, wyjaśniony w kodzie poniżej. 

Przykład:

let status = CMPManager.shared.getUserStatus()
var message = "Status: (status.status)nn"

message += "Vendors:n"
for (vendorId, state) in status.vendors {
    message += "- (vendorId): (state)n"
}

message += "nPurposes:n"
for (purposeId, state) in status.purposes {
    message += "- (purposeId): (state)n"
}

message += "nTCF: (status.tcf)n"
message += "Additional Consent: (status.addtlConsent)n"
message += "Regulation: (status.regulation)"

print(message)

isConsentRequired()

Sprawdza, czy wymagana jest zgoda użytkownika, nie wyświetlając automatycznie warstwy zgody, jeśli jest to konieczne. Spowoduje to nawiązanie połączenia sieciowego z naszymi serwerami za pośrednictwem WKWebView utworzonego w naszym SDK, które wyśle wiadomość do naszego backendu za pomocą JavaScript. Nasz backend wykryje, czy urządzenie posiada ważną zgodę i zwróci false czy zgoda znaleziona w urządzeniu jest ważna, czy true czy należy uzyskać nową zgodę od użytkownika, co wiąże się z jednym wyświetleniem strony.

Parametry: Brak

Powrót: 

  • completion: (Bool) -> Void – zamknięcie wywołane z wynikiem, albo true jeśli nie znaleziono ważnej zgody, false w przeciwnym razie.

Przykład:

CMPManager.shared.isConsentRequired { required in
    print("Consent is required: (required)")
}

checkAndOpen()

Sprawdza na serwerze, czy wymagana jest zgoda, i w razie potrzeby otwiera okienko zgody. Spowoduje to wywołanie sieciowe do naszych serwerów za pośrednictwem WKWebView utworzonego w naszym SDK, co zużyje jedno wyświetlenie strony. To wywołanie sieciowe wyśle komunikat do naszego backendu za pomocą JavaScript, który wykryje, czy urządzenie posiada ważną zgodę, co z kolei określi, czy warstwa zgody musi zostać wyświetlona, czy nie.  

Parametry:

  • jumpToSettings: Wartość logiczna określająca, czy wyświetlona warstwa zgody automatycznie przekieruje do strony, na której użytkownicy mają bardziej szczegółową kontrolę nad udzielonymi zgodami, umożliwiając im precyzyjne dostosowanie swoich wyborów (gdy ustawiona na true) lub do początkowego ekranu domyślnego z przyciskami (gdy ustawione na false lub pominięte).
  • completion: Funkcja wywołana po zakończeniu operacji.

Zwroty: Nieważne

Przykład:

CMPManager.shared.checkAndOpen { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Check completed successfully")
    }
}

forceOpen()

Otwiera warstwę zgody. Wywołuje połączenie sieciowe z naszym backendem, zużywając przy tym jedno wyświetlenie strony. Wyświetli warstwę zgody, umożliwiając użytkownikowi zaakceptowanie wszystkich lub odrzucenie wszystkich opcji lub, w zależności od parametru jumpToSettings, pozwoli mu kontrolować zgody w bardziej szczegółowy sposób. 

Parametry:

  • jumpToSettings: Wartość logiczna określająca, czy wyświetlona warstwa zgody automatycznie przekieruje do strony, na której użytkownicy mają bardziej szczegółową kontrolę nad udzielonymi zgodami, umożliwiając im precyzyjne dostosowanie swoich wyborów (gdy ustawiona na true) lub do początkowego ekranu domyślnego z przyciskami (gdy ustawione na false lub pominięte).
  • completion: Funkcja zamykająca wywoływana po zakończeniu operacji, zwracająca komunikat o powodzeniu lub błędzie.

Zwroty: Nieważne

Przykład:

CMPManager.shared.forceOpen { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Consent layer opened successfully")
    }
}

Status zgody

exportCMPInfo()

Eksportuje bieżące informacje o zgodzie zapisane na urządzeniu jako ciąg znaków. Metoda ta pobiera ciąg znaków zgody z obszaru UserDefaults urządzenia i zwraca go. Zazwyczaj informacja ta jest przekazywana do metody importCMPInfo metodę

Zwraca: Ciąg znaków – wyeksportowane informacje dotyczące zgody

Przykład:

let cmpInfo = CMPManager.shared.exportCMPInfo()
print("Exported CMP info: (cmpInfo)")

getGoogleConsentModeStatus()

Płynnie integruje się z Consent Mode, technologią Google umożliwiającą modelowanie konwersji i analityki, pozwalającą usługom Google uzupełniać luki w danych, gdy użytkownicy nie wyrażą zgody. Ta funkcja przekształca zgodę użytkownika z Twojego CMP na format zrozumiały dla Firebase Analytics, dzięki czemu wystarczy pobrać wynik tej metody i przekazać go do metody Firebase .setConsent.

  • Następnie aktualizuje Google Analytics o aktualny status zgody użytkownika.

Parametry:

  • Brak

Zwraca: [String: String] – Tablica wartości kluczowych z czterema kluczami trybu zgody Google: .analyticsStorage, .adStorage, .adUserData oraz .adPersonalization, oraz ich odpowiednie wartości w postaci .choiceDoesntExist, .granted lub .denied.

Przykład:

showToast(message: "Google Consent Mode Status: n (CMPManager.shared.getGoogleConsentModeStatus())")

getStatusForPurpose()

Sprawdza, czy wyrażono zgodę na konkretny cel i czy ta zgoda jest zapisana na urządzeniu. Sprawdza obszar UserDefaults pod kątem zaakceptowanych lub odrzuconych zgód i filtruje identyfikator przekazany jako parametr, zwracając wartość true, jeśli zgoda została zaakceptowana, lub false w przeciwnym razie. 

Parametry:

  • id: String – identyfikator celu do sprawdzenia

Zwraca: UniqueConsentStatus – Lista wyliczeniowa z wartościami .choiceDoesntExist jeśli nie udzielono zgody, .granted lub .denied.

Przykład:

let purposeStatus = CMPManager.shared.getStatusForPurpose(id: "c53")
var message = "Purpose c53 status: "
switch purposeStatus {
   	case .choiceDoesntExist: message += "No Choice"
    case .granted: message += "Granted"
    case .denied: message += "Denied"
    @unknown default: message += "No Choice"
}

getStatusForVendor()

Sprawdza, czy udzielono zgody dla konkretnego dostawcy i czy zgoda ta jest zapisana na urządzeniu. Sprawdza obszar UserDefaults pod kątem zaakceptowanych lub odrzuconych zgód i filtruje identyfikator przekazany jako parametr, zwracając wartość true, jeśli zgoda została zaakceptowana, lub false w przeciwnym razie. 

Parametry:

  • id: String – identyfikator celu do sprawdzenia

Zwraca: UniqueConsentStatus – Lista wyliczeniowa z wartościami .choiceDoesntExist jeśli nie udzielono zgody, .granted lub .denied.

Przykład:

let purposeStatus = CMPManager.shared.getStatusForVendor(id: "s2789")
var message = "Vendor s2789's status: "
switch purposeStatus {
   	case .choiceDoesntExist: message += "No Choice"
    case .granted: message += "Granted"
    case .denied: message += "Denied"
    @unknown default: message += "No Choice"
}

Modyfikacja zgody

acceptAll()

Akceptuje zgodę na wszystkie cele i dostawców, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje akceptację wszystkich zgód zgodnie z konfiguracją CMP. Informacje te będą dostępne dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik pomyślny lub niepomyślny, co oznacza, że zostały one pomyślnie przetworzone przez nasz backend i zapisane na urządzeniu. 

Parametry:

  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.acceptAll { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("All consents accepted successfully")
    }
}

acceptPurposes()

Akceptuje zgodę na określone cele, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje akceptację określonych celów przekazanych jako parametr, zgodnie z konfiguracją CMP. Informacje te będą dostępne dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik sukcesu lub porażki, co oznacza, że zostały one pomyślnie przetworzone przez nasz backend i zapisane na urządzeniu. 

Parametry:

  • purposes: [String] – Tablica identyfikatorów celów do akceptacji
  • updatePurpose: Bool – Czy zaktualizować powiązane cele
  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.acceptPurposes(["c52", "c53"], updatePurpose: true) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Purposes accepted successfully")
    }
}

acceptVendors()

Akceptuje zgodę dla określonych dostawców, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje akceptację określonych dostawców przekazanych jako parametr, zgodnie z konfiguracją CMP. Informacje te będą dostępne dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik sukcesu lub porażki, co oznacza, że zostały one pomyślnie przetworzone przez nasz backend i zapisane na urządzeniu.  

Parametry:

  • vendors: [String] – tablica identyfikatorów dostawców do akceptacji
  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.acceptVendors(["s2790", "s2791"]) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Vendors accepted successfully")
    }
}

importCMPInfo()

Pobiera informacje o zgodzie z ciągu znaków CMP. Otrzyma to ciąg zawierający dane dotyczące zgody, zazwyczaj uzyskane metodą exportCMPInfo . Informacje te są zapisywane w obszarze UserDefaults urządzenia, a jednocześnie wysyłane do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co wiąże się z wykorzystaniem jednego wyświetlenia strony. 

Parametry:

  • cmpString: Ciąg znaków – ciąg znaków CMP do zaimportowania
  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

let cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
CMPManager.shared.importCMPInfo(cmpString) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("CMP info imported successfully")
    }
}

rejectAll()

Odrzuca zgodę na wszystkie cele i dostawców, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje odrzucenie wszystkich zgód zgodnie z konfiguracją CMP. Informacje te będą dostępne dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik sukcesu lub porażki, co oznacza, że zostały one pomyślnie przetworzone przez nasz backend i zapisane na urządzeniu. 

Parametry:

  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.rejectAll { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("All consents rejected successfully")
    }
}

rejectPurposes()

Odrzuca zgodę na określone cele, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje odrzucenie określonych celów przekazanych jako parametr, zgodnie z konfiguracją CMP. Informacja ta będzie dostępna dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik sukcesu lub porażki, co oznacza, że została pomyślnie przetworzona przez nasz backend i zapisana na urządzeniu. 

Parametry:

  • purposes: [String] – tablica identyfikatorów celów do odrzucenia
  • updateVendor: Bool – Czy zaktualizować powiązanych dostawców
  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.rejectPurposes(["c52", "c53"], updateVendor: true) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Purposes rejected successfully")
    }
}

rejectVendors()

Odrzuca zgodę dla określonych dostawców, zużywając przy tym jedno wyświetlenie strony. Wykonuje wywołanie sieciowe do naszego backendu za pośrednictwem komunikatu wstrzykniętego do WKWebView, co spowoduje odrzucenie określonych dostawców przekazanych jako parametr, zgodnie z konfiguracją CMP. Informacja ta będzie dostępna dla innych metod dopiero po tym, jak wywołanie zwrotne zwróci wynik sukcesu lub porażki, co oznacza, że została pomyślnie przetworzona przez nasz backend i zapisana na urządzeniu. 

Parametry:

  • vendors: [String] – tablica identyfikatorów dostawców, których należy odrzucić
  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.rejectVendors(["s2790", "s2791"]) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Vendors rejected successfully")
    }
}

 

resetConsentManagementData()

Spowoduje to usunięcie par klucz/wartość z obszarów UserDefaults i SharedPreferences urządzenia. Aby całkowicie usunąć dane, może być konieczne usunięcie plików cookie, rekordów danych oraz historii i pamięci podręcznej widoku internetowego, co wymusi konieczność uzyskania nowej zgody.  

Parametry:

  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.resetConsentManagementData { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Consent management data reset successfully")
    }
}

Przekazywanie danych dotyczących zgody do zewnętrznych bibliotek SDK

updateThirdPartyConsent

Ta metoda obsługuje automatyczne przekazywanie danych dotyczących zgody do zewnętrznych SDK, takich jak AppsFlyer, AdJust, Branch, Kochava, Singular, AirBridge i Tenjin. Działa ona poprzez introspekcję/refleksję, więc zainicjuj SDK strony trzeciej przy użyciu swoich danych uwierzytelniających zgodnie ze standardową strategią zalecaną przez dostawcę, a nasze SDK CMP wykryje instancję SDK strony trzeciej i wywoła niezbędne metody w tle. 

Zdarzenia CMPManagerDelegate

getOnClickLinkCallback

SDK zapewnia elastyczny mechanizm obsługi linków, który pozwala aplikacjom dostosować sposób obsługi adresów URL w warstwie zgody. Domyślnie wszystkie linki otwierają się w widoku WebView, ale aplikacje mogą przechwytywać określone adresy URL, aby w razie potrzeby obsługiwać je zewnętrznie.

// Example 1: Handle specific domains in external browser
cmpManager.setLinkClickHandler { url in
    // Handle links to specific domains externally
    if url.host?.contains("google.com") == true || 
       url.host?.contains("facebook.com") == true {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true // URL handled externally
    }
    
    // Let other URLs load in the WebView
    return false
}

// Example 2: Handle URLs based on scheme
cmpManager.setLinkClickHandler { url in
    // Open mail links in mail app
    if url.scheme == "mailto" {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true
    }
    
    // Open tel links in phone app
    if url.scheme == "tel" {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true
    }
    
    // Let all other URLs load in the WebView
    return false
}

didReceiveConsent(consent: String, jsonObject: [String: Any])

Jest to uruchamiane, gdy warstwa zgody została zamknięta po zaktualizowaniu przez użytkownika swoich zgód LUB przy wywołaniu metod powodujących zmiany w zgodach, takich jak acceptAll, rejectAll, acceptVendors, rejectVendors itp. Oznacza to, że użytkownik zaakceptował lub odrzucił niektóre lub wszystkie zgody i że zostały one poprawnie zapisane w urządzeniu.

didShowConsentLayer

Jest to uruchamiane, gdy warstwa zgody została faktycznie wyświetlona. Oznacza to, że na urządzeniu nie było ważnej zgody, więc należy zebrać nową.

didCloseConsentLayer


Jest to uruchamiane, gdy:

1. SDK sprawdziło potrzebę uzyskania zgody, ale nie była ona wymagana i warstwa nie została wyświetlona. Oznacza to, że na urządzeniu istnieje już ważna zgoda, więc nowa nie jest konieczna, a warstwa zgody nie zostanie wyświetlona.
2. Użytkownik wchodził w interakcję z warstwą zgody i wyraził zgodę, zamykając ją.

didReceiveError

Funkcja ta uruchamia się, gdy SDK napotka jakikolwiek błąd, zwracając jego kod. W przypadku słabych warunków sieciowych należy spodziewać się stałego limitu czasu wynoszącego około 10 sekund. 

Przestarzałe metody

Wszystkie poniższe metody zostały wycofane i zostaną całkowicie usunięte z SDK od lipca 2025 r. 

checkIfConsentIsRequired()

Sprawdza, czy wymagana jest zgoda użytkownika. Spowoduje to wywołanie sieciowe do naszych serwerów za pośrednictwem WKWebView utworzonego w naszym SDK, które wyśle wiadomość do naszego backendu za pomocą JavaScript. Nasz backend wykryje, czy urządzenie posiada ważną zgodę, a wiadomość zostanie odesłana do WKWebView, określając, czy należy ją wyświetlić, czy nie, zużywając przy tym jedno wyświetlenie strony. W zależności od zwróconej wiadomości, SDK zinterpretuje ją i zwróci wyniki za pośrednictwem procedury obsługi zakończenia.

Parametry:

  • completion: (Bool) -> Void – zamknięcie wywołane z wynikiem, którym jest albo true lub false.

Zwroty: Ton

Przykład:

CMPManager.shared.checkIfConsentIsRequired { required in
    print("Consent is required: (required)")
}

jumpToSettings()

Otwiera warstwę zgody i przechodzi bezpośrednio do strony ustawień. Spowoduje to wywołanie sieciowe do naszych serwerów, zużywając przy tym jedno wyświetlenie strony, wywołując wyświetlenie WKWebView, ale wyświetlając stronę ustawień zamiast strony początkowej warstwy zgody, która daje użytkownikom możliwość wyboru między zaakceptowaniem wszystkich a odrzuceniem wszystkich zgód. To z kolei prowadzi do strony, na której użytkownicy mają bardziej szczegółową kontrolę nad zgodami, co pozwala im precyzyjnie dostosować swoje wybory. 

Parametry:

  • completion: Wywołanie funkcji kończącej po zakończeniu operacji

Zwroty: Nieważne

Przykład:

CMPManager.shared.jumpToSettings { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Jumped to settings successfully")
    }
}

hasPurposeConsent()

Sprawdza, czy wyrażono zgodę na konkretny cel i czy ta zgoda jest zapisana na urządzeniu. Sprawdza obszar UserDefaults pod kątem zaakceptowanych lub odrzuconych zgód i filtruje identyfikator przekazany jako parametr, zwracając wartość true, jeśli zgoda została zaakceptowana, lub false w przeciwnym razie. 

Uwaga: Zawsze najpierw sprawdź hasUserChoice()! W przypadkach, gdy nie ma wyboru, funkcja może zwracać nieoczekiwane wartości zwracane.

Parametry:

  • id: String – identyfikator celu do sprawdzenia

Zwroty: BoolTrue jeśli wyrażono zgodę, false w przeciwnym razie

Przykład:

let hasPurposeConsent = CMPManager.shared.hasPurposeConsent(id: "c53")
print("Has consent for purpose c53: (hasPurposeConsent)")

hasUserChoice()

Sprawdza, czy użytkownik dokonał wyboru w zakresie zgód i czy ta zgoda jest zapisana na urządzeniu. Oznacza to, że użytkownik albo zaakceptował wszystkie zgody, odrzucił je wszystkie, albo dokonał mieszanego wyboru odrzuconych i zaakceptowanych zgód, w zależności od projektu CMP, który może pozwalać użytkownikom na wyrażenie zgody na niektóre zgody i odrzucenie innych. Informacje te będą aktualne dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz to zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: Bool – true jeśli użytkownik dokonał wyboru, false w przeciwnym razie

Przykład:

let hasChoice = CMPManager.shared.hasUserChoice()
print("User has made a choice: (hasChoice)")

hasVendorConsent()

Sprawdza, czy udzielono zgody dla konkretnego dostawcy i czy ta zgoda jest zapisana na urządzeniu, zgodnie z konfiguracjami CMP. Informacja ta będzie aktualna dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, to poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Parametry:

  • id: String – identyfikator dostawcy do sprawdzenia

Zwroty: BoolTrue jeśli wyrażono zgodę, false w przeciwnym razie

Przykład:

let hasVendorConsent = CMPManager.shared.hasVendorConsent(id: "s2789")
print("Has consent for vendor s2789: (hasVendorConsent)")

getAllPurposesIDs()

Pobiera wszystkie identyfikatory celów zapisane na urządzeniu, zgodnie z konfiguracjami CMP. Informacje te będą aktualne dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz je zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: [String] – tablicę identyfikatorów wszystkich celów

Przykład:

let allPurposes = CMPManager.shared.getAllPurposesIDs()
print("All purposes: (allPurposes)")

getAllVendorsIDs()

Pobiera wszystkie identyfikatory dostawców zapisane na urządzeniu, zgodnie z konfiguracjami CMP. Informacje te będą aktualne dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz je zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: [String] – tablicę zawierającą wszystkie identyfikatory dostawców

Przykład:

let allVendors = CMPManager.shared.getAllVendorsIDs()
print("All vendors: (allVendors)")

getDisabledPurposesIDs()

Pobiera identyfikatory wszystkich wyłączonych celów zapisanych na urządzeniu, zgodnie z konfiguracjami CMP i wyborami użytkownika. Jeśli użytkownik wyrazi zgodę na wszystkie cele, pole to będzie puste.  Informacje te będą aktualne dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz je zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: [String] – tablicę wyłączonych identyfikatorów celów

Przykład:

let disabledPurposes = CMPManager.shared.getDisabledPurposesIDs()
print("Disabled purposes: (disabledPurposes)")

getDisabledVendorsIDs()

Pobiera identyfikatory wszystkich wyłączonych dostawców zapisanych na urządzeniu, zgodnie z konfiguracjami CMP. Jeśli użytkownik wyrazi zgodę na wszystkie opcje, pole to będzie puste. Informacja ta będzie aktualna dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz ją zaraz po użyciu metod wywołujących zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: [String] – tablicę wyłączonych identyfikatorów dostawców

Przykład:

let disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
print("Disabled vendors: (disabledVendors)")

getEnabledPurposesIDs()

Pobiera identyfikatory wszystkich włączonych celów zapisanych na urządzeniu, zgodnie z konfiguracjami CMP. Jeśli użytkownik odrzuci wszystkie zgody, pole to będzie puste. Informacja ta będzie aktualna dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz ją zaraz po użyciu metod, które powodują zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, na przykład, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby upewnić się, że informacje są aktualne.

Zwraca: [String] – tablicę identyfikatorów włączonych celów

Przykład:

let enabledPurposes = CMPManager.shared.getEnabledPurposesIDs()
print("Enabled purposes: (enabledPurposes)")

getEnabledVendorsIDs()

Pobiera identyfikatory wszystkich włączonych dostawców zapisanych na urządzeniu. Jeśli użytkownik odrzuci wszystkie zgody, pole to będzie puste. Informacja ta będzie aktualna dopiero po prawidłowym zapisaniu zgody w obszarze UserDefaults, więc jeśli sprawdzasz ją zaraz po użyciu metod wywołujących zmiany w zgodzie, takich jak openConsentLayer, acceptAll lub rejectAll, poczekaj, aż zostanie wywołana funkcja zwrotna z tych metod, zanim uzyskasz dostęp do metody hasUserChoice, aby mieć pewność, że informacje są aktualne.

Zwraca: [String] – tablicę identyfikatorów włączonych dostawców

Przykład:

let enabledVendors = CMPManager.shared.getEnabledVendorsIDs()
print("Enabled vendors: (enabledVendors)")

 

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!