PHP क्लाइंट लाइब्रेरी की मदद से, Google Ads API के साथ आसानी से इंटरैक्ट किया जा सकता है. इसके लिए, आपको कम से कम कॉन्फ़िगरेशन करना पड़ता है. हालांकि, परफ़ॉर्मेंस इस बात पर निर्भर करती है कि लाइब्रेरी का इस्तेमाल कैसे किया जाता है और इसे कैसे इंटिग्रेट किया जाता है.
ये सबसे सही तरीके ज़्यादातर भाषाओं पर लागू होते हैं. इस गाइड में, PHP के लिए खास तौर पर उपलब्ध एक्सटेंशन के बारे में बताया गया है.
प्रोटोबफ़ लागू करना
Protobuf का इस्तेमाल, अनुरोध और जवाब के मैसेज के लिए gRPC और Google Ads API करते हैं. इसे लागू करने के दो तरीके उपलब्ध हैं. हालांकि, C में लिखे गए तरीके की परफ़ॉर्मेंस बेहतर है.
ज़्यादा जानकारी के लिए, प्रोटोबफ़ गाइड देखें.
PHP इंटरप्रेटर का ऑपरेशन मोड
PHP एक वर्सटाइल स्क्रिप्टिंग लैंग्वेज है. इसका इस्तेमाल अलग-अलग ऑपरेशन मोड में किया जा सकता है. PHP CGI (कॉमन गेटवे इंटरफ़ेस) का एक अहम फ़ायदा यह है कि यह एक से ज़्यादा बार एक्ज़ीक्यूट होने पर भी रिसॉर्स शेयर कर सकता है.
PHP वर्शन
PHP के नए वर्शन पर नियमित रूप से अपग्रेड करना एक अच्छा तरीका है, क्योंकि आम तौर पर यह बेहतर परफ़ॉर्मेंस के साथ आता है. PHP के उन वर्शन की सूची जिन पर यह सुविधा काम करती है.
Google Ads API के ऐसे वर्शन जिनका इस्तेमाल नहीं किया गया है
क्लाइंट लाइब्रेरी के सभी वर्शन, Google Ads API के कई वर्शन के साथ काम करते हैं. क्लाइंट लाइब्रेरी के साथ काम करने वाले Google Ads API के हर वर्शन के लिए, वर्शन के हिसाब से पैकेज उपलब्ध होते हैं.
Google Ads API के उन वर्शन के लिए बनाए गए पैकेज जिन्हें इस्तेमाल नहीं किया जाता उन्हें क्लाइंट लाइब्रेरी से सुरक्षित तरीके से हटाया जा सकता है. क्लाइंट लाइब्रेरी, इसे प्रोग्राम के हिसाब से करने के लिए यूटिलिटी उपलब्ध कराती है. ऐसा इसलिए, क्योंकि इससे प्रोसेस को तेज़ी से पूरा करने या मेमोरी फ़ुटप्रिंट को कम करने में मदद मिल सकती है.
उदाहरण
मान लें कि आपको ऐसी क्लाइंट लाइब्रेरी लागू करनी है जो सिर्फ़ एपीआई के नए वर्शन: v22 का इस्तेमाल करती है. साथ ही, आपको एपीआई के इस्तेमाल न किए गए वर्शन: v21 और v20 के लिए सहायता बंद करनी है.
प्रोजेक्ट की composer.json फ़ाइल में, Composer स्क्रिप्ट (remove-google-ads-api-version-support नाम वाली) को इस तरह से तय करें कि वह क्लाइंट लाइब्रेरी की ओर से दी गई सुविधा का इस्तेमाल करे. इसके लिए, क्लास ApiVersionSupport का इस्तेमाल करें:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
इसके बाद, वर्शन नंबर को पैरामीटर के तौर पर इस्तेमाल करके, Composer स्क्रिप्ट का इस्तेमाल करें और कुछ स्टेटस मैसेज प्रिंट करें:
# Change the current directory to the project directory.
cd /path/to/the/project
# Install the project.
composer install
# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions v20 and v21 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 20 21
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
नीचे दिए गए सैंपल एक्ज़ीक्यूशन आउटपुट से पता चलता है कि फ़ाइल का साइज़ 50 एमबी कम हो गया है. साथ ही, अब सिर्फ़ V22 वर्शन काम करेगा:
# Supported Google Ads API versions:
V20
V21
V22
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 20 of Google Ads API...
Done
Removing support for the version 21 of Google Ads API...
Done
# Supported Google Ads API versions:
V22
# Vendor folder size:
60M ./vendor
डेवलपमेंट वर्सेस प्रोडक्शन
PHP एक इंटरप्रेटेड लैंग्वेज है. इसका मतलब है कि यह निर्देशों को लागू करने से पहले, उन्हें कंपाइल करती है. आम तौर पर, यह फ़ायदेमंद होता है. ऐसा इसलिए, क्योंकि डेवलपमेंट के दौरान सोर्स अक्सर बदलते रहते हैं. वहीं, एक्ज़ीक्यूशन का समय इतना ज़रूरी नहीं होता. हालांकि, प्रोडक्शन के समय ऐसा नहीं होता, क्योंकि स्थिरता और परफ़ॉर्मेंस मुख्य चिंताएं बन जाती हैं.
कैश मेमोरी
कैशिंग एक सामान्य प्रक्रिया है और इसका इस्तेमाल करने का सुझाव दिया जाता है. ऐसा इसलिए, क्योंकि यह पहले से कंपाइल किए गए स्क्रिप्ट निर्देशों को सेव करके, परफ़ॉर्मेंस को बेहतर बनाती है और स्थिरता को बढ़ाती है.
OPcache सबसे ज़्यादा इस्तेमाल किया जाने वाला समाधान है और यह डिफ़ॉल्ट रूप से उपलब्ध होता है.
अपने आप लोड होने की सुविधा
ऑटोलोड का इस्तेमाल आम तौर पर किया जाता है. इसकी वजह यह है कि यह क्लास के बारे में पहले से कंपाइल की गई जानकारी को लोड करके, परफ़ॉर्मेंस को बेहतर बनाता है और स्थिरता को बढ़ाता है.
PHP क्लाइंट लाइब्रेरी, ऑटोलोडिंग के लिए PSR-4 के मुताबिक है. साथ ही, composer.json फ़ाइल के हिस्से के तौर पर डेफ़िनिशन उपलब्ध कराती है. इसके बाद, Composer के खास विकल्पों का इस्तेमाल किया जा सकता है. जैसे, --optimize-autoloader या --classmap-authoritative.
लॉग इन हो रहा है
लॉगर को ERROR जैसे हाई लेवल पर सेट करने से, एक्ज़ीक्यूशन में लगने वाले समय और मेमोरी के इस्तेमाल को कम किया जा सकता है.
ज़्यादा जानकारी के लिए, लॉगिंग गाइड देखें.
डीबग करना और प्रोफ़ाइलिंग करना
हमारा सुझाव है कि डीबगर और प्रोफ़ाइलर टूल बंद कर दें, क्योंकि आम तौर पर इनके साथ कुछ एक्ज़ीक्यूशन टाइम ओवरहेड होता है.
प्रीलोड
PHP 7.4 से, OPcache प्रीलोडिंग का इस्तेमाल करके, स्क्रिप्ट को मेमोरी में प्रीलोड किया जा सकता है. यह रेगुलर कैशिंग से एक कदम आगे है.
इस सुविधा का फ़ायदा पाने के लिए, स्क्रिप्ट को डिज़ाइन करना होता है. हालांकि, PHP क्लाइंट लाइब्रेरी ऐसा नहीं करती, क्योंकि OPcache प्रीलोडिंग को लागू करने का कोई सामान्य तरीका नहीं है. साथ ही, मेमोरी के इस्तेमाल और परफ़ॉर्मेंस में सुधार के बीच का समझौता, किसी प्रोजेक्ट और एक्ज़ीक्यूशन के लिए बहुत खास होता है.