توضّح دراسة الحالة هذه كيف يمكن أن يؤدي تحسين أداء المراجع التابعة لجهات خارجية إلى تعزيز مقاييس النشاط التجاري. في حين أنّ دراسة سابقة قدّرت تكلفة وقت الاستجابة الإضافي للإعلانات، توضّح هذه الدراسة قيمة تحسين الأداء في العالم الحقيقي:
0.5%
تحسُّن الإيرادات للناشرين
2%
زيادة في عمليات تحميل نصوص الإعلانات البرمجية في وقت مبكر
المصدر: بيانات Google الداخلية، من حزيران (يونيو) إلى تموز (يوليو) 2019.
خلفية
علامة ناشر Google (GPT) هي النص البرمجي لوضع علامات الإعلانات في "مدير إعلانات Google"، وهي تطلب الإعلانات الصورية وتعرضها على الويب. من خلال تنفيذ عنوان HTTP stale-while-revalidate في GPT، تمكّن فريق GPT من تحسين سرعة وأداء الإعلانات الصورية من Google للناشرين الشركاء. يمكن تطبيق الأسلوب نفسه على أي سيناريو آخر تكون فيه أهمية تحميل النصوص البرمجية بأسرع ما يمكن أكبر من أهمية تحميل أحدث الرموز.
المشكلة
يتم نشر GPT كبرنامج نصي للتمهيد، gpt.js، يتم منحه مدة بقاء قصيرة (TTL) تبلغ 15 دقيقة. يسمح هذا الوقت القصير بتحديث النص البرمجي أو إرجاعه بسرعة. بعد التحميل، يطلب gpt.js ويحمّل نصوصًا برمجية إضافية للتنفيذ، ويكون لها مدة بقاء أطول.
بعد انتهاء صلاحية مدة البقاء على قيد الحياة البالغة 15 دقيقة، تصبح نسخة gpt.js في ذاكرة التخزين المؤقت قديمة ويجب إعادة التحقّق من صحتها. في السابق، كانت عملية إعادة التحقّق هذه تتضمّن إرسال طلب متزامن على الشبكة لجلب نسخة جديدة من النص البرمجي، ما يؤدي إلى زيادة وقت الاستجابة لطلب عرض الإعلان الأول.
الحل
تستخدم السمة stale-while-revalidate عنوان Cache-Control وتحدّد فترة زمنية إضافية يمكن خلالها لذاكرة التخزين المؤقت استخدام مادة عرض قديمة أثناء إعادة التحقّق من صحة مادة العرض بشكل غير متزامن. يساعد ذلك المطوّرين في تحقيق التوازن بين السرعة، أي تحميل المحتوى المخزّن مؤقتًا على الفور،
والحداثة، أي ضمان استخدام التعديلات على المحتوى المخزّن مؤقتًا في المستقبل.
دراسة حالة حول الإعلانات الصورية على "شبكة Google الإعلانية"
أضاف فريق GPT عنوان Cache-Control هذا في استجابة HTTP التي تتضمّن gpt.js في عام 2016، وذلك تحسّبًا لتنفيذ المتصفّحات stale-while-revalidate:
cache-control: private, max-age=900, stale-while-revalidate=3600
يعني هذا الإعداد أنّه إذا تم طلب gpt.js بين 15 و60 دقيقة بعد القيمة المخزَّنة مؤقتًا السابقة، سيتم استخدام القيمة المخزَّنة مؤقتًا لتلبية الطلب حتى إذا كانت قديمة. في الوقت نفسه، سيتم تقديم طلب إعادة التحقّق في الخلفية لتعبئة ذاكرة التخزين المؤقت بقيمة جديدة لاستخدامها في المستقبل.
طرح Chrome ميزة stale-while-revalidate في الإصدارات من 75 إلى 99% من جميع الزيارات، مع إيقاف الميزة مؤقتًا في% 1 من الزيارات لقياس تأثيرها. سجّل فريق GPT مقاييس من هذه النسبة البالغة %1 (المجموعة التجريبية) بالإضافة إلى عيّنة بنسبة% 1 من عدد الزيارات مع تفعيل الميزة (مجموعة التحكّم)، وذلك لاختبار فعالية stale-while-revalidate لبرامج الإعلانات النصية. على مدار أسبوعَين من المقاييس المسجّلة من عيّنة بحجم 5.2 مليار مرّة ظهور لإعلان صوري على شبكة Google الإعلانية، لاحظت مجموعة التحكّم ما يلي:
- زيادة بنسبة% 0.3 في مرّات ظهور الإعلانات
- زيادة في الإيرادات بنسبة% 0.5
- زيادة بنسبة% 2 في عمليات تحميل النصوص البرمجية للإعلانات في وقت مبكر (أقل من 500 ملي ثانية من بداية تحميل الصفحة)
- زيادة بنسبة% 1.1 في عمليات تحميل نصوص الإعلانات البرمجية الناجحة بشكل عام
كما هو موضّح في الرسم البياني، يمكن أن تُعزى نتائج هذه التجربة إلى زيادة في عمليات تحميل نصوص الإعلانات البرمجية الناجحة، مع حدوث معظمها في وقت مبكر من عملية تحميل الصفحة.
تنفيذ stale-while-revalidate على موقعك الإلكتروني
لاحظ فريق GPT أنّ إجراء تغيير صغير نسبيًا على عناوين HTTP باستخدام
stale-while-revalidate يمكن أن يحسّن السرعة ويعزّز مقاييس النشاط التجاري. يمكنك الاطّلاع على مقالة
الحفاظ على المحتوى جديدًا باستخدام stale-while-revalidate
لمزيد من المعلومات حول تنفيذ stale-while-revalidate على موقعك الإلكتروني.