Xuất bản: Ngày 22 tháng 9 năm 2025, Lần cập nhật gần đây nhất: Ngày 7 tháng 1 năm 2026
Đối với người dùng, ít có điều gì gây khó chịu hơn một trang web đột ngột chậm đi, làm hao pin hoặc tiêu tốn hạn mức dữ liệu hằng tháng của họ. Đôi khi, nguyên nhân không phải là nội dung mà họ muốn xem, mà là một quảng cáo chạy ở chế độ nền.
Để bảo vệ trải nghiệm người dùng, Chrome áp dụng các giới hạn đối với tài nguyên mà một quảng cáo có thể sử dụng. Khi một quảng cáo vượt quá các giới hạn này (trở thành quảng cáo nặng), Chrome sẽ huỷ tải quảng cáo đó để giải phóng tài nguyên của thiết bị.
Tài liệu này giải thích cách hoạt động của biện pháp can thiệp này, các ngưỡng cụ thể liên quan và một số phương pháp hay nhất mà bạn có thể sử dụng để đảm bảo quảng cáo hoạt động trơn tru.
Hoạt động can thiệp vào quảng cáo tiêu tốn dung lượng là gì?
Cơ chế can thiệp đối với quảng cáo nặng là một cơ chế trong Chrome giúp theo dõi mức sử dụng tài nguyên của các khung quảng cáo. Nếu một quảng cáo tiêu thụ lượng băng thông hoặc sức mạnh xử lý của CPU không cân xứng, thì Chrome sẽ huỷ tải khung quảng cáo cụ thể đó.
Thay vì quảng cáo, người dùng sẽ thấy một hộp màu xám có thông báo Quảng cáo đã bị xoá, thường kèm theo đường liên kết Chi tiết giải thích rằng quảng cáo đã sử dụng quá nhiều tài nguyên.
Khi nào thì một quảng cáo được coi là nặng?
Chrome xác định một quảng cáo là nặng dựa trên 3 ngưỡng cụ thể. Nếu người dùng không tương tác với quảng cáo và quảng cáo đó đáp ứng bất kỳ tiêu chí nào sau đây, thì quảng cáo đó sẽ được gỡ bỏ:
- Mức sử dụng mạng: Quảng cáo sử dụng hơn 4 MB băng thông mạng.
- Mức sử dụng CPU cao nhất: Quảng cáo sử dụng luồng chính trong hơn 15 giây trong bất kỳ khoảng thời gian 30 giây nào.
- Tổng mức sử dụng CPU: Quảng cáo sử dụng luồng chính trong tổng thời gian hơn 60 giây. Tất cả tài nguyên mà mọi iframe con của khung quảng cáo sử dụng đều được tính vào giới hạn cho biện pháp can thiệp đối với quảng cáo đó.
Một số điều kiện kích hoạt phổ biến cho biện pháp can thiệp này là gì?
Một số loại hành vi liên quan đến quảng cáo có nhiều khả năng kích hoạt các biện pháp can thiệp này hơn những loại khác. Các nguyên nhân phổ biến bao gồm:
- Nội dung nghe nhìn chưa nén: Tải hình ảnh có kích thước cực lớn và được nén kém.
- JavaScript nặng: Thực hiện các thao tác mở rộng, chẳng hạn như giải mã tệp video bằng JavaScript.
- Tính toán nặng: Thực hiện các phép tính phức tạp ở chế độ nền.
- Nội dung video không có cử chỉ: Tải các tệp video lớn trước khi người dùng tương tác với quảng cáo.
Điều gì sẽ xảy ra khi một quảng cáo bị xoá?
Khi phát hiện thấy một quảng cáo đã vượt quá ngưỡng quảng cáo nặng, Chrome sẽ ngay lập tức hành động để bảo vệ tài nguyên trên thiết bị của người dùng.
Trải nghiệm người dùng
Theo quan điểm của người dùng, quảng cáo sẽ được gỡ tải ngay lập tức. Thay vào đó, Chrome sẽ hiển thị một hộp màu xám kèm theo thông báo: Quảng cáo đã bị xoá. Nếu người dùng nhấp vào Chi tiết trong vùng chứa, họ sẽ thấy một lời giải thích cụ thể.
Trải nghiệm của nhà phát triển
Chrome cũng tạo một báo cáo can thiệp bằng Reporting API để cho bạn biết chính xác những gì đã xảy ra. Trước đây, các báo cáo này chỉ được gửi đến chính khung quảng cáo và các khung con của khung quảng cáo đó. Tuy nhiên, nhà xuất bản thường không có cách nào biết được rằng quảng cáo trên trang của họ đang bị xoá. Để giải quyết vấn đề này, Chrome đã mở rộng cơ chế báo cáo. Giờ đây, báo cáo can thiệp được gửi đến khung nhúng (khung chính của khung quảng cáo gốc) ngoài chính khung quảng cáo. Các báo cáo được gửi đến khung nhúng bao gồm mã nhận dạng của khung con và URL của khung quảng cáo.
Để định cấu hình trang cho báo cáo HTTP, phản hồi phải bao gồm tiêu đề Report-To:
Reporting-Endpoints: default="https://example.com/reports"
Yêu cầu đăng được kích hoạt sẽ bao gồm một báo cáo như sau:
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"
}
}]
Khung nhúng sẽ nhận được một báo cáo tương tự, gửi đến URL của khung nhúng, nhưng thông báo sẽ có thêm mã nhận dạng của khung con và URL cụ thể của khung con:
...
"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)"
...
API Javascript cung cấp ReportingObserver với phương thức observe(). Bạn có thể dùng phương thức này để kích hoạt một lệnh gọi lại được cung cấp trên các biện pháp can thiệp. Điều này có thể hữu ích nếu bạn muốn đính kèm thêm thông tin vào báo cáo để hỗ trợ việc gỡ lỗi.
// 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();
Vì biện pháp can thiệp này sẽ huỷ tải trang iframe (ví dụ: một quảng cáo), hãy sử dụng sự kiện pagehide để đảm bảo lệnh gọi lại báo cáo ghi lại báo cáo can thiệp trước khi trang biến mất.
window.addEventListener('pagehide', (event) => {
// pull all pending reports from the queue
let reports = observer.takeRecords();
sendReports(reports);
});
JSON thu được từ JavaScript tương tự như JSON được gửi trong yêu cầu 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',
},
},
];
Các phương pháp hay nhất dành cho nhà phát triển
Để ngăn quảng cáo của bạn xuất hiện trong biểu ngữ quảng cáo nặng, hãy cân nhắc áp dụng các phương pháp hay nhất sau:
- Yêu cầu người dùng tương tác với nội dung có kích thước lớn: Tiêu chí can thiệp áp dụng cho những quảng cáo mà người dùng chưa tương tác. Nếu người dùng nhấp hoặc nhấn vào quảng cáo của bạn, thì các giới hạn về tài nguyên sẽ không còn áp dụng nữa. Đối với trải nghiệm video hoặc nội dung đa phương tiện phong phú, hãy chờ một cử chỉ của người dùng (chẳng hạn như "nhấp để phát") trước khi tải các thành phần có kích thước lớn.
- Tối ưu hoá hình ảnh và video: Đảm bảo hình ảnh được nén và video được tối ưu hoá cho web. Tránh tự động tải các tệp video lớn; thay vào đó, hãy sử dụng các phần giữ chỗ có kích thước nhỏ cho đến khi người dùng tương tác.
- Kiểm tra mức sử dụng CPU: Ảnh động phức tạp hoặc các thao tác Javascript kích hoạt bố cục và vẽ liên tục có thể làm tăng đột biến mức sử dụng CPU. Sử dụng các công cụ để xác định những nút thắt cổ chai trong mã của bạn có thể khiến luồng chính bận trong thời gian dài.
- Theo dõi các khung con: Hãy nhớ rằng số lượng tài nguyên bao gồm mọi thứ bên trong iframe của quảng cáo. Nếu quảng cáo của bạn tải pixel theo dõi hoặc khung phụ của bên thứ ba, thì mức sử dụng tài nguyên của các pixel và khung phụ đó sẽ được tính vào hạn mức của bạn.
- Tách biệt nội dung không phải quảng cáo: Tách các khung nội dung không phải quảng cáo thành các miền riêng biệt hoặc các mẫu dễ nhận biết mà chính sách của nhà cung cấp danh sách bộ lọc khó có thể coi là miền quảng cáo.
Cách gỡ lỗi và chẩn đoán nguyên nhân của một biện pháp can thiệp?
Để khắc phục và giải quyết hiệu quả các biện pháp can thiệp đối với quảng cáo nặng, trước tiên, bạn phải hiểu cách logic phát hiện của Chrome xác định nội dung là quảng cáo, sau đó sử dụng các công cụ dành cho nhà phát triển tích hợp để kiểm tra các trình kích hoạt tài nguyên cụ thể dẫn đến việc xoá
Chrome phát hiện sự xuất hiện của quảng cáo như thế nào?
Chrome gắn thẻ nội dung là quảng cáo bằng cách so khớp các yêu cầu về tài nguyên với danh sách bộ lọc. Logic phát hiện áp dụng cho nội dung trong iframe. Khung trang chính không bao giờ được coi là có liên quan đến quảng cáo, ngay cả khi khung này chứa tập lệnh quảng cáo. Xin lưu ý rằng iframe được tải từ một tài nguyên khớp với danh sách bộ lọc sẽ được coi là quảng cáo, ngay cả khi nội dung khác không phải quảng cáo cũng được tải từ khung đó. Ví dụ: trình phát video được tải trong một iframe được gắn thẻ là quảng cáo cũng có thể tải nội dung không phải quảng cáo.
Cách xác minh tính năng phát hiện quảng cáo
Là nhà phát triển, bạn có thể xác minh bằng hình ảnh xem Chrome có phát hiện thành công nội dung của bạn là quảng cáo hay không bằng cách sử dụng Công cụ cho nhà phát triển Chrome.
- Làm nổi bật khung quảng cáo: Trong bảng điều khiển Kết xuất, hãy chọn Làm nổi bật khung quảng cáo. Thao tác này sẽ mã hoá màu các khung quảng cáo được phát hiện thành màu đỏ trên màn hình.
- Chú thích phần tử: Trong bảng điều khiển Elements (Phần tử), các iframe quảng cáo được phát hiện sẽ hiển thị chú thích quảng cáo bên cạnh thẻ
<iframe>mở. - Hoạt động mạng: Trong bảng điều khiển Mạng, hãy lọc các yêu cầu dựa trên một boolean
Is ad-related. - Trạng thái quảng cáo: Trong bảng điều khiển ứng dụng ở mục Khung hình, những khung hình được gắn thẻ quảng cáo sẽ có thuộc tính
Ad Status.
Làm cách nào để chẩn đoán nguyên nhân của một yếu tố can thiệp?
Chrome cung cấp các công cụ để kiểm tra và cải thiện chất lượng cũng như hiệu suất của các trang web. Chạy Lighthouse trong Công cụ cho nhà phát triển của Chrome để nhận báo cáo về hiệu suất của trang. Bạn cũng có thể tham khảo bộ sưu tập web.dev/fast và khám phá thêm thông tin về Chỉ số quan trọng của trang web.
Sử dụng mạng
Mở bảng điều khiển Mạng trong Công cụ dành cho nhà phát triển của Chrome để xem hoạt động mạng tổng thể của quảng cáo. Đánh dấu vào lựa chọn Tắt bộ nhớ đệm để nhận được kết quả nhất quán khi tải lại nhiều lần.
Giá trị được chuyển ở cuối trang sẽ cho bạn biết số tiền được chuyển cho toàn bộ trang. Để hạn chế các yêu cầu chỉ liên quan đến quảng cáo, hãy sử dụng đầu vào Bộ lọc ở trên cùng.
Nếu bạn tìm thấy yêu cầu ban đầu cho quảng cáo (ví dụ: nguồn cho iframe), hãy sử dụng thẻ Trình khởi tạo trong yêu cầu để xem tất cả các yêu cầu mà yêu cầu đó kích hoạt.
Sắp xếp danh sách yêu cầu tổng thể theo kích thước là một cách hay để phát hiện các tài nguyên có kích thước quá lớn. Nguyên nhân thường gặp là do hình ảnh và video chưa được tối ưu hoá.
Ngoài ra, việc sắp xếp theo tên có thể là một cách hay để phát hiện các yêu cầu trùng lặp. Có thể không phải là một tài nguyên lớn duy nhất kích hoạt biện pháp can thiệp, mà là một số lượng lớn các yêu cầu lặp lại tăng dần vượt quá giới hạn.
Mức sử dụng CPU
Bảng điều khiển Hiệu suất trong Công cụ cho nhà phát triển sẽ giúp chẩn đoán các vấn đề về mức sử dụng CPU. Mở trình đơn Cài đặt chế độ chụp. Sử dụng trình đơn thả xuống CPU để giảm tốc độ CPU nhiều nhất có thể. Các biện pháp can thiệp đối với CPU có nhiều khả năng kích hoạt trên các thiết bị có công suất thấp hơn so với các máy phát triển cao cấp.
Tiếp theo, hãy nhấp vào nút Ghi để bắt đầu ghi lại hoạt động. Bạn có thể thử nghiệm thời điểm và thời gian ghi, vì một dấu vết dài có thể mất khá nhiều thời gian để tải. Sau khi bản ghi được tải, bạn có thể dùng dòng thời gian ở trên cùng để chọn một phần của bản ghi. Tập trung vào các vùng trên biểu đồ có màu vàng, tím hoặc xanh lục liền nét, thể hiện việc tạo tập lệnh, kết xuất và vẽ.
Khám phá các thẻ Bottom-Up (Từ dưới lên), Call Tree (Cây lệnh gọi) và Event Log (Nhật ký sự kiện) ở dưới cùng. Việc sắp xếp các cột đó theo Thời gian tự thực hiện và Tổng thời gian có thể giúp xác định các nút thắt cổ chai trong mã.
Tệp nguồn liên kết cũng được liên kết ở đó, vì vậy, bạn có thể theo dõi tệp đó thông qua bảng điều khiển Nguồn để kiểm tra chi phí của từng dòng.
Các vấn đề thường gặp cần tìm ở đây là ảnh động được tối ưu hoá kém đang kích hoạt bố cục và vẽ liên tục hoặc các thao tác tốn kém bị ẩn trong một thư viện đi kèm.
Làm cách nào để báo cáo thông tin can thiệp không chính xác?
Nếu nội dung không phải quảng cáo đã được gắn thẻ là nội dung không phải quảng cáo, hãy cân nhắc việc thay đổi mã để tránh trùng khớp với các quy tắc lọc hoặc tương tác trực tiếp với người duy trì EasyList để thay đổi các quy tắc lọc. Xin lưu ý rằng biện pháp can thiệp đối với quảng cáo có kích thước lớn không ảnh hưởng đến các khung hình có cử chỉ của người dùng, vì vậy, bạn có thể loại trừ video bằng cách yêu cầu người dùng nhấp vào nút phát trước khi tải nội dung. Nếu EasyList không khớp với nội dung của bạn và Chrome đã phân loại nhầm nội dung đó là nội dung liên quan đến quảng cáo, thì bạn có thể báo cáo vấn đề cho Chrome bằng mẫu này. Khi báo cáo vấn đề, hãy cung cấp một ví dụ chụp ảnh báo cáo can thiệp và một URL mẫu để tái hiện vấn đề.