Как Google повысил эффективность рекламы с помощью устаревшей проверки

Узнайте, как более быстрая загрузка сторонних ресурсов может увеличить доход.

Джонатан Империози
Jonathon Imperiosi

В этом исследовании случая показано, как улучшение производительности сторонних ресурсов может повысить бизнес-показатели. В то время как предыдущее исследование измеряло стоимость дополнительной задержки рекламы, это исследование демонстрирует ценность реального улучшения производительности:

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%.
Изменение в процентах количества загрузок рекламного скрипта в зависимости от времени от начала загрузки страницы до загрузки рекламного скрипта (мс)
Источник: внутренние данные Google, июнь-июль 2019 г.

Как показано на диаграмме выше, результаты этого эксперимента можно объяснить увеличением количества успешных загрузок рекламных скриптов, причем большинство из них приходится на ранний этап загрузки страницы.

Реализация функции stale-while-revalidate на вашем сайте

Команда GPT увидела, что внесение относительно простого изменения в заголовки HTTP с помощью stale-while-revalidate может повысить скорость и повысить бизнес-показатели. Ознакомьтесь с публикацией Keeping things fresh with stale-while-revalidate, чтобы узнать больше о внедрении stale-while-revalidate на вашем собственном сайте.

Фото Кахики на Unsplash