Info
Innehåll

[Android] 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.

Alla de exempel som nämns nedan har extraherats från och finns på vår Demo-app.

Vänligen kolla på föråldrade metoder om du redan integrerar v3 av vår CMP SDK.

Initieringen

UrlConfig()

Ställer in URL-konfigurationen för Consent Manager. Behöver initieras med värdet nedan och skickas till getInstance metod. 

Parametrar:

  • id: String - The Code-ID retrieved from your CMP dashboard
  • domain: String - The domain for consent management, also retrieved from your CMP dashboard
  • language: String - The language code (e.g., "EN", "IT", "DE", etc)
  • appName: String - The name of your app, used only for reporting purposes. 

Exempelvis:

val urlConfig = UrlConfig(
    id = "YOUR_CODE_ID_HERE",
    domain = "delivery.consentmanager.net",
    language = "EN",
    appName = "CMDemoAppKotlin"
)

setActivity()

Ställer in den aktivitet som kommer att presentera samtyckeslagret. Det ska vara en ComponentActivity

Parametrar:

  • viewController: ComponentActivity - Aktiviteten där samtyckeslagret kommer att presenteras.

Returnerar: Ingen

Exempelvis:

CMPManager.shared.setPresentingViewController(self)

getUserStatus()

Returnerar en detaljerad ögonblicksbild av användarens aktuella samtyckesstatus och preferenser. Den här metoden ger omfattande information om användarens samtyckesval, inklusive deras övergripande samtyckesstatus, individuella leverantörsbehörigheter, ändamålsspecifika medgivanden och relevanta samtyckessträngar.

Parametrar:

  • Ingen

Returnerar:

Returtyp: CMPUserStatusResponse objekt, förklarat i koden nedan. 

Exempelvis:

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

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)

checkAndOpen()

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 behöver visas eller inte.  

Parametrar:

  • jumpToSettings: Ett booleskt värde för att avgöra om samtyckesskiktet som visas automatiskt leder till sidan där en mer detaljerad kontroll över samtycken som ges av användarna, så att de kan finjustera sina val (när inställd på true) eller den ursprungliga standardskärmen med knapparna (när inställd på false eller undertryckt).
  • completion: En stängning som anropas när operationen är klar, med resultatet, antingen true or false.

Returnerar: Ingen

Exempelvis:

cmpManager.checkAndOpen { result ->
    result.onSuccess {
	    toastMessage = "Check and Open Consent Layer operation done successfully."
    }.onFailure { error ->
    	toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}

forceOpen()

Parametrar:

  • jumpToSettings: Ett booleskt värde för att avgöra om samtyckesskiktet som visas automatiskt leder till sidan där en mer detaljerad kontroll över samtycken som ges av användarna, så att de kan finjustera sina val (när inställd på true) eller den ursprungliga standardskärmen med knapparna (när inställd på false eller undertryckt).
  • completion: En stängning som anropas när operationen är klar och returnerar antingen en framgång eller ett fel. 

Returnerar: Ingen

Exempelvis:

cmpManager.openConsentLayer { result ->
	result.onFailure { error ->
    	toastMessage = "Error: ${error.message}"
	}
}

exportCMPIinfo()

Exporterar den aktuella samtyckesinformationen som är lagrad på enheten som en sträng. Den här metoden hämtar samtyckessträngen från området SharedPreferences på enheten och returnerar den. Vanligtvis skickas denna information till importCMPInfo metod.

Returnerar: String - Den exporterade samtyckesinformationen

Exempelvis:

val cmpInfo = CMPManager.shared.exportCMPInfo()
Log.d("Exported CMP info: \(cmpInfo)")

getGoogleConsentModeStatus()

Integreras sömlöst med Consent Mode, en Google-teknik som möjliggör konvertering och analysmodellering, tillåta Googles tjänster att fylla i dataluckor när användarna inte samtycker. Den här funktionen översätter användarens samtycke från din CMP till ett format som Firebase Analytics kan förstå, så du kan helt enkelt få tillbaka den här metoden och skicka den vidare till Firebase .setConsent-metoden.

  • Den uppdaterar sedan Google Analytics med användarens aktuella samtyckesstatus.

Parametrar:

  • Ingen

Returnerar: Map<String, String> - En nyckelvärdesmatris med de fyra Googles samtyckeslägesnycklar: .analyticsStorage, .adStorage, .adUserData och .adPersonalization, och deras respektive värden i termer av .choiceDoesntExist, .granted or .denied.

Exempelvis:

val settings = cmpManager.getGoogleConsentModeStatus()
Log.d("CMPDemo", "Google Consent Mode Settings: $settings")
toastMessage = buildString {
  append("Google Consent Settings:")
  settings.forEach { (key, value) ->
	  append("\n$key: $value")
  }
}

getStatusForPurpose()

Parametrar:

  • id: String - ID för syftet att kontrollera

Returnerar: UniqueConsentStatus - En uppräkning med värdena .choiceDoesntExist om inget samtycke lämnats, .granted or .denied.

Exempelvis:

val purposeStatus = cmpManager.getStatusForPurpose("c53")
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"
}

getStatusForVendor()

Parametrar:

  • id: String - ID för syftet att kontrollera

Returnerar: UniqueConsentStatus - En uppräkning med värdena .choiceDoesntExist om inget samtycke lämnats, .granted or .denied.

Exempelvis:

val vendorStatus = cmpManager.getStatusForVendor("s2789")
var message = "Vendor s2789's status: "
switch vendorStatus {
   	case .choiceDoesntExist: message += "No Choice"
    case .granted: message += "Granted"
    case .denied: message += "Denied"
    @unknown default: message += "No Choice"
}

 

accepteraAlla()

Parametrar:

  • completion: En stängning som anropas när operationen är klar, returnerar misslyckande eller framgång.

Returnerar: Ingen

Exempelvis:

cmpManager.acceptAll { result ->
    result.onSuccess {
	    toastMessage = "All consents accepted"
  	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

acceptPurposes()

Parametrar:

  • purposes: Lista - En lista över ändamåls-ID att acceptera
  • updatePurpose: Boolean - Om relaterade syften ska uppdateras
  • completion: En stängning som anropas när operationen är klar, vilket returnerar antingen ett misslyckande eller en framgång

Returnerar: Ingen

Exempelvis:

cmpManager.acceptPurposes(listOf("c52", "c53"), true) { result ->
	  	result.onSuccess {
	  	toastMessage = "Purposes enabled"
  	}.onFailure { error ->
  		toastMessage = "Error: ${error.message}"
    }
}

acceptVendors()

Parametrar:

  • vendors: Lista - En lista över leverantörs-ID:n att acceptera
  • completion: En stängning som anropas när operationen är klar

Returnerar: Ingen

Exempelvis:

cmpManager.acceptVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

importCMPIinfo()

Parametrar:

  • cmpString: String - CMP-strängen som ska importeras
  • completion: En stängning som anropas när operationen är klar, vilket returnerar antingen ett misslyckande eller framgång

Returnerar: Ingen

Exempelvis:

val cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(cmpString) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

avvisaAlla()

Parametrar:

  • completion: En stängning som anropas när operationen är klar

Returnerar: Ingen

Exempelvis:

cmpManager.rejectAll { result ->
	result.onSuccess {
		toastMessage = "All consents rejected"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

rejectPurposes()

Parametrar:

  • purposes: List<String> - En lista över ändamåls-ID att avvisa
  • updateVendor: Boolean - Om relaterade leverantörer ska uppdateras
  • completion: En stängning som anropas när operationen är klar

Returnerar: Ingen

Exempelvis:

cmpManager.rejectPurposes(listOf("c52", "c53"), true) { result ->
    result.onSuccess {
      toastMessage = "Purposes disabled"
    }.onFailure { error ->
      toastMessage = "Error: ${error.message}"
	}
}

rejectVendors()

Parametrar:

  • vendors: Lista - En lista över leverantörs-ID att avvisa
  • completion: En stängning som anropas när operationen är klar, vilket returnerar antingen ett misslyckande eller en framgång

Returnerar: Ingen

Exempelvis:

cmpManager.rejectVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Disabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

resetConsentManagementData()

Parametrar:

Ingen

Returnerar: Ingen

Exempelvis:

cmpManager.resetConsentManagementData()

CMPManagerDelegate-evenemang

setOnClickLinkCallback

SDK tillhandahåller en flexibel länkhanteringsmekanism som tillåter applikationer att anpassa hur URL:er inom samtyckesskiktet hanteras. Som standard öppnas alla länkar i WebView, men applikationer kan fånga upp specifika URL:er för att hantera dem externt vid behov.

        cmpManager.setOnClickLinkCallback { url ->
            if (url.contains("google.com")) {
                // Open Google URLs in external browser
                try {
                    startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
                    true // Return true to indicate we handled the URL
                } catch (e: Exception) {
                    Log.e("DemoApp", "Error opening URL: $url", e)
                    false
                }
            } else {
                // Let other URLs load in the WebView
                false
            }
        }

didReceiveConsent(samtycke: String, jsonObject: Map )

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.

Föråldrade metoder

Alla metoderna nedan var utfasade och kommer att tas bort helt från SDK från juli/2025 på. 

checkIfConsentIsRequired()

Parametrar:

  • completion: (Boolean) -> Enhet - En stängning anropas med resultatet, antingen true or false.

Returnerar: Ingen

Exempelvis:

cmpManager.checkIfConsentIsRequired { needsConsent ->
	toastMessage = "Needs Consent: $needsConsent"
}

checkWithServerAndOpenIfNecessary()

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 WebView skapad 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, med resultatet, antingen true or false.

Returnerar: Ingen

Exempelvis:

cmpManager.checkWithServerAndOpenIfNecessary { result ->
    result.onSuccess {
	    toastMessage = "Check and Open Consent Layer operation done successfully."
    }.onFailure { error ->
    	toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}

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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över ID:n för alla ändamål

Exempelvis:

val allPurposes = cmpManager.getAllPurposesIDs()
Log.d("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 behållits korrekt i SharedPreferences område, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över alla leverantörs-ID:n

Exempelvis:

val allVendors = cmpManager.getAllVendorsIDs()
Log.d("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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över funktionshindrade ID:n

Exempelvis:

val disabledPurposes = cmpManager.getDisabledPurposesIDs()
Log.d("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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över inaktiverade leverantörs-ID

Exempelvis:

val disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
Log.d("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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över aktiverade ändamåls-ID:n

Exempelvis:

val enabledPurposes = cmpManager.getEnabledPurposesIDs()
Log.d("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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Lista - En lista över aktiverade leverantörs-ID:n

Exempelvis:

val enabledVendors = cmpManager.getEnabledVendorsIDs()
Log.d("Enabled vendors: \(enabledVendors)")

hasPurposeConsent()

Parametrar:

  • id: String - ID för syftet att kontrollera

Returnerar: Boolean - True om samtycke ges, false annat

Exempelvis:

val hasPurposeConsent = cmpManager.hasPurposeConsent(id: "c53")
Log.d("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 SharedPreferences-området, så om du kollar direkt efter att du har använt metoder som utlöser ändringar i samtycket som openConsentLayer, acceptAll or rejectAlltill 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: Boolean - true om användaren har gjort ett val, false annat

Exempelvis:

val hasChoice = cmpManager.hasUserChoice()
print("User has made a choice: \(hasChoice)")

hasVendorConsent()

Parametrar:

  • id: String - ID för leverantören som ska kontrolleras

Returnerar: Boolean - True om samtycke ges, false annat

Exempelvis:

val hasVendorConsent = cmpManager.hasVendorConsent(id: "s2789")
Log.d("Has consent for vendor s2789: \(hasVendorConsent)")

 

 

Tillbaka till toppen