Iubenda logo
Inizia la generazione

Documentazione

Indice dei contenuti

Cache, performance e altre ottimizzazioni della iubenda Cookie Solution

Ecco i nostri suggerimenti per ottimizzare ulteriormente le performance della nostra Cookie Solution:

  1. Includi gli script della Cookie Solution direttamente nell’HTML, non usare un tag manager o un altro script
  2. Se hai abilitato l’opzione TCF, dovresti includere la Cookie Solution nel body, non nell’head
  3. Precarica i file js il prima possibile nell’head
  4. La Cookie Solution dovrebbe essere incorporata dopo almeno un tag di testo/immagine per evitare di influenzare il First Contentful Paint. Tuttavia, tieni presente che, se hai abilitato l’opzione TCF, più in basso collochi gli script della Cookie Solution, più tardi verranno attivati gli annunci pubblicitari.
  5. safe.js e safe-tcf-v2.js hanno un impatto sul punteggio di PageSpeed. Idealmente, dovresti usarli solo se puoi scrivere codice lato server (vedi il nostro esempio php):
    • includi safe.js solo quando esiste il cookie _iub_cs_xxx
    • includi safe-tcf-v2.js solo quando esiste il cookie euconsent-v2
  6. Riducendo il valore di inlineDelay (intero, millisecondi, default 500) puoi ridurre il tempo totale di attivazione. Tieni presente che inlineDelay funziona solo con il blocco “-inline”, quindi si limita esclusivamente a quel tipo di snippet. Il suo valore predefinito è 500, sconsigliamo un valore inferiore a 300.

La Cookie Solution è configurata per evitare l’esecuzione in caso di spider o bot – il suo uso non comporta quindi alcun effetto negativo lato SEO.

Caricamento diretto

In aggiunta ai suggerimenti di cui sopra, volendo puoi usare una specifica versione della iubenda Cookie Solution. Per farlo, nello snippet di integrazione, al posto di:

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Dovrai usare:

<script type="text/javascript" src="//cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js" charset="UTF-8" async></script>

Il valore “1.30.3” va sostituito col numero relativo alla versione da utilizzare. Le versioni disponibili sono quelle rilasciate a partire dalla versione 1.29.0 in poi (consulta il changelog per una lista di tutte le versioni rilasciate. Per usare una versione precedente la 1.29.0, leggi qui).

Se scegli di bloccare la iubenda Cookie Solution ad una specifica versione, ti consigliamo di aggiornarla manualmente con una certa regolarità, così da beneficiare dei nostri aggiornamenti periodici.

A differenza del link di base alla nostra risorsa (//cdn.iubenda.com/cs/iubenda_cs.js), il link //cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js ha una configurazione di cache molto estesa, in quanto punta ad una versione specifica che non necessiterà di modifiche nel tempo.

Più in dettaglio, applicando la modifica sopra descritta al codice della Cookie Solution, il js a sua volta caricherà un nuovo file contenente la versione desiderata.

Si tratta di una best practice – adottata anche da Google per il caricamento di Google Analytics – dettata dall’esigenza di garantire il miglior compromesso fra possibilità di aggiornamento della Cookie Solution e velocità di caricamento/caching.

Il file js in oggetto ha una cache breve di pochi byte, che a sua volta richiama la vera e propria Cookie Solution, il cui file ha invece una cache molto estesa.

Caricamento diretto per versioni precedenti la 1.29.0

Se l’analisi effettuata da Google PageSpeed ti ha mostrato questo suggerimento, allora sei nel posto giusto per risolvere il tuo problema:

Sfrutta il caching del browser: se viene impostata una data di scadenza o un’età massima nelle intestazioni HTTP per le risorse statiche, il browser carica le risorse precedentemente scaricate dal disco locale invece che dalla rete.

Per le versioni precedenti la 1.29.0 (ma successive la 1.3.11), per bypassare iubenda_cs.js bisogna recuperare l’hash della versione desiderata. In questo modo puoi:

  • Eliminare un passaggio intermedio, con un guadagno – a dire il vero molto ridotto – in termini di velocità di caricamento (alcuni millesimi di secondo)
  • Accedere ad una versione del file con una cache molto lunga

Nel caso della versione “1.23.2” ad esempio, visitando la pagina https://cdn.iubenda.com/cs/versions/iubenda_cs-1.23.2.js avremo e.src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js", di fatto l’URL del file con l’hash della versione desiderata.

Ecco quindi che nel tuo snippet di integrazione della Cookie Solution anziché:

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Userai:

<script>
  _iub.csConfigLegacy = !1;
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" charset="UTF-8" async></script>

IAB Transparency and Consent Framework

Se poi hai abilitato il supporto al Transparency and Consent Framework (TCF) per la gestione delle preferenze pubblicitarie e vuoi sfruttare al meglio la cache, dovresti recuperare il valore di _iub.GVL2 da https://cdn.iubenda.com/cs/iubenda_cs.js e aggiungerlo al tuo script.

Ecco che, continuando l’esempio precedente, al posto di:

<script src="//cdn.iubenda.com/cs/iubenda_cs.js" async></script>

Avrai:

<script>
  _iub.csConfigLegacy = !1, _iub.GVL2 = _iub.GVL2 || 54;
</script>
<script src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" async></script>

Tieni però presente che dovrai aggiornare il valore di _iub.GVL2 su base settimanale (così che corrisponda a quello contenuto in https://cdn.iubenda.com/cs/iubenda_cs.js), essendo la Global Vendor List aggiornata periodicamente. Ecco perché, nel caso del TCF, anziché il caricamento di una versione specifica ti consigliamo di sfruttare l’attivatore inline e di non bloccare direttamente gli script dei vendor.

Attivatore inline – Inclusione diretta in pagina dell’attivatore

È inoltre possibile includere direttamente in pagina (inline) la parte di codice che si occupa dell’attivazione degli script; definiamo questo codice attivatore inline. Tramite l’attivatore inline gli script potranno essere attivati anche nel caso in cui la risorsa principale iubenda_cs.js risulti essere genericamente non disponibile o in errore.

safe.js è disponibile ai seguenti indirizzi:

safe-tcf-v2.js è disponibile ai seguenti indirizzi:

Per maggiori informazioni leggi Come configurare la Cookie Solution (guida avanzata).

Esempi

Senza TCF

HTML

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <!-- Preload resources beforehand -->
    <link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
    
    <!-- The ID (e.g. 12345) should be the same as cookiePolicyId -->
    <link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/12345.js" as="script">

    <!-- other stuff in head tag -->
</head>

<body>
    <script>
        var _iub = _iub || [];
        _iub.csConfiguration = {
            "lang": "en",
            "siteId": 67890, //use your siteId
            "cookiePolicyId": 12345, //use your cookiePolicyId
            "enableTcf": true,
            "inlineDelay": 300, //default value: 500
            // ...
        };
    </script>
    
    <!-- inline activator - safe.js (optional) -->
    <script type="text/javascript">
        //<![CDATA[
            //copy content from cdn.iubenda.com/cs/safe.js (current channel) and paste here
        //]]>
    </script>

    <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>

</html>

PHP

<?php
  $cookie_policy_id = 12345; //use your cookiePolicyId
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <!-- Preload resources beforehand -->
    <link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
    <link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/<?php echo $cookie_policy_id; ?>.js" as="script">

    <!-- other stuff in head tag -->
</head>

<body>

    <script>
        var _iub = _iub || [];
        _iub.csConfiguration = {
            "lang": "en",
            "siteId": 67890, //use your siteId
            "cookiePolicyId": <?php echo $cookie_policy_id; ?>, 
            "inlineDelay": 300, //default value: 500
            // ...
        };
    </script>

    <!-- Only include safe.js if the consent cookie is found -->
    <?php if (isset($_COOKIE["_iub_cs-{$cookie_policy_id}"])) { ?>
    <script>
        /* inline safe.js */
    </script>
    <?php } ?>
    
    <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>

</html>

Con il TCF

HTML – TCF e attivatore inline

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <!-- Preload resources beforehand -->
    <link rel="preload" href="//cdn.iubenda.com/cs/tcf/stub-v2.js" as="script">
    <link rel="preload" href="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js" as="script">
    <link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
    
    <!-- The ID (e.g. 12345) should be the same as cookiePolicyId -->
    <link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/12345.js" as="script">

    <!-- other stuff in head tag -->
</head>

<body>
    <script>
        var _iub = _iub || [];
        _iub.csConfiguration = {
            "lang": "en",
            "siteId": 67890, //use your siteId
            "cookiePolicyId": 12345, //use your cookiePolicyId
            "enableTcf": true,
            "inlineDelay": 300, //default value: 500
            // ...
        };
    </script>
    <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script>
    <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script>
    
    <!-- inline activator - safe.js -->
    <script type="text/javascript">
        //<![CDATA[
            //copy content from cdn.iubenda.com/cs/safe.js (current channel) and paste here
        //]]>
    </script>

    <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>

</html>

PHP – TCF e attivatore inline

<?php
  $cookie_policy_id = 12345; //use your cookiePolicyId
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <!-- Preload resources beforehand -->
    <link rel="preload" href="//cdn.iubenda.com/cs/tcf/stub-v2.js" as="script">
    
    <!-- Only preload safe-tcf-v2.js if the euconsent-v2 cookie is found -->
    <?php if (isset($_COOKIE['euconsent-v2'])) { ?>
    <link rel="preload" href="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js" as="script">
    <?php } ?>
    
    <link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
    <link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/<?php echo $cookie_policy_id; ?>.js" as="script">

    <!-- other stuff in head tag -->
</head>

<body>

    <script>
        var _iub = _iub || [];
        _iub.csConfiguration = {
            "lang": "en",
            "siteId": 67890, //use your siteId
            "cookiePolicyId": <?php echo $cookie_policy_id; ?>, 
            "enableTcf": true,
            "inlineDelay": 300, //default value: 500
            // ...
        };
    </script>

    <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script>
    
    <!-- Only include safe-tcf-v2.js if the TCF cookie euconsent-v2 is found -->
    <?php if (isset($_COOKIE['euconsent-v2'])) { ?>
    <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script>
    <?php } ?>
    
    <!-- Only include safe.js if the consent cookie is found -->
    <?php if (isset($_COOKIE["_iub_cs-{$cookie_policy_id}"])) { ?>
    <script>
        /* inline safe.js */
    </script>
    <?php } ?>
    
    <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>

</html>

Leggi anche