الطريقة التي اعتمدتها 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