[iOS] 3. Dokumentacja API
Akceptuj wszystkie
Akceptuje warstwę zgody i zachowuje się tak samo, gdy użytkownik zaakceptuje zgodę.
parametry
Imię | Typ | Opis Projektu |
onFinish |
funkcjonować | Oddzwanianie do obsługi zdarzenia otrzymania zgody. zostanie wywołana po otrzymaniu i przetworzeniu zgody. |
Powrót
Brak wartości zwracanej.
Przykład
func onFinish() {
print("Notification: New consent was received")
}
// Accept all consent with a callback
cmpConsentTool.acceptAll(onFinish)
ZOBACZ
Sprawdza, czy wymagana jest zgoda użytkownika, opcjonalnie zwracając wyniki z pamięci podręcznej.
parametry
Imię | Typ | Opis Projektu |
onCmpLayerOpen |
funkcjonować | Oddzwanianie, gdy warstwa zgody musi być otwarta. |
isCached |
Boolean | Jeśli ma wartość TRUE, żądanie zostanie zapisane w pamięci podręcznej, a odpowiedź zostanie zapisana |
Powrót
Brak wartości zwracanej.
Przykład
@objc func checkCmpLayer() {
print("Checking need for consent.")
cmpManager?.check(
{
// Callback for when the consent layer needs to be opened
print("Consent layer will open")
self.cmpConsentTool?.openView()
},
isCached: true
)
}
checkAndOpenConsentLayer
Sprawdza, czy wymagana jest zgoda użytkownika, i jeśli tak, otwiera interfejs warstwy zgody.
parametry
Brak. |
Powrót
Brak wartości zwracanej.
Przykład
@objc func checkAndOpenConsentLayerAction() {
cmpManager?.checkAndOpenConsentLayer()
}
zgoda wymagana dzisiaj
Sprawdza, czy dzisiaj zażądano warstwy zgody.
parametry
Brak. |
Powrót
PRAWDA, jeśli zgoda użytkownika została już poproszona dzisiaj.
W przeciwnym razie FAŁSZ.
Przykład
@objc func consentRequestedTodayAction() {
if let calledToday = cmpManager?.consentRequestedToday() {
print("Consent requested today: \(calledToday)")
} else {
print("Failed to retrieve consent request status for today.")
}
}
wyłącz listę celów
Wyłącza listę celów i aktualizuje wyrażoną zgodę.
parametry
Imię | Typ | Opis Projektu |
purposes |
Szyk | Lista identyfikatorów celów do wyłączenia. |
onFinish |
funkcja (opcjonalnie) | Oddzwanianie do obsługi zdarzenia otrzymania zgody. zostanie wywołana po otrzymaniu i przetworzeniu zgody. |
Powrót
Brak wartości zwracanej.
Przykład
func onFinish() {
print("Notification: New consent received")
}
let purposes = ["1", "2"]
// Option with callback
cmpManager?.disablePurposeList(purposes, onFinish: onFinish)
// Option without callback
cmpManager?.disablePurposeList(purposes)
wyłącz listę dostawców
Wyłącza listę dostawców i aktualizuje wyrażoną zgodę.
parametry
Imię | Typ | Opis Projektu |
vendors |
Szyk | Lista identyfikatorów dostawców do wyłączenia. |
onFinish |
funkcja (opcjonalnie) | Wywołanie zwrotne dotyczące obsługi zdarzenia otrzymanej zgody. Zostanie wywołany, gdy zgoda zostanie otrzymana i przetworzona. |
Powrót
Brak wartości zwracanej.
Przykład
func onFinish() {
print("Notification: New consent received")
}
let vendors = ["1", "2"]
// Option with callback
cmpManager?.disableVendorList(vendors, onFinish: onFinish)
// Option without callback
cmpManager?.disableVendorList(vendors)
włącz listę celów
Włącza listę celów i aktualizuje wyrażoną zgodę.
parametry
Imię | Typ | Opis Projektu |
purposes |
Szyk | Lista identyfikatorów celów do włączenia. |
onFinish |
funkcja (opcjonalnie) | Wywołanie zwrotne dotyczące obsługi zdarzenia otrzymanej zgody. Zostanie wywołany, gdy zgoda zostanie otrzymana i przetworzona. |
Powrót
Brak wartości zwracanej
Przykład
func onFinish() {
print("Notification: New consent received")
}
let purposes = ["1", "2"]
// Option with callback
cmpManager?.enablePurposeList(purposes, onFinish: onFinish)
// Option without callback
cmpManager?.enablePurposeList(purposes)
włącz listę dostawców
Włącza listę dostawców i aktualizuje udzieloną zgodę.
parametry
Imię | Typ | Opis Projektu |
vendors |
Szyk | Lista identyfikatorów dostawców do włączenia. |
onFinish |
funkcja (opcjonalnie) | Wywołanie zwrotne dotyczące obsługi zdarzenia otrzymanej zgody. iZostanę wezwany po otrzymaniu i przetworzeniu zgody. |
Powrót
Brak wartości zwracanej.
Przykład
func onFinish() {
print("Notification: New consent received")
}
let vendors = ["1", "2"]
// Option with callback
cmpManager?.enableVendorList(vendors, onFinish: onFinish)
// Option without callback
cmpManager?.enableVendorList(vendors)
eksportCmpString
Eksportuje bieżący ciąg CMP reprezentujący preferencje dotyczące zgody użytkownika. Dostęp do tej metody jest statyczny.
parametry
Brak. |
Powrót
Ciąg zakodowany w standardzie CMP base64.
Przykład
@objc func exportConsentStringAction() {
let exportString = cmpManager.exportCmpString()
print(exportString ?? "No string to export.");
}
pobierzWszystkie cele
Zwraca identyfikatory wszystkich celów.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich celów.
Przykład
@objc func getAllPurposesAction() {
if let allPurposes = cmpManager?.getAllPurposes() {
print("All purposes: \(allPurposes)")
// Additional actions for getAllPurposes function can be added here
} else {
print("Failed to retrieve all purposes.")
}
}
pobierz listę wszystkich celów
Zwraca listę identyfikatorów wszystkich celów dla danego CMP.
parametry
Brak. |
Powrót
Lista zawierające wszystkie identyfikatory celów.
Przykład
@objc func getAllPurposeListAction() {
// Action for getAllPurposeList function
if let allPurposes = cmpManager?.getAllPurposesList() {
print("All purposes list: \(allPurposes.joined(separator: ", "))")
} else {
print("Failed to retrieve all purposes list.")
}
}
getAllVendors
Zwraca identyfikatory wszystkich dostawców dla danego CMP.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich dostawców.
Przykład
@objc func getAllVendorsAction() {
if let allPurposes = cmpManager?.getAllVendors() {
print("Printing all Vendors: \(allPurposes)")
} else {
print("Failed to retrieve all vendors.")
}
}
pobierz listę wszystkich dostawców
Zwraca listę identyfikatorów wszystkich dostawców dla danego CMP.
parametry
Brak. |
Powrót
Lista zawierający wszystkie identyfikatory dostawców.
Przykład
@objc func getAllVendorsListAction() {
if let allVendors = cmpManager?.getAllVendorsList() {
print("All vendors list: \(allVendors.joined(separator: ", "))")
} else {
print("Failed to retrieve all vendors list.")
}
}
pobierzCiąg zgody
Zwraca ciąg znaków z ostatnią wyrażoną zgodą.
parametry
Brak. |
Powrót
Ciąg znaków z ostatnią zgodą potwierdzoną przez użytkownika.
Przykład
@objc func getAllVendorsListAction() {
if let allVendors = cmpManager?.getAllVendorsList() {
print("All vendors list: \(allVendors.joined(separator: ", "))")
} else {
print("Failed to retrieve all vendors list.")
}
}
getDisabledCele
Zwraca identyfikatory wszystkich wyłączonych celów dla danego CMP.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich wyłączonych celów.
Przykład
@objc func getDisabledPurposesAction() {
if let disabledPurposes = cmpManager?.getDisabledPurposes() {
print("Disabled purposes: \(disabledPurposes)")
} else {
print("Failed to retrieve disabled purposes.")
}
}
getDisabledVendors
Zwraca identyfikatory wszystkich wyłączonych dostawców dla danego CMP.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich wyłączonych dostawców.
Przykład
@objc func getDisabledVendorsAction() {
if let disabledVendors = cmpManager?.getDisabledVendors() {
print("Disabled vendors: \(disabledVendors)")
} else {
print("Failed to retrieve disabled vendors.")
}
}
getEnabledCele
Zwraca identyfikatory wszystkich włączonych dostawców dla danego CMP.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich włączonych dostawców.
Przykład
@objc func getEnabledVendorsAction() {
if let enabledVendors = cmpManager?.getEnabledVendors() {
print("Enabled vendors: \(enabledVendors)")
} else {
print("Failed to retrieve enabled vendors.")
}
}
getEnabledPurposeList
Zwraca listę identyfikatorów wszystkich włączonych celów dla danego CMP.
parametry
Brak. |
Powrót
Lista zawierający identyfikatory wszystkich włączonych celów.
Przykład
@objc func getEnabledPurposesAction() {
if let enabledPurposes = cmpManager?.getEnabledPurposes() {
print("Enabled purposes: \(enabledPurposes.joined(separator: ", "))")
} else {
print("Failed to retrieve enabled purposes list.")
}
}
getEnabledVendors
Zwraca identyfikatory wszystkich włączonych dostawców dla danego CMP.
parametry
Brak. |
Powrót
Ciąg rozdzielany przecinkami zawierający identyfikatory wszystkich włączonych dostawców.
Przykład
@objc func getEnabledVendorsAction() {
if let enabledVendors = cmpManager?.getEnabledVendors() {
print("Enabled vendors: \(enabledVendors)")
} else {
print("Failed to retrieve enabled vendors.")
}
}
getEnabledVendorList
Zwraca listę wszystkich włączonych identyfikatorów dostawców dla danego CMP.
parametry
Brak. |
Powrót
Lista zawierający identyfikatory wszystkich włączonych dostawców.
Przykład
@objc func getEnabledVendorsAction() {
if let enabledVendors = cmpManager?.getEnabledVendors() {
print("Enabled vendors: \(enabledVendors.joined(separator: ", "))")
} else {
print("Failed to retrieve enabled vendors.")
}
}
pobierz GoogleACString
Pobiera ciąg identyfikatora dodatkowej zgody Google („addtlConsent”) ustawiony przez consent manager.
Aby uzyskać więcej informacji, sprawdź Specyfikacja techniczna dodatkowej zgody Google.
parametry
Brak. |
Powrót
Lista zawierający identyfikatory wszystkich włączonych dostawców.
Przykład
@objc func getGoogleConsentStringAction() {
if let googleACString = cmpManager?.getGoogleACString() {
print("Google Additional Consent String: \(googleACString)")
} else {
print("Failed to retrieve Google Additional Consent String.")
}
}
pobierz USPrivacyString
Pobiera ciąg znaków prywatności w USA. Ten amerykański ciąg znaków prywatności to plik cookie przechowujący informacje o dokonanych ujawnieniach i wyborach wybranych przez osobę odwiedzającą witrynę w zakresie jej praw konsumenckich.
parametry
Brak. |
Powrót
Ciąg znaków z danymi dotyczącymi prywatności w USA ustawionymi przez consentmanager.
Przykład
@objc func getUSPrivacyStringAction() {
if let theUSPrivacyString = cmpManager?.getUSPrivacyString() {
print("US Privacy string contents: \(theUSPrivacyString)")
} else {
print("Failed to retrieve US Privacy string.")
}
}
ma zgodę
Sprawdza, czy użytkownik wyraził już zgodę. Warstwa zgody może mieć opcję zamknięcia warstwy. W takim przypadku użytkownik nie wyraził zgody.
parametry
Brak. |
Powrót
Ciąg znaków z danymi dotyczącymi prywatności w USA ustawionymi przez consentmanager.
Przykład
@objc func getHasConsentAction() {
if let hasConsent = cmpManager?.hasConsent() {
let consentStatus = hasConsent ? "Yes" : "No"
print("Consent provided by the user? \(consentStatus)")
} else {
print("Failed to retrieve user consent.")
}
}
maCelowązgodę
Sprawdza, czy identyfikator celu jest włączony na podstawie zgody użytkownika.
parametry
Imię | Typ | Opis Projektu |
purposeId |
sznur | identyfikator celu |
Powrót
PRAWDA jeśli
- użytkownik wyraził zgodę na określony cel LUB
- z jakiegokolwiek powodu związanego ze słabym połączeniem internetowym lub jego brakiem na urządzeniu, nie można było uzyskać zgody na ten cel. Proszę zapoznać się z withErrorListener, aby poradzić sobie z tymi warunkami podczas uruchamiania aplikacji, szczególnie w przypadku nowych użytkowników, którzy nie wyrazili jeszcze żadnej zgody
W przeciwnym razie FAŁSZ.
Przykład
@objc func getHasPurposeConsentAction() {
if let hasPurposeConsent = cmpManager?.hasPurposeConsent("purposeID") {
let consentStatus = hasPurposeConsent ? "Yes" : "No"
print("Purpose has consent provided by the user? \(consentStatus)")
} else {
print("Failed to retrieve user purpose consent.")
}
}
mazgodędostawcy
Sprawdza, czy identyfikator dostawcy jest włączony na podstawie zgody użytkownika.
parametry
Imię | Typ | Opis Projektu |
vendorId |
sznur | identyfikator sprzedawcy |
Powrót
PRAWDA jeśli
- użytkownik wyraził zgodę określonemu dostawcy LUB
- z jakiegokolwiek powodu związanego ze słabym połączeniem internetowym lub jego brakiem na urządzeniu, nie udało się uzyskać zgody sprzedawcy. Proszę zapoznać się z withErrorListener, aby poradzić sobie z tymi warunkami podczas uruchamiania aplikacji, szczególnie w przypadku nowych użytkowników, którzy nie wyrazili jeszcze żadnej zgody
W przeciwnym razie FAŁSZ.
Przykład
@objc func getHasVendorConsentAction() {
if let hasVendorConsent = cmpManager?.hasVendorConsent("vendorID") {
let consentStatus = hasVendorConsent ? "Yes" : "No"
print("Vendor has consent provided by the user? \(consentStatus)")
} else {
print("Failed to retrieve user vendor consent.")
}
}
importCmpString
Importuje ciąg CMP reprezentujący preferencje dotyczące zgody użytkownika. Ciąg musi być zakodowany w formacie Base64.
parametry
Imię | Typ | Opis Projektu |
ciąg zgody | sznur | Ciąg zakodowany w formacie Base64 reprezentujący zgodę |
zakończenieHandler | funkcja (opcjonalnie) | Procedura obsługi zakończenia wywołania zwrotnego do metody. |
Powrót
Brak.
Przykład
let cmpString = "YourBase64EncodedConsentStringHere"
// Define the completion handler
let completionHandler: CmpImportCompletionHandler = { error in
if let error = error {
print("Failed to import CMP string: \(error.localizedDescription)")
} else {
print("CMP string imported successfully")
}
}
cmpManager.importCmpString(cmpString, completion: completionHandler)
zainicjować
Funkcja inicjalizacji zainicjuje warstwę zgody i automatycznie sprawdzi, czy użytkownik potrzebuje zgody, czy nie. Ta funkcja ostatecznie otworzy warstwę zgody i wejdzie w interakcję z interfejsem Apple Tracking Transparency API, aby poprosić użytkownika o zgodę
parametry
Imię | Typ | Opis Projektu |
cmpConfig |
Konfiguracja Cmp | Do obiektu CmpConfig przekazywane są informacje dotyczące identyfikatora aplikacji, domeny, nazwy aplikacji i języka (opcjonalnie) |
Powrót
Obiekt CMMPManage.
Przykład
// Example of a default implementation of the SDK.
class ViewController: UIViewController {
// Usual implementation of a View Controller
var cmpManager: CMPConsentTool? = nil
override func viewDidLoad() {
super.viewDidLoad()
// Configure your CMP
let cmpConfig: CmpConfig = CmpConfig.shared.setup(
withId: "<YOUR-CONSENTMANAGER-APP-ID>, example: a000aaaa0a",
domain: "<YOUR-CONSENTMANAGER-APP-DOMAIN>, example: delivery.consentmanager.net",
appName: "<YOUR-CONSENTMANAGER-APP-NAME>, example: testApp",
language: "<YOUR-CONSENTMANAGER-APP-LANGUAGE, example: DE");
// You can also determine log levels or ask for Apple's App Tracking Transparency, for example
cmpConfig.logLevel = CmpLogLevel.verbose;
cmpConfig.isAutomaticATTRequest = true;
// Then you pass the cmpConfig to set up and initialize the instance of our SDK
cmpManager = CMPConsentTool(cmpConfig: cmpConfig)
.withErrorListener(onCMPError)
.withCloseListener(onClose)
.withOpenListener(onOpen)
.withOnCMPNotOpenedListener(onCMPNotOpened)
.withOnCmpButtonClickedCallback(onButtonClickedEvent)
.initialize() // This method will trigger the webview loading to collect consent, if necessary
}
}
jest wymagana zgoda
Sprawdza, czy bieżący użytkownik aplikacji musi wyrazić zgodę.
parametry
Brak. |
Powrót
PRAWDA, jeśli użytkownik musi wyrazić zgodę
W przeciwnym razie FAŁSZ
Przykład
@objc func checkIfConsentIsRequired() {
if let isConsentRequired = cmpConsentTool?.isConsentRequired() {
let consentRequiredStatus = isConsentRequired ? "Yes" : "No"
print("Is user consent required? \(consentRequiredStatus)")
} else {
print("Failed to determine if user consent is required.")
}
}
OtwórzWidok
Wymusza otwarcie widoku internetowego warstwy zgody CMP.
parametry
Brak. |
Powrót
Brak wartości zwracanej
Przykład
@objc func checkCmpLayer() {
print("Checking CMP API...")
cmpManager?.check(
{
// Callback for when the consent layer needs to be opened
print("Consent layer will open")
self.cmpConsentTool?.openView()
},
isCached: true,
onCmpLayerNotOpen: {
// Callback for when the consent layer does not need to be opened
print("Consent layer will not open")
}
)
}
odrzuć wszystko
Odrzuca warstwę zgody i zachowuje się tak samo, gdy użytkownik nie zaakceptował zgody.
parametry
Imię | Typ | Opis Projektu |
onFinish |
funkcjonować | Opcjonalny. Wywołanie zwrotne dotyczące obsługi zdarzenia otrzymanej zgody. zostanie wywołany, gdy zgoda zostanie otrzymana i przetworzona. |
Powrót
Brak wartości zwracanej
Przykład
func onFinish() {
print("Notification: New consent has been received with a Reject All response.")
}
// Reject all consent with a callback
cmpManager.rejectAll(onFinish)
zresetuj
Resetuje wszystkie właściwości do wartości domyślnych.
parametry
Brak. |
Powrót
Brak wartości zwracanej
Przykład
CMPManager.reset()
z CloseListener
Dodaje bliskiego słuchacza, który będzie otrzymywać powiadomienia, gdy warstwa zgody zostanie zamknięta.
parametry
Imię | Typ | Opis Projektu |
closeListener |
funkcjonować | Wywołanie zwrotne, które zostanie wywołane po zamknięciu warstwy zgody. |
Powrót
Narzędzie CMPConsent
Przykład
func onClose() {
print("APP: CLOSED")
// Add custom business logic here
}
// Initialize cmpManager with configuration and close listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
.withCloseListener(onClose)
z OpenListenerem
Dodaje otwartego odbiornika, który będzie otrzymywać powiadomienia o otwarciu warstwy zgody.
parametry
Imię | Typ | Opis Projektu |
openListener |
funkcjonować | Wywołanie zwrotne, które zostanie wywołane po otwarciu warstwy zgody |
Powrót
Narzędzie CMPConsent
Przykład
func onOpen() {
print("APP: OPENED")
// Add custom business logic here
}
// Initialize cmpManager with configuration and open listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
.withCloseListener(onOpen)
za pomocąErrorListener
Dodaje detektor błędów, który będzie otrzymywać powiadomienia o wystąpieniu błędu.
parametry
Imię | Typ | Opis Projektu |
errorListener |
funkcjonować | Wywołanie zwrotne w celu dodania akcji w przypadku wystąpienia błędu. |
Powrót
Narzędzie CMPConsent
Przykład
func onCMPError(type: CmpErrorType, message: String?) {
if let errorMessage = message {
print(errorMessage)
} else {
print("An error occurred.")
}
switch type {
case .networkError:
print("Network error")
case .timeoutError:
print("Timeout error")
case .consentDataReadWriteError:
print("Consent data read/write error")
case .unknownError:
print("Unknown error")
@unknown default:
print("Unexpected error")
}
}
// Initialize cmpManager with configuration and error listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
.withErrorListener(onCMPError)
z OnCMMPNotOpenedListener
Dodaje wywołanie zwrotne nieotwarte Cmp, aby otrzymać powiadomienie, gdy warstwa zgody nie otwiera się. Najczęstszym powodem jest to, że użytkownik wyraził już zgodę.
parametry
Imię | Typ | Opis Projektu |
openListener |
funkcjonować | Callback, który zostanie wywołany, gdy warstwa zgody nie zostanie otwarta. |
Powrót
Narzędzie CMPConsent
Przykład
func onCMPNotOpened() {
print("CMP: NOT OPENED")
// Add custom business logic here
}
// Initialize cmpConsentTool with configuration and CMP not opened listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
.withOnCMPNotOpenedListener(onCMPNotOpened)
z OnCmpButtonClickedCallback
Ustawia wywołanie zwrotne w celu otrzymywania powiadomień, gdy użytkownik kliknie przycisk w celu zamknięcia warstwy zgody.
parametry
Imię | Typ | Opis Projektu |
openListener |
funkcjonować | Wywołanie zwrotne, które zostanie wywołane ze zdarzeniem CmpButtonEvent wskazującym, który przycisk został naciśnięty. |
Powrót
Narzędzie CMPConsent
Przykład
func onButtonClickedEvent(event: CmpButtonEvent) {
switch event {
case .acceptAll:
print("User accepted all.")
case .rejectAll:
print("User rejected all.")
case .save:
print("User saved custom settings.")
case .close:
print("User closed consent layer without giving consent.")
@unknown default:
print("Unknown button event.")
}
}
// Initialize cmpManager with configuration and button click callback
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
.withOnCmpButtonClickedCallback(onButtonClickedEvent)
z blokiem konfiguracji CmpViewControllerConfiguration
Dostosuj moduł zgody UIViewController.
parametry
Imię | Typ | Opis Projektu |
|
Blok konfiguracyjny CmpViewController |
Dostosuj warstwę zgody
Kontroler UIView. |
Powrót
Narzędzie CMPConsent
Przykład
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
.withCmpViewControllerConfigurationBlock { viewController in
viewController?.modalPresentationStyle = .formSheet
}
z blokiem CmpViewConfigurationBlock
Dostosuj UiView modułu zgody.
parametry
Imię | Typ | Opis Projektu |
|
CmpUIViewConfigurationBlock |
Dostosuj warstwę zgody
UiView |
Powrót
Narzędzie CMPConsent
Przykład
let cmpLayout = CmpLayout.default()
cmpLayout?.cornerRadius = 10.0
cmpLayout?.customLayout = CGRect(x: 0, y: 0, width: 200, height: 300)
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
.withCmpViewConfigurationBlock { uiView in
cmpLayout?.apply(to: uiView)
}
za pomocą aktualizacji GoogleConsent
Pobiera stan trybu uzyskiwania zgody Google.
parametry
Imię | Typ | Opis Projektu |
|
[sznur: sznur]? |
Stan zgody |
Powrót
Narzędzie CMPConsent
Przykład
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
.withUpdateGoogleConsent(onCmpUpdateGoogleConsent)
func onCmpUpdateGoogleConsent(consentMap: [String: String]?) {
guard let consentMap = consentMap else { return }
var firebaseConsentMap: [ConsentType: ConsentStatus] = [:]
consentMap.forEach { key, value in
if let consentType = convertToFirebaseConsentType(from: key),
let consentStatus = convertToFirebaseConsentStatus(from: value) {
firebaseConsentMap[consentType] = consentStatus
}
}
Analytics.setConsent(firebaseConsentMap)
}
func convertToFirebaseConsentType(from key: String) -> ConsentType? {
switch key {
case "analytics_storage":
return .analyticsStorage
case "ad_storage":
return .adStorage
case "ad_user_data":
return .adUserData
case "ad_personalization":
return .adPersonalization
default:
return nil
}
}
func convertToFirebaseConsentStatus(from value: String) -> ConsentStatus? {
switch value {
case "granted":
return .granted
case "denied":
return .denied
default:
return nil
}
}