Tìm hiểu cách tải tài nguyên của bên thứ ba nhanh hơn có thể giúp tăng doanh thu.
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 tài nguyên bên thứ ba có thể giúp tăng các chỉ số kinh doanh. Mặc dù một nghiên cứu trước đây đã đo lường chi phí của độ trễ quảng cáo gia tăng, nhưng 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ực tế:
0,5%
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, 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
đơn giản 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ự cho mọi trường hợp 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 ngắn (TTL) là 15 phút. TTL ngắn này cho phép cập nhật hoặc khôi phục tập lệnh một cách 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ẽ lỗi thời 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 tạo một yêu cầu mạng đồng bộ để tìm nạp bản sao mới của tập lệnh, làm tăng độ trễ cho 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 thêm một khoảng thời gian trong đó bộ nhớ đệm có thể sử dụng một thành phần cũ trong khi thành phần đó đượ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ì (tải nội dung đã lưu trong bộ nhớ đệm ngay lập tức) và tính mới mẻ (đảm bảo nội dung cập nhật được lưu trong 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, để dự kiến 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 giá trị mới vào bộ nhớ đệm để sử dụng trong tương lai.
Chrome đã triển khai stale-while-revalidate
trong phiên bản 75 cho 99% 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ư 1% mẫu lưu lượng truy cập đã bật tính năng này (nhóm đối chứng) để kiểm thử hiệu quả của stale-while-revalidate
cho tập lệnh quảng cáo. Trong suốt 2 tuần ghi lại các chỉ số từ mẫu gồ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:
- Tăng 0,3% số lượt hiển thị quảng cáo.
- Doanh thu tăng 0,5%.
- Tăng 2% số lượt tải tập lệnh quảng cáo sớm (<500 mili giây kể từ khi bắt đầu tải trang).
- Tăng 1,1% tổng số lượt tải tập lệnh quảng cáo thành công.
Như trong biểu đồ trên, kết quả của thử nghiệm này có thể được cho là do số lượt tải tập lệnh quảng cáo thành công tăng lên, phần lớn xảy ra ở giai đoạn đầu của quá trình tải trang.
Triển khai tính năng 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 đơn giản đối với tiêu đề HTTP bằng stale-while-revalidate
có thể cải thiện tốc độ và tăng các chỉ số kinh doanh. Hãy xem bài đăng Giữ cho nội dung luôn mới mẻ bằng tính nă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.