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

دریابید که چگونه بارگیری سریعتر منابع شخص ثالث می تواند درآمد را افزایش دهد.

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

0.5 ٪

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

2 %

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

منبع: داده های داخلی گوگل، ژوئن تا جولای 2019.

پس زمینه

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

مشکل

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

هنگامی که TTL 15 دقیقه ای منقضی می شود، نسخه gpt.js در حافظه پنهان قدیمی می شود و باید مجدداً اعتبار سنجی شود. پیش از این، این فرآیند اعتبار سنجی مجدد شامل ایجاد یک درخواست شبکه همزمان برای واکشی یک کپی جدید از اسکریپت، اضافه کردن تاخیر به اولین درخواست تبلیغ بود.

راه حل

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

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

تیم GPT این هدر Cache-Control را در پاسخ HTTP gpt.js در سال 2016 اضافه کرد، پیش بینی اینکه مرورگرها stale-while-revalidate را اجرا کنند:

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

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

کروم نسخه 75 را در نسخه 75 به 99 درصد از کل ترافیک stale-while-revalidate و این ویژگی را موقتاً غیرفعال کرد تا تأثیر آن را اندازه گیری کند. تیم GPT معیارهایی را از این 1٪ (گروه آزمایشی) و همچنین یک نمونه 1٪ از ترافیک را با ویژگی فعال (گروه کنترل) ثبت کرد تا اثربخشی stale-while-revalidate را برای اسکریپت های تبلیغاتی آزمایش کند. در طول 2 هفته معیارهای ثبت شده از حجم نمونه 5.2 میلیارد نمایش تبلیغات نمایشی گوگل، گروه کنترل مشاهده کردند:

  • 0.3٪ افزایش در نمایش تبلیغات.
  • 0.5 درصد افزایش درآمد
  • افزایش 2 درصدی در بارگیری اولیه اسکریپت تبلیغات (<500 میلی ثانیه از شروع بارگذاری صفحه).
  • به طور کلی 1.1٪ افزایش در بارهای موفق اسکریپت تبلیغاتی.
درصد تغییر در تعداد بارگیری اسکریپت تبلیغات در مقایسه با زمان بارگیری صفحه تا بارگیری اسکریپت تبلیغات (ms)
منبع: داده های داخلی گوگل، ژوئن تا جولای 2019.

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

اجرای stale-while-revalidate در سایت شما

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

عکس کاهیکا در Unsplash