Cách Google cải thiện hiệu suất quảng cáo bằng tính năng cũ trong khi xác thực lại

Jonathon Imperiosi
Jonathon Imperiosi

Nghiên cứu điển hình này nêu bật cách cải thiện hiệu suất của các tài nguyên bên thứ ba có thể thúc đẩy các chỉ số kinh doanh. Trong khi một nghiên cứu trước đó đo lường chi phí của độ trễ quảng cáo bổ sung, thì nghiên cứu này cho thấy giá trị của việc cải thiện hiệu suất trong thế giới thực:

0,5%

Mức tăng doanh thu cho nhà xuất bản

2%

Tăng số lượt tải tập lệnh quảng cáo sớm

Nguồn: Dữ liệu nội bộ của Google, từ tháng 6 đến tháng 7 năm 2019.

Thông tin khái quát

Thẻ nhà xuất bản của Google (GPT) là tập lệnh gắn thẻ quảng cáo cho Google Ad Manager, yêu cầu và hiển thị quảng cáo hiển thị trên web. Bằng cách triển khai tiêu đề HTTP stale-while-revalidate cho GPT, nhóm GPT đã có thể cải thiện tốc độ và hiệu suất của quảng cáo hiển thị của Google cho các đối tác nhà xuất bản. Bạn có thể áp dụng kỹ thuật tương tự này cho bất kỳ trường hợp nào khác mà việc tải tập lệnh nhanh nhất có thể quan trọng hơn việc tải mã mới nhất.

Vấn đề

GPT được triển khai dưới dạng tập lệnh khởi động, gpt.js, có thời gian tồn tại (TTL) ngắn là 15 phút. TTL ngắn này cho phép tập lệnh được cập nhật hoặc khôi phục nhanh chóng. Sau khi tải, gpt.js sẽ yêu cầu và tải các tập lệnh triển khai bổ sung có TTL dài hơn.

Sau khi TTL 15 phút hết hạn, phiên bản gpt.js trong bộ nhớ đệm sẽ trở nên cũ và cần được xác thực lại. Trước đây, quy trình xác thực lại này liên quan đến việc đưa ra yêu cầu mạng đồng bộ để tìm nạp một bản sao mới của tập lệnh, thêm độ trễ vào yêu cầu quảng cáo đầu tiên.

Giải pháp

Thuộc tính stale-while-revalidate được tiêu đề Cache-Control sử dụng và xác định một khoảng thời gian bổ sung trong đó bộ nhớ đệm có thể sử dụng một nội dung cũ trong khi nội dung đó được xác thực lại một cách không đồng bộ. Điều này giúp nhà phát triển cân bằng giữa tính tức thời—tải nội dung được lưu vào bộ nhớ đệm ngay lập tức—và tính mới mẻ—đảm bảo các bản cập nhật cho nội dung được lưu vào bộ nhớ đệm sẽ được sử dụng trong tương lai.

Nghiên cứu điển hình về quảng cáo hiển thị của Google

Nhóm GPT đã thêm tiêu đề Cache-Control này vào phản hồi HTTP gpt.js vào năm 2016, nhằm dự đoán các trình duyệt triển khai stale-while-revalidate:

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

Chế độ cài đặt này có nghĩa là nếu gpt.js được yêu cầu trong khoảng từ 15 đến 60 phút sau giá trị được lưu vào bộ nhớ đệm trước đó, thì giá trị được lưu vào bộ nhớ đệm sẽ được dùng để thực hiện yêu cầu ngay cả khi giá trị đó đã cũ. Đồng thời, một yêu cầu xác thực lại sẽ được thực hiện ở chế độ nền để điền vào bộ nhớ đệm một giá trị mới cho mục đích sử dụng trong tương lai.

Chrome đã triển khai stale-while-revalidate trong phiên bản 75 cho 99% tổng lưu lượng truy cập, tạm thời tắt tính năng này cho 1% lưu lượng truy cập để đo lường tác động của tính năng này. Nhóm GPT đã ghi lại các chỉ số từ 1% này (nhóm thử nghiệm) cũng như mẫu 1% lưu lượng truy cập có bật tính năng này (nhóm đối chứng) để kiểm tra hiệu quả của stale-while-revalidate đối với tập lệnh quảng cáo. Trong suốt 2 tuần ghi lại các chỉ số từ mẫu có quy mô 5,2 tỷ lượt hiển thị quảng cáo hiển thị của Google, nhóm đối chứng đã quan sát thấy:

  • Số lượt hiển thị quảng cáo tăng 0,3%.
  • Doanh thu tăng 0,5%.
  • Số lượt tải tập lệnh quảng cáo sớm tăng 2% (<500 mili giây kể từ khi tải trang bắt đầu).
  • Số lượt tải tập lệnh quảng cáo thành công tăng 1,1% trên tổng số.
Thay đổi về tỷ lệ phần trăm trong số lượt tải tập lệnh quảng cáo so với Thời gian từ khi trang bắt đầu tải đến khi tập lệnh quảng cáo tải xong (mili giây)
Nguồn: Dữ liệu nội bộ của Google, từ tháng 6 đến tháng 7 năm 2019.

Như trong biểu đồ, kết quả của thử nghiệm này có thể là do số lượt tải tập lệnh quảng cáo thành công tăng lên, trong đó phần lớn xảy ra sớm trong quá trình tải trang.

Triển khai stale-while-revalidate trên trang web của bạn

Nhóm GPT nhận thấy rằng việc thực hiện một thay đổi tương đối nhỏ đối với tiêu đề HTTP bằng stale-while-revalidate có thể cải thiện tốc độ và thúc đẩy các chỉ số kinh doanh. Hãy xem bài viết Giữ cho mọi thứ luôn mới mẻ bằng stale-while-revalidate để biết thêm thông tin về cách triển khai stale-while-revalidate trên trang web của riêng bạn.