[iOS] 2. API-dokumentation
Smakämnen CMPManager
klass tillhandahåller metoder för att hantera användarens samtycke för databehandling och spårning. Den här dokumentationen täcker de huvudsakliga metoderna som är tillgängliga för integration av mobilappar.
Initieringen
setUrlConfig(:UrlConfig)
Ställer in URL-konfigurationen för Consent Manager.
Parametrar:
-
config
: EnUrlConfig
objekt som innehåller följande egenskaper:-
id
: Sträng - CMP ID -
domain
: String - Domänen för samtyckeshantering -
language
: String - Språkkoden (t.ex. "EN") -
appName
: String – Namnet på din app
-
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.setUrlConfig(UrlConfig(
id: "0a000000000a1",
domain: "delivery.consentmanager.net",
language: "EN",
appName: "MyApp"
))
setWebViewConfig(_ :ConsentLayerUIConfig)
Konfigurerar utseendet och beteendet för samtyckes WebView. Du kan ställa in positionen där WKWebiew-objektet som visar samtyckeslagret kommer att visas, som helskärm, på den nedre halvan av skärmen eller dess övre halva. Även bakgrundsstilen kan tillämpas, såväl som hörnradien, om den kommer att respektera enhetens säkra område, samt om den kommer att reagera på orienteringsändringar eller inte, om din mobil bara fungerar i en enda orientering , vilket vanligtvis händer med spel som bara använder den horisontella konfigurationen av enhetens skärm.
Parametrar:
-
config
: EnConsentLayerUIConfig
objekt med följande egenskaper:-
position
: Position – Positionen för WebView (t.ex. .fullScreen) -
backgroundStyle
: BackgroundStyle - Bakgrundsstilen (t.ex. .dimmed) -
cornerRadius
: CGFloat - Hörnradien för WebView -
respectsSafeArea
: Bool - Om det säkra området ska respekteras -
allowsOrientationChanges
: Bool - Om orienteringsändringar ska tillåtas
-
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.setWebViewConfig(ConsentLayerUIConfig(
position: .fullScreen,
backgroundStyle: .dimmed(.black, 0.5),
cornerRadius: 10,
respectsSafeArea: true,
allowsOrientationChanges: true
))
setPresentingViewController(_ :viewController)
Ställer in vykontrollern som ska presentera samtyckeslagret. Vanligtvis passerar man self
som nuvarande View Controller.
Parametrar:
-
viewController
: UIViewController - Vykontrollern för att presentera samtyckesskiktet
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.setPresentingViewController(self)
Consent Layer Management
checkIfConsentIsRequired(:completion)
Kontrollerar om samtycke krävs för användaren. Detta kommer att göra ett nätverksanrop till våra servrar via WKWebView som skapats i vår SDK, som skickar ett meddelande till vår backend via JavaScript. Vår backend kommer att upptäcka om enheten har ett giltigt samtycke eller inte, och meddelandet kommer att skickas tillbaka till WKWebView och avgör om det behöver visas eller inte, förbrukar en sidvisning i processen. Beroende på meddelandet som returneras kommer SDK:n att tolka det och returnera dess resultat via kompletteringshanteraren.
Parametrar:
-
completion
: (Bool) -> Void - En stängning kallas med resultatet, antingentrue
orfalse
.
Returnerar: Röst
Exempelvis:
CMPManager.shared.checkIfConsentIsRequired { required in
print("Consent is required: \(required)")
}
checkWithServerAndOpenIfNecessary(:completion)
Kontrollerar med servern om samtycke krävs och öppnar samtyckeslagret vid behov. Detta kommer att göra ett nätverksanrop till våra servrar via WKWebView som skapats i vår SDK, förbrukar en sidvisning i processen. Detta nätverksanrop kommer att skicka ett meddelande till vår backend via JavaScript, som kommer att upptäcka om enheten har ett giltigt samtycke eller inte, vilket i sin tur avgör om samtyckesskiktet måste visas eller inte.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar.
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.checkWithServerAndOpenIfNecessary { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Check completed successfully")
}
}
jumpToSettings(:completion)
Öppnar samtyckeslagret och hoppar direkt till inställningssidan. Detta kommer att göra ett nätverksanrop till våra servrar, förbrukar en sidvisning i processen, anropar visningen av WKWebView, men visar Inställningar-sidan istället för den första sidan i samtyckeslagret, vilket ger användarna valen att acceptera alla eller avvisa alla samtycken. Detta kommer istället att leda till sidan där en mer detaljerad kontroll över samtyckena ges till användarna, så att de kan finjustera sina val.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.jumpToSettings { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Jumped to settings successfully")
}
}
openConsentLayer(:completion)
Öppnar samtyckesskiktet. Den ringer ett nätverkssamtal till vår backend, förbrukar en sidvisning i processen. Det kommer att visa samtyckeslagret som tillåter användaren att antingen acceptera alla eller avvisa alla val, eller, beroende på CMP-designen, tillåta dem att kontrollera samtyckena på ett mer detaljerat sätt.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar och returnerar antingen en framgång eller ett fel.
Returnerar: Ogiltig
Förbrukade sidvisningar: 1
Exempelvis:
CMPManager.shared.openConsentLayer { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Consent layer opened successfully")
}
}
Status för samtycke
exportCMPIinfo()
Exporterar den aktuella samtyckesinformationen som är lagrad på enheten som en sträng. Denna metod hämtar samtyckessträngen från UserDefaults-området på enheten och returnerar den. Vanligtvis skickas denna information till importCMPInfo
metod.
Returnerar: String - Den exporterade samtyckesinformationen
Exempelvis:
let cmpInfo = CMPManager.shared.exportCMPInfo()
print("Exported CMP info: \(cmpInfo)")
hasPurposeConsent(id:)
Kontrollerar om samtycke har getts för ett specifikt ändamål och detta samtycke lagras på enheten. Den kontrollerar området UserDefaults för samtycken som accepterats eller avvisats, och filtrerar ID:t som skickats som en parameter och returnerar sant om samtycket accepterades eller falskt på annat sätt.
Notera: Kolla alltid efter hasUserChoice() först! I de fall då inget val finns kan funktionen returnera oväntade returvärden.
Parametrar:
-
id
: String - ID för syftet att kontrollera
Returnerar: Bool
- True
om samtycke ges, false
annat
Exempelvis:
let hasPurposeConsent = CMPManager.shared.hasPurposeConsent(id: "c53")
print("Has consent for purpose c53: \(hasPurposeConsent)")
hasUserChoice()
Kontrollerar om användaren har gjort ett val angående samtycken och detta samtycke lagras på enheten. Det betyder att användaren antingen accepterade alla samtycken, avvisade dem alla eller gjorde ett blandat val av avvisade och accepterade samtycken, beroende på CMP-designen, vilket kan tillåta användarna att tillåta några av samtyckena och avvisa andra. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: Bool - true
om användaren har gjort ett val, false
annat
Exempelvis:
let hasChoice = CMPManager.shared.hasUserChoice()
print("User has made a choice: \(hasChoice)")
hasVendorConsent(:String)
Kontrollerar om samtycke har givits för en specifik leverantör och detta samtycke lagras på enheten, enligt CMP-konfigurationerna. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Parametrar:
-
id
: String - ID för leverantören som ska kontrolleras
Returnerar: Bool
- True
om samtycke ges, false
annat
Exempelvis:
let hasVendorConsent = CMPManager.shared.hasVendorConsent(id: "s2789")
print("Has consent for vendor s2789: \(hasVendorConsent)")
Syfte och leverantörshantering
getAllPurposesIDs()
Hämtar alla ändamåls-ID:n lagrade på enheten, enligt CMP-konfigurationerna. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] – En uppsättning av ID:n för alla ändamål
Exempelvis:
let allPurposes = CMPManager.shared.getAllPurposesIDs()
print("All purposes: \(allPurposes)")
getAllVendorsIDs()
Hämtar alla leverantörs-ID:n lagrade på enheten, enligt CMP-konfigurationerna. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] – En uppsättning av alla leverantörs-ID:n
Exempelvis:
let allVendors = CMPManager.shared.getAllVendorsIDs()
print("All vendors: \(allVendors)")
getDisabledPurposesIDs()
Hämtar ID:n för alla inaktiverade syften som är lagrade på enheten, enligt CMP-konfigurationerna och användarvalen. Om användaren accepterar alla samtycken kommer detta att vara tomt. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] – En uppsättning av inaktiverade ändamåls-ID:n
Exempelvis:
let disabledPurposes = CMPManager.shared.getDisabledPurposesIDs()
print("Disabled purposes: \(disabledPurposes)")
getDisabledVendorsIDs()
Hämtar ID:n för alla inaktiverade leverantörer lagrade på enheten, enligt CMP-konfigurationerna. Om användaren accepterar alla samtycken kommer detta att vara tomt. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] – En uppsättning av inaktiverade leverantörs-ID:n
Exempelvis:
let disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
print("Disabled vendors: \(disabledVendors)")
getEnabledPurposesIDs()
Hämtar ID:n för alla aktiverade ändamål som är lagrade på enheten, enligt CMP-konfigurationerna. Om användaren avvisar alla samtycken kommer detta att vara tomt. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] – En uppsättning aktiverade ändamåls-ID:n
Exempelvis:
let enabledPurposes = CMPManager.shared.getEnabledPurposesIDs()
print("Enabled purposes: \(enabledPurposes)")
getEnabledVendorsIDs()
Hämtar ID:n för alla aktiverade leverantörer lagrade på enheten. Om användaren avvisar alla samtycken kommer detta att vara tomt. Denna information kommer endast att vara uppdaterad efter att samtycket har kvarhållits korrekt i området UserDefaults, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer
, acceptAll
or rejectAll
till exempel då vänta tills återuppringningen från dessa metoder utlöses innan du använder metoden hasUserChoice
, för att säkerställa att informationen är aktuell.
Returnerar: [String] - En matris med aktiverade leverantörs-ID:n
Exempelvis:
let enabledVendors = CMPManager.shared.getEnabledVendorsIDs()
print("Enabled vendors: \(enabledVendors)")
Ändring av samtycke
acceptAll(:completion)
Accepterar samtycke för alla ändamål och leverantörer, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa acceptans av alla samtycken, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.acceptAll { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("All consents accepted successfully")
}
}
acceptPurposes(:purposes:updatePurpose:completion)
Accepterar samtycke för specificerade ändamål, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa acceptansen av de bestämda syftena som skickas som en parameter, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
purposes
: [String] – En uppsättning ändamåls-ID:n att acceptera -
updatePurpose
: Bool - Om relaterade syften ska uppdateras -
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
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)
Accepterar samtycke för specificerade leverantörer, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa acceptansen av de bestämda leverantörerna som skickas som en parameter, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
vendors
: [String] - En uppsättning leverantörs-ID:n att acceptera -
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.acceptVendors(["s2790", "s2791"]) { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Vendors accepted successfully")
}
}
importCMPInfo(:String:completion)
Importerar samtyckesinformation från en CMP-sträng. Detta kommer att få en sträng som innehåller samtyckesdata, vanligtvis erhållen via exportCMPInfo
metod. Denna information finns kvar i UserDefaults-området på enheten och skickas samtidigt till vår backend via ett meddelande som injiceras i WKWebView, förbrukar en sidvisning i processen.
Parametrar:
-
cmpString
: String - CMP-strängen som ska importeras -
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
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)
Avvisar samtycke för alla ändamål och leverantörer, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa avslag på alla samtycken, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.rejectAll { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("All consents rejected successfully")
}
}
rejectPurposes(:purposes:updateVendor:completion)
Avvisar samtycke för specificerade ändamål, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa avvisningen av de bestämda syftena som skickas som en parameter, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
purposes
: [String] - En uppsättning ändamåls-ID:n att avvisa -
updateVendor
: Bool - Om relaterade leverantörer ska uppdateras -
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.rejectPurposes(["c52", "c53"], updateVendor: true) { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Purposes rejected successfully")
}
}
avvisaVendors(:leverantörer:komplettering)
Avvisar samtycke för specificerade leverantörer, förbrukar en sidvisning i processen. Den gör ett nätverksanrop till vår backend via ett meddelande som injiceras på WKWebView, vilket kommer att utlösa avvisningen av de bestämda leverantörerna som skickas som en parameter, enligt CMP-konfigurationen. Den här informationen kommer endast att vara tillgänglig för de andra metoderna efter att återuppringningen ger en framgång eller misslyckande, vilket innebär att den har bearbetats framgångsrikt av vår backend och kvarstår på enheten.
Parametrar:
-
vendors
: [String] - En uppsättning leverantörs-ID:n att avvisa -
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.rejectVendors(["s2790", "s2791"]) { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Vendors rejected successfully")
}
}
återställConsentManagementData(komplettering:)
Återställer all samtyckeshanteringsdata. Detta raderar fullständigt alla inlägg i UserDefaults-området relaterade till samtycken som accepterats eller avvisats av användaren. Det liknar att helt ta bort appen från enheten.
Parametrar:
-
completion
: En stängning som anropas när operationen är klar
Returnerar: Ogiltig
Exempelvis:
CMPManager.shared.resetConsentManagementData { error in
if let error = error {
print("Error: \(error.localizedDescription)")
} else {
print("Consent management data reset successfully")
}
}
App Tracking Transparency (ATT)
requestATTAuktorisering(komplettering:)
Begär tillstånd för insyn i appspårning från användaren. För ytterligare information, vänligen kontrollera officiella Apple-dokumentation.
Parametrar:
-
completion
: (ATTAuthorizationStatus) -> Void - En stängning anropad med den resulterande auktoriseringsstatusen
Returnerar: Ogiltig
Tillgänglighet: iOS 14.0 +
Exempelvis:
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()
Hämtar den aktuella auktoriseringsstatusen för App Tracking Transparency. För ytterligare information, vänligen kontrollera officiella Apple-dokumentation.
Tillgänglighet: iOS 14.0 +
Exempelvis:
if #available(iOS 14, *) {
let status = CMPManager.shared.getATTAuthorizationStatus()
print("Current ATT status: \(status)")
} else {
print("ATT is not available on this device")
}
CMPManagerDelegate-evenemang
didReceiveConsent(samtycke: String, jsonObject: [String: Alla])
Detta utlöses när samtyckeslagret stängdes efter att användaren uppdaterat sina samtycken ELLER när man åberopar metoder som orsakar ändringar i samtyckena, som acceptAll, rejectAll, acceptVendors, rejectVendors, etc. Det betyder att användaren accepterade eller avvisade några av alla. av samtyckena och att dessa sparades korrekt i enheten.
didShowConsentLayer
Detta utlöses när samtyckeslagret faktiskt visades. Det betyder att det inte fanns ett giltigt samtycke i enheten, så ett nytt bör hämtas.
didCloseConsentLayer
Detta utlöses när SDK:n kontrollerade behovet av ett samtycke, men det behövdes inte och lagret visades inte. Det betyder att det redan finns en giltig i enheten, så en ny är inte nödvändig och tue samtyckeslager kommer inte att visas.
didReceiveError
Detta utlöses när SDK:n stötte på något fel och returnerar dess kod.