تاريخ النشر: 22 سبتمبر 2025، تاريخ آخر تعديل: 7 يناير 2026
بالنسبة إلى المستخدمين، لا شيء أكثر إحباطًا من صفحة ويب تبطئ فجأة أو تستنزف البطارية أو تستهلك مقدارًا كبيرًا من بياناتهم الشهرية. في بعض الأحيان، لا يكون السبب هو المحتوى الذي يريدون مشاهدته، بل إعلان يتم عرضه في الخلفية.
لحماية تجربة المستخدم، يفرض Chrome حدودًا على الموارد التي يمكن أن يستخدمها الإعلان. عندما يتجاوز الإعلان هذه الحدود ويصبح إعلانًا ثقيلاً، يزيله Chrome لتحرير موارد الجهاز.
توضّح هذه المستندات طريقة عمل هذا الإجراء والحدود المحدّدة المعنيّة وبعض أفضل الممارسات التي يمكنك استخدامها لضمان عرض الإعلانات بسلاسة.
ما هي ميزة "التدخّل في الإعلانات الثقيلة"؟
تُعدّ ميزة "التدخّل في الإعلانات الثقيلة" آلية في Chrome تراقب استخدام موارد إطارات الإعلانات. إذا كان الإعلان يستهلك قدرًا غير متناسب من النطاق الترددي أو طاقة معالجة وحدة المعالجة المركزية، سيزيل Chrome إطار الإعلان المحدّد هذا.
بدلاً من الإعلان، سيظهر للمستخدم مربّع رمادي اللون يتضمّن الرسالة تمت إزالة الإعلان مصحوبة عادةً برابط التفاصيل الذي يوضّح أنّ الإعلان استخدم الكثير من الموارد.
متى يُعتبر الإعلان ثقيلاً؟
يحدّد Chrome ما إذا كان الإعلان ثقيلاً استنادًا إلى ثلاثة حدود معيّنة. سيتم إيقاف تحميل الإعلان إذا لم يتفاعل معه المستخدم واستوفى أيًا من المعايير التالية:
- استخدام الشبكة: يستخدم الإعلان أكثر من أربعة ميغابايت من معدل نقل بيانات الشبكة.
- الحد الأقصى لاستخدام وحدة المعالجة المركزية: يستخدم الإعلان سلسلة التعليمات الرئيسية لأكثر من 15 ثانية في أي فترة زمنية مدتها 30 ثانية.
- الاستخدام الإجمالي لوحدة المعالجة المركزية: يستخدم الإعلان سلسلة التعليمات الرئيسية لمدة تزيد عن 60 ثانية إجمالاً. يتم احتساب جميع الموارد المستخدَمة من قِبل أي إطارات iframe فرعية من إطار الإعلان ضمن حدود التدخّل في هذا الإعلان.
ما هي بعض الأسباب الشائعة التي تؤدي إلى ظهور هذه الرسالة؟
من المرجّح أن تؤدي أنواع معيّنة من سلوكيات الإعلانات إلى تفعيل هذه الإجراءات أكثر من غيرها. تشمل الأسباب الشائعة ما يلي:
- الوسائط غير المضغوطة: تحميل صور كبيرة جدًا ومضغوطة بشكل سيئ
- JavaScript الثقيل: تنفيذ عمليات مكثّفة، مثل فك ترميز ملفات الفيديو باستخدام JavaScript
- العمليات الحسابية المعقّدة: إجراء عمليات حسابية معقّدة في الخلفية
- محتوى الفيديو بدون إيماءات: تحميل ملفات فيديو كبيرة قبل أن يتفاعل المستخدم مع الإعلان
ماذا يحدث عند إزالة إعلان؟
عندما يرصد Chrome أنّ أحد الإعلانات قد تجاوز حدود الإعلانات الثقيلة، يتّخذ إجراءً فوريًا لحماية موارد جهاز المستخدم.
تجربة المستخدم
من منظور المستخدم، يتم إلغاء تحميل الإعلان على الفور. بدلاً من ذلك، يعرض Chrome مربّعًا رماديًا يتضمّن الرسالة: تمت إزالة الإعلان. إذا نقر المستخدم على التفاصيل داخل الحاوية، سيظهر له شرح محدّد.
تجربة المطوّر
يُنشئ Chrome أيضًا تقريرًا عن التدخّل باستخدام Reporting API لإعلامك بما حدث بالضبط. في السابق، كانت هذه التقارير تُرسَل فقط إلى إطار الإعلان نفسه وإطاراته الفرعية. ومع ذلك، لم يكن لدى الناشرين غالبًا أي طريقة لمعرفة أنّه يتم إزالة الإعلانات من صفحاتهم. لمعالجة هذه المشكلة، وسّع Chrome آلية الإبلاغ. يتم الآن إرسال تقارير التدخّل إلى الإطار المضمّن (الإطار الرئيسي لإطار الإعلان الأساسي) بالإضافة إلى إطار الإعلان نفسه. تتضمّن التقارير المُرسَلة إلى الإطار المضمّن رقم تعريف الإطار الثانوي وعنوان URL لإطار الإعلان.
لإعداد الصفحة لتقارير HTTP، يجب أن تتضمّن الاستجابة العنوان Report-To:
Reporting-Endpoints: default="https://example.com/reports"
سيتضمّن طلب POST الذي تم تنشيطه تقريرًا على النحو التالي:
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"
}
}]
سيتلقّى إطار التضمين تقريرًا مشابهًا موجّهًا إلى عنوان URL الخاص بإطار التضمين، ولكن ستتضمّن الرسالة أيضًا معرّف الإطار الثانوي وعنوان URL المحدّد للإطار الثانوي:
...
"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 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);
});
يكون ملف JSON الناتج من JavaScript مشابهًا للملف الذي تم إرساله في طلب 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',
},
},
];
أفضل الممارسات للمطوّرين
لمنع ظهور إعلاناتك ضمن بانر الإعلانات الثقيلة، ننصحك باتّباع أفضل الممارسات التالية:
- اشتراط تفاعل المستخدم مع المحتوى الثقيل: تنطبق معايير التدخّل على الإعلانات التي لم يتفاعل معها المستخدم. إذا نقر المستخدم على إعلانك، لن تنطبق حدود الموارد بعد ذلك. بالنسبة إلى تجارب الفيديو أو الوسائط التفاعلية، انتظِر إلى أن يتّخذ المستخدم إجراءً (مثل "النقر للتشغيل") قبل تحميل مواد العرض الكبيرة.
- تحسين الصور والفيديوهات: تأكَّد من ضغط الصور وتحسين الفيديوهات لتناسب الويب. تجنَّب تحميل ملفات الفيديو الكبيرة تلقائيًا، واستخدِم بدلاً من ذلك عناصر نائبة خفيفة الوزن إلى أن يتفاعل المستخدم.
- تدقيق استخدام وحدة المعالجة المركزية: يمكن أن تؤدي الرسوم المتحركة المعقّدة أو عمليات JavaScript التي تؤدي إلى التخطيط والرسم المستمرَّين إلى ارتفاع استخدام وحدة المعالجة المركزية. استخدِم أدوات لتحديد المؤثِّرات السلبية في الرمز البرمجي التي قد تُبقي سلسلة التعليمات الرئيسية مشغولة لفترات طويلة.
- مراقبة الإطارات الفرعية: تذكَّر أنّ عدد العناصر يتضمّن كل ما هو داخل إطار iframe الخاص بإعلانك. إذا كانت إعلاناتك تحمّل وحدات بكسل أو إطارات فرعية للتتبّع تابعة لجهات خارجية، سيتم احتساب استخدام مواردها ضمن الحدّ الأقصى المسموح به.
- عزل المحتوى غير الإعلاني: افصل إطارات المحتوى غير الإعلاني إلى نطاقات مختلفة أو أنماط يمكن التعرّف عليها ومن غير المرجّح أن تعتبرها سياسة مقدّم قائمة الفلاتر نطاقات إعلانية.
كيف يمكن تصحيح الأخطاء وتحديد سبب التدخّل؟
لتحديد المشاكل وحلّها بفعالية في ما يتعلّق بإجراءات التدخّل في الإعلانات الثقيلة، عليك أولاً فهم طريقة تحديد المحتوى كإعلان في منطق رصد Chrome، ثم استخدام أدوات المطوّرين المضمّنة لتدقيق مشغّلات الموارد المحدّدة التي أدّت إلى الإزالة.
كيف يرصد Chrome ظهور إعلان؟
يضع Chrome علامة على المحتوى باعتباره إعلانًا من خلال مطابقة طلبات الموارد مع قائمة الفلترة. ينطبق منطق الرصد على المحتوى داخل إطارات iframe. لا يتم أبدًا اعتبار إطار الصفحة الرئيسي مرتبطًا بالإعلان، حتى إذا كان يحتوي على نصوص إعلانية برمجية. يُرجى العِلم أنّ إطار iframe الذي يتم تحميله من مصدر مطابق لقائمة الفلاتر سيُعدّ إعلانًا حتى إذا تم تحميل محتوى آخر غير إعلاني من هذا الإطار أيضًا. ومن الأمثلة على ذلك مشغّل فيديو يتم تحميله في إطار iframe تم وضع علامة عليه كإعلان، وقد يتم أيضًا تحميل محتوى غير إعلاني فيه.
كيف يمكن التحقّق من رصد الإعلانات؟
بصفتك مطوّرًا، يمكنك التحقّق بصريًا مما إذا كان Chrome قد رصد المحتوى الخاص بك بنجاح كإعلان باستخدام "أدوات مطوّري البرامج في Chrome".
- تمييز إطارات الإعلانات: في لوحة "العرض"، انقر على تمييز إطارات الإعلانات، ما يؤدي إلى ترميز إطارات الإعلانات التي تم رصدها باللون الأحمر على الشاشة.
- التعليق التوضيحي للعنصر: في لوحة "العناصر"، ستعرض إطارات iframe التي تم رصدها كإعلانات تعليقًا توضيحيًا للإعلان بجانب علامة
<iframe>الافتتاحية. - نشاط الشبكة: في لوحة "الشبكة"، يمكنك فلترة الطلبات استنادًا إلى قيمة منطقية
Is ad-related. - حالة الإعلان: في لوحة التطبيق ضمن قسم اللقطات، ستتضمّن اللقطات التي تمّت الإشارة إليها على أنّها إعلانات السمة
Ad Status.
كيف يمكن تحديد سبب التدخّل؟
يوفّر Chrome أدوات لتدقيق جودة صفحات الويب وأدائها وتحسينهما. استخدِم Lighthouse في "أدوات مطوّري البرامج في Chrome" للحصول على تقارير حول مستوى أداء صفحتك. يمكنك أيضًا الرجوع إلى مجموعة web.dev/fast والاطّلاع على مزيد من المعلومات حول مؤشرات Web Vitals.
استخدام الشبكة
افتح لوحة الشبكة في "أدوات مطوّري البرامج في Chrome" للاطّلاع على نشاط الشبكة العام للإعلان. ضَع علامة في المربّع بجانب الخيار إيقاف ذاكرة التخزين المؤقت للحصول على نتائج متّسقة عند إعادة التحميل بشكل متكرّر.
ستعرض لك القيمة المنقولة في أسفل الصفحة المبلغ المنقول للصفحة بأكملها. لحصر الطلبات على تلك المرتبطة بالإعلان فقط، استخدِم إدخال الفلتر في أعلى الصفحة.
إذا عثرت على الطلب الأوّلي للإعلان، مثل مصدر iframe، استخدِم علامة التبويب "المُنشئ" ضِمن الطلب للاطّلاع على جميع الطلبات التي يؤدي إليها.
يُعدّ ترتيب القائمة الإجمالية للطلبات حسب الحجم طريقة جيدة لرصد الموارد الكبيرة جدًا. تشمل الأسباب الشائعة الصور والفيديوهات التي لم يتم تحسينها.
بالإضافة إلى ذلك، يمكن أن يكون الترتيب حسب الاسم طريقة جيدة لرصد الطلبات المتكررة. قد لا يكون المورد الكبير الواحد هو السبب في التدخّل، بل قد يكون عددًا كبيرًا من الطلبات المتكررة التي تتجاوز الحدّ المسموح به بشكل تدريجي.
استخدام وحدة المعالجة المركزية (CPU)
ستساعدك لوحة الأداء في "أدوات مطوّري البرامج" على تشخيص المشاكل المتعلّقة باستخدام وحدة المعالجة المركزية. افتح قائمة إعدادات الالتقاط. استخدِم القائمة المنسدلة وحدة المعالجة المركزية لتقليل سرعة وحدة المعالجة المركزية إلى أقصى حدّ ممكن. من المرجّح أن يتم تفعيل إجراءات وحدة المعالجة المركزية على الأجهزة الأقل قوةً مقارنةً بأجهزة التطوير المتطورة.
بعد ذلك، انقر على الزر تسجيل لبدء تسجيل النشاط. ننصحك بتجربة وقت التسجيل ومدته، لأنّ عملية تحميل التتبُّع الطويل قد تستغرق بعض الوقت. بعد تحميل التسجيل، يمكنك استخدام المخطط الزمني في أعلى الشاشة لاختيار جزء من التسجيل. ركِّز على المناطق في الرسم البياني باللون الأصفر أو البنفسجي أو الأخضر الثابت التي تمثّل إنشاء النصوص البرمجية والعرض والطلاء.
استكشِف علامات التبويب من الأسفل إلى الأعلى وشجرة الاستدعاء وسجلّ الأحداث في أسفل الصفحة. يمكن أن يساعد ترتيب هذه الأعمدة حسب وقت التنفيذ الذاتي وإجمالي وقت التنفيذ في تحديد المشاكل في الرمز.
يتم أيضًا ربط ملف المصدر المرتبط هناك، لذا يمكنك تتبُّعه من خلال لوحة المصادر لفحص تكلفة كل سطر.
تشمل المشاكل الشائعة التي يجب البحث عنها هنا الرسومات المتحركة غير المحسَّنة التي تؤدي إلى عرض وتنسيق مستمرَّين أو عمليات مكلفة مخفية داخل مكتبة مضمّنة.
كيف يمكن الإبلاغ عن تدخلات غير صحيحة؟
إذا تم تصنيف المحتوى غير الإعلاني على أنّه كذلك، ننصحك بتغيير الرمز البرمجي لتجنُّب مطابقة قواعد الفلترة، أو التواصل مباشرةً مع المسؤولين عن EasyList لتغيير قواعد الفلترة. يُرجى العِلم أنّ إجراءات التدخّل بشأن الإعلانات الثقيلة لا تؤثّر في الإطارات التي تتضمّن إيماءات المستخدم، لذا يمكن استبعاد الفيديو من خلال طلب النقر على زر التشغيل قبل تحميل المحتوى. إذا لم تتطابق EasyList مع المحتوى، وصنّف Chrome المحتوى بشكل خاطئ على أنّه مرتبط بالإعلانات، يمكنك الإبلاغ عن مشكلة في Chrome باستخدام هذا النموذج. عند الإبلاغ عن مشكلة، يُرجى تضمين مثال تم التقاطه لتقرير التدخّل وعيّنة من عنوان URL لإعادة إنتاج المشكلة.