PHP क्लाइंट लाइब्रेरी की मदद से, Google Ads API के साथ इंटरैक्ट करना आसान हो जाता है. इसके लिए, आपको बहुत कम कॉन्फ़िगरेशन करना पड़ता है. हालांकि, परफ़ॉर्मेंस इस बात पर निर्भर करती है कि लाइब्रेरी का इस्तेमाल और इंटिग्रेशन कैसे किया जाता है.
इनमें से ज़्यादातर सबसे सही तरीके, सभी भाषाओं पर लागू होते हैं. इस गाइड में, PHP के लिए खास तौर पर लागू होने वाले सबसे सही तरीकों के बारे में बताया गया है.
प्रोटोबफ़ लागू करना
gRPC और Google Ads API, अनुरोध और जवाब के मैसेज के लिए प्रोटोबफ़ का इस्तेमाल करते हैं. प्रोटोबफ़ को लागू करने के दो तरीके उपलब्ध हैं. हालांकि, C में लिखे गए तरीके से बेहतर परफ़ॉर्मेंस मिलती है.
ज़्यादा जानकारी के लिए, प्रोटोबफ़ गाइड देखें.
PHP इंटरप्रेटर का ऑपरेशन मोड
PHP एक वर्सटाइल स्क्रिप्टिंग लैंग्वेज है. इसका इस्तेमाल अलग-अलग तरीकों से किया जा सकता है. इसलिए, इसके कई ऑपरेशन मोड होते हैं. PHP CGI (कॉमन गेटवे इंटरफ़ेस) का एक अहम फ़ायदा यह है कि यह एक से ज़्यादा बार स्क्रिप्ट चलाने के दौरान, संसाधनों को शेयर कर सकता है.
PHP का वर्शन
PHP के नए वर्शन पर नियमित तौर पर अपग्रेड करना एक अच्छा तरीका है. इसकी वजह यह है कि आम तौर पर, नए वर्शन में बेहतर परफ़ॉर्मेंस मिलती है. PHP के उन वर्शन की सूची देखें जिनके साथ यह सुविधा काम करती है.
Google Ads API के ऐसे वर्शन जिनका इस्तेमाल नहीं किया जाता
क्लाइंट लाइब्रेरी के सभी वर्शन, Google Ads API के कई वर्शन के साथ काम करते हैं. क्लाइंट लाइब्रेरी, Google Ads API के जिस वर्शन के साथ काम करती है उसके लिए, वर्शन के हिसाब से अलग-अलग पैकेज उपलब्ध होते हैं.
Google Ads API के ऐसे वर्शन के लिए बने पैकेज जिन्हें इस्तेमाल नहीं किया जाता, उन्हें क्लाइंट लाइब्रेरी से हटाया जा सकता है. क्लाइंट लाइब्रेरी, प्रोग्राम के ज़रिए ऐसा करने के लिए यूटिलिटी उपलब्ध कराती है. इसकी वजह यह है कि इससे स्क्रिप्ट को तेज़ी से चलाया जा सकता है या मेमोरी का इस्तेमाल कम किया जा सकता है.
उदाहरण
मान लें कि आपने क्लाइंट लाइब्रेरी को लागू किया है. यह सिर्फ़ एपीआई के नए वर्शन v25 का इस्तेमाल कर रही है. साथ ही, आपको एपीआई के ऐसे वर्शन के लिए काम करने की सुविधा हटानी है जिनका इस्तेमाल नहीं किया जाता. जैसे, v24 और v23.
प्रोजेक्ट की composer.json फ़ाइल में, कंपोज़र स्क्रिप्ट (जिसका नाम
remove-google-ads-api-version-support) तय करें. यह स्क्रिप्ट, क्लाइंट लाइब्रेरी की ओर से उपलब्ध कराई गई यूटिलिटी का इस्तेमाल करती है. यह यूटिलिटी, ApiVersionSupport क्लास में मौजूद होती है:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
इसके बाद, वर्शन नंबर को पैरामीटर के तौर पर इस्तेमाल करके, कंपोज़र स्क्रिप्ट का इस्तेमाल करें और कुछ स्टेटस मैसेज प्रिंट करें:
# 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 v23 and v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 23 24
# 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 एमबी कम हो गया है. साथ ही, अब सिर्फ़ V25 वर्शन के साथ काम करने की सुविधा उपलब्ध है:
# Supported Google Ads API versions:
V23
V24
V25
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
डेवलपमेंट बनाम प्रोडक्शन
PHP एक इंटरप्रेट की गई लैंग्वेज है. इसका मतलब है कि यह निर्देशों को लागू करने से पहले, उन्हें कंपाइल करती है. आम तौर पर, यह फ़ायदेमंद होता है, क्योंकि डेवलपमेंट के दौरान, सोर्स में अक्सर बदलाव होते हैं. वहीं, स्क्रिप्ट को लागू करने के दौरान, यह इतना ज़रूरी नहीं होता. हालांकि, प्रोडक्शन के दौरान इसके उलट होता है, क्योंकि इस दौरान स्थिरता और परफ़ॉर्मेंस अहम होती हैं.
कैश मेमोरी
कैशिंग एक सामान्य और ज़रूरी प्रोसेस है. इसकी वजह यह है कि यह पहले से कंपाइल की गई स्क्रिप्ट के निर्देशों को सेव करके, परफ़ॉर्मेंस को बेहतर बनाती है और स्थिरता को बढ़ाती है.
OPcache, सबसे ज़्यादा इस्तेमाल किया जाने वाला समाधान है. यह डिफ़ॉल्ट तौर पर उपलब्ध होता है.
अपने आप लोड होने की सुविधा
अपने आप लोड होने की सुविधा, आम तौर पर इस्तेमाल की जाती है. इसकी वजह यह है कि यह पहले से कंपाइल की गई क्लास के बारे में जानकारी लोड करके, परफ़ॉर्मेंस को बेहतर बनाती है और स्थिरता को बढ़ाती है.
PHP क्लाइंट लाइब्रेरी, अपने आप लोड होने की सुविधा के लिए PSR-4 के मुताबिक काम करती है. साथ ही, composer.json फ़ाइल के हिस्से के तौर पर, इसकी डेफ़िनिशन उपलब्ध कराती है. इसके बाद, कंपोज़र के खास विकल्पों का इस्तेमाल किया जा सकता है. जैसे, --optimize-autoloader या --classmap-authoritative.
लॉग इन हो रहा है
लॉगर को ERROR जैसे हाई लेवल पर सेट करने से, स्क्रिप्ट को लागू करने में लगने वाले समय और मेमोरी की खपत को कम किया जा सकता है.
ज़्यादा जानकारी के लिए, लॉगिंग गाइड देखें.
डीबग करना और प्रोफ़ाइलिंग करना
हमारा सुझाव है कि आप डीबगर और प्रोफ़ाइलर टूल को बंद कर दें, क्योंकि आम तौर पर, इन्हें चालू रखने पर स्क्रिप्ट को लागू करने में ज़्यादा समय लगता है.
प्रीलोड
PHP 7.4 से, OPcache प्रीलोडिंग का इस्तेमाल करके, स्क्रिप्ट को मेमोरी में प्रीलोड किया जा सकता है. यह सामान्य कैशिंग से एक कदम आगे है.
किसी स्क्रिप्ट को इस सुविधा का फ़ायदा पाने के लिए डिज़ाइन करना होता है. हालांकि, PHP क्लाइंट लाइब्रेरी ऐसा नहीं करती, क्योंकि OPcache प्रीलोडिंग को लागू करने का कोई सामान्य तरीका नहीं है. साथ ही, मेमोरी के इस्तेमाल और परफ़ॉर्मेंस में होने वाले फ़ायदे के बीच का अंतर, किसी प्रोजेक्ट और स्क्रिप्ट को लागू करने के तरीके के हिसाब से अलग-अलग होता है.