पब्लिश होने की तारीख: 22 सितंबर, 2025, पिछले अपडेट की तारीख: 7 जनवरी, 2026
उपयोगकर्ताओं के लिए, कुछ चीज़ें बहुत परेशान करने वाली होती हैं. जैसे, अचानक से वेब पेज का धीमा हो जाना, बैटरी खत्म हो जाना या महीने के डेटा का खत्म हो जाना. कभी-कभी, समस्या उस कॉन्टेंट की वजह से नहीं होती जिसे देखने के लिए दर्शक आए हैं. इसके बजाय, समस्या बैकग्राउंड में चल रहे विज्ञापन की वजह से होती है.
उपयोगकर्ता अनुभव को सुरक्षित रखने के लिए, Chrome यह तय करता है कि कोई विज्ञापन कितने संसाधनों का इस्तेमाल कर सकता है. जब कोई विज्ञापन इन सीमाओं से ज़्यादा संसाधन इस्तेमाल करता है, तो उसे ज़्यादा संसाधन इस्तेमाल करने वाला विज्ञापन कहा जाता है. ऐसे में, Chrome उसे अनलोड कर देता है, ताकि डिवाइस के संसाधन खाली हो जाएं.
इस दस्तावेज़ में बताया गया है कि यह इंटरवेंशन कैसे काम करता है, इसमें शामिल थ्रेशोल्ड क्या हैं, और विज्ञापनों की परफ़ॉर्मेंस को बेहतर बनाने के लिए, कुछ सबसे सही तरीके कौनसे हैं.
विज्ञापनों की बहुत ज़्यादा अनुमतियां क्या होती हैं?
बड़े साइज़ के विज्ञापन को बंद करने की सुविधा, Chrome में मौजूद एक ऐसा सिस्टम है जो विज्ञापन फ़्रेम के लिए इस्तेमाल किए जा रहे संसाधनों पर नज़र रखता है. अगर कोई विज्ञापन, बैंडविथ या सीपीयू प्रोसेसिंग पावर का ज़रूरत से ज़्यादा इस्तेमाल करता है, तो Chrome उस विज्ञापन फ़्रेम को अनलोड कर देगा.
विज्ञापन के बजाय, उपयोगकर्ता को एक ग्रे बॉक्स दिखेगा. इसमें यह मैसेज होगा कि विज्ञापन हटा दिया गया है. आम तौर पर, इसके साथ जानकारी लिंक भी होता है. इसमें बताया जाता है कि विज्ञापन में बहुत ज़्यादा संसाधनों का इस्तेमाल किया गया है.
किसी विज्ञापन को हैवी कब माना जाता है?
Chrome, तीन थ्रेशोल्ड के आधार पर यह तय करता है कि कोई विज्ञापन ज़्यादा डेटा इस्तेमाल करता है. अगर उपयोगकर्ता ने किसी विज्ञापन के साथ इंटरैक्ट नहीं किया है और वह इनमें से किसी भी शर्त को पूरा करता है, तो उसे अनलोड कर दिया जाएगा:
- नेटवर्क का इस्तेमाल: विज्ञापन, चार मेगाबाइट से ज़्यादा नेटवर्क बैंडविड्थ का इस्तेमाल करता है.
- सीपीयू का ज़्यादा इस्तेमाल: विज्ञापन, 30 सेकंड की किसी भी विंडो में 15 सेकंड से ज़्यादा समय तक मुख्य थ्रेड का इस्तेमाल करता है.
- सीपीयू का कुल इस्तेमाल: विज्ञापन, मुख्य थ्रेड का इस्तेमाल कुल 60 सेकंड से ज़्यादा समय तक करता है. विज्ञापन फ़्रेम के किसी भी डिसेंडेंट iframe के इस्तेमाल किए गए सभी संसाधन, उस विज्ञापन पर किए गए इंटरवेंशन की सीमाओं के हिसाब से गिने जाते हैं.
इस तरह की कार्रवाई के लिए, आम तौर पर कौनसी स्थितियां ट्रिगर होती हैं?
कुछ खास तरह के विज्ञापन व्यवहारों की वजह से, अन्य विज्ञापन व्यवहारों की तुलना में इन कार्रवाइयों के ट्रिगर होने की संभावना ज़्यादा होती है. आम तौर पर, इन वजहों से ऐसा होता है:
- बिना कंप्रेस किया गया मीडिया: बहुत बड़ी और खराब तरीके से कंप्रेस की गई इमेज लोड करना.
- ज़्यादा JavaScript: JavaScript का इस्तेमाल करके, वीडियो फ़ाइलों को डिकोड करने जैसी कई कार्रवाइयां करना.
- ज़्यादा कैलकुलेशन: बैकग्राउंड में जटिल कैलकुलेशन करना.
- बिना जेस्चर वाला वीडियो कॉन्टेंट: उपयोगकर्ता के विज्ञापन से इंटरैक्ट करने से पहले, बड़ी वीडियो फ़ाइलें लोड करना.
किसी विज्ञापन को हटाने पर क्या होता है?
जब Chrome को पता चलता है कि किसी विज्ञापन ने हैवी विज्ञापन के थ्रेशोल्ड को पार कर लिया है, तो वह उपयोगकर्ता के डिवाइस के संसाधनों की सुरक्षा के लिए तुरंत कार्रवाई करता है.
उपयोगकर्ता अनुभव
उपयोगकर्ता के नज़रिए से, विज्ञापन तुरंत अनलोड हो जाता है. इसकी जगह, Chrome एक धूसर बॉक्स दिखाता है. इसमें यह मैसेज होता है: विज्ञापन हटा दिया गया है. अगर उपयोगकर्ता कंटेनर में मौजूद जानकारी पर क्लिक करता है, तो उसे खास जानकारी दिखेगी.
डेवलपर को मिलने वाला अनुभव
Chrome, Reporting API की मदद से, एक इंटरवेंशन रिपोर्ट भी जनरेट करता है. इससे आपको यह पता चलता है कि असल में क्या हुआ था. पहले, ये रिपोर्ट सिर्फ़ विज्ञापन फ़्रेम और उसके डिसेंडेंट फ़्रेम को भेजी जाती थीं. हालांकि, पब्लिशर को अक्सर यह पता नहीं चलता था कि उनके पेजों से विज्ञापन हटाए जा रहे हैं. इस समस्या को हल करने के लिए, Chrome ने शिकायत करने की सुविधा को बेहतर बनाया है. अब विज्ञापन फ़्रेम के साथ-साथ, एम्बेड किए गए फ़्रेम (रूट विज्ञापन फ़्रेम का पैरंट) को भी इंटरवेंशन रिपोर्ट भेजी जाती हैं. एम्बेड किए गए फ़्रेम को भेजी गई रिपोर्ट में, चाइल्ड फ़्रेम का आईडी और विज्ञापन फ़्रेम का यूआरएल शामिल होता है.
एचटीटीपी रिपोर्ट के लिए पेज को कॉन्फ़िगर करने के लिए, रिस्पॉन्स में Report-To हेडर शामिल होना चाहिए:
Reporting-Endpoints: default="https://example.com/reports"
पोस्ट करने के अनुरोध में, इस तरह की रिपोर्ट शामिल होगी:
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"
}
}]
एम्बेड किए गए फ़्रेम को भी इसी तरह की रिपोर्ट मिलेगी. यह रिपोर्ट, एम्बेड किए गए फ़्रेम के यूआरएल को भेजी जाएगी. हालांकि, इस मैसेज में चाइल्ड फ़्रेम का आईडी और चाइल्ड फ़्रेम का यूआरएल भी शामिल होगा:
...
"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)"
...
JavaScript API, ReportingObserver को observe() तरीका उपलब्ध कराता है. इसका इस्तेमाल, इंटरवेंशन पर दिए गए कॉलबैक को ट्रिगर करने के लिए किया जा सकता है. अगर आपको डीबग करने में मदद पाने के लिए, रिपोर्ट में ज़्यादा जानकारी अटैच करनी है, तो यह विकल्प आपके काम आ सकता है.
// 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();
इस इंटरवेंशन से iframe पेज (उदाहरण के लिए, कोई विज्ञापन) अनलोड हो जाता है. इसलिए, pagehide इवेंट का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि पेज गायब होने से पहले, रिपोर्टिंग कॉलबैक इंटरवेंशन रिपोर्ट को कैप्चर कर ले.
window.addEventListener('pagehide', (event) => {
// pull all pending reports from the queue
let reports = observer.takeRecords();
sendReports(reports);
});
JavaScript से मिलने वाला JSON, POST अनुरोध पर भेजे गए JSON जैसा होता है:
[
{
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',
},
},
];
डेवलपर के लिए सबसे सही तरीके
अपने विज्ञापनों को हैवी विज्ञापन बैनर की कैटगरी में आने से रोकने के लिए, यहां दिए गए सबसे सही तरीके अपनाएं:
- ज़्यादा डेटा इस्तेमाल करने वाले कॉन्टेंट के लिए, उपयोगकर्ता के इंटरैक्शन की ज़रूरत होती है: यह मानदंड उन विज्ञापनों पर लागू होता है जिनके साथ उपयोगकर्ता ने इंटरैक्ट नहीं किया है. अगर कोई उपयोगकर्ता आपके विज्ञापन पर क्लिक या टैप करता है, तो संसाधन की सीमाएं लागू नहीं होती हैं. वीडियो या रिच मीडिया के अनुभव के लिए, ज़्यादा डेटा इस्तेमाल करने वाली ऐसेट लोड करने से पहले, उपयोगकर्ता के जेस्चर (जैसे, "चलाने के लिए क्लिक करें") का इंतज़ार करें.
- इमेज और वीडियो को ऑप्टिमाइज़ करें: पक्का करें कि इमेज कंप्रेस की गई हों और वीडियो को वेब के लिए ऑप्टिमाइज़ किया गया हो. बड़ी वीडियो फ़ाइलों को अपने-आप लोड होने से रोकें. इसके बजाय, जब तक उपयोगकर्ता इंटरैक्ट न करे, तब तक हल्के-फुल्के प्लेसहोल्डर का इस्तेमाल करें.
- सीपीयू के इस्तेमाल की जांच करें: जटिल ऐनिमेशन या JavaScript ऑपरेशन्स की वजह से, लेआउट और पेंट लगातार ट्रिगर हो सकते हैं. इससे सीपीयू का इस्तेमाल बढ़ सकता है. अपने कोड में ऐसी रुकावटों की पहचान करने के लिए टूल का इस्तेमाल करें जिनकी वजह से मुख्य थ्रेड लंबे समय तक व्यस्त रहती है.
- डिसेंडेंट फ़्रेम की निगरानी करना: ध्यान रखें कि संसाधन की गिनती में, आपके विज्ञापन के iframe में मौजूद हर चीज़ शामिल होती है. अगर आपका विज्ञापन, तीसरे पक्ष के ट्रैकिंग पिक्सल या सब-फ़्रेम लोड करता है, तो उनके संसाधन के इस्तेमाल को आपकी सीमा में गिना जाता है.
- विज्ञापन के अलावा अन्य कॉन्टेंट को अलग करें: विज्ञापन के अलावा अन्य कॉन्टेंट वाले फ़्रेम को अलग-अलग डोमेन या ऐसे पैटर्न में अलग करें जिन्हें फ़िल्टर लिस्ट उपलब्ध कराने वाली कंपनी की नीति के तहत, विज्ञापन वाले डोमेन के तौर पर नहीं माना जाता.
किसी समस्या को डीबग करने और उसके बारे में पता लगाने का तरीका क्या है?
विज्ञापन दिखाने में ज़्यादा रुकावट डालने वाली समस्याओं को असरदार तरीके से हल करने के लिए, आपको सबसे पहले यह समझना होगा कि Chrome का पहचान करने वाला लॉजिक, कॉन्टेंट को विज्ञापन के तौर पर कैसे पहचानता है. इसके बाद, डेवलपर टूल का इस्तेमाल करके, उन खास संसाधनों की जांच करें जिनकी वजह से विज्ञापन को हटाया गया था
Chrome, विज्ञापन की मौजूदगी का पता कैसे लगाता है?
Chrome, फ़िल्टर की गई सूची में मौजूद संसाधन के अनुरोधों से मिलान करके, कॉन्टेंट को विज्ञापन के तौर पर टैग करता है. पहचान करने का लॉजिक, iframe में मौजूद कॉन्टेंट पर लागू होता है. मुख्य पेज फ़्रेम को कभी भी विज्ञापन से जुड़ा नहीं माना जाता, भले ही उसमें विज्ञापन स्क्रिप्ट शामिल हों. ध्यान दें कि फ़िल्टर की गई सूची से मैच करने वाले किसी संसाधन से लोड किए गए iframe को विज्ञापन माना जाएगा. भले ही, उस फ़्रेम से विज्ञापन के अलावा अन्य कॉन्टेंट भी लोड किया गया हो. इसका एक उदाहरण यह है कि विज्ञापन के तौर पर टैग किए गए iframe में लोड किया गया वीडियो प्लेयर, विज्ञापन के अलावा अन्य कॉन्टेंट भी लोड कर सकता है.
विज्ञापन का पता लगाने की सुविधा की पुष्टि कैसे करें?
डेवलपर के तौर पर, Chrome DevTools का इस्तेमाल करके यह देखा जा सकता है कि Chrome ने आपके कॉन्टेंट को विज्ञापन के तौर पर सही तरीके से पहचाना है या नहीं.
- विज्ञापन फ़्रेम हाइलाइट करना: रेंडरिंग पैनल में, विज्ञापन फ़्रेम हाइलाइट करें को चुनें. इससे स्क्रीन पर विज्ञापन के तौर पर दिखने वाले फ़्रेम, लाल रंग में दिखते हैं.
- एलिमेंट एनोटेशन: एलिमेंट पैनल में, विज्ञापन वाले iframe के बगल में विज्ञापन एनोटेशन दिखेगा. यह एनोटेशन, ओपनिंग
<iframe>टैग के बगल में दिखेगा. - नेटवर्क गतिविधि: नेटवर्क पैनल में,
Is ad-relatedबूलियन के आधार पर अनुरोधों को फ़िल्टर करें. - विज्ञापन की स्थिति: फ़्रेम सेक्शन में मौजूद ऐप्लिकेशन पैनल में, विज्ञापन के लिए टैग किए गए फ़्रेम में
Ad Statusएट्रिब्यूट शामिल होगा.
किसी समस्या को ठीक करने के लिए किए गए बदलाव की वजह का पता कैसे लगाया जाता है?
Chrome, वेब पेजों की क्वालिटी और परफ़ॉर्मेंस की जांच करने और उन्हें बेहतर बनाने के लिए टूल उपलब्ध कराता है. Chrome DevTools में Lighthouse चलाएं, ताकि आपको यह पता चल सके कि आपका पेज कैसा परफ़ॉर्म कर रहा है. web.dev/fast कलेक्शन भी देखा जा सकता है. साथ ही, वेबसाइट की परफ़ॉर्मेंस की जानकारी के बारे में ज़्यादा जानकारी पाई जा सकती है.
नेटवर्क का इस्तेमाल
विज्ञापन के लिए नेटवर्क पर की गई पूरी गतिविधि देखने के लिए, Chrome DevTools में नेटवर्क पैनल खोलें. बार-बार लोड करने पर एक जैसे नतीजे पाने के लिए, कैश मेमोरी की सुविधा बंद करें विकल्प को चुनें.
पेज के सबसे नीचे मौजूद ट्रांसफ़र की गई वैल्यू से, आपको पूरे पेज के लिए ट्रांसफ़र की गई रकम दिखेगी. सिर्फ़ विज्ञापन से जुड़े अनुरोधों को सीमित करने के लिए, सबसे ऊपर मौजूद फ़िल्टर इनपुट का इस्तेमाल करें.
अगर आपको विज्ञापन का शुरुआती अनुरोध मिलता है, जैसे कि iframe का सोर्स, तो अनुरोध में मौजूद 'शुरुआत करने वाला' टैब का इस्तेमाल करके, ट्रिगर किए गए सभी अनुरोध देखें.
अनुरोधों की पूरी सूची को साइज़ के हिसाब से क्रम में लगाने पर, बहुत बड़े संसाधनों का पता लगाया जा सकता है. आम तौर पर, ऑप्टिमाइज़ न की गई इमेज और वीडियो की वजह से ऐसा होता है.
इसके अलावा, नाम के हिसाब से क्रम में लगाने पर, एक जैसी कई बार की गई अनुरोधों का पता आसानी से लगाया जा सकता है. ऐसा हो सकता है कि किसी एक बड़े संसाधन की वजह से नहीं, बल्कि बार-बार किए गए कई अनुरोधों की वजह से ऐसा हुआ हो.
CPU उपयोग
DevTools में मौजूद परफ़ॉर्मेंस पैनल की मदद से, सीपीयू के इस्तेमाल से जुड़ी समस्याओं का पता लगाया जा सकता है. कैप्चर सेटिंग मेन्यू खोलें. सीपीयू की स्पीड को जितना हो सके उतना कम करने के लिए, सीपीयू ड्रॉप-डाउन का इस्तेमाल करें. सीपीयू के लिए किए गए बदलाव, हाई-एंड डेवलपमेंट मशीन की तुलना में कम पावर वाले डिवाइसों पर ज़्यादा ट्रिगर होते हैं.
इसके बाद, गतिविधि रिकॉर्ड करना शुरू करने के लिए, रिकॉर्ड करें बटन पर क्लिक करें. आपको यह एक्सपेरिमेंट करना चाहिए कि रिकॉर्डिंग कब और कितनी देर के लिए की जाए, क्योंकि लंबे ट्रेस को लोड होने में काफ़ी समय लग सकता है. रिकॉर्डिंग लोड हो जाने के बाद, सबसे ऊपर मौजूद टाइमलाइन का इस्तेमाल करके, रिकॉर्डिंग का कोई हिस्सा चुना जा सकता है. ग्राफ़ में, गहरे पीले, बैंगनी या हरे रंग वाले हिस्सों पर फ़ोकस करें. ये हिस्से स्क्रिप्टिंग, रेंडरिंग, और पेंटिंग को दिखाते हैं.
सबसे नीचे मौजूद बॉटम-अप, कॉल ट्री, और इवेंट लॉग टैब एक्सप्लोर करें. इन कॉलम को सेल्फ़ टाइम और कुल समय के हिसाब से क्रम से लगाने पर, कोड में मौजूद रुकावटों का पता लगाया जा सकता है.
उससे जुड़ी सोर्स फ़ाइल भी वहां लिंक की गई है, ताकि आप सोर्स पैनल में जाकर, हर लाइन की लागत की जांच कर सकें.
यहां इन सामान्य समस्याओं को देखा जा सकता है: खराब तरीके से ऑप्टिमाइज़ किए गए ऐनिमेशन, जो लेआउट और पेंट को लगातार ट्रिगर कर रहे हैं या शामिल की गई लाइब्रेरी में छिपी हुई महंगी कार्रवाइयां कर रहे हैं.
गलत इंटरवेंशन की शिकायत कैसे करें?
अगर विज्ञापन के अलावा किसी अन्य कॉन्टेंट को इस तरह से टैग किया गया है, तो फ़िल्टर करने के नियमों से मेल खाने से बचने के लिए, कोड में बदलाव करें. इसके अलावा, फ़िल्टर करने के नियमों में बदलाव करने के लिए, EasyList को मैनेज करने वालों से सीधे संपर्क करें. ध्यान रखें कि हैवी विज्ञापन से जुड़े फ़्रेम पर, उपयोगकर्ता के जेस्चर का कोई असर नहीं पड़ता. इसलिए, कॉन्टेंट लोड करने से पहले 'चलाएं' बटन पर क्लिक करने की ज़रूरत होती है. इससे वीडियो को बाहर रखा जा सकता है. अगर EasyList आपके कॉन्टेंट से मेल नहीं खाती है और Chrome ने किसी तरह कॉन्टेंट को विज्ञापन से जुड़ा कॉन्टेंट के तौर पर गलत तरीके से कैटगरी में रखा है, तो इस टेंप्लेट का इस्तेमाल करके, Chrome से समस्या की शिकायत करें. समस्या की शिकायत करते समय, इंटरवेंशन रिपोर्ट का कैप्चर किया गया उदाहरण और समस्या को फिर से दिखाने के लिए एक सैंपल यूआरएल शामिल करें.