जानें कि तीसरे पक्ष के संसाधनों को तेज़ी से लोड करने से, आय में बढ़ोतरी कैसे हो सकती है.
इस केस स्टडी से पता चलता है कि तीसरे पक्ष के संसाधनों की परफ़ॉर्मेंस को बेहतर बनाने से, कारोबार की मेट्रिक कैसे बढ़ाई जा सकती हैं. हालांकि, पिछले अध्ययन में, विज्ञापनों के दिखने में लगने वाले समय को कम करने की लागत को मापा गया था. हालांकि, इस स्टडी से असल दुनिया में परफ़ॉर्मेंस में किए गए सुधार से मिलने वाले फ़ायदों के बारे में बताया गया है:
0.5%
पब्लिशर की आय में बढ़त
2%
विज्ञापन स्क्रिप्ट के शुरुआती लोड में बढ़ोतरी
सोर्स: Google का इंटरनल डेटा, जून से जुलाई 2019 तक.
बैकग्राउंड
Google पब्लिशर टैग (GPT), Google Ad Manager के लिए विज्ञापन टैग करने की एक स्क्रिप्ट है. यह वेब पर डिसप्ले विज्ञापनों को दिखाने के लिए अनुरोध करती है और उन्हें रेंडर करती है. GPT के लिए एक आसान stale-while-revalidate
एचटीटीपी हेडर लागू करके, GPT टीम अपने पब्लिशर पार्टनर के लिए Google डिसप्ले विज्ञापनों की स्पीड और परफ़ॉर्मेंस को बेहतर बनाने में कामयाब रही. यही तकनीक किसी भी अन्य स्थिति में लागू की जा सकती है, जहां सबसे नए कोड को लोड करने की तुलना में, स्क्रिप्ट को जल्द से जल्द लोड करना ज़्यादा ज़रूरी होता है.
समस्या
GPT को बूटस्ट्रैपिंग स्क्रिप्ट, gpt.js
के रूप में डिप्लॉय किया जाता है, जिसे लाइव रहने के लिए 15 मिनट (टीटीएल) का समय दिया जाता है. यह छोटा TTL (टीटीएल) स्क्रिप्ट को तेज़ी से अपडेट या रोल बैक करने की अनुमति देता है. लोड होने के बाद, gpt.js
अतिरिक्त स्क्रिप्ट को लोड करने का अनुरोध करता है और उन स्क्रिप्ट को लोड करता है जिनका TTL (टीटीएल) लंबा होता है.
15 मिनट के TTL की समयसीमा खत्म होने के बाद, कैश में मौजूद 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 टीम ने विज्ञापन स्क्रिप्ट के लिए stale-while-revalidate
के असर की जांच करने के लिए, इस 1% (प्रयोग के तौर पर शुरू किए गए ग्रुप) से मेट्रिक और चालू सुविधा (कंट्रोल ग्रुप) से ट्रैफ़िक के 1% नमूने को लॉग किया. पिछले दो हफ़्तों में, Google डिसप्ले विज्ञापन के 5.2 अरब विज्ञापन इंप्रेशन के सैंपल साइज़ से लॉग की गई मेट्रिक का इस्तेमाल किया गया. इस दौरान, कंट्रोल ग्रुप को यह जानकारी मिली:
- विज्ञापन इंप्रेशन में 0.3% की बढ़ोतरी हुई.
- आय में 0.5% की बढ़ोतरी हुई.
- विज्ञापन स्क्रिप्ट के शुरुआती लोड में 2% की बढ़ोतरी हुई (पेज लोड की शुरुआत से 500 मि.से. से कम).
- कुल सफल विज्ञापन स्क्रिप्ट लोड में 1.1% की बढ़ोतरी हुई.
जैसा कि ऊपर दिए गए चार्ट में दिखाया गया है, इस प्रयोग से मिले नतीजों के लिए, विज्ञापन स्क्रिप्ट के लोड होने की संख्या में बढ़ोतरी को शामिल किया जा सकता है. इनमें से ज़्यादातर नतीजे, पेज लोड होने की प्रोसेस की शुरुआत में ही लोड होते हैं.
अपनी साइट पर पुरानी जानकारी को फिर से पुष्टि करने के दौरान लागू करना
GPT टीम ने देखा है कि stale-while-revalidate
के साथ एचटीटीपी हेडर में आसान सा बदलाव करने से स्पीड बेहतर हो सकती है और कारोबार की मेट्रिक बढ़ सकती है. अपनी साइट पर stale-while-revalidate
को लागू करने के बारे में ज़्यादा जानकारी के लिए, प्रॉडक्ट की पुरानी जानकारी को 'हाल ही में पुष्टि करने के दौरान पुरानी जानकारी' के साथ अप-टू-डेट रखना पोस्ट देखें.