Veröffentlicht: 22. September 2025, zuletzt aktualisiert: 7. Januar 2026
Für Nutzer gibt es kaum etwas Frustrierenderes als eine Webseite, die plötzlich extrem langsam lädt, den Akku entlädt oder das monatliche Datenvolumen aufbraucht. Manchmal ist nicht der Content, den sich Nutzer ansehen möchten, die Ursache, sondern eine im Hintergrund laufende Anzeige.
Zum Schutz der Nutzerfreundlichkeit setzt Chrome Grenzen für die Ressourcen, die eine Anzeige verwenden kann. Wenn eine Anzeige diese Grenzwerte überschreitet und zu einer ressourcenintensiven Anzeige wird, entlädt Chrome sie, um die Ressourcen des Geräts freizugeben.
In dieser Dokumentation wird beschrieben, wie diese Maßnahme funktioniert, welche Grenzwerte gelten und welche Best Practices Sie anwenden können, damit Anzeigen reibungslos ausgeliefert werden.
Was ist die umfangreiche Anzeigenintervention?
Die Intervention bei ressourcenintensiven Anzeigen ist ein Mechanismus in Chrome, mit dem die Ressourcennutzung von Anzeigen-Frames überwacht wird. Wenn eine Anzeige unverhältnismäßig viel Bandbreite oder CPU-Verarbeitungsleistung beansprucht, wird der entsprechende Anzeigenframe in Chrome entladen.
Statt der Anzeige sehen Nutzer ein graues Feld mit der Meldung Anzeige entfernt, in der Regel begleitet von einem Link Details, der erklärt, dass die Anzeige zu viele Ressourcen verbraucht hat.
Wann gilt eine Anzeige als „schwer“?
Chrome stuft eine Anzeige anhand von drei bestimmten Grenzwerten als „schwer“ ein. Wenn ein Nutzer nicht mit einer Anzeige interagiert hat und sie eines der folgenden Kriterien erfüllt, wird sie entladen:
- Netzwerknutzung:Für die Anzeige werden mehr als vier Megabyte Netzwerkbandbreite verwendet.
- Maximale CPU-Auslastung:Die Anzeige verwendet den Hauptthread in einem beliebigen 30-Sekunden-Zeitfenster länger als 15 Sekunden.
- Gesamte CPU-Nutzung:Die Anzeige verwendet den Hauptthread für insgesamt mehr als 60 Sekunden. Alle Ressourcen, die von untergeordneten iFrames des Anzeigen-Frames verwendet werden, werden auf die Grenzwerte für die Intervention bei dieser Anzeige angerechnet.
Was sind einige häufige Auslöser für diese Maßnahme?
Bestimmte Arten von Anzeigenverhalten lösen diese Maßnahmen eher aus als andere. Häufige Ursachen:
- Unkomprimierte Medien:Das Laden extrem großer, schlecht komprimierter Bilder.
- Umfangreiches JavaScript:Umfangreiche Vorgänge wie das Decodieren von Videodateien mit JavaScript.
- Aufwendige Berechnungen:Komplexe Berechnungen werden im Hintergrund ausgeführt.
- Videoinhalte ohne Gesten:Große Videodateien werden geladen, bevor ein Nutzer mit einer Anzeige interagiert.
Was passiert, wenn eine Anzeige entfernt wird?
Wenn Chrome erkennt, dass eine Anzeige die Grenzwerte für ressourcenintensive Anzeigen überschritten hat, werden sofort Maßnahmen ergriffen, um die Geräteressourcen des Nutzers zu schützen.
Nutzerfreundlichkeit
Aus Nutzersicht wird die Anzeige sofort entfernt. Stattdessen wird in Chrome ein graues Feld mit der Meldung Anzeige entfernt angezeigt. Wenn der Nutzer im Container auf Details klickt, wird eine spezifische Erklärung angezeigt.
Für Entwickler
Chrome generiert außerdem einen Interventionsbericht mit der Reporting API, damit Sie genau wissen, was passiert ist. Bisher wurden diese Berichte nur an den Anzeigenframe selbst und seine untergeordneten Frames gesendet. Publisher wussten jedoch oft nicht, dass Anzeigen auf ihren eigenen Seiten entfernt wurden. Aus diesem Grund wurde der Meldemechanismus in Chrome erweitert. Interventionsberichte werden jetzt zusätzlich zum Anzeigenframe auch an den Einbettungsframe (den übergeordneten Frame des Stamm-Anzeigenframes) gesendet. Berichte, die an den Einbettungsframe gesendet werden, enthalten die ID des untergeordneten Frames und die URL des Anzeigenframes.
Damit die Seite für HTTP-Berichte konfiguriert wird, muss die Antwort den Header Report-To enthalten:
Reporting-Endpoints: default="https://example.com/reports"
Die ausgelöste POST-Anfrage enthält einen Bericht wie diesen:
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"
}
}]
Der Einbettungsframe erhält einen ähnlichen Bericht, der an die URL des Einbettungsframes adressiert ist. Die Nachricht enthält jedoch zusätzlich die ID und die spezifische URL des untergeordneten Frames:
...
"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)"
...
Die JavaScript API stellt für ReportingObserver eine observe()-Methode bereit, mit der ein bereitgestellter Callback für Interventionen ausgelöst werden kann. Das kann nützlich sein, wenn Sie dem Bericht zusätzliche Informationen zur Fehlerbehebung beifügen möchten.
// 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();
Da durch die Intervention die iFrame-Seite (z. B. eine Anzeige) entladen wird, sollten Sie das pagehide-Ereignis verwenden, damit der Reporting-Callback den Interventionsbericht erfasst, bevor die Seite verschwindet.
window.addEventListener('pagehide', (event) => {
// pull all pending reports from the queue
let reports = observer.takeRecords();
sendReports(reports);
});
Das resultierende JSON aus dem JavaScript ähnelt dem, das bei der POST-Anfrage gesendet wird:
[
{
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 Practices für Entwickler
Beachten Sie die folgenden Best Practices, um zu verhindern, dass Ihre Anzeigen unter das Banner für ressourcenintensive Anzeigen fallen:
- Nutzerinteraktion für umfangreiche Inhalte erforderlich:Die Interventionskriterien gelten für Anzeigen, mit denen der Nutzer nicht interagiert hat. Wenn ein Nutzer auf Ihre Anzeige klickt oder tippt, gelten die Ressourcenlimits nicht mehr. Bei Video- oder Rich-Media-Inhalten sollten Sie mit dem Laden umfangreicher Assets warten, bis der Nutzer eine Geste ausführt, z. B. „Zum Abspielen klicken“.
- Bilder und Videos optimieren:Achten Sie darauf, dass Bilder komprimiert und Videos für das Web optimiert sind. Vermeiden Sie das automatische Laden großer Videodateien. Verwenden Sie stattdessen leichte Platzhalter, bis der Nutzer interagiert.
- CPU-Nutzung prüfen:Komplexe Animationen oder JavaScript-Vorgänge, die kontinuierliches Layout und Rendering auslösen, können die CPU-Nutzung in die Höhe treiben. Verwenden Sie Tools, um Engpässe in Ihrem Code zu identifizieren, die den Hauptthread möglicherweise über einen längeren Zeitraum hinweg beschäftigen.
- Untergeordnete Frames überwachen:Die Anzahl der Ressourcen umfasst alle Elemente im Iframe Ihrer Anzeige. Wenn in Ihrer Anzeige Tracking-Pixel oder untergeordnete Frames von Drittanbietern geladen werden, wird deren Ressourcenverbrauch auf Ihr Limit angerechnet.
- Nicht werbebezogene Inhalte isolieren:Trennen Sie Frames mit nicht werbebezogenen Inhalten in verschiedene Domains oder erkennbare Muster auf, die gemäß der Richtlinie des Anbieters der Filterliste wahrscheinlich nicht als Werbedomains betrachtet werden.
Wie kann ich die Ursache einer Intervention debuggen und diagnostizieren?
Um Probleme mit Interventionen bei ressourcenintensiven Anzeigen effektiv zu beheben, müssen Sie zuerst verstehen, wie die Erkennungslogik von Chrome Inhalte als Anzeigen identifiziert. Anschließend können Sie mit integrierten Entwicklertools die spezifischen Ressourcen-Trigger prüfen, die zur Entfernung geführt haben.
Wie erkennt Chrome das Vorhandensein einer Anzeige?
In Chrome wird Content als Anzeige gekennzeichnet, indem Ressourcenanfragen mit einer Filterliste abgeglichen werden. Die Erkennungslogik gilt für Inhalte in iFrames. Der Hauptseitenframe gilt nie als anzeigenbezogen, auch wenn er Anzeigenskripts enthält. Ein iFrame, der aus einer Ressource geladen wird, die mit der Filterliste übereinstimmt, wird als Anzeige betrachtet, auch wenn in diesem Frame auch andere Inhalte als Anzeigen geladen werden. Ein Beispiel hierfür ist ein Videoplayer, der in einem iFrame geladen wird, das als Anzeige gekennzeichnet ist. In diesem Fall werden möglicherweise auch Inhalte geladen, die keine Anzeigen sind.
Anzeigenerkennung überprüfen
Als Entwickler können Sie mit den Chrome-Entwicklertools visuell überprüfen, ob Chrome Ihre Inhalte erfolgreich als Anzeige erkannt hat.
- Anzeigen-Frames hervorheben:Wählen Sie im Bereich „Rendering“ die Option Anzeigen-Frames hervorheben aus. Erkannte Anzeigen-Frames werden dann auf dem Bildschirm rot dargestellt.
- Elementvermerk:Im Bereich „Elemente“ wird neben dem öffnenden
<iframe>-Tag ein Vermerk für erkannte Anzeigen-iFrames angezeigt. - Netzwerkaktivität:Filtern Sie Anfragen im Bereich „Netzwerk“ anhand eines booleschen
Is ad-related-Werts. - Anzeigenstatus:Im Anwendungsbereich unter dem Abschnitt Frames enthalten mit Anzeigen getaggte Frames das Attribut
Ad Status.
Ursache einer Intervention ermitteln
Chrome bietet Tools zum Prüfen und Verbessern der Qualität und Leistung von Webseiten. Führen Sie Lighthouse in den Chrome-Entwicklertools aus, um Berichte zur Leistung Ihrer Seite zu erhalten. Weitere Informationen zu Web Vitals finden Sie auch in der Sammlung web.dev/fast.
Netzwerknutzung
Rufen Sie in den Chrome-Entwicklertools den Bereich Netzwerk auf, um die gesamte Netzwerkaktivität für die Anzeige zu sehen. Aktivieren Sie die Option Cache deaktivieren, um bei wiederholten Ladevorgängen konsistente Ergebnisse zu erhalten.
Der übertragene Wert unten auf der Seite gibt den für die gesamte Seite übertragenen Betrag an. Wenn Sie die Anfragen auf die Anzeigenanfragen beschränken möchten, verwenden Sie das Eingabefeld Filter oben.
Wenn Sie die ursprüngliche Anfrage für die Anzeige finden, z. B. die Quelle für den iFrame, können Sie auf dem Tab „Initiator“ in der Anfrage alle Anfragen sehen, die dadurch ausgelöst werden.
Wenn Sie die Gesamtliste der Anfragen nach Größe sortieren, können Sie übermäßig große Ressourcen leichter erkennen. Häufige Ursachen sind nicht optimierte Bilder und Videos.
Außerdem können Sie durch Sortieren nach Namen wiederholte Anfragen leichter erkennen. Möglicherweise wird die Intervention nicht durch eine einzelne große Ressource ausgelöst, sondern durch eine große Anzahl wiederholter Anfragen, die das Limit nach und nach überschreiten.
CPU-Nutzung
Mit dem Bereich Leistung in den DevTools können Sie Probleme mit der CPU-Auslastung diagnostizieren. Öffne das Menü Aufnahmeeinstellungen. Verwenden Sie das Drop-down-Menü CPU, um die CPU so weit wie möglich zu verlangsamen. Die Maßnahmen für die CPU werden auf Geräten mit geringerer Leistung viel häufiger ausgelöst als auf High-End-Entwicklermaschinen.
Klicke dann auf die Schaltfläche Aufzeichnen, um mit der Aufzeichnung der Aktivität zu beginnen. Sie sollten experimentieren, wann und wie lange Sie aufzeichnen, da das Laden eines langen Traces eine Weile dauern kann. Sobald die Aufzeichnung geladen ist, können Sie mit der oberen Zeitachse einen Teil der Aufzeichnung auswählen. Konzentrieren Sie sich auf Bereiche im Diagramm in durchgehend Gelb, Lila oder Grün, die für Scripting, Rendering und Painting stehen.
Sehen Sie sich die Tabs Bottom-Up, Call Tree und Event Log unten an. Wenn Sie diese Spalten nach Self Time (Selbstzeit) und Total Time (Gesamtzeit) sortieren, können Sie Engpässe im Code identifizieren.
Die zugehörige Quelldatei ist dort ebenfalls verlinkt. Sie können sie also bis zum Bereich Quellen verfolgen, um die Kosten der einzelnen Zeilen zu prüfen.
Häufige Probleme, nach denen Sie hier suchen sollten, sind schlecht optimierte Animationen, die kontinuierliches Layout und Rendering auslösen, oder kostspielige Vorgänge, die in einer enthaltenen Bibliothek verborgen sind.
Falsche Interventionen melden
Wenn Inhalte, die keine Anzeigen sind, als solche gekennzeichnet wurden, sollten Sie den Code ändern, damit er nicht den Filterregeln entspricht. Alternativ können Sie sich direkt an die Verantwortlichen von EasyList wenden, um die Filterregeln zu ändern. Die Intervention bei Anzeigen mit hohem Ressourcenverbrauch wirkt sich nicht auf Frames mit Nutzergesten aus. Videos können also ausgeschlossen werden, indem vor dem Laden von Inhalten auf eine Wiedergabeschaltfläche geklickt werden muss. Wenn die EasyList nicht mit Ihren Inhalten übereinstimmt und Chrome die Inhalte fälschlicherweise als werbebezogen eingestuft hat, können Sie mit dieser Vorlage ein Problem bei Chrome melden. Wenn Sie ein Problem melden, fügen Sie ein erfasstes Beispiel des Interventionsberichts und eine Beispiel-URL bei, um das Problem zu reproduzieren.