A biblioteca oferece integrações nativas para as ferramentas mais comuns, eliminando a necessidade de código manual para o carregamento condicional de scripts de terceiros.
O componente ConsentScriptLoader
gerencia o carregamento desses scripts automaticamente, disparando-os apenas quando o usuário concede consentimento para a categoria correspondente.
analytics
createGoogleAnalyticsIntegration(config)
import {
createGoogleAnalyticsIntegration,
ConsentScriptLoader
} from 'react-lgpd-consent'
const integrations = [
createGoogleAnalyticsIntegration({
measurementId: 'G-XXXXXXXXXX',
// Você pode passar configurações adicionais para o GA4 aqui
config: {
anonymize_ip: true,
}
})
]
<ConsentScriptLoader integrations={integrations} />
analytics
createGoogleTagManagerIntegration(config)
import { createGoogleTagManagerIntegration } from 'react-lgpd-consent'
const integrations = [
createGoogleTagManagerIntegration({
gtmId: 'GTM-XXXXXXX',
dataLayerName: 'dataLayer', // Opcional
}),
]
functional
createUserWayIntegration(config)
import { createUserWayIntegration } from 'react-lgpd-consent'
const integrations = [
createUserWayIntegration({
accountId: 'USERWAY_ACCOUNT_ID',
}),
]
Você pode combinar múltiplas integrações em um único ConsentScriptLoader
.
import {
createGoogleAnalyticsIntegration,
createUserWayIntegration,
ConsentScriptLoader,
} from 'react-lgpd-consent'
const integrations = [
createGoogleAnalyticsIntegration({ measurementId: 'G-XXXXXXXXXX' }),
createUserWayIntegration({ accountId: 'USERWAY_ACCOUNT_ID' }),
]
function App() {
return (
<ConsentProvider categories={{ enabledCategories: ['analytics', 'functional'] }}>
<ConsentScriptLoader integrations={integrations} />
{/* Sua aplicação */}
</ConsentProvider>
)
}
Você pode criar sua própria lógica de integração para qualquer script de terceiros implementando a interface ScriptIntegration
.
ScriptIntegration
interface ScriptIntegration {
id: string // ID único para o script
category: string // Categoria de consentimento que habilita o script
src: string // URL do script
init?: () => void // Função opcional para executar após o carregamento
attrs?: Record<string, string> // Atributos HTML para a tag <script>
}
function createFacebookPixelIntegration(pixelId: string): ScriptIntegration {
return {
id: 'facebook-pixel',
category: 'marketing', // Requer consentimento de marketing
src: 'https://connect.facebook.net/en_US/fbevents.js',
init: () => {
if (typeof window !== 'undefined' && window.fbq) {
window.fbq('init', pixelId)
window.fbq('track', 'PageView')
}
},
}
}
Ferramenta | Categoria Recomendada | Justificativa |
---|---|---|
Google Analytics | analytics |
Coleta estatísticas de uso |
Google Tag Manager | analytics |
Container de tags analíticas |
Facebook Pixel | marketing |
Publicidade direcionada |
Hotjar/FullStory | analytics |
Análise comportamental |
UserWay/AccessiBe | functional |
Funcionalidade de acessibilidade |
Live Chat | functional |
Funcionalidade de suporte |
YouTube/Vimeo | social |
Conteúdo de redes sociais |