Google ปรับปรุงประสิทธิภาพโฆษณาด้วยข้อมูลที่ไม่อัปเดตขณะตรวจสอบใหม่ได้อย่างไร

Jonathon Imperiosi
Jonathon Imperiosi

กรณีศึกษานี้เน้นให้เห็นว่าการปรับปรุงประสิทธิภาพของทรัพยากรของบุคคลที่สามจะช่วยเพิ่มเมตริกทางธุรกิจได้อย่างไร แม้ว่าการศึกษาครั้งก่อนจะวัดต้นทุนของเวลาในการตอบสนองที่เพิ่มขึ้นของโฆษณา แต่การศึกษาครั้งนี้แสดงให้เห็นถึงคุณค่าของการปรับปรุงประสิทธิภาพในโลกแห่งความเป็นจริง

0.5%

การเพิ่มรายได้สำหรับผู้เผยแพร่โฆษณา

2%

การโหลดสคริปต์โฆษณาตั้งแต่เนิ่นๆ เพิ่มขึ้น

แหล่งที่มา: ข้อมูลภายในของ Google, มิถุนายน - กรกฎาคม 2019

ฉากหลัง

แท็กผู้เผยแพร่โฆษณาผ่าน Google (GPT) คือสคริปต์การติดแท็กโฆษณาสำหรับ Google Ad Manager ที่ขอและแสดงผลโฆษณา Display บนเว็บ การใช้ส่วนหัว HTTP ของ stale-while-revalidate สำหรับ GPT ช่วยให้ทีม GPT ปรับปรุงความเร็วและประสิทธิภาพของโฆษณา Display ของ Google สำหรับพาร์ทเนอร์ผู้เผยแพร่โฆษณาได้ คุณสามารถใช้เทคนิคเดียวกันนี้กับสถานการณ์อื่นๆ ที่การโหลดสคริปต์ให้เร็วที่สุดมีความสำคัญมากกว่าการโหลดโค้ดล่าสุด

ปัญหา

GPT ได้รับการติดตั้งใช้งานเป็นสคริปต์การเริ่มต้นระบบ gpt.js ซึ่งมี Time to Live (TTL) สั้นๆ เพียง 15 นาที TTL สั้นๆ นี้ช่วยให้สามารถอัปเดตหรือย้อนกลับสคริปต์ได้อย่างรวดเร็ว เมื่อโหลดแล้ว gpt.js จะขอและโหลดสคริปต์การติดตั้งใช้งานเพิ่มเติมซึ่งมี TTL นานกว่า

เมื่อ TTL 15 นาทีหมดอายุ เวอร์ชันของ gpt.js ในแคชจะล้าสมัยและต้องได้รับการตรวจสอบอีกครั้ง ก่อนหน้านี้ กระบวนการตรวจสอบซ้ำนี้เกี่ยวข้องกับการส่งคำขอเครือข่ายแบบซิงโครนัสเพื่อดึงสำเนาสคริปต์ล่าสุด ซึ่งจะเพิ่มเวลาในการตอบสนองให้กับคำขอโฆษณาแรก

การแก้ปัญหา

แอตทริบิวต์ stale-while-revalidate ใช้โดยส่วนหัว Cache-Control และกำหนดช่วงเวลาเพิ่มเติมที่แคชสามารถใช้ชิ้นงานที่ล้าสมัยได้ในขณะที่ระบบตรวจสอบชิ้นงานอีกครั้งแบบไม่พร้อมกัน ซึ่งจะช่วยให้นักพัฒนาสร้างสมดุลระหว่างความรวดเร็ว (การโหลดเนื้อหาที่แคชไว้ทันที) กับความใหม่ (การตรวจสอบว่ามีการใช้การอัปเดตเนื้อหาที่แคชไว้ในอนาคต)

กรณีศึกษาโฆษณา Display ของ 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 สัปดาห์ของเมตริกที่บันทึกจากกลุ่มตัวอย่างการแสดงโฆษณา Display ของ Google จำนวน 5.2 พันล้านครั้ง กลุ่มควบคุมสังเกตเห็นสิ่งต่อไปนี้

  • การแสดงโฆษณาเพิ่มขึ้น 0.3%
  • รายได้เพิ่มขึ้น 0.5%
  • เพิ่มการโหลดสคริปต์โฆษณาในช่วงแรก 2% (<500 มิลลิวินาทีนับจากจุดเริ่มต้นของการโหลดหน้าเว็บ)
  • การโหลดสคริปต์โฆษณาสำเร็จโดยรวมเพิ่มขึ้น 1.1%
การเปลี่ยนแปลงจุดเปอร์เซ็นต์ในจํานวนการโหลดสคริปต์โฆษณาเทียบกับเวลาตั้งแต่เริ่มโหลดหน้าเว็บจนถึงการโหลดสคริปต์โฆษณา (มิลลิวินาที)
แหล่งที่มา: ข้อมูลภายในของ Google, มิถุนายน - กรกฎาคม 2019

ดังที่แสดงในแผนภูมิ ผลลัพธ์ของการทดสอบนี้เกิดจากการโหลดสคริปต์โฆษณาที่สำเร็จเพิ่มขึ้น โดยส่วนใหญ่เกิดขึ้นในช่วงต้นของกระบวนการโหลดหน้าเว็บ

ใช้ stale-while-revalidate ในเว็บไซต์

ทีม GPT พบว่าการเปลี่ยนแปลงส่วนหัว HTTP เพียงเล็กน้อยด้วย stale-while-revalidate จะช่วยปรับปรุงความเร็วและเพิ่มเมตริกทางธุรกิจได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งาน stale-while-revalidate ในเว็บไซต์ของคุณเองได้ที่ การทำให้ข้อมูลเป็นปัจจุบันด้วย stale-while-revalidate