[iOS] 1. Integrazione dell'SDK di Consentmanager

In questo documento troverai informazioni generali su come integrare il nostro SDK nel tuo progetto. Per ulteriori dettagli, consulta la nostra documentazione di riferimento API. Tutti i frammenti di codice riportati di seguito sono stati estratti dalla nostra app demo

1. Installazione

consentmanager SDK è una soluzione completa per la gestione del consenso degli utenti nelle applicazioni mobili. Progettato per gestire la conformità al GDPR, le preferenze di privacy degli utenti e la trasparenza del tracciamento pubblicitario, questo SDK offre un'integrazione perfetta per le piattaforme iOS e Android. Inoltre, offre plugin/bridge wrapper per React Native, Flutter e Unity, rendendolo versatile in vari ambienti di sviluppo.

Passaggi – Descrizione di alto livello

  1. Integrazione e configurazione:

    • Integra l'SDK nella tua app.
    • Configura le impostazioni dell'SDK in base alle tue esigenze.
  2. Creazione di un'istanza e visualizzazione del Consent Layer:

    • All'avvio dell'app, crea un'istanza della CMPManager classe. Questa istanza gestirà il processo di consenso.
    • L'SDK visualizzerà automaticamente la schermata di consenso se necessario.
  3. Elaborazione dei dati relativi al consenso degli utenti:

    • Una volta raccolti i consensi, le informazioni vengono archiviate e sono disponibili per l'interrogazione tramite diverse proprietà e metodi esposti dal nostro SDK. Avrai informazioni sui consensi rifiutati o accettati, sui fornitori e sulle finalità.

1.1 Integrazione e configurazione

Opzione 1: CocoaPods

Aggiungi la seguente riga al tuo Podfile:

pod 'cm-sdk-ios-v3', '3.2.0'

Quindi esegui:

pod install --repo-update
Opzione 2: Swift Package Manager
  1. Scarica l'ultima versione di XCFramework dalla nostra pagina delle release su GitHub.
  2. Su XCode, vai al menu File >  Add Package Dependency.
  3. Aggiungi l'URL del repository SDK qui sopra
  4. SPM ora recupererà il repository e ti chiederà di selezionare una versione.
    Puoi scegliere di aggiungere il pacchetto selezionando una regola di versione
    :- Up to Next Major: Questo aggiornerà il pacchetto alla versione principale successiva. È l'opzione consigliata poiché aggiunge aggiornamenti che non comportano modifiche compatibilità
    .- Up to Next Minor: Questo aggiornerà il pacchetto alla versione minore successiva
    .- Exact: Questo bloccherà il pacchetto su una versione specifica. Non verranno installati aggiornamenti.
  5. Importa l'SDK inserendo all'inizio delle classi che implementano i metodi dell'SDK la riga seguente:
import cm_sdk_ios_v3
  1. Nelle impostazioni del tuo target, vai su "Generale" > "Framework, librerie e contenuti incorporati" e assicurati che il framework sia impostato su "Incorpora e firma".

1.2 Creazione di un'istanza e visualizzazione del layer di consenso

All'avvio dell'app (la tua viewDidLoad funzione), devi creare un'istanza della classe CMPManager. Dovrai configurare due oggetti che verranno passati al metodo getInstance:  UrlConfig, che gestisce la tua configurazione CMP, come Code-ID e lingua predefinita, e ConsentLayerUIConfig, che configurerà l'aspetto della WKWebView che visualizzerà il layer di consenso. Dopodiché, passerai l'attuale ViewController utilizzando il metodo setPresentingViewControllere assegnare il delegato, come mostrato di seguito. Nell'esempio qui sotto, puoi trovare entrambi gli oggetti che vengono passati. La checkWithServerAndOpenIfNecessary() funzione recupererà automaticamente i dati necessari dal nostro server e determinerà se la schermata di consenso deve essere mostrata o meno. In tal caso, l'SDK mostrerà automaticamente la schermata di consenso a questo punto, tramite un WKWebView creato dal nostro SDK, che visualizzerà il layer di consenso con il testo e i pulsanti in base alle configurazioni del tuo CMP (scelto tramite il Code-ID del tuo CMP), raccoglierà i dati e salverà le informazioni sul consenso nell'area NSUserDefaults del dispositivo, in modo che l'app possa visualizzare gli annunci mirati di conseguenza. 

Tieni presente che è fondamentale dichiarare e inizializzare l' CMPManager SDK nel viewDidLoad , altrimenti la vista potrebbe non essere pronta per l'uso e l'SDK potrebbe non funzionare. Inoltre, assicurati di utilizzare i dati di configurazione corretti. I dati di configurazione si trovano nel tuo account Consentmanager in Menu > CMP > Ottieni codice per app > ID codice

Inoltre, tieni presente che le funzionalità relative alla determinazione della necessità o meno del consenso, così come la visualizzazione del layer di consenso, dipendono da una connessione di rete affidabile. Se non è disponibile alcuna connessione o se il meccanismo di riprova non riesce a raggiungere il nostro server, l'evento didReceiveError restituirà un errore di timeout e quindi l'SDK non sarà in grado di determinare la necessità di un consenso, poiché non sarà in grado di visualizzare il layer di consenso. Assicurati che la tua logica tenga conto di questo aspetto.

Esempio:

import cm_sdk_ios_v3

class YourViewController: UIViewController, CMPManagerDelegate {
	override func viewDidLoad() {
	super.viewDidLoad()

	let cmpManager = CMPManager.shared

    cmpManager.setUrlConfig(UrlConfig(
    id: "your_id_here",                   	// example: a000aaaaa1a 
    domain: "your_domain_here",				// usually, delivery.consentmanager.net 
    language: "your_language_here",			// example: DE
    appName: "Your App Name"))				// example: testApp

    cmpManager.setWebViewConfig(ConsentLayerUIConfig(
    position: .fullScreen,
    backgroundStyle: .dimmed(.black, 0.5),
    cornerRadius: 5,
    respectsSafeArea: true,
    allowsOrientationChanges: true))

    cmpManager.setPresentingViewController(self)
    cmpManager.delegate = self

    cmpManager.checkAndOpen { error in
        if let error = error {
            print("Error initializing consent: (error)")
        } else {
            print("ConsentManager initialized and consent received and stored on the device's NSUserDefaults.")
        }
    }
}

1.3 Trattamento dei dati relativi al consenso degli utenti

Verifica dei consensi degli utenti

Il nostro SDK offre un metodo unificato per verificare e recuperare le informazioni relative al consenso, getUserStatus():

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)

Per ulteriori informazioni sugli altri metodi, consulta la nostra documentazione completa sull'API

Riaprire il Consent Layer per verificare le scelte degli utenti

Per consentire all'utente di verificare o modificare le proprie scelte, puoi semplicemente chiamare openConsentLayer()

cmpManager.forceOpen()

Questo metodo visualizzerà il layer di consenso tramite la stessa istanza WKWebView creata nei passaggi precedenti. 

Importazione/esportazione delle informazioni sul consenso verso altre fonti

In alcuni casi un'app nativa potrebbe contenere webview per visualizzare informazioni, come pubblicità o contenuti. Per trasmettere le informazioni sul consenso dall'SDK alla webview, puoi recuperare la stringa di consenso utilizzando:

consentData = cmpManager.exportCMPInfo()

Questo esporterà le informazioni sul consenso e tutti gli ulteriori dati necessari al CMP. Potrai quindi trasmettere queste informazioni al CMP presente nella tua webview aggiungendole all'URL richiamato nella webview.

Se, invece, hai bisogno di importare la stringa di consenso utilizzando l'SDK, puoi utilizzare l'esempio qui sotto:

let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)

Integrazione con Apple Tracking Transparency (ATT)

Se utilizzi strumenti di tracciamento o analisi nella tua app, ti consigliamo di leggere la guida sull'implementazione dell'ATT qui.

Creazione di un layout personalizzato

Per creare una vista personalizzata di WKWebView, ad esempio modificandone il posizionamento o lo sfondo, puoi modificare la configurazione passata all'oggetto ConsentLayerUIConfig come di seguito:

ConsentLayerUIConfig(
    position: .halfScreenTop,
    backgroundStyle: .dimmed(.grey, 0.75),
    cornerRadius: 20,
    respectsSafeArea: false,
    allowsOrientationChanges: true)

Accesso

Quando utilizzi il nostro SDK per iOS, potresti avere la necessità di eseguire il debug o analizzare le informazioni di log per vari scopi. I log generati dal nostro SDK sono contrassegnati con "CMP", consentendoti di filtrare facilmente e visualizzare solo i log rilevanti. Per ulteriori informazioni, consulta questa sezione della nostra documentazione.

 

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!