الطريقة التي اعتمدتها Google لتحسين أداء الإعلانات باستخدام ميزة "القديمة أثناء إعادة التحقق"

تعرَّف على كيفية زيادة الأرباح من خلال تحميل الموارد التابعة لجهات خارجية بشكل أسرع.

تُبرز هذه الدراسة الحالة مدى أهمية تحسين أداء الموارد التابعة لجهات خارجية لتعزيز مقاييس النشاط التجاري. في حين أنّ دراسة سابقة قد قيّمت تكلفة وقت الاستجابة الإضافي للإعلانات، توضّح هذه الدراسة قيمة تحسين الأداء في الواقع:

0.5%

زيادة الأرباح للناشرين

2%

زيادة في عمليات تحميل النصوص البرمجية للإعلانات المبكّرة

المصدر: بيانات Google الداخلية، من حزيران (يونيو) إلى تموز (يوليو) 2019.

الخلفية

علامة ناشر Google (GPT) هي النص البرمجي لوضع العلامات على الإعلانات في "مدير إعلانات Google" الذي يطلب الإعلانات الصورية ويعرضها على الويب. ومن خلال تنفيذ رأس HTTP بسيط من نوع stale-while-revalidate لبرنامج GPT، تمكّن فريق GPT من تحسين سرعة إعلانات Google الصورية وأدائها لشركائها من الناشرين. يمكن تطبيق هذه الطريقة نفسها على أي سيناريو آخر يكون فيه تحميل النصوص البرمجية في أسرع وقت ممكن أكثر أهمية من تحميل أحدث رمز.

المشكلة

يتم نشر GPT كملف نصي لبدء التشغيل، gpt.js، والذي يتم منحه مدة بقاء قصيرة تبلغ 15 دقيقة. يسمح هذا الوقت القصير للترحيل بتعديل النص البرمجي أو التراجع عنه بسرعة. بعد التحميل، تطلب gpt.js نصوصًا برمجية إضافية للتنفيذ وتحملها، والتي يكون لها مهلة صلاحية أطول.

بعد انتهاء صلاحية مهلة "وقت الاسترجاع إلى الذاكرة" التي تبلغ 15 دقيقة، يصبح إصدار gpt.js في ذاكرة التخزين المؤقت قديمًا ويجب إعادة التحقّق منه. في السابق، تضمّنت عملية إعادة التحقّق هذه طلب شبكة متزامن لجلب نسخة حديثة من النص البرمجي، ما ساهم في زيادة وقت الاستجابة إلى طلب الإعلان الأول.

الحل

يستخدم العنوان Cache-Control السمة stale-while-revalidate ويحدّد فترة زمنية إضافية يمكن خلالها لمخزّن مؤقت استخدام مادة عرض قديمة أثناء إعادة التحقّق من صحة مادة العرض بشكل غير متزامن. يساعد ذلك المطوّرين في تحقيق التوازن بين التحميل الفوري للمحتوى المخزّن مؤقتًا وحداثته وضمان استخدام تحديثات المحتوى المُخزَّن مؤقتًا في المستقبل.

دراسة حالة عن الإعلانات الصورية على "شبكة 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 في عمليات تحميل نصوص الإعلانات الناجحة بشكل عام
التغيير في النسبة المئوية لعدد عمليات تحميل النصوص البرمجية للإعلانات مقارنةً بالوقت المستغرَق من بدء تحميل الصفحة إلى تحميل النص البرمجي للإعلان (بالملي ثانية)
المصدر: بيانات Google الداخلية، من حزيران (يونيو) إلى تموز (يوليو) 2019.

كما هو موضّح في الرسم البياني أعلاه، يمكن أن تُعزى نتائج هذه التجربة إلى زيادة في عمليات تحميل نصوص الإعلانات الناجحة، مع حدوث معظمها في وقت مبكر من عملية تحميل الصفحة.

تنفيذ ميزة "البيانات القديمة أثناء إعادة التحقق من الصحة" على موقعك الإلكتروني

لاحظ فريق GPT أنّ إجراء تغيير بسيط نسبيًا على رؤوس HTTP باستخدام stale-while-revalidate يمكن أن يؤدي إلى تحسين السرعة وتعزيز مقاييس النشاط التجاري. اطّلِع على المقالة Keeping things fresh with stale-while-revalidate (الحفاظ على حداثة البيانات باستخدام ميزة "stale-while-revalidate") للمزيد من المعلومات عن تنفيذ stale-while-revalidate على موقعك الإلكتروني.

صورة Kahica على Unsplash