जानें कि तीसरे पक्ष के संसाधनों को तेज़ी से लोड करने से रेवेन्यू कैसे बढ़ सकता है.
इस केस स्टडी से पता चलता है कि तीसरे पक्ष के संसाधनों की परफ़ॉर्मेंस में सुधार करके, कारोबार की मेट्रिक को कैसे बढ़ावा दिया जा सकता है. पिछली स्टडी में, विज्ञापनों के लोड होने में लगने वाले समय की लागत का आकलन किया गया था. वहीं, इस स्टडी में असल दुनिया में परफ़ॉर्मेंस में हुए सुधार की वैल्यू के बारे में बताया गया है:
0.5%
पब्लिशर के लिए रेवेन्यू में लिफ़्ट
2%
विज्ञापन स्क्रिप्ट के लोड होने में लगने वाले समय में कमी
सोर्स: Google का इंटरनल डेटा, जून से जुलाई 2019.
बैकग्राउंड
Google पब्लिशर टैग (GPT), Google Ad Manager के लिए विज्ञापन टैगिंग की स्क्रिप्ट है. यह वेब पर डिसप्ले विज्ञापनों का अनुरोध करने और उन्हें रेंडर करने का काम करती है. GPT के लिए एक आसान stale-while-revalidate
एचटीटीपी हेडर लागू करके, GPT टीम अपने पब्लिशर पार्टनर के लिए Google डिसप्ले विज्ञापनों की स्पीड और परफ़ॉर्मेंस को बेहतर बना पाई. इस तकनीक को किसी भी ऐसे मामले में लागू किया जा सकता है जहां सबसे नया कोड लोड करने से ज़्यादा, स्क्रिप्ट को जल्द से जल्द लोड करना ज़रूरी हो.
समस्या
GPT को बूटस्ट्रैपिंग स्क्रिप्ट, gpt.js
के तौर पर डिप्लॉय किया जाता है. इसे 15 मिनट का टाइम टू लिव (टीटीएल) दिया जाता है. इस कम टीटीएल की मदद से, स्क्रिप्ट को तुरंत अपडेट या रोल-बैक किया जा सकता है. लोड होने के बाद, gpt.js
लागू करने से जुड़ी अन्य स्क्रिप्ट का अनुरोध करता है और उन्हें लोड करता है. इन स्क्रिप्ट का टीटीएल ज़्यादा होता है.
15 मिनट का टीटीएल खत्म होने के बाद, कैश मेमोरी में मौजूद gpt.js
का वर्शन पुराना हो जाता है और उसे फिर से पुष्टि करनी पड़ती है. पहले, फिर से पुष्टि करने की इस प्रोसेस में स्क्रिप्ट की नई कॉपी फ़ेच करने के लिए, नेटवर्क का सिंक्रोनस अनुरोध करना पड़ता था. इससे पहले विज्ञापन अनुरोध में इंतज़ार का समय भी जुड़ता था.
समाधान
stale-while-revalidate
एट्रिब्यूट का इस्तेमाल Cache-Control
हेडर करता है. साथ ही, यह एक अतिरिक्त विंडो तय करता है. इस दौरान, कैश मेमोरी में मौजूद पुरानी एसेट का इस्तेमाल किया जा सकता है. हालांकि, इस दौरान एसेट की फिर से पुष्टि असाइनोक्रोनस तरीके से की जाती है. इससे डेवलपर को तुरंत कॉन्टेंट उपलब्ध कराने और उसे अप-टू-डेट रखने के बीच संतुलन बनाए रखने में मदद मिलती है. जैसे, कैश मेमोरी में सेव किए गए कॉन्टेंट को तुरंत लोड करना और कैश मेमोरी में सेव किए गए कॉन्टेंट के अपडेट का इस्तेमाल आने वाले समय में करना.
Google Display Network में दिखने वाले विज्ञापनों की केस स्टडी
GPT टीम ने 2016 में gpt.js
एचटीटीपी रिस्पॉन्स में यह Cache-Control
हेडर जोड़ा था. ऐसा इसलिए किया गया था, ताकि ब्राउज़र stale-while-revalidate
को लागू कर सकें:
cache-control: private, max-age=900, stale-while-revalidate=3600
इस सेटिंग का मतलब है कि अगर कैश मेमोरी में सेव की गई पिछली वैल्यू के 15 से 60 मिनट के बीच gpt.js
का अनुरोध किया जाता है, तो अनुरोध पूरा करने के लिए कैश मेमोरी में सेव की गई वैल्यू का इस्तेमाल किया जाएगा. भले ही, वह वैल्यू पुरानी हो. साथ ही, बैकग्राउंड में पुष्टि करने का अनुरोध किया जाएगा, ताकि आने वाले समय में इस्तेमाल के लिए कैश मेमोरी में नई वैल्यू भरी जा सके.
Chrome ने stale-while-revalidate
को 75वें वर्शन में, पूरे ट्रैफ़िक के 99% के लिए लॉन्च किया था. इस सुविधा के असर को मेज़र करने के लिए, 1% ट्रैफ़िक के लिए इसे कुछ समय के लिए बंद रखा गया था. GPT टीम ने इस 1% (प्रयोग के तौर पर शुरू किए गए ग्रुप) की मेट्रिक और 1% ट्रैफ़िक के सैंपल को लॉग किया. इसमें यह देखा जा सका कि कंट्रोल ग्रुप की सुविधा चालू है या नहीं. इससे यह जांच की जा सकेगी कि विज्ञापन स्क्रिप्ट के लिए, stale-while-revalidate
कितना असरदार है. Google डिसप्ले विज्ञापन के 5.2 अरब इंप्रेशन के सैंपल साइज़ से लॉग की गई मेट्रिक के दो हफ़्तों के दौरान, कंट्रोल ग्रुप ने ये निष्कर्ष निकाले:
- विज्ञापन इंप्रेशन में 0.3% की बढ़ोतरी.
- रेवेन्यू में 0.5% की बढ़ोतरी हुई.
- विज्ञापन स्क्रिप्ट के शुरुआती लोड होने में 2% की बढ़ोतरी हुई. यह बढ़ोतरी, पेज लोड की शुरुआत से 500 मि॰से॰ से कम थी.
- विज्ञापन स्क्रिप्ट के लोड होने की दर में कुल 1.1% की बढ़ोतरी हुई.
ऊपर दिए गए चार्ट में दिखाया गया है कि इस एक्सपेरिमेंट के नतीजों को, विज्ञापन स्क्रिप्ट लोड होने की संख्या में हुई बढ़ोतरी के लिए जिम्मेदार ठहराया जा सकता है. ज़्यादातर विज्ञापन स्क्रिप्ट, पेज लोड होने की प्रोसेस के शुरुआती दौर में लोड होती हैं.
अपनी साइट पर, 'पुनरीपुष्टि करते समय पुरानी जानकारी दिखाना' सुविधा लागू करना
GPT टीम ने देखा है कि stale-while-revalidate
की मदद से एचटीटीपी हेडर में आसानी से बदलाव करने से, स्पीड बेहतर हो सकती है और कारोबार की मेट्रिक में बढ़ोतरी हो सकती है. अपनी साइट पर stale-while-revalidate
लागू करने के बारे में ज़्यादा जानने के लिए, 'पुनरी पुष्टि करते समय पुराने डेटा का इस्तेमाल करना' सुविधा की मदद से, डेटा को अप-टू-डेट रखना पोस्ट देखें.