Przejdź do treści
Biblioteka skilli
Prawo i compliance · Integracja z narzędziem

iubenda

/iubenda

Integruje Iubenda dla zgody na ciasteczka, polityki prywatności i zgodności z RODO, w tym baner cookie, Google Consent Mode v2 i dokumenty prywatności.

Repozytorium
Synapse ↗
Licencja
AGPL-3.0
Ostatnia zmiana repozytorium
15.09.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
4
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
3
Przestarzałość

Brak sygnałów. Repozytorium zmienione 15.09.2026, bez odwołań do wycofanych modeli i API.

Licencja

AGPL-3.0, copyleft: przeróbki udostępniane innym muszą mieć tę samą licencję.

Co robi i kiedy

Integruje Iubenda dla zgody na ciasteczka, polityki prywatności i zgodności z RODO, w tym baner cookie, Google Consent Mode v2 i dokumenty prywatności.

Oryginalny opis (EN)

Iubenda integration for cookie consent, privacy policy, and GDPR compliance. Use when integrating Iubenda cookie banner, setting up Google Consent Mode v2, or generating privacy documents with Iubenda.

Jak działa

  1. Cos'è Iubenda
  2. Setup
  3. Google Consent Mode v2
  4. Conditional Script Loading
  5. Prezzi Iubenda
  6. Checklist Integrazione
Sekcje z nagłówków SKILL.md, w oryginale · 247 linii, 661 słów
Podgląd SKILL.md
---
name: iubenda
description: Iubenda integration for cookie consent, privacy policy, and GDPR compliance. Use when integrating Iubenda cookie banner, setting up Google Consent Mode v2, or generating privacy documents with Iubenda.
version: 1.0.0
---

# Iubenda Integration Skill

Integrazione Iubenda per gestione compliance cookie e privacy su siti Next.js.

## Cos'è Iubenda

Servizio SaaS per compliance GDPR/ePrivacy che fornisce:
- Cookie Solution (banner + blocco preventivo)
- Privacy/Cookie Policy generator
- Consent Database
- Terms & Conditions generator

## Setup

### 1. Variabili Ambiente

```env
NEXT_PUBLIC_IUBENDA_SITE_ID=<site-id>
NEXT_PUBLIC_IUBENDA_COOKIE_POLICY_ID=<cookie-policy-id>
# Opzionale: per privacy policy embedded
NEXT_PUBLIC_IUBENDA_PRIVACY_POLICY_ID=<privacy-policy-id>
```

### 2. Cookie Solution (Banner)

```tsx
// components/iubenda/cookie-banner.tsx
'use client';

import Script from 'next/script';

const SITE_ID = process.env.NEXT_PUBLIC_IUBENDA_SITE_ID;
const COOKIE_POLICY_ID = process.env.NEXT_PUBLIC_IUBENDA_COOKIE_POLICY_ID;

export function IubendaCookieBanner({ locale }: { locale: string }) {
  const langMap: Record<string, string> = {
    it: 'it',
    en: 'en',
    cs: 'cs',
  };

  return (
    <>
      <Script id="iubenda-config" strategy="beforeInteractive">
        {`
          var _iub = _iub || [];
          _iub.csConfiguration = {
            siteId: ${SITE_ID},
            cookiePolicyId: ${COOKIE_POLICY_ID},
            lang: "${langMap[locale] || 'en'}",
            
            // UI Configuration
            banner: {
              acceptButtonDisplay: true,
              closeButtonDisplay: false,
              customizeButtonDisplay: true,
              rejectButtonDisplay: true,
              
              acceptButtonCaption: "${locale === 'it' ? 'Accetta tutti' : 'Accept all'}",
              rejectButtonCaption: "${locale === 'it' ? 'Rifiuta tutti' : 'Reject all'}",
              customizeButtonCaption: "${locale === 'it' ? 'Personalizza' : 'Customize'}",
              
              position: "float-bottom-center",
              backgroundOverlay: true,
              textColor: "#1e293b",
              backgroundColor: "#ffffff",
              acceptButtonColor: "#3b82f6",
              acceptButtonCaptionColor: "#ffffff",
              rejectButtonColor: "#e2e8f0",
              rejectButtonCaptionColor: "#1e293b",
              customizeButtonColor: "#e2e8f0",
              customizeButtonCaptionColor: "#1e293b",
            },

            // Consent Configuration
            consentOnContinuedBrowsing: false,
            perPurposeConsent: true,
            
            // Google Consent Mode v2
            googleConsentMode: "template",
            
            // Purposes
            purposes: "1,4,5",
            // 1 = Necessary
            // 4 = Analytics  
            // 5 = Marketing
            
            // Auto-blocking
            enableAutoBlocking: true,
          };
        `}
      </Script>
      <Script
        src={`https://cs.iubenda.com/autoblocking/${SITE_ID}.js`}
        strategy="beforeInteractive"
      />
      <Script
        src="//cdn.iubenda.com/cs/iubenda_cs.js"
        strategy="afterInteractive"
        async
      />
    </>
  );
}
```

### 3. Privacy Policy Embedded

```tsx
// components/iubenda/privacy-policy.tsx
'use client';

import Script from 'next/script';

export function IubendaPrivacyPolicy() {
  return (
    <>
      <a
        href={`https://www.iubenda.com/privacy-policy/${process.env.NEXT_PUBLIC_IUBENDA_COOKIE_POLICY_ID}`}
        className="iubenda-white iubenda-noiframe iubenda-embed"
        title="Privacy Policy"
      >
        Privacy Policy
      </a>
      <Script src="https://cdn.iubenda.com/iubenda.js" strategy="lazyOnload" />
    </>
  );
}
```

### 4. Integrazione nel Layout

```tsx
// app/[locale]/layout.tsx
import { IubendaCookieBanner } from '@/components/iubenda/cookie-banner';

export default function LocaleLayout({
  children,
  params: { locale }
}: {
  children: React.ReactNode;
  params: { locale: string };
}) {
  return (
    <html lang={locale}>
      <body>
        {children}
        <IubendaCookieBanner locale={locale} />
      </body>
    </html>
  );
}
```

---

## Google Consent Mode v2

Iubenda supporta Google Consent Mode v2 nativamente. Configurazione:

```tsx
// Nel config Iubenda
googleConsentMode: "template",

// Questo gestisce automaticamente:
// - ad_storage
// - analytics_storage
// - ad_user_data
// - ad_personalization
// - functionality_storage
// - personalization_storage
// - security_storage
```

**Obbligatorio dal marzo 2024** per continuare a usare Google Ads e GA4 in UE.

---

## Conditional Script Loading

### Pattern: Carica script SOLO dopo consenso

```tsx
// hooks/use-consent.ts
'use client';

import { useEffect, useState } from 'react';

type ConsentPurpose = 'necessary' | 'analytics' | 'marketing';

export function useConsent(purpose: ConsentPurpose): boolean {
  const [hasConsent, setHasConsent] = useState(false);

  useEffect(() => {
    // Iubenda exposes consent via _iub.cs.consent
    const checkConsent = () => {
      const consent = (window as any)._iub?.cs?.consent;
      if (!consent) return false;
      
      switch (purpose) {
        case 'necessary': return true;
        case 'analytics': return consent.purposes?.['4'] === true;
        case 'marketing': return consent.purposes?.['5'] === true;
        default: return false;
      }
    };

    setHasConsent(checkConsent());

    // Listen for consent changes
    const handler = () => setHasConsent(checkConsent());
    window.addEventListener('_iub_cs_consent_given', handler);
    return () => window.removeEventListener('_iub_cs_consent_given', handler);
  }, [purpose]);

  return hasConsent;
}
```

---

## Prezzi Iubenda

| Piano | Prezzo | Include |
|-------|--------|---------|
| Free | €0 | Cookie banner base, 1 policy |
| Pro | ~€29/anno | Auto-blocking, consent log, multi-lingua |
| Ultra | ~€99/anno | + T&C generator, consent database, internal privacy |

**Raccomandazione**: Piano Pro per siti client standard.

---

## Checklist Integrazione

- [ ] Account Iubenda creato per il client
- [ ] Site ID e Cookie Policy ID configurati
- [ ] Cookie banner multilingua (IT/EN/CZ)
- [ ] Auto-blocking attivo (blocca script pre-consenso)
- [ ] Google Consent Mode v2 attivo
- [ ] Privacy Policy generata e linkata nel footer
- [ ] Cookie Policy generata e linkata nel footer
- [ ] Test: verificare che GA4/GTM NON si carichino prima del consenso
- [ ] Test: verificare che il rifiuto funzioni correttamente
- [ ] Link "Gestisci Cookie" nel footer per revocare consenso
Pliki w paczce (4)
  • SKILL.md 7 KB
  • learnings.md 1 KB
  • evals/evals.json 1 KB
  • evals/trigger_evals.json 1 KB

Wersje

W bazie nie ma innych skilli o nazwie iubenda.

Migawka bazy z 28.10.2026 · wersja paczki 146343b6e46c (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100cookie-consent
    Wdraża zgodną z RODO i ePrivacy zgodę na pliki cookie: baner z równymi przyciskami, wybór kategorii, zapis zgód, analitykę z Google Consent Mode v2 i Global Privacy Control.
  • 100gdpr
    Dostarcza bazę wiedzy o zgodności z RODO: audyt cookies, zgody w formularzach, prawa użytkowników i lista kontrolna prywatności.
  • 95cookie-policy-page-generator
    Tworzy lub optymalizuje stronę polityki cookies, baner zgody i ustawienia plików cookie zgodne z wymogami RODO.
  • 100gdpr-compliance
    Automatyzuje zgodność aplikacji webowych z RODO: audyt PII, zgody i cookies, endpointy żądań osób, polityki retencji i generator polityki prywatności.
  • 90terms-privacy
    Przygotowuje politykę prywatności zgodną z RODO dla opisanego produktu i przepływów danych, także informację o plikach cookie.
  • 90site-compliance
    Sprawdza strony sklepu (polityka prywatności, baner cookie, ceny w checkoucie) pod kątem zgodności z prywatnością, zgodami, dostępnością i wyświetlaniem cen przy tworzeniu i publikacji.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.