چگونه Google عملکرد تبلیغات را با تایید مجدد stale-while-revalidate بهبود داد

جاناتان ایمپریوسی
Jonathon Imperiosi

این مطالعه موردی نشان می‌دهد که چگونه بهبود عملکرد منابع شخص ثالث می‌تواند معیارهای کسب‌وکار را تقویت کند. در حالی که یک مطالعه قبلی هزینه تأخیر تبلیغات اضافه شده را اندازه‌گیری کرده بود، این مطالعه ارزش بهبود عملکرد در دنیای واقعی را نشان می‌دهد:

۰.۵ ٪

افزایش درآمد ناشران

۲ ٪

افزایش بارگذاری اولیه اسکریپت‌های تبلیغاتی

منبع: داده‌های داخلی گوگل، ژوئن تا ژوئیه ۲۰۱۹.

پیشینه

تگ ناشر گوگل (GPT) اسکریپت برچسب‌گذاری تبلیغات برای Google Ad Manager است که تبلیغات نمایشی را در وب درخواست و اجرا می‌کند. با پیاده‌سازی یک هدر HTTP stale-while-revalidate برای GPT، تیم GPT توانست سرعت و عملکرد تبلیغات نمایشی گوگل را برای شرکای ناشر خود بهبود بخشد. همین تکنیک را می‌توان در هر سناریوی دیگری که بارگذاری اسکریپت‌ها در اسرع وقت از بارگذاری تازه‌ترین کد مهم‌تر است، اعمال کرد.

مشکل

GPT به عنوان یک اسکریپت بوت‌استرپ، gpt.js ، مستقر می‌شود که مدت زمان کوتاهی برای زندگی (TTL) 15 دقیقه‌ای به آن داده می‌شود. این TTL کوتاه اجازه می‌دهد تا اسکریپت به سرعت به‌روزرسانی یا به حالت اولیه برگردد. پس از بارگیری، gpt.js اسکریپت‌های پیاده‌سازی اضافی را که TTL طولانی‌تری دارند، درخواست و بارگیری می‌کند.

به محض اینکه TTL پانزده دقیقه‌ای منقضی شود، نسخه gpt.js در حافظه پنهان (cache) قدیمی می‌شود و نیاز به اعتبارسنجی مجدد دارد. پیش از این، این فرآیند اعتبارسنجی مجدد شامل ارسال یک درخواست شبکه همزمان برای دریافت یک نسخه جدید از اسکریپت بود که به اولین درخواست تبلیغ، تأخیر اضافه می‌کرد.

راه حل

ویژگی stale-while-revalidate توسط هدر Cache-Control استفاده می‌شود و یک بازه زمانی اضافی را تعریف می‌کند که در طی آن یک حافظه پنهان می‌تواند از یک دارایی قدیمی استفاده کند در حالی که آن دارایی به صورت ناهمزمان اعتبارسنجی مجدد می‌شود. این به توسعه‌دهندگان کمک می‌کند تا بین فوریت - بارگذاری فوری محتوای ذخیره شده - و تازگی - اطمینان از استفاده از به‌روزرسانی‌های محتوای ذخیره شده در آینده - تعادل برقرار کنند.

مطالعه موردی تبلیغات نمایشی گوگل

تیم GPT این هدر Cache-Control را در پاسخ HTTP مربوط به gpt.js در سال ۲۰۱۶ اضافه کرد، با توجه به اینکه مرورگرها stale-while-revalidate را پیاده‌سازی می‌کردند:

cache-control: private, max-age=900, stale-while-revalidate=3600

این تنظیم به این معنی است که اگر gpt.js بین ۱۵ تا ۶۰ دقیقه پس از مقدار ذخیره شده قبلی درخواست شود، از مقدار ذخیره شده برای انجام درخواست استفاده می‌شود، حتی اگر قدیمی باشد. همزمان، یک درخواست اعتبارسنجی مجدد در پس‌زمینه انجام می‌شود تا حافظه پنهان را با مقدار جدیدی برای استفاده‌های بعدی پر کند.

کروم در نسخه ۷۵، stale-while-revalidate را برای ۹۹٪ از کل ترافیک فعال کرد و ۱٪ از ترافیک را با این ویژگی موقتاً غیرفعال نگه داشت تا تأثیر آن را اندازه‌گیری کند. تیم GPT معیارهای این ۱٪ (گروه آزمایش) و همچنین ۱٪ نمونه از ترافیک با این ویژگی فعال (گروه کنترل) را ثبت کرد تا اثربخشی stale-while-revalidate برای اسکریپت‌های تبلیغاتی آزمایش کند. در طول ۲ هفته، معیارهای ثبت شده از حجم نمونه ۵.۲ میلیارد نمایش تبلیغات نمایشی گوگل، گروه کنترل موارد زیر را مشاهده کرد:

  • افزایش ۰.۳ درصدی تعداد نمایش تبلیغات
  • افزایش 0.5 درصدی درآمد.
  • ۲٪ افزایش در بارگذاری اولیه اسکریپت‌های تبلیغاتی (کمتر از ۵۰۰ میلی‌ثانیه از شروع بارگذاری صفحه).
  • ۱.۱٪ افزایش در بارگذاری موفق اسکریپت‌های تبلیغاتی به طور کلی.
تغییر درصد در تعداد بارگذاری اسکریپت‌های تبلیغاتی در مقابل زمان از شروع بارگذاری صفحه تا بارگذاری اسکریپت‌های تبلیغاتی (میلی‌ثانیه)
منبع: داده‌های داخلی گوگل، ژوئن تا ژوئیه ۲۰۱۹.

همانطور که در نمودار نشان داده شده است، نتایج این آزمایش را می‌توان به افزایش بارگذاری موفق اسکریپت‌های تبلیغاتی نسبت داد که اکثر آنها در اوایل فرآیند بارگذاری صفحه رخ می‌دهند.

اعتبارسنجی مجدد در حین کهنه شدن را روی سایت خود پیاده‌سازی کنید

تیم GPT مشاهده کرده است که ایجاد یک تغییر نسبتاً کوچک در هدرهای HTTP با استفاده از stale-while-revalidate می‌تواند سرعت را بهبود بخشد و معیارهای کسب‌وکار را ارتقا دهد. برای اطلاعات بیشتر در مورد پیاده‌سازی stale-while-revalidate در سایت خود، به بخش «به‌روز نگه‌داشتن سایت با stale-while-revalidate» مراجعه کنید.