  {"id":3678,"date":"2026-06-12T20:48:12","date_gmt":"2026-06-12T19:48:12","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3678"},"modified":"2026-06-12T20:48:13","modified_gmt":"2026-06-12T19:48:13","slug":"calcolatore-significativita-ab-test","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/calcolatore-significativita-ab-test\/","title":{"rendered":"Calcolatore di Significativit\u00e0 per A\/B Test"},"content":{"rendered":"<p>Il nostro A\/B test \u00e8 arrivato alla fine: la variante B mostra un tasso di conversione pi\u00f9 alto della variante A. La tentazione di dichiarare il vincitore e implementare la modifica \u00e8 forte. Ma prima c&#8217;\u00e8 una domanda a cui rispondere, ed \u00e8 la stessa che attraversa tutto il nostro percorso: <strong>la differenza che osserviamo \u00e8 un segnale reale o solo rumore statistico?<\/strong><\/p>\n<p>Questo calcolatore \u00e8 il complemento naturale del <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore di sample size<\/a>: quello lavora <em>prima<\/em> del test e ci dice quanti utenti servono; questo lavora <em>dopo<\/em> e ci dice se il risultato ottenuto \u00e8 statisticamente significativo. Chi ha letto l&#8217;articolo sul <a href=\"https:\/\/www.gironi.it\/blog\/il-test-delle-ipotesi\/\">test delle ipotesi<\/a> riconoscer\u00e0 subito il meccanismo: dietro le quinte c&#8217;\u00e8 un test z per il confronto tra due proporzioni.<\/p>\n<p><!--more--><\/p>\n<p>L&#8217;uso \u00e8 immediato: inseriamo visitatori e conversioni delle due varianti, scegliamo il livello di significativit\u00e0, e il calcolatore restituisce p-value, verdetto e intervallo di confidenza della differenza.<\/p>\n<div style=\"border: 1px solid #ccc;padding: 1.2em 1.5em;margin: 1.5em 0;border-radius: 6px\">\n<h3 style=\"margin-top: 0\">Indice<\/h3>\n<ul>\n<li><a href=\"#calcolatore\">Il calcolatore<\/a><\/li>\n<li><a href=\"#formula\">La formula: come funziona il calcolo<\/a><\/li>\n<li><a href=\"#verifica-r\">Verifichiamo in R<\/a><\/li>\n<li><a href=\"#interpretare\">Come interpretare il risultato (senza farsi ingannare)<\/a><\/li>\n<li><a href=\"#approfondimenti\">Approfondimenti<\/a><\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<h2 id=\"calcolatore\">Il calcolatore<\/h2>\n<p>I valori precaricati sono quelli dell&#8217;esempio che svolgeremo passo passo pi\u00f9 sotto: possiamo sostituirli con i numeri del nostro test.<\/p>\n<style>\n.sg-calc{max-width:620px;margin:2em auto;padding:1.5em 2em;background:#f8f8f8;border:1px solid #ddd;border-radius:8px;font-family:inherit}\n.sg-calc h3{margin:0 0 1em;color:#333;font-size:1.2em}\n.sg-calc fieldset{border:1px solid #ddd;border-radius:6px;margin:0 0 1em;padding:0.6em 1em 1em;background:#fff}\n.sg-calc legend{font-weight:700;font-size:0.95em;color:#333;padding:0 0.4em}\n.sg-calc label{display:block;margin:0.6em 0 0.3em;font-weight:600;color:#333;font-size:0.9em}\n.sg-calc input[type=number],.sg-calc select{width:100%;padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:1em;box-sizing:border-box;background:#fff}\n.sg-calc input[type=number]:focus,.sg-calc select:focus{outline:none;border-color:#0073aa;box-shadow:0 0 0 2px rgba(0,115,170,0.15)}\n.sg-calc .sg-row{display:flex;gap:1.2em}\n.sg-calc .sg-col{flex:1}\n.sg-calc .sg-result{margin-top:1.5em;padding:1.2em;background:#fff;border:2px solid #ccc;border-radius:6px;text-align:center}\n.sg-calc .sg-result.sg-si{border-color:#2ecc71}\n.sg-calc .sg-result.sg-no{border-color:#e67e22}\n.sg-calc .sg-verdict{font-size:1.25em;font-weight:700;display:block;margin:0.2em 0;color:#333}\n.sg-calc .sg-si .sg-verdict{color:#2ecc71}\n.sg-calc .sg-no .sg-verdict{color:#e67e22}\n.sg-calc .sg-pvalue{font-size:1.05em;color:#333;margin-top:0.4em}\n.sg-calc .sg-detail{font-size:0.9em;color:#666;margin-top:0.6em;line-height:1.6}\n.sg-calc .sg-warn{color:#e74c3c;font-size:0.85em;margin-top:0.5em;display:none}\n@media(max-width:520px){.sg-calc .sg-row{flex-direction:column;gap:0}.sg-calc{padding:1em 1.2em}}\n<\/style>\n<div class=\"sg-calc\" id=\"sgCalc\">\n<h3>Calcolatore di significativit\u00e0<\/h3>\n<div class=\"sg-row\">\n<div class=\"sg-col\">\n<fieldset>\n<legend>Variante A (controllo)<\/legend>\n<p><label for=\"sgNA\">Visitatori<\/label><br \/>\n<input type=\"number\" id=\"sgNA\" value=\"8500\" min=\"1\" step=\"1\"><br \/>\n<label for=\"sgCA\">Conversioni<\/label><br \/>\n<input type=\"number\" id=\"sgCA\" value=\"204\" min=\"0\" step=\"1\"><br \/>\n<\/fieldset>\n<\/div>\n<div class=\"sg-col\">\n<fieldset>\n<legend>Variante B<\/legend>\n<p><label for=\"sgNB\">Visitatori<\/label><br \/>\n<input type=\"number\" id=\"sgNB\" value=\"8300\" min=\"1\" step=\"1\"><br \/>\n<label for=\"sgCB\">Conversioni<\/label><br \/>\n<input type=\"number\" id=\"sgCB\" value=\"251\" min=\"0\" step=\"1\"><br \/>\n<\/fieldset>\n<\/div>\n<\/div>\n<p><label for=\"sgAlpha\">Significativit\u00e0 (\u03b1)<\/label><br \/>\n<select id=\"sgAlpha\"><option value=\"0.01\">0.01 (99%)<\/option><option value=\"0.05\" selected>0.05 (95%)<\/option><option value=\"0.10\">0.10 (90%)<\/option><\/select><\/p>\n<div class=\"sg-result\" id=\"sgResult\">\n<span class=\"sg-verdict\" id=\"sgVerdict\">\u2014<\/span><\/p>\n<div class=\"sg-pvalue\" id=\"sgPvalue\"><\/div>\n<div class=\"sg-detail\" id=\"sgDetail\"><\/div>\n<\/div>\n<div class=\"sg-warn\" id=\"sgWarn\"><\/div>\n<\/div>\n<p><script>\n(function(){\nfunction normCdf(z) {\n\tconst x = Math.abs(z) \/ Math.SQRT2;\n\tconst t = 1 \/ (1 + 0.3275911 * x);\n\tconst erf = 1 - (((((1.061405429 * t - 1.453152027) * t) + 1.421413741) * t - 0.284496736) * t + 0.254829592) * t * Math.exp(-x * x);\n\tconst phi = 0.5 * (1 + erf);\n\treturn z >= 0 ? phi : 1 - phi;\n}\nconst Z975 = 1.959964; \/\/ qnorm(0.975), per l'IC al 95% come prop.test\nfunction testSignificativita(nA, cA, nB, cB) {\n\tconst interi = [nA, cA, nB, cB];\n\tif (interi.some(v => !Number.isFinite(v) || v < 0) || nA === 0 || nB === 0 || cA > nA || cB > nB) {\n\t\treturn { valido: false, avvisi: [] };\n\t}\n\tconst pA = cA \/ nA;\n\tconst pB = cB \/ nB;\n\tconst diff = pB - pA;\n\tconst pooled = (cA + cB) \/ (nA + nB);\n\tconst sePooled = Math.sqrt(pooled * (1 - pooled) * (1 \/ nA + 1 \/ nB));\n\tconst z = sePooled > 0 ? diff \/ sePooled : 0;\n\tconst pValue = sePooled > 0 ? 2 * (1 - normCdf(Math.abs(z))) : 1;\n\tconst seDiff = Math.sqrt(pA * (1 - pA) \/ nA + pB * (1 - pB) \/ nB);\n\tconst avvisi = [];\n\tfor (const [c, n, nome] of [[cA, nA, 'A'], [cB, nB, 'B']]) {\n\t\tif (c < 5 || n - c < 5) {\n\t\t\tavvisi.push(`La variante ${nome} ha meno di 5 conversioni (o non-conversioni): l'approssimazione normale \u00e8 poco affidabile con numeri cos\u00ec piccoli.`);\n\t\t}\n\t}\n\treturn {\n\t\tvalido: true,\n\t\tpA, pB, diff,\n\t\tlift: pA > 0 ? diff \/ pA : null,\n\t\tz, pValue,\n\t\tciLow: diff - Z975 * seDiff,\n\t\tciHigh: diff + Z975 * seDiff,\n\t\tsignificativo: (alpha) => pValue < alpha,\n\t\tavvisi,\n\t};\n}\n  var SG_LABELS = {\n    sigYes: 'Differenza statisticamente significativa al %CONF%',\n    sigNo: 'Differenza non significativa al %CONF%',\n    lift: 'lift relativo',\n    ci: 'IC 95% della differenza:',\n    pp: 'punti percentuali',\n    invalid: 'Controlliamo i dati: le conversioni non possono superare i visitatori.',\n    warnSmall: 'Attenzione: una variante ha meno di 5 conversioni (o non-conversioni): con numeri cos\\u00ec piccoli l\\u2019approssimazione normale \\u00e8 poco affidabile.'\n  };\n  var L = SG_LABELS;\n  function fmtP(p){ return p < 0.0001 ? '&lt; 0.0001' : p.toFixed(4); }\n  function calc(){\n    var nA=parseInt(document.getElementById('sgNA').value,10);\n    var cA=parseInt(document.getElementById('sgCA').value,10);\n    var nB=parseInt(document.getElementById('sgNB').value,10);\n    var cB=parseInt(document.getElementById('sgCB').value,10);\n    var alpha=parseFloat(document.getElementById('sgAlpha').value);\n    var conf=Math.round((1-alpha)*100)+'%';\n    var box=document.getElementById('sgResult');\n    var warn=document.getElementById('sgWarn');\n    warn.style.display='none'; warn.textContent='';\n    var r=testSignificativita(nA,cA,nB,cB);\n    if(!r.valido){\n      box.className='sg-result';\n      document.getElementById('sgVerdict').innerHTML='&mdash;';\n      document.getElementById('sgPvalue').textContent='';\n      document.getElementById('sgDetail').innerHTML=L.invalid;\n      return;\n    }\n    var sig=r.significativo(alpha);\n    box.className='sg-result '+(sig?'sg-si':'sg-no');\n    document.getElementById('sgVerdict').textContent=(sig?L.sigYes:L.sigNo).replace('%CONF%',conf);\n    document.getElementById('sgPvalue').innerHTML='p-value: <strong>'+fmtP(r.pValue)+'<\/strong> &nbsp;&middot;&nbsp; z = '+r.z.toFixed(3);\n    var liftTxt=r.lift===null?'&mdash;':(r.lift>=0?'+':'')+(r.lift*100).toFixed(1)+'%';\n    document.getElementById('sgDetail').innerHTML=\n      'CR A: <strong>'+(r.pA*100).toFixed(2)+'%<\/strong> &nbsp;&middot;&nbsp; CR B: <strong>'+(r.pB*100).toFixed(2)+'%<\/strong> &nbsp;&middot;&nbsp; '+L.lift+': <strong>'+liftTxt+'<\/strong><br \/>'+\n      L.ci+' [' + (r.ciLow*100).toFixed(2) + '; ' + (r.ciHigh*100).toFixed(2) + '] ' + L.pp;\n    if(r.avvisi.length){\n      warn.textContent=L.warnSmall;\n      warn.style.display='block';\n    }\n  }\n  ['sgNA','sgCA','sgNB','sgCB','sgAlpha'].forEach(function(id){\n    document.getElementById(id).addEventListener('input',calc);\n    document.getElementById(id).addEventListener('change',calc);\n  });\n  calc();\n})();\n<\/script><\/p>\n<hr \/>\n<h2 id=\"formula\">La formula: come funziona il calcolo<\/h2>\n<p>Il ragionamento \u00e8 quello classico del test delle ipotesi. Partiamo dall&#8217;<strong>ipotesi nulla<\/strong>: le due varianti convertono allo stesso modo, e la differenza osservata \u00e8 frutto del caso. Poi misuriamo quanto questa differenza \u00e8 &#8220;sorprendente&#8221; se l&#8217;ipotesi nulla fosse vera: se \u00e8 troppo sorprendente, l&#8217;ipotesi nulla non regge.<\/p>\n<p>I protagonisti sono tre:<\/p>\n<ul>\n<li><strong>p&#770;<sub>A<\/sub><\/strong> e <strong>p&#770;<sub>B<\/sub><\/strong>: i tassi di conversione osservati delle due varianti (conversioni diviso visitatori).<\/li>\n<li><strong>p&#770;<\/strong>: la proporzione <em>pooled<\/em>, cio\u00e8 il tasso di conversione complessivo calcolato mettendo insieme i dati delle due varianti. Perch\u00e9? Sotto l&#8217;ipotesi nulla le due proporzioni coincidono, e la stima migliore di quell&#8217;unica proporzione usa tutti i dati disponibili.<\/li>\n<li><strong>n<sub>A<\/sub><\/strong> e <strong>n<sub>B<\/sub><\/strong>: i visitatori delle due varianti.<\/li>\n<\/ul>\n<p>La statistica del test misura la differenza osservata in unit\u00e0 di errore standard:<\/p>\n\\( z = \\frac{\\hat{p}_B &#8211; \\hat{p}_A}{\\sqrt{\\hat{p}(1-\\hat{p})\\left(\\frac{1}{n_A} + \\frac{1}{n_B}\\right)}} \\)\n<p>Il denominatore \u00e8 l&#8217;<strong>errore standard della differenza<\/strong>: ci dice di quanto oscillerebbe la differenza tra i due tassi se ripetessimo il test molte volte, in un mondo dove le varianti sono identiche. Lo z risultante si legge sulla distribuzione normale: il <strong>p-value<\/strong> \u00e8 la probabilit\u00e0 di osservare una differenza almeno cos\u00ec estrema, in un verso o nell&#8217;altro, per puro caso. &#8220;In un verso o nell&#8217;altro&#8221; non \u00e8 un dettaglio: il test \u00e8 <strong>a due code<\/strong>, perch\u00e9 prima di guardare i dati non sappiamo se B far\u00e0 meglio o peggio di A.<\/p>\n<p>Per orientarsi, i valori di riferimento sono sempre gli stessi:<\/p>\n<ul>\n<li>|z| &gt; 1.645 &rarr; significativo al 90%<\/li>\n<li>|z| &gt; 1.96 &rarr; significativo al 95%<\/li>\n<li>|z| &gt; 2.576 &rarr; significativo al 99%<\/li>\n<\/ul>\n<p><strong>Facciamo un esempio<\/strong>, con i numeri precaricati nel calcolatore. La variante A ha ricevuto 8.500 visitatori e 204 conversioni; la variante B 8.300 visitatori e 251 conversioni:<\/p>\n<ul>\n<li>p&#770;<sub>A<\/sub> = 204 \/ 8.500 = 0.0240 (2.40%)<\/li>\n<li>p&#770;<sub>B<\/sub> = 251 \/ 8.300 = 0.0302 (3.02%) &mdash; un lift relativo del +26%<\/li>\n<li>p&#770; pooled = (204 + 251) \/ (8.500 + 8.300) = 455 \/ 16.800 = 0.0271<\/li>\n<li>errore standard = &radic;[0.0271 &times; 0.9729 &times; (1\/8.500 + 1\/8.300)] = 0.00250<\/li>\n<li>z = (0.0302 &minus; 0.0240) \/ 0.00250 = <strong>2.49<\/strong><\/li>\n<\/ul>\n<p>Dunque: z = 2.49 supera la soglia 1.96 e il p-value vale 0.0127. La differenza \u00e8 <strong>significativa al 95%<\/strong> &mdash; ma, come si vede, non al 99% (0.0127 &gt; 0.01). Lo stesso risultato, due verdetti diversi a seconda del rigore che abbiamo scelto: il livello di significativit\u00e0 va deciso <em>prima<\/em> di guardare i dati, non dopo.<\/p>\n<hr \/>\n<h2 id=\"verifica-r\">Verifichiamo in R<\/h2>\n<p>Verifico il calcolo in R con <code>prop.test<\/code>, disattivando la correzione di continuit\u00e0 per restare allineati al calcolo manuale:<\/p>\n<pre>prop.test(c(251, 204), c(8300, 8500), correct = FALSE)\n\n\t2-sample test for equality of proportions\n\twithout continuity correction\n\ndata:  c(251, 204) out of c(8300, 8500)\nX-squared = 6.2075, df = 1, p-value = 0.01272\nalternative hypothesis: two.sided\n95 percent confidence interval:\n 0.001325762 0.011156166\nsample estimates:\n    prop 1     prop 2\n0.03024096 0.02400000<\/pre>\n<p>I conti tornano: il p-value \u00e8 lo stesso del calcolo manuale, e la statistica X-squared non \u00e8 altro che il nostro z al quadrato (2.49&sup2; &asymp; 6.21 &mdash; il test chi quadrato su una tabella 2&times;2 e il test z su due proporzioni sono lo stesso test, come avevamo visto nell&#8217;articolo sul <a href=\"https:\/\/www.gironi.it\/blog\/il-test-del-chi-quadrato\/\">chi quadrato<\/a>). In pi\u00f9, R ci regala l&#8217;<strong>intervallo di confidenza della differenza<\/strong>: tra 0.13 e 1.12 punti percentuali. \u00c8 l&#8217;informazione pi\u00f9 preziosa di tutte, e vediamo subito perch\u00e9.<\/p>\n<hr \/>\n<h2 id=\"interpretare\">Come interpretare il risultato (senza farsi ingannare)<\/h2>\n<p><strong>Significativo non vuol dire importante.<\/strong> Va sempre tenuto bene a mente: con campioni molto grandi, anche differenze irrisorie e commercialmente irrilevanti diventano statisticamente significative. La significativit\u00e0 ci dice che la differenza non \u00e8 frutto del caso, non che sia <em>grande<\/em>. Per capire quanto \u00e8 grande, guardiamo l&#8217;intervallo di confidenza della differenza: nel nostro esempio va da +0.13 a +1.12 punti percentuali. Se anche il limite inferiore giustifica lo sforzo di implementare la modifica, possiamo procedere con fiducia; se l&#8217;intervallo include valori trascurabili, il verdetto &#8220;significativo&#8221; da solo non basta.<\/p>\n<p><strong>Il p-value vale se il test si ferma quando deciso.<\/strong> Il calcolo presuppone che la dimensione campionaria sia stata fissata in anticipo (con il <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore di sample size<\/a>) e che il test si fermi l\u00ec. Controllare i risultati ogni giorno e fermarsi al primo p-value sotto 0.05 &mdash; il famigerato <em>peeking<\/em>, come dicono gli anglosassoni &mdash; gonfia drasticamente i falsi positivi: \u00e8 come lanciare una moneta finch\u00e9 non escono tre teste di fila e dichiarare la moneta truccata. Ne abbiamo parlato nella <a href=\"https:\/\/www.gironi.it\/blog\/guida-ai-test-statistici-per-analisi-a-b\/\">guida ai test statistici per le analisi A\/B<\/a>.<\/p>\n<p><strong>n.b.<\/strong>: il calcolatore usa un test a due code, la scelta prudente e standard. Esistono versioni a una coda che &#8220;premiano&#8221; l&#8217;ipotesi direzionale con p-value dimezzati, ma vanno usate solo quando la direzione dell&#8217;effetto \u00e8 davvero nota a priori &mdash; nella pratica quotidiana degli A\/B test, quasi mai.<\/p>\n<hr \/>\n<h3 id=\"approfondimenti\">Potrebbe interessarti anche<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">Calcolatore Sample Size per A\/B Test<\/a><\/li>\n<li><a href=\"https:\/\/www.gironi.it\/blog\/guida-ai-test-statistici-per-analisi-a-b\/\">Guida ai test statistici per analisi A\/B<\/a><\/li>\n<li><a href=\"https:\/\/www.gironi.it\/blog\/il-test-delle-ipotesi\/\">Il test delle ipotesi<\/a><\/li>\n<\/ul>\n<hr \/>\n<p>Il p-value risponde a una sola domanda: <em>l&#8217;effetto esiste?<\/em> Non ci dice quanto \u00e8 grande, n\u00e9 se vale lo sforzo di implementarlo. Per quello servono altri due strumenti &mdash; l&#8217;<strong>effect size<\/strong> e la <strong>power analysis<\/strong> &mdash; ed \u00e8 esattamente l\u00ec che il nostro percorso andr\u00e0 nel prossimo articolo.<\/p>\n<hr \/>\n<h3>Per approfondire<\/h3>\n<p>Il riferimento pi\u00f9 completo sulla conduzione rigorosa di esperimenti online resta <a href=\"https:\/\/www.amazon.it\/dp\/1108724264?tag=consulenzeinf-21\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><em>Trustworthy Online Controlled Experiments<\/em><\/a> di Ron Kohavi, Diane Tang e Ya Xu: il capitolo sulle insidie dell&#8217;interpretazione dei risultati (peeking incluso) vale da solo il prezzo del libro.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il nostro A\/B test \u00e8 arrivato alla fine: la variante B mostra un tasso di conversione pi\u00f9 alto della variante A. La tentazione di dichiarare il vincitore e implementare la modifica \u00e8 forte. Ma prima c&#8217;\u00e8 una domanda a cui rispondere, ed \u00e8 la stessa che attraversa tutto il nostro percorso: la differenza che osserviamo &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-significativita-ab-test\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Calcolatore di Significativit\u00e0 per A\/B Test&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[629],"tags":[],"class_list":["post-3678","post","type-post","status-publish","format-standard","hentry","category-statistica-it"],"lang":"it","translations":{"it":3678,"en":3679},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Paolo Gironi","author_link":"https:\/\/www.gironi.it\/blog\/author\/autore-articoli\/"},"uagb_comment_info":0,"uagb_excerpt":"Il nostro A\/B test \u00e8 arrivato alla fine: la variante B mostra un tasso di conversione pi\u00f9 alto della variante A. La tentazione di dichiarare il vincitore e implementare la modifica \u00e8 forte. Ma prima c&#8217;\u00e8 una domanda a cui rispondere, ed \u00e8 la stessa che attraversa tutto il nostro percorso: la differenza che osserviamo&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/comments?post=3678"}],"version-history":[{"count":1,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3678\/revisions"}],"predecessor-version":[{"id":3680,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3678\/revisions\/3680"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}