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. As categorias usadas pelas integrações são sempre lidas da prop categories
do ConsentProvider
(fonte única de verdade).
O componente ConsentScriptLoader
gerencia o carregamento desses scripts automaticamente, disparando-os apenas quando o usuário concede consentimento para a categoria correspondente.
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)
measurementId
e configurações adicionais para o gtag
.import { createGoogleAnalyticsIntegration, ConsentScriptLoader } from 'react-lgpd-consent'
const integrations = [
createGoogleAnalyticsIntegration({
measurementId: 'G-XXXXXXXXXX',
config: { anonymize_ip: true },
})
]
<ConsentScriptLoader integrations={integrations} />
analytics
createGoogleTagManagerIntegration(config)
gtmId
e dataLayerName
.import { createGoogleTagManagerIntegration } from 'react-lgpd-consent'
const integrations = [
createGoogleTagManagerIntegration({ gtmId: 'GTM-XXXXXXX' })
]
marketing
createFacebookPixelIntegration(config)
pixelId
e autoTrack
para PageView
.import { createFacebookPixelIntegration } from 'react-lgpd-consent'
const integrations = [
createFacebookPixelIntegration({ pixelId: 'YOUR_PIXEL_ID', autoTrack: true })
]
analytics
createHotjarIntegration(config)
siteId
, version
e modo debug
.import { createHotjarIntegration } from 'react-lgpd-consent'
const integrations = [createHotjarIntegration({ siteId: '123456', version: 6 })]
analytics
createMixpanelIntegration(config)
token
e configurações customizadas.import { createMixpanelIntegration } from 'react-lgpd-consent'
const integrations = [createMixpanelIntegration({ token: 'YOUR_TOKEN' })]
analytics
createClarityIntegration(config)
projectId
.import { createClarityIntegration } from 'react-lgpd-consent'
const integrations = [createClarityIntegration({ projectId: 'abcdef' })]
functional
createIntercomIntegration(config)
app_id
.import { createIntercomIntegration } from 'react-lgpd-consent'
const integrations = [createIntercomIntegration({ app_id: 'your_app_id' })]
functional
createZendeskChatIntegration(config)
key
.import { createZendeskChatIntegration } from 'react-lgpd-consent'
const integrations = [createZendeskChatIntegration({ key: 'your_zendesk_key' })]
functional
createUserWayIntegration(config)
accountId
.import { createUserWayIntegration } from 'react-lgpd-consent'
const integrations = [createUserWayIntegration({ accountId: 'USERWAY_ACCOUNT_ID' })]
Para simplificar a configuração de múltiplas integrações, a biblioteca oferece templates e funções de ajuda.
suggestCategoryForScript(name: string)
: Sugere a categoria LGPD apropriada para um nome de script conhecido.createECommerceIntegrations
, createSaaSIntegrations
, createCorporateIntegrations
: Templates de negócio que agrupam as integrações mais comuns para cada setor.INTEGRATION_TEMPLATES
: Constante com presets de IDs e categorias para cada template.import { ConsentProvider, ConsentScriptLoader, createECommerceIntegrations } from 'react-lgpd-consent'
function App() {
const integrations = createECommerceIntegrations({
googleAnalytics: { measurementId: 'G-XXXX' },
facebookPixel: { pixelId: '1234567890' },
hotjar: { siteId: '999999' },
})
return (
<ConsentProvider categories={{ enabledCategories: ['analytics', 'marketing', 'functional'] }}>
<ConsentScriptLoader integrations={integrations} />
{/* Seu app */}
</ConsentProvider>
)
}
A biblioteca inclui funcionalidades experimentais para facilitar a auditoria e o mapeamento de cookies.
categorizeDiscoveredCookies
usa heurísticas para sugerir a categoria de um cookie.import { discoverRuntimeCookies, categorizeDiscoveredCookies } from 'react-lgpd-consent'
// 1. Descobre cookies em tempo de execução
const discovered = discoverRuntimeCookies()
// 2. Categoriza e registra no catálogo de cookies do modal
categorizeDiscoveredCookies(discovered, true)
Para evitar hydration mismatch e vazamento de scripts:
ConsentProvider
dentro de um Client Component e carregue-o com dynamic(..., { ssr: false })
a partir do RootLayout
(Server Component).ConsentScriptLoader
para carregar GTM/GA4 somente após consentimento e inicialize o Consent Mode v2 com gtag('consent','default', denied)
antes de qualquer script.QUICKSTART.md
para ordem dos provedores/estilos (MUI/Emotion) e checklist SSR.Se precisar de uma integração que não é oferecida nativamente, você pode criar a sua implementando a interface 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>
}
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 |