informatie
Content

[iOS] 2. API-documentatie

De CMPManager klasse biedt methoden om gebruikerstoestemming voor gegevensverwerking en tracking te beheren. Deze documentatie behandelt de belangrijkste methoden die beschikbaar zijn voor mobiele app-integratie.

initialisatie

setUrlConfig(:UrlConfig)

Stelt de URL-configuratie in voor de Consent Manager.

parameters:

  • config: A UrlConfig object met de volgende eigenschappen:
    • id: String - De CMP-ID
    • domain: String - Het domein voor toestemmingsbeheer
    • language: String - De taalcode (bijv. "EN")
    • appName: String - De naam van uw app

Returns: Leegte

Voorbeeld:

CMPManager.shared.setUrlConfig(UrlConfig(
    id: "0a000000000a1",
    domain: "delivery.consentmanager.net",
    language: "EN",
    appName: "MyApp"
))

setWebViewConfig(_ :ConsentLayerUIConfig)

Configureert het uiterlijk en gedrag van de toestemmingswebweergave. U kunt de positie instellen waar het WKWebiew-object dat de toestemmingslaag weergeeft, wordt weergegeven, zoals volledig scherm, op de onderste helft van het scherm of de bovenste helft. Ook kan de achtergrondstijl worden toegepast, evenals de hoekradius, of het het veilige gebied van het apparaat respecteert, en of het reageert op oriëntatiewijzigingen of niet, in het geval dat uw mobiel alleen in één enkele oriëntatie werkt, wat meestal gebeurt met games die alleen de horizontale configuratie van het scherm van het apparaat gebruiken.   

parameters:

  • config: A ConsentLayerUIConfig object met de volgende eigenschappen:
    • position: Positie - De positie van de WebView (bijv. .fullScreen)
    • backgroundStyle: BackgroundStyle - De achtergrondstijl (bijv. .dimmed)
    • cornerRadius: CGFloat - De hoekradius van de WebView
    • respectsSafeArea: Bool - Of het veilige gebied gerespecteerd moet worden
    • allowsOrientationChanges: Bool - Of oriëntatiewijzigingen toegestaan ​​zijn

Returns: Leegte

Voorbeeld:

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

setPresentingViewController(_ :viewController)

Stelt de view controller in die de toestemmingslaag zal presenteren. Meestal geeft u self als de huidige View Controller. 

parameters:

  • viewController: UIViewController - De view controller om de toestemmingslaag te presenteren

Returns: Leegte

Voorbeeld:

CMPManager.shared.setPresentingViewController(self)

checkIfConsentIsRequired(:completion)

parameters:

  • completion: (Bool) -> Void - Een sluiting die wordt aangeroepen met het resultaat, hetzij true or false.

Returns: Stem

Voorbeeld:

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

checkWithServerAndOpenIfNecessary(:completion)

Controleert bij de server of toestemming vereist is en opent indien nodig de toestemmingslaag. Dit zal een netwerkoproep doen naar onze servers via de WKWebView die is gemaakt in onze SDK, één paginaweergave verbruiken in het proces. Deze netwerkoproep stuurt een bericht naar onze backend via JavaScript, die detecteert of het apparaat een geldige toestemming heeft of niet, wat op zijn beurt bepaalt of de toestemmingslaag moet worden weergegeven of niet.  

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid.

Returns: Leegte

Voorbeeld:

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

jumpToSettings(:voltooiing)

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

openConsentLayer(:voltooiing)

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid en die een succes of een fout retourneert. 

Returns: Leegte

Verbruikte paginaweergaven: 1

Voorbeeld:

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

exportCMPInfo()

Exporteert de huidige toestemmingsinformatie die op het apparaat is opgeslagen als een tekenreeks. Deze methode haalt de toestemmingsreeks op uit het UserDefaults-gebied van het apparaat en retourneert deze. Meestal wordt deze informatie doorgegeven aan de importCMPInfo methode.

Returns: String - De geëxporteerde toestemmingsinformatie

Voorbeeld:

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

heeftDoelToestemming(id:)

Opmerking: Controleer altijd eerst op hasUserChoice()! In gevallen waarin er geen keuze is, kan de functie onverwachte retourwaarden retourneren.

parameters:

  • id: String - De ID van het doel dat gecontroleerd moet worden

Returns: Bool - True als toestemming is gegeven, false anders-

Voorbeeld:

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

heeftGebruikersKeuze()

Controleert of de gebruiker een keuze heeft gemaakt met betrekking tot toestemmingen en of deze toestemming is opgeslagen op het apparaat. Dit betekent dat de gebruiker alle toestemmingen heeft geaccepteerd, ze allemaal heeft afgewezen of een gemengde keuze heeft gemaakt van afgewezen en geaccepteerde toestemmingen, afhankelijk van het CMP-ontwerp, wat de gebruikers in staat kan stellen om sommige toestemmingen toe te staan ​​en andere af te wijzen. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: Boos - true als de gebruiker een keuze heeft gemaakt, false anders-

Voorbeeld:

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

heeftVendorConsent(:String)

parameters:

  • id: String - De ID van de leverancier die moet worden gecontroleerd

Returns: Bool - True als toestemming is gegeven, false anders-

Voorbeeld:

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

Doel en leveranciersbeheer

getAllPurposesIDs()

Haalt alle op het apparaat opgeslagen doel-ID's op, volgens de CMP-configuraties. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een array met alle-doel-ID's

Voorbeeld:

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

getAllVendorsIDs()

Haalt alle leveranciers-ID's op die op het apparaat zijn opgeslagen, volgens de CMP-configuraties. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een array van alle leveranciers-ID's

Voorbeeld:

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

getDisabledPurposesIDs()

Haalt de ID's op van alle uitgeschakelde doeleinden die op het apparaat zijn opgeslagen, volgens de CMP-configuraties en de keuzes van de gebruiker. Als de gebruiker alle toestemmingen accepteert, is dit leeg.  Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een reeks ID's voor uitgeschakelde doeleinden

Voorbeeld:

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

getDisabledVendorsIDs()

Haalt de ID's op van alle uitgeschakelde leveranciers die op het apparaat zijn opgeslagen, volgens de CMP-configuraties. Als de gebruiker alle toestemmingen accepteert, is dit leeg. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een reeks uitgeschakelde leveranciers-ID's

Voorbeeld:

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

getEnabledPurposesIDs()

Haalt de ID's op van alle ingeschakelde doeleinden die op het apparaat zijn opgeslagen, volgens de CMP-configuraties. Als de gebruiker alle toestemmingen afwijst, is dit leeg. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een reeks ingeschakelde doel-ID's

Voorbeeld:

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

getEnabledVendorsIDs()

Haalt de ID's op van alle ingeschakelde leveranciers die op het apparaat zijn opgeslagen. Als de gebruiker alle toestemmingen afwijst, is dit leeg. Deze informatie is pas actueel nadat de toestemming correct is opgeslagen in het UserDefaults-gebied, dus als u direct controleert nadat u methoden hebt gebruikt die wijzigingen in de toestemming veroorzaken, zoals openConsentLayer, acceptAll or rejectAllbijvoorbeeld, toen Wacht tot de callback van die methoden wordt geactiveerd voordat u de methode benadert hasUserChoice, om ervoor te zorgen dat de informatie up-to-date is.

Returns: [String] - Een reeks ingeschakelde leveranciers-ID's

Voorbeeld:

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

acceptAll(:completion)

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

acceptPurposes(:doeleinden:updateDoel:voltooiing)

parameters:

  • purposes: [String] - Een reeks doel-ID's om te accepteren
  • updatePurpose: Bool - Of gerelateerde doeleinden moeten worden bijgewerkt
  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

acceptVendors(:vendors:completion)

parameters:

  • vendors: [String] - Een reeks leveranciers-ID's om te accepteren
  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

importCMPInfo(:String:voltooiing)

parameters:

  • cmpString: String - De CMP-string die moet worden geïmporteerd
  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

rejectAll(:completion)

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

rejectPurposes(:doeleinden:updateLeverancier:voltooiing)

parameters:

  • purposes: [String] - Een reeks doel-ID's om te weigeren
  • updateVendor: Bool - Of gerelateerde leveranciers moeten worden bijgewerkt
  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

rejectVendors(:leveranciers:voltooiing)

parameters:

  • vendors: [String] - Een reeks leveranciers-ID's om af te wijzen
  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

 

resetConsentManagementData(voltooiing:)

parameters:

  • completion: Een afsluiting die wordt aangeroepen wanneer de bewerking is voltooid

Returns: Leegte

Voorbeeld:

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

App-trackingtransparantie (ATT)

requestATTAuthorization(voltooiing:)

Verzoekt App Tracking Transparency-autorisatie van de gebruiker. Voor meer informatie, controleer de officiële Apple-documentatie

parameters:

  • completion: (ATTAuthorizationStatus) -> Void - Een sluiting die wordt aangeroepen met de resulterende autorisatiestatus

Returns: Leegte

Beschikbaarheid: iOS 14.0 +

Voorbeeld:

if #available(iOS 14, *) {
    CMPManager.shared.requestATTAuthorization { status in
        switch status {
        case .authorized:
            print("ATT: User authorized tracking")
        case .denied:
            print("ATT: User denied tracking")
        case .restricted:
            print("ATT: Tracking is restricted")
        case .notDetermined:
            print("ATT: Status not determined")
        @unknown default:
            print("ATT: Unknown status")
        }
    }
} else {
    print("ATT is not available on this device")
}

getATTAuthorizationStatus()

Haalt de huidige App Tracking Transparency-autorisatiestatus op. Voor meer informatie, controleer de officiële Apple-documentatie.

Returns: ATTAuthorizationStatus - De huidige autorisatiestatus

Beschikbaarheid: iOS 14.0 +

Voorbeeld:

if #available(iOS 14, *) {
    let status = CMPManager.shared.getATTAuthorizationStatus()
    print("Current ATT status: \(status)")
} else {
    print("ATT is not available on this device")
}

CMPManagerDelegate-evenementen

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

Dit wordt geactiveerd wanneer de toestemmingslaag is gesloten nadat de gebruiker zijn/haar toestemmingen heeft bijgewerkt OF wanneer methoden worden aangeroepen die wijzigingen in de toestemmingen veroorzaken, zoals acceptAll, rejectAll, acceptVendors, rejectVendors, enz. Dit betekent dat de gebruiker een deel van alle toestemmingen heeft geaccepteerd of afgewezen en dat deze correct zijn opgeslagen op het apparaat.

heeftShowConsentLayer

Dit wordt geactiveerd wanneer de toestemmingslaag daadwerkelijk is weergegeven. Het betekent dat er geen toestemming geldig was in het apparaat, dus er moet een nieuwe worden verzameld.

deedCloseConsentLayer


Dit wordt geactiveerd wanneer de SDK de noodzaak van een toestemming heeft gecontroleerd, maar deze niet nodig was en de laag niet werd weergegeven. Dit betekent dat er al een geldige in het apparaat is, dus een nieuwe is niet nodig en de toestemmingslaag wordt niet weergegeven.

heeft een fout ontvangen

Dit wordt geactiveerd wanneer de SDK een fout tegenkomt en de code retourneert.

 

Terug naar boven