Узнайте, как более быстрая загрузка сторонних ресурсов может увеличить доход.
В этом исследовании случая показано, как улучшение производительности сторонних ресурсов может повысить бизнес-показатели. В то время как предыдущее исследование измеряло стоимость дополнительной задержки рекламы, это исследование демонстрирует ценность реального улучшения производительности:
0,5 %
Рост доходов издателей
2 %
Увеличение ранних загрузок рекламных скриптов
Источник: внутренние данные Google, июнь-июль 2019 г.
Фон
Google Publisher Tag (GPT) — это скрипт тегирования объявлений для Google Ad Manager, который запрашивает и отображает дисплейную рекламу в Интернете. Внедрив простой заголовок HTTP stale-while-revalidate
для GPT, команда GPT смогла улучшить скорость и производительность дисплейной рекламы Google для своих партнеров-издателей. Этот же метод можно применить к любому другому сценарию, где загрузка скриптов как можно быстрее важнее загрузки самого свежего кода.
Проблема
GPT развертывается как скрипт начальной загрузки gpt.js
, которому дается короткое время жизни (TTL) в 15 минут. Этот короткий TTL позволяет быстро обновлять или откатывать скрипт. После загрузки gpt.js
запрашивает и загружает дополнительные скрипты реализации, которые имеют более длинный TTL.
По истечении 15-минутного TTL версия 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
для рекламных скриптов. В течение 2 недель метрик, регистрируемых из выборки размером 5,2 миллиарда показов рекламы Google Display, контрольная группа наблюдала:
- Увеличение количества показов рекламы на 0,3%.
- Рост выручки на 0,5%.
- На 2% больше ранних загрузок рекламного скрипта (<500 мс с начала загрузки страницы).
- Общее количество успешных загрузок рекламных скриптов увеличилось на 1,1%.
Как показано на диаграмме выше, результаты этого эксперимента можно объяснить увеличением количества успешных загрузок рекламных скриптов, причем большинство из них приходится на ранний этап загрузки страницы.
Реализация функции stale-while-revalidate на вашем сайте
Команда GPT увидела, что внесение относительно простого изменения в заголовки HTTP с помощью stale-while-revalidate
может повысить скорость и повысить бизнес-показатели. Ознакомьтесь с публикацией Keeping things fresh with stale-while-revalidate, чтобы узнать больше о внедрении stale-while-revalidate
на вашем собственном сайте.