Informazioni sugli interventi di Chrome per annunci eccessivi

Data di pubblicazione: 22 settembre 2025, ultimo aggiornamento: 7 gennaio 2026

Per gli utenti, poche cose sono più frustranti di una pagina web che improvvisamente rallenta, scarica la batteria o consuma la quantità di dati mensile. A volte, il problema non è il contenuto che sono venuti a vedere, ma un annuncio in esecuzione in background.

Per proteggere l'esperienza utente, Chrome applica limiti alle risorse che un annuncio può utilizzare. Quando un annuncio supera questi limiti, diventando un annuncio pesante, Chrome lo scarica per liberare le risorse del dispositivo.

Questa documentazione spiega come funziona questo intervento, le soglie specifiche coinvolte e alcune best practice che puoi utilizzare per garantire che gli annunci funzionino senza problemi.

Che cos'è l'intervento per annunci pesanti?

L'intervento per annunci pesanti è un meccanismo di Chrome che monitora l'utilizzo delle risorse dei frame degli annunci. Se un annuncio consuma una quantità sproporzionata di larghezza di banda o potenza di elaborazione della CPU, Chrome scaricherà il frame dell'annuncio specifico.

Al posto dell'annuncio, l'utente vedrà una casella grigia con il messaggio Annuncio rimosso , in genere accompagnato da un link Dettagli che spiega che l'annuncio ha utilizzato troppe risorse.

Una casella grigia con l'etichetta "Annuncio rimosso" e un link "Dettagli", visualizzata al posto di un annuncio pesante che ha superato i limiti delle risorse.
Una visualizzazione di esempio di un annuncio dopo la rimozione.

Quando un annuncio è considerato pesante?

Chrome determina se un annuncio è pesante in base a tre soglie specifiche. Se un utente non ha interagito con un annuncio e questo soddisfa uno dei seguenti criteri, verrà scaricato:

  • Utilizzo della rete: l'annuncio utilizza più di quattro megabyte di larghezza di banda di rete.
  • Utilizzo massimo della CPU: l'annuncio utilizza il thread principale per più di 15 secondi in una finestra di 30 secondi.
  • Utilizzo totale della CPU: l'annuncio utilizza il thread principale per un totale di più di 60 secondi. Tutte le risorse utilizzate da eventuali iframe discendenti del frame dell'annuncio vengono conteggiate rispetto ai limiti per l'intervento sull'annuncio.

Quali sono alcuni trigger comuni per questo intervento?

Alcuni tipi di comportamenti degli annunci hanno maggiori probabilità di attivare questi interventi rispetto ad altri. Le cause più comuni includono:

  • Contenuti multimediali non compressi: caricamento di immagini estremamente grandi e compresse in modo errato.
  • JavaScript pesante: esecuzione di operazioni estese, ad esempio la decodifica di file video utilizzando JavaScript.
  • Calcoli pesanti: esecuzione di calcoli complessi in background.
  • Contenuti video senza gesti: caricamento di file video di grandi dimensioni prima che un utente interagisca con un annuncio.

Che cosa succede quando un annuncio viene rimosso?

Quando Chrome rileva che un annuncio ha superato le soglie per gli annunci pesanti, interviene immediatamente per proteggere le risorse del dispositivo dell'utente.

L'esperienza utente

Dal punto di vista dell'utente, l'annuncio viene scaricato immediatamente. Al suo posto, Chrome visualizza una casella grigia con il messaggio Annuncio rimosso. Se l'utente fa clic su Dettagli all'interno del container, vedrà una spiegazione specifica.

L'esperienza di sviluppo

Chrome genera anche un report sugli interventi con l'API Reporting per comunicarti esattamente cosa è successo. In precedenza, questi report venivano inviati solo al frame dell'annuncio e ai relativi frame discendenti. Tuttavia, spesso i publisher non avevano modo di sapere che gli annunci sulle loro pagine venivano rimossi. Per risolvere questo problema, Chrome ha ampliato il meccanismo di reporting. Ora i report sugli interventi vengono inviati al frame di incorporamento (il frame principale del frame dell'annuncio principale) oltre al frame dell'annuncio stesso. I report inviati al frame di incorporamento includono l'ID del frame secondario e l'URL del frame dell'annuncio.

Per configurare la pagina per i report HTTP, la risposta deve includere l'intestazione Report-To:

Reporting-Endpoints: default="https://example.com/reports"

La richiesta POST attivata includerà un report simile al seguente:

POST /reports HTTP/1.1
Host: example.com

Content-Type: application/report

[{
 "type": "intervention",
 "age": 60,
 "url": "https://example.com/url/of/ad.html",
 "body": {
   "sourceFile": null,
   "lineNumber": null,
   "columnNumber": null,
   "id": "HeavyAdIntervention",
   "message": "Ad was removed because its CPU usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384?utm_source=devtools"
 }
}]

Il frame di incorporamento riceverà un report simile, indirizzato all'URL del frame di incorporamento, ma il messaggio conterrà anche l'ID del frame secondario e l'URL specifico del frame secondario:

...
"message": "Ad was removed because its CPU usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384?utm_source=devtools (id=123;url=http://example2.com/pre-redirect-ad-url.html)"
...

L'API JavaScript fornisce a ReportingObserver un metodo observe() che può essere utilizzato per attivare un callback fornito sugli interventi. Questa funzionalità può essere utile se vuoi allegare informazioni aggiuntive al report per facilitare il debug.

// callback that will handle intervention reports
function sendReports(reports) {
  for (let report of reports) {
    // Log the `report` json using your own reporting process
    navigator.sendBeacon('https://report.example/your-endpoint', report);
  }
}

// create the observer with the callback
const observer = new ReportingObserver(
  (reports, observer) => {
    sendReports(reports);
  },
  { buffered: true }
);

// start watching for interventions
observer.observe();

Poiché l'intervento scarica la pagina iframe (ad esempio, un annuncio), utilizza l'evento pagehide per assicurarti che il callback di reporting acquisisca il report sugli interventi prima che la pagina scompaia.

window.addEventListener('pagehide', (event) => {
  // pull all pending reports from the queue
  let reports = observer.takeRecords();
  sendReports(reports);
});

Il JSON risultante da JavaScript è simile a quello inviato nella richiesta POST:

[
  {
    type: 'intervention',
    url: 'https://example.com/url/of/ad.html',
    body: {
      sourceFile: null,
      lineNumber: null,
      columnNumber: null,
      id: 'HeavyAdIntervention',
      message:
        'Ad was removed because its network usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384',
    },
  },
];

Best practice per gli sviluppatori

Per evitare che i tuoi annunci rientrino nel banner degli annunci pesanti, prendi in considerazione le seguenti best practice:

  • Richiedi l'interazione dell'utente per i contenuti pesanti: i criteri di intervento si applicano agli annunci con cui l'utente non ha interagito. Se un utente fa clic o tocca il tuo annuncio, i limiti delle risorse non si applicano più. Per le esperienze video o rich media, attendi un'attivazione dall'utente (ad esempio, "fai clic per riprodurre") prima di caricare gli asset pesanti.
  • Ottimizza immagini e video: assicurati che le immagini siano compresse e che i video siano ottimizzati per il web. Evita di caricare automaticamente file video di grandi dimensioni; utilizza invece segnaposto leggeri finché l'utente non interagisce.
  • Controlla l'utilizzo della CPU: animazioni complesse o operazioni JavaScript che attivano layout e rendering continui possono aumentare l'utilizzo della CPU. Utilizza gli strumenti per identificare i colli di bottiglia nel codice che potrebbero mantenere il thread principale occupato per lunghi periodi.
  • Monitora i frame discendenti: tieni presente che il conteggio delle risorse include tutto ciò che si trova all'interno dell'iframe dell'annuncio. Se l'annuncio carica pixel di monitoraggio di terze parti o frame secondari, l'utilizzo delle risorse viene conteggiato rispetto al limite.
  • Isola i contenuti non pubblicitari: separa i frame dei contenuti non pubblicitari in domini diversi o pattern riconoscibili che difficilmente verranno considerati domini pubblicitari dalle norme del fornitore dell'elenco di filtri.

Come eseguire il debug e diagnosticare la causa di un intervento?

Per risolvere e risolvere efficacemente gli interventi per annunci pesanti, devi prima capire in che modo la logica di rilevamento di Chrome identifica i contenuti come annunci e poi utilizzare gli strumenti per sviluppatori integrati per controllare i trigger di risorse specifici che hanno portato alla rimozione.

In che modo Chrome rileva la presenza di un annuncio?

Chrome contrassegna i contenuti come annunci confrontando le richieste di risorse con un elenco di filtri. La logica di rilevamento si applica ai contenuti all'interno degli iframe. Il frame della pagina principale non viene mai considerato correlato agli annunci, anche se contiene script pubblicitari. Tieni presente che un iframe caricato da una risorsa corrispondente all'elenco di filtri verrà considerato un annuncio anche se da quel frame vengono caricati anche altri contenuti non pubblicitari. Un esempio è un video player caricato in un iframe contrassegnato come annuncio che potrebbe caricare anche contenuti non pubblicitari.

Come verificare il rilevamento degli annunci?

In qualità di sviluppatore, puoi verificare visivamente se Chrome ha rilevato correttamente i tuoi contenuti come annunci utilizzando Chrome DevTools.

  • Evidenziazione dei frame degli annunci: nel riquadro Rendering, seleziona Evidenzia frame degli annunci, che colora in rosso i frame degli annunci rilevati sullo schermo.
  • Annotazione degli elementi: nel riquadro Elementi, gli iframe degli annunci rilevati mostreranno un'annotazione dell'annuncio accanto al tag di apertura <iframe>.
  • Attività di rete: nel riquadro Rete, filtra le richieste in base a un valore booleano Is ad-related.
  • Stato dell'annuncio: nel riquadro dell'applicazione, nella sezione Frame , i frame con tag annuncio includeranno un attributo Ad Status.

Come diagnosticare la causa di un intervento?

Chrome fornisce strumenti per controllare e migliorare la qualità e il rendimento delle pagine web. Esegui Lighthouse in Chrome DevTools per ottenere report sul rendimento della tua pagina. Puoi anche consultare la raccolta web.dev/fast ed esplorare ulteriori informazioni sui Web Vitals.

Utilizzo della rete

Apri il riquadro Rete in Chrome DevTools per visualizzare l'attività di rete complessiva dell'annuncio. Seleziona l'opzione Disattiva cache per ottenere risultati coerenti durante i caricamenti ripetuti.

Il riquadro Rete in Chrome DevTools che mostra l'attività di rete registrata con l'opzione &quot;Disattiva cache&quot; abilitata.
Riquadro Rete in DevTools.

Il valore trasferito nella parte inferiore della pagina mostra la quantità trasferita per l'intera pagina. Per limitare le richieste solo a quelle correlate all'annuncio, utilizza l'input Filtro nella parte superiore.

Se trovi la richiesta iniziale per l'annuncio, ad esempio l'origine dell'iframe, utilizza la scheda Iniziatore all'interno della richiesta per visualizzare tutte le richieste che attiva.

La scheda Iniziatore in DevTools che mostra la sequenza di richieste di risorse attivate da un frame dell'annuncio specifico.
Scheda Iniziatore per una richiesta.

Ordinare l'elenco complessivo delle richieste per dimensione è un buon modo per individuare le risorse eccessivamente grandi. Le cause più comuni includono immagini e video non ottimizzati.

L'elenco del riquadro Rete di DevTools è ordinato in base alle dimensioni della risposta per identificare i file multimediali di grandi dimensioni e non ottimizzati.
Ordina le richieste in base alle dimensioni della risposta.

Inoltre, l'ordinamento per nome può essere un buon modo per individuare le richieste ripetute. Potrebbe non essere una singola risorsa di grandi dimensioni a attivare l'intervento, ma un numero elevato di richieste ripetute che superano gradualmente il limite.

Utilizzo CPU

Il riquadro Prestazioni in DevTools ti aiuterà a diagnosticare i problemi di utilizzo della CPU. Apri il menu Impostazioni di acquisizione. Utilizza il menu a discesa CPU per rallentare il più possibile la CPU. Gli interventi per la CPU hanno molte più probabilità di essere attivati su dispositivi a bassa potenza rispetto alle macchine di sviluppo di fascia alta.

Impostazioni di acquisizione del riquadro Prestazioni in DevTools con il menu a discesa Limitazione CPU selezionato per simulare hardware a bassa potenza con un rallentamento di 6 volte.
Attiva la limitazione della rete e della CPU nel riquadro Prestazioni.

Poi, fai clic sul pulsante Registra per iniziare a registrare l'attività. Potresti voler sperimentare quando e per quanto tempo registrare, poiché il caricamento di una traccia lunga può richiedere un po' di tempo. Una volta caricata la registrazione, puoi utilizzare la sequenza temporale in alto per selezionare una parte della registrazione. Concentrati sulle aree del grafico in giallo, viola o verde che rappresentano scripting, rendering e disegno.

Riepilogo della traccia del rendimento in DevTools, con un grafico a torta che visualizza il tempo dedicato a diverse attività come caricamento, scripting, rendering e disegno.
Riepilogo di una traccia nel riquadro Prestazioni.

Esplora le schede Dal basso verso l'alto, Albero delle chiamate e Log eventi nella parte inferiore. Ordinare queste colonne in base a Tempo autonomo e Tempo totale può aiutarti a identificare i colli di bottiglia nel codice.

La scheda Dal basso verso l'alto nel riquadro Prestazioni ordinata in base a &quot;Tempo autonomo&quot; per individuare colli di bottiglia specifici.
Ordina per tempo autonomo nella scheda Dal basso verso l'alto.

È anche collegato il file di origine associato, in modo che tu possa seguirlo fino al riquadro Risorse per esaminare il costo di ogni riga.

Tempo di esecuzione mostrato nel riquadro Risorse.
Tempo di esecuzione visualizzato nel riquadro Risorse.

I problemi comuni da cercare qui sono animazioni ottimizzate in modo errato che attivano layout e rendering continui o operazioni costose nascoste all'interno di una libreria inclusa.

Come segnalare interventi errati?

Se i contenuti non pubblicitari sono stati contrassegnati come tali, valuta la possibilità di modificare il codice per evitare di corrispondere alle regole di filtro o di contattare direttamente i gestori di EasyList per modificare le regole di filtro. Tieni presente che l'intervento per annunci pesanti non influisce sui frame con attivazione dall'utente, quindi i video possono essere esclusi richiedendo di fare clic su un pulsante di riproduzione prima di caricare i contenuti. Se EasyList non corrisponde ai tuoi contenuti e Chrome ha classificato erroneamente i contenuti come correlati agli annunci, puoi segnalare un problema a Chrome utilizzando questo modello. Quando segnali un problema, includi un esempio acquisito del report sugli interventi e un URL di esempio per riprodurre il problema.