サードパーティのリソースの読み込みを高速化することで、どのように増収につながるかをご確認ください。
このケーススタディでは、サードパーティ リソースのパフォーマンスを向上させることで、ビジネス指標がどのように向上するかを説明します。前回の調査では、広告の遅延による追加費用を測定しましたが、この調査では実際のパフォーマンス向上の価値が示されています。
0.5%
パブリッシャー様の収益の伸び
2%
広告スクリプトの初期読み込みが増加
出典: Google 内部データ、2019 年 6 月~ 7 月。
背景
Google パブリッシャー タグ(GPT)は、ウェブのディスプレイ広告をリクエストしてレンダリングする Google アド マネージャー用の広告タグのスクリプトです。GPT にシンプルな stale-while-revalidate
HTTP ヘッダーを実装することで、パブリッシャー パートナー向けの Google ディスプレイ広告の速度とパフォーマンスを向上させることができました。この手法は、最新のコードを読み込むことよりも、スクリプトをできるだけ早く読み込むことが重要になる他のシナリオにも適用できます。
問題
GPT は、ブートストラップ スクリプト gpt.js
としてデプロイされ、15 分の短い有効期間(TTL)が設定されています。この短い TTL により、スクリプトをすばやく更新またはロールバックできます。読み込みが完了すると、gpt.js
は TTL が長い追加の実装スクリプトをリクエストして読み込みます。
TTL が 15 分を超えると、キャッシュ内の gpt.js
のバージョンは古くなるため、再検証が必要になります。以前は、この再検証プロセスではスクリプトの新しいコピーを取得する同期ネットワーク リクエストが行われていましたが、その結果、最初の広告リクエストで待ち時間が発生していました。
ソリューション
stale-while-revalidate
属性は Cache-Control
ヘッダーで使用され、アセットを非同期で再検証する間、キャッシュで古いアセットを使用できる追加の時間枠を定義します。これによりデベロッパーは、即時性(キャッシュに保存されたコンテンツをすぐに読み込む)と、
鮮度 - キャッシュされたコンテンツの更新が今後使用されるようにする。
Google ディスプレイ広告の事例紹介
GPT チームは、ブラウザが stale-while-revalidate
を実装することを想定して、2016 年に gpt.js
HTTP レスポンスにこの Cache-Control
ヘッダーを追加しました。
cache-control: private, max-age=900, stale-while-revalidate=3600
この設定により、以前にキャッシュに保存された値から 15 ~ 60 分の間に gpt.js
がリクエストされた場合に、古い値がキャッシュに保存された場合でも、リクエストの処理にはキャッシュに保存された値が使用されます。それと同時に、バックグラウンドで再検証リクエストが行われ、今後使用するためにキャッシュに新しい値が入力されます。
Chrome ではバージョン 75 で stale-while-revalidate
を全トラフィックの 99% にロールアウトし、トラフィックの 1% でこの機能を一時的に無効にして影響を測定しました。GPT チームは、この 1%(テストグループ)の指標と、この機能を有効にしたトラフィックのサンプル(コントロール グループ)の 1% をログに記録し、広告スクリプトに対する stale-while-revalidate
の効果をテストしました。Google ディスプレイ広告のインプレッション 52 億回のサンプルから 2 週間の指標データを記録し、対照群では次のことが観察されました。
- 広告の表示回数が 0.3% 増加。
- 収益が 0.5% 増加。
- 広告スクリプトの初期読み込みが 2% 増加(ページ読み込みの開始から 500 ミリ秒未満)。
- 広告スクリプトの読み込みの成功率が 1.1% 増加。
上のグラフに示すように、このテストの結果は、広告スクリプトの読み込みが成功し、その大半がページの読み込みプロセスの早い段階で発生しているためだと考えられます。
サイトで stale-while-revalidate を実装する
GPT チームは、stale-while-revalidate
を使用して HTTP ヘッダーを比較的簡単に変更するだけで、速度が向上し、ビジネス指標が向上することが確認されています。サイトに stale-while-revalidate
を実装する方法について詳しくは、stale-while-revalidate による更新の投稿をご覧ください。