PubConsent
Integrazione iOS
28 min
il sdk pubconsent è l'integrazione del nostro cmp pubconsent nelle applicazioni ios questa integrazione non richiede molti aggiornamenti poiché ogni cambiamento effettuato all'interno del configuratore si rifletterà automaticamente supportiamo versioni ios dalla 9 fino all'ultima ogni volta che ci saranno cambiamenti significativi, verrai contattato via email al tuo indirizzo tecnico configurato nel nostro pannello di controllo per permetterti di aggiornare la versione del sdk all'ultima che abbiamo pubblicato per ulteriori api o informazioni su come funziona, non esitare a contattare il nostro supporto clienti ogni bug o problema durante l'integrazione sarà un feedback prezioso per noi per favore, non esitare a contattarci requisiti offriamo il nostro sdk come pacchetto binario precompilato come xcframework che puoi aggiungere alla tua applicazione supportiamo versioni ios >= 12 l'sdk ios pubconsent è scritto in swift, quindi se la tua app è scritta in objective c, assicurati che il flag always embed swift standard libraries sia impostato su yes aggiungere l'sdk al tuo progetto il pacchetto può essere aggiunto utilizzando cocoapods o manualmente usando cocoapods il pacchetto può essere aggiunto utilizzando cocoapods xcode >= 12 (xcframework) se non lo hai già fatto, installa l'ultima versione di cocoapods aggiungi questa riga al tuo podfile pod 'pubconsent', '3 0 0' usando swift package manager l'sdk ios è disponibile tramite swift package manager come libreria binaria per integrarlo nel tuo progetto ios segui le istruzioni seguenti apri il tuo progetto xcode seleziona il tuo progetto nell'area di navigazione seleziona il tuo progetto nella sezione project seleziona le dipendenze del pacchetto clicca sul pulsante + copia l'url del pacchetto https //github com/pubtech ai/pubconsent sdk apple os spm nella barra di ricerca seleziona il pacchetto pubconsent ios sdk dalla lista clicca su add package nella schermata choose package products per il pacchetto pubconsent ios sdk clicca su add package manualmente il pacchetto può anche essere aggiunto manualmente come spiegato di seguito scarica e decomprimi l'ultima versione del nostro framework per xcode >= 12 https //cdn pubtech ai/pubconsent sdk for publishers/pubconsent 3 0 0 xcframework zip in xcode, seleziona il tuo progetto quindi, seleziona il tuo target dell'app clicca sulla scheda general scorri verso il basso fino alla sezione embedded binaries dal finder, trascina il file pubconsent framework nella sezione embedded binaries assicurati che la casella copy items if needed sia selezionata e clicca su fine condivisione consenso con una webview se hai bisogno di riutilizzare il consenso collezionato attraverso la nostra sdk ad una webview che punta al tuo sito web puoi consultare la documentazione docid\ qobtyq9cdn12ny4sqg eg inizializzare l'sdk il processo di inizializzazione preparerà l'sdk per le interazioni con l'utente e la tua applicazione è importante lanciare l'inizializzazione dell'sdk il prima possibile poiché ciò rende possibile mostrare il cmp all'utente il prima possibile per chiedere il consenso, se necessario nell'appdelegate, assicurati di importare il modulo pubconsent, quindi chiama il metodo initialize e passa la tua chiave api import swiftui import pubconsent class appdelegate nsobject, uiapplicationdelegate { func application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]? = nil) > bool { let consentreadyhandler = consentreadyhandler() let closeuihandler = closeuihandler() let openuihandler = openuihandler() let googleconsentmodehandler = googleconsentmodehandler() let errorhandler = errorhandler() let cmpcallbacks = cmpcallbacks( onconsentreadycallback consentreadyhandler, oncloseuicallback closeuihandler, oncmpuiopencallback openuihandler, onerrorcallback errorhandler, ongoogleconsentmodecallback googleconsentmodehandler ) let parameters = cmpconfig( id "your id", appname "your app name", debug false, callbacks cmpcallbacks ) pubconsentcmp shared configure(cmpconfiguration parameters) return true } } @main struct yourappname app { @uiapplicationdelegateadaptor(appdelegate self) var appdelegate var body some scene { windowgroup { contentview() } } } class consentreadyhandler onconsentreadycallback { func onconsentready(consentapiinstance any pubconsent consentapiinterface) { if (consentapiinstance getcmptype() == cmptype tcf v2 gdpr) { if let apiinstance = consentapiinstance as? tcfgdprconsentapi { print("google consent status \\(apiinstance isvendorconsentenabled(vendorid 755))") print("google consent mode ad personalization granted? \\(apiinstance getgoogleconsentmode()\[googleconsentmodetype ad personalization] == granted)") } else { print("contact pubtech since there is some unexpected problem (this can't happen but it's better to track every exception ") } } if (consentapiinstance getcmptype() == cmptype google consent mode) { if let apiinstance = consentapiinstance as? gcmconsentapi { print("google consent mode ad personalization granted? \\(apiinstance getgoogleconsentmode()\[googleconsentmodetype ad personalization] == granted)") } } } } class closeuihandler oncloseuicallback { func oncmpuiclosed() { print("cmp ui has been closed ") } } class openuihandler onopenuicallback { func oncmpuiopen() { print("cmp ui has been opened ") } } // implement the ongoogleconsentmodecallback protocol // deprecated will be deleted in v3 0 0 use the api exposed with onconsentready instead class googleconsentmodehandler ongoogleconsentmodecallback { func update(googleconsentmodemap \[googleconsentmodetype googleconsentmodestatus]) { print("google consent mode updated ") print("status ad personalization \\(googleconsentmodemap\[googleconsentmodetype ad personalization] == googleconsentmodestatus granted)") print("status ad storage \\(googleconsentmodemap\[googleconsentmodetype ad storage] == googleconsentmodestatus granted)") print("status ad user data \\(googleconsentmodemap\[googleconsentmodetype ad user data] == googleconsentmodestatus granted)") print("status analytics storage \\(googleconsentmodemap\[googleconsentmodetype analytics storage] == googleconsentmodestatus granted)") // additional code to handle google consent mode updates } } class errorhandler onerrorcallback { func onerror(message string) { print("error occurred \\(message)") } } wrapping uiviewcontroller nota il metodo setupui dovrebbe essere chiamato solo dal tuo uiviewcontroller principale/di ingresso, che nella maggior parte dei casi dovrebbe essere una volta per lancio dell'app per consentire all'sdk di visualizzare elementi dell'interfaccia utente e interagire con l'utente, devi fornire un riferimento al tuo uiviewcontroller principale assicurati di importare il modulo pubconsent e di chiamare il metodo setupui in swift, setupuiwithcontainercontroller in objective c, dell'sdk nel metodo viewdidload del tuo uiviewcontroller principale import swiftui struct viewcontrollerrepresentable uiviewcontrollerrepresentable { let viewcontroller = uiviewcontroller() func makeuiviewcontroller(context context) > some uiviewcontroller { return viewcontroller } func updateuiviewcontroller( uiviewcontroller uiviewcontrollertype, context context) { // no implementation needed nothing to update } } chiamare direttamente l'interfaccia utente per far funzionare tutto e visualizzare gli elementi dell'interfaccia utente devi eseguire la seguente riga di codice pubconsentcmp shared setupui(containercontroller viewcontrollerrepresentable viewcontroller) il seguente è un esempio di utilizzo import swiftui import pubconsent import webkit import uikit struct contentview view { private let viewcontrollerrepresentable = viewcontrollerrepresentable() var body some view { zstack { vstack { hstack(alignment bottom, content { vstack(alignment leading, content { text("pubconsent cmp") font( title) text("ios") font( title) colorinvert() }) }) vstack(spacing 30) { text("azioni demo ") font( headline) button("apri cmp") { pubconsentcmp shared shownotice() } button("stampa info") { print("il fornitore google è abilitato? \\(pubconsentcmp shared isvendorconsentenabled(vendorid 755))") } } padding( top, 100) background { viewcontrollerrepresentable frame(width zero, height zero) } onappear { task { pubconsentcmp shared setupui(containercontroller viewcontrollerrepresentable viewcontroller) } } } } } } \#preview { contentview() } integrare con app tracking transparency per ulteriori informazioni su come integrare pubconsent cmp con att puoi seguire la relativa docid 9duhrn7 3zta u3nvv2v4 sdk apis di seguito è riportata la struct che devi inizializzare e fornire al metodo configure pubconsent shared configure struct cmpconfig descrizione rappresenta le impostazioni di configurazione per la piattaforma di gestione del consenso (cmp) proprietà id una stringa che rappresenta l'id del cmp (ottenuto dal dashboard di pubtech) appname una stringa che rappresenta il nome dell'applicazione debug un booleano che indica se il cmp è in modalità debug callbacks un'istanza opzionale di cmpcallbacks contenente le funzioni di callback metodi init(id\ appname\ debug\ callbacks ) inizializza una nuova istanza di cmpconfig struct cmpcallbacks descrizione contiene funzioni di callback per i principali eventi di pubconsentcmp proprietà onconsentreadycallback una funzione di callback chiamata quando il consenso è pronto oncloseuicallback una funzione di callback chiamata quando l'interfaccia utente del cmp viene chiusa oncmpuiopencallback una funzione di callback chiamata quando l'interfaccia utente del cmp viene aperta onerrorcallback una funzione di callback chiamata quando si verifica un errore ongoogleconsentmodecallback una funzione di callback chiamata quando la modalità di consenso di google viene aggiornata pubconsent consentapiinterface utilizzando l'api esposta tramite onconsentreadycallback potete verificare tramite il metodo getcmptype() quali delle seguenti implementazioni avete a disposizione (questa scelta dipende dalla configurazione salvata attraverso il configuratore pubconsent) di seguito vi mostriamo le api per ogni cmp type che offriamo seguenti metodi sono accessibili tramite l'istanza consentapiinstance any pubconsent consentapiinterface disponibile come parametro alla callback onconsentreadycallback api disponibili per il cmptype tcf v2 gdpr metodo isvendorconsentenabled(vendorid ) descrizione questo metodo verifica se il consenso è abilitato per un determinato fornitore parametri vendorid un intero che rappresenta l'id del fornitore ritorni bool ritorna true se il consenso è abilitato per il fornitore specificato, altrimenti false metodo ispurposeconsentenabled(purposeid ) descrizione questo metodo verifica se il consenso è abilitato per uno scopo specifico parametri purposeid un intero che rappresenta l'id dello scopo ritorni bool ritorna true se il consenso è abilitato per lo scopo specificato, altrimenti false metodo isfeaturecookiesenabled() descrizione questo metodo verifica se il consenso è abilitato per i cookie delle funzionalità ritorni bool ritorna true se il consenso è abilitato per i cookie delle funzionalità, altrimenti false metodo isuserexperiencecookiesenabled() descrizione questo metodo verifica se il consenso è abilitato per i cookie dell'esperienza utente ritorni bool ritorna true se il consenso è abilitato per i cookie dell'esperienza utente, altrimenti false metodo ismeasurementcookiesenabled() descrizione questo metodo verifica se il consenso è abilitato per i cookie di misurazione ritorni bool ritorna true se il consenso è abilitato per i cookie di misurazione, altrimenti false metodo getgoogleconsentmode() descrizione questo metodo recupera lo stato della modalità di consenso per i servizi di google ritorni \[googleconsentmodetype googleconsentmodestatus]? ritorna un dizionario contenente lo stato della modalità di consenso per i diversi servizi di google ritorna nil se le informazioni sulla modalità di consenso non sono disponibili api disponibili per il cmptype method getgoogleconsentmode() description this method retrieves the consent mode status for google services returns \[googleconsentmodetype googleconsentmodestatus]? returns a dictionary containing the consent mode status for different google services returns nil if the consent mode information is not available metodo getgoogleconsentmode() descrizione questo metodo recupera lo stato della modalità di consenso per i servizi di google ritorni \[googleconsentmodetype googleconsentmodestatus]? ritorna un dizionario contenente lo stato della modalità di consenso per i diversi servizi di google ritorna nil se le informazioni sulla modalità di consenso non sono disponibili pubconsent cmp api condivise i seguenti metodi sono accessibili tramite l'istanza pubconsentcmp shared metodo setuserrejectedall(containercontroller viewcontrollerrepresentable viewcontroller) descrizione questo metodo verrà utilizzato per l'integrazione della trasparenza del monitoraggio delle app (att) invece di chiamare il metodo setupui quando lo stato att viene negato, il codice dell'app può eseguire questo metodo se è necessario impostare tutto nel cmp come rifiutato, altrimenti potete scegliere anche di non far esprimere nessun consenso metodo disablecmppopup() descrizione quando il cmp è già mostrato all'utente e l'att è negato è possibile disabilitare il popup cmp nascondendolo chiamando questo metodo metodo enablecmppopup(containercontroller uiviewcontroller) descrizione questo metodo è necessario per riabilitare il popup precedentemente disabilitato metodo resetuserpreferences() descrizione questo metodo è utile per cancellare le preferenze espresse dall'utente