Vedere Protect Privacy with a Tracking Consent Banner (Protezione della privacy con un banner di consenso al tracciamento).
Preserva la fiducia degli acquirenti con un banner di consenso al monitoraggio sul sito del kit Progressive Web App (PWA). Con il banner, gli acquirenti possono attivare o disattivare il monitoraggio delle attività predefinito incluso in PWA Kit.
Questa guida spiega le opzioni di implementazione e personalizzazione predefinite per il banner di consenso al monitoraggio.
La funzionalità descritta in questa guida non è supportata in uno storefront ibrido.
Note
Prerequisiti
Per configurare e utilizzare il banner di consenso al monitoraggio, creare il sito con Retail React App versione 6.0 o successiva.
Implementazione predefinita del consenso al monitoraggio
Interfaccia utente banner
Il banner di consenso al monitoraggio è disponibile in template-retail-react-app/app/components/_app/index.jsx, pertanto puoi visualizzarlo su qualsiasi pagina del tuo sito. Il banner è definito in template-retail-react-app/app/hooks/use-dnt-notification.js.
Per impostazione predefinita, il banner è simile a questo esempio.
Non tenere traccia dei valori
Questi sono i due valori che definiscono l’impostazione dello stato DNT:
effectiveDnt: È impostato sullo stato DNT predefinito configurato dall’utente o è impostato su false se non è stato configurato uno stato DNT predefinito. Questo valore è impostato su false se l’acquirente ha acconsentito al monitoraggio o true se ha rinunciato al monitoraggio.
selectedDnt: Non è definito finché l’acquirente non interagisce con il banner di consenso. Questo valore è impostato su false se l’acquirente ha acconsentito al monitoraggio o true se ha rinunciato al monitoraggio.
Flusso di lavoro banner e DNT
Se un acquirente chiude il banner o non effettua una selezione nel banner, lo stato DNT predefinito è impostato su false (monitora attività). Per modificare questo comportamento, vedere Configurare lo stato DNT predefinito. Il banner viene nuovamente visualizzato la prossima volta che l’acquirente visita il sito dopo aver eseguito una delle seguenti azioni:
Chiudi il browser
Aggiornare i dati del sito
Cancella i loro cookie
Questo diagramma riepiloga il comportamento del banner di consenso al monitoraggio e il modo in cui viene impostato lo stato DNT degli acquirenti quando visitano il sito.
Salvo diversa indicazione, tutti i passaggi del diagramma si applicano sia agli acquirenti ospiti che agli acquirenti noti.
Configurazione dello stato DNT predefinito
Facoltativamente, è possibile specificare uno stato DNT predefinito che si applica se un acquirente chiude il banner di consenso al monitoraggio o non effettua una selezione nel banner. A tale scopo, impostare la defaultDNT proprietà in questo file nel progetto: {overridesDir}/app/components/_app-config/index.jsx.
defaultDnt={true}: Indica che l’attività dell’acquirente non viene monitorata.
defaultDnt={false}: Indica che l’attività dell’acquirente viene monitorata.
In questo esempio, defaultDnt è impostato su false.
1// More code here...23<CommerceApiProvider4 shortCode={commerceApiConfig.parameters.shortCode}5 clientId={commerceApiConfig.parameters.clientId}6 organizationId={commerceApiConfig.parameters.organizationId}7 siteId={locals.site?.id}8 locale={locals.locale?.id}9 currency={locals.locale?.preferredCurrency}10 redirectURI={`${appOrigin}/callback`}11 proxy={`${appOrigin}${commerceApiConfig.proxyPath}`}12 headers={headers}13 // Add your chosen default DNT state.14 defaultDnt={false}15 // Uncomment 'enablePWAKitPrivateClient' to use SLAS private client login flows.16 // Make sure to also enable useSLASPrivateClient in ssr.js when enabling this setting.17 // enablePWAKitPrivateClient={true}18 logger={createLogger({packageName: 'commerce-sdk-react'})}19>20<MultiSiteProvider site={locals.site} locale={locals.locale} buildUrl={locals.buildUrl}>21<ChakraProvider theme={theme}>{children}</ChakraProvider>22</MultiSiteProvider>23<ReactQueryDevtools />24</CommerceApiProvider>2526 // More code here...
Personalizzazione del banner di consenso al monitoraggio
Facoltativamente, è possibile personalizzare il banner di consenso al monitoraggio modificandone alcune parti, ad esempio l’aspetto o il testo. Per fare ciò, hai queste due scelte.
Se non l’hai già fatto, nel tuo progetto PWA Kit, crea una cartella chiamata hooks in {overridesDir}/app.
Creare un file richiamato use-dnt-notification.js nella hooks cartella.
Copiare e incollare questo codice in use-dnt-notification.js. In questo esempio, viene eseguito selectedDnt il rendering di un banner personalizzato controllato dal DntNotification componente. Inoltre, utilizziamo la funzione per applicare la updateDnt preferenza di monitoraggio di un acquirente come valore booleano. Vedere Valori Do Not Track.
1import React, {useEffect}from 'react'2import PropTypes from 'prop-types'3import{FormattedMessage, useIntl}from 'react-intl'4import{5 Button,6 Modal,7 ModalContent,8 ModalBody,9 ModalCloseButton,10 useDisclosure,11 Heading,12 Stack,13 Text,14 Flex15}from '@salesforce/retail-react-app/app/components/shared/ui'16import{useDNT}from '@salesforce/commerce-sdk-react'17import{useLocation}from 'react-router-dom'1819export const DntNotification = ({isOpen, onOpen, onClose})=>{20 const{selectedDnt, updateDNT} = useDNT()21 const{formatMessage} = useIntl()22 const location = useLocation()2324 useEffect(()=>{25 if(selectedDnt === undefined){26 onOpen()27}else{28 onClose()29}30}, [location, selectedDnt])3132 const onCloseNotification = ()=>{33 updateDNT(null)34 onClose()35}3637 return(38<Modal39 size="sm"40 data-testid="sf-dnt-notification"41 blockScrollOnMount={false}42 closeOnOverlayClick={false}43 trapFocus={false}44 isOpen={isOpen}45 onOpen={onOpen}46 onClose={onCloseNotification}47>48<ModalContent49 position="fixed"50 bottom="4"51 right="4"52 maxW="400px"53 pointerEvents="all"54 containerProps={{55 pointerEvents: 'none'56}}57 border="2px solid"58>59<ModalCloseButton60 aria-label={formatMessage({61 id: 'dnt_notification.button.assistive_msg.close',62 defaultMessage: 'Close consent tracking form'63})}64 />65<ModalBody pb={8} bg="white" marginTop={4}>66<Heading as="h3" fontSize={25} width="100%" marginBottom={5}>67<FormattedMessage68 defaultMessage="Your Privacy Matters to Us"69 id="dnt_notification.title"70 />71</Heading>72<Flex direction="column">73<Text>74<FormattedMessage75 defaultMessage="We collect data to improve your experience, deliver personalized content or ads, and better understand how our site is used. By selecting 'Accept,' you agree to our use of tracking technologies. "76 id="dnt_notification.description"77 />78</Text>79<Stack direction="column" spacing={4} mt={4} align="flex-end">80<>81<Button82 onClick={()=>{83 updateDNT(true)84 onClose()85}}86 width="100%"87>88<FormattedMessage defaultMessage="Decline" id="dnt_notification.button.decline" />89</Button>90<Button91 onClick={()=>{92 updateDNT(false)93 onClose()94}}95 width="100%"96>97<FormattedMessage defaultMessage="Accept" id="dnt_notification.button.accept" />98</Button>99</>100</Stack>101</Flex>102</ModalBody>103</ModalContent>104</Modal>105)106}107108DntNotification.propTypes = {109 isOpen: PropTypes.bool.isRequired,110 onOpen: PropTypes.func.isRequired,111 onClose: PropTypes.func.isRequired112}113114/**115 *116 * @returns{Object} - Object props to be passed into the DntNotification component117 */118export const useDntNotification = ()=>{119 const{isOpen, onOpen, onClose} = useDisclosure()120121 return{122 isOpen,123 onOpen,124 onClose125}126}
Se hai eseguito l’override del app/components/_app/index.jsx file nel tuo progetto PWA Kit, utilizza l’hook useDntNotification per visualizzare il banner di consenso al tracciamento personalizzato.
1import{2 DntNotification,3 useDntNotification4}from '{overridesDir}/app/hooks/use-dnt-notification'56const App = (props)=>{7 ...8 const dntNotification = useDntNotification()9 ...1011 return(12 ...13 // Put the consent tracking banner in your chosen location in your code by adding the dntNotification component.14<DntNotification{...dntNotification} />15 ...16)17}
Sopprimere il tracciamento in base allo stato DNT
Facoltativamente, è possibile aggiungere codice nel progetto PWA Kit per attivare o impedire azioni in base alle preferenze di monitoraggio di un acquirente o allo stato DNT predefinito.
Da utilizzare effectiveDnt per attivare o impedire azioni come le chiamate API. Ad esempio, le chiamate API per accedere a Google Analytics. Vedere Valori Do Not Track.
In questo esempio, viene utilizzata l’operazione effectiveDnt per attivare una chiamata API di analisi con l’obiettivo di raccogliere dati in base alle interazioni di un acquirente con un sito. I dati possono fornire informazioni su fattori quali il comportamento degli acquirenti, il traffico sul sito web o le prestazioni di vendita.
Se un acquirente rinuncia al monitoraggio (lo stato DNT è impostato su true) o lo stato DNT non è impostato:
Gli eventi di Einstein vengono soppressi. Ciò significa che l’attività di un acquirente sul sito non è inclusa nelle dashboard dei report&.
Le metriche di Active Data vengono raccolte se la funzionalità è stata abilitata come descritto in Active Data. Tuttavia, tutti i dati degli acquirenti sono resi anonimi.
PWA Kit sostituisce qualsiasi configurazione di monitoraggio predefinita impostata nelle preferenze sulla privacy in Business Manager. Il sito PWA Kit applica una delle seguenti configurazioni:
PWA Kit: La configurazione di monitoraggio predefinita o personalizzata descritta in questa guida.
Shopper Login and API Access Service (SLAS): Se il banner di consenso al monitoraggio è stato personalizzato utilizzando lo SLAS, il sito applica la configurazione di monitoraggio descritta in Gestione delle preferenze di monitoraggio degli acquirenti.
Risoluzione dei problemi relativi al consenso al monitoraggio
In questa sezione viene suggerita una soluzione per un errore comune che può verificarsi durante l’utilizzo del banner di consenso al monitoraggio.
Il banner non viene visualizzato o il comportamento è imprevisto
Causa: I problemi relativi a CSS o JavaScript possono ostacolare la funzionalità o causare la visualizzazione errata o assente del banner su determinati dispositivi o browser.
Soluzione suggerita: Testare il banner in più browser e dispositivi per garantire una funzionalità coerente. Presta particolare attenzione ai browser con politiche sui cookie più rigorose (ad esempio, Intelligent Tracking Prevention di Safari). Prova diverse dimensioni e risoluzioni dello schermo per assicurarti che il banner sia reattivo e facile da usare. Verificare che il banner non interferisca con le funzionalità del sito o con le interazioni con gli acquirenti.