PHP istemci kitaplığı, Google Ads API ile etkileşimleri kolaylaştırır ve sizin tarafınızda minimum yapılandırma gerektirir. Ancak performans, kitaplığın nasıl kullanıldığına ve entegre edildiğine bağlı olarak önemli ölçüde değişir.
Genel en iyi uygulamaların çoğu tüm diller için geçerlidir. Bu kılavuzda, PHP'ye özgü performans optimizasyonları ele alınmaktadır.
Protobuf ve gRPC uygulamaları
Protobuf, gRPC ve Google Ads API tarafından istek ve yanıt mesajları için kullanılır. İki uygulama (yalnızca PHP ve C uzantısı) mevcuttur. Hem protobuf hem de grpc için C uzantıları, önemli ölçüde daha iyi serileştirme ve ağ performansı sağlar.
Daha fazla bilgi için Protobuf kılavuzunu ve Transport kılavuzunu inceleyin.
PHP yorumlayıcısının çalışma modu
PHP, çok yönlü bir komut dosyası dilidir ve kullanıma bağlı olarak çeşitli işlem modlarına sahiptir. PHP-FPM (FastCGI İşlem Yöneticisi) veya kalıcı uygulama sunucuları, standart CGI'ye kıyasla önemli bir avantaja sahiptir. Bunun nedeni, kalıcı çalışan işlemlerinin, istekler arasında önbelleğe alınmış bayt kodunu (OPcache aracılığıyla) ve kaynakları yeniden kullanabilmesidir.
PHP sürümü
Çalışma zamanı performansındaki iyileştirmelerden yararlanmak için düzenli olarak daha yeni bir PHP sürümüne geçin. Desteklenen PHP sürümlerinin listesini inceleyin.
Kullanılmayan Google Ads API sürümleri
İstemci kitaplığının tüm sürümleri, birden fazla Google Ads API sürümünü destekler. İstemci kitaplığı tarafından desteklenen Google Ads API'nin her sürümü için bu sürüme özel paketler bulunur.
Uygulamanız tarafından kullanılmayan Google Ads API sürümlerine ayrılmış paketler, istemci kitaplığından güvenli bir şekilde kaldırılabilir. İstemci kitaplığı, bellek ayak izini azaltmak ve yürütmeyi hızlandırmak için kullanılmayan API sürümlerini programatik olarak kaldırmaya yönelik bir yardımcı program sunar.
Örnek
Yalnızca en yeni API sürümünü (v25) kullanan bir istemci uygulaması uyguladığınızı ve kullanılmayan API sürümleri (v22, v23 ve v24) için desteği kaldırmak istediğinizi varsayalım.
Projenizin composer.json dosyasında, ApiVersionSupport içindeki istemci kitaplığı tarafından sağlanan yardımcı programdan yararlanan bir Composer komut dosyası (remove-google-ads-api-version-support adlı) tanımlayın:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Ardından, Composer komut dosyasını parametre olarak sürüm numaralarıyla çalıştırın ve durum mesajlarını yazdırın:
# 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 unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v22, v23, and
# v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
22 \
23 \
24
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
Aşağıdaki örnek yürütme çıkışında, dosya boyutu küçültme işlemi gösterilmektedir. Desteklenen tek sürüm V25'dır.
# Supported Google Ads API versions:
V22
V23
V24
V25
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
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
Geliştirme ve üretim
PHP, talimatları yürütmeden önce derleyen bir yorumlanmış dildir. Bu durum, kaynak dosyaların sık sık değiştiği ve yürütme süresinin daha az kritik olduğu geliştirme sırasında avantajlıdır. Üretim ortamlarında kararlılık ve performans öncelikli konular haline gelir.
Önbellek
Önceden derlenmiş komut dosyası bayt kodunu paylaşılan bellekte depolayarak performansı artırdığı ve kararlılığı yükselttiği için önbelleğe alma önerilir.
OPcache, standart çözümdür ve varsayılan olarak PHP ile birlikte gelir.
Otomatik yükleme
Otomatik yükleme, önceden derlenmiş sınıf haritası bilgilerini yükleyerek performansı ve kararlılığı artırır.
PHP istemci kitaplığı, otomatik yükleme için PSR-4'e uygundur ve tanımı composer.json dosyası kapsamında sağlar. --optimize-autoloader veya --classmap-authoritative gibi özel Composer KSA seçenekleri, üretim derlemelerinde hemen kullanılabilir.
Günlük Kaydı
Üretimde günlük kaydedicileri ERROR veya WARNING gibi daha yüksek bir eşiğe ayarlamak, G/Ç genel giderini ve bellek tüketimini azaltmaya yardımcı olur.
Daha fazla bilgi için Günlük kaydı kılavuzuna bakın.
Hata ayıklama ve profil oluşturma
Üretimde hata ayıklayıcı ve profil oluşturucu uzantılarını (ör. Xdebug) devre dışı bırakın. Bu uzantılar, önemli bir yürütme ek yükü oluşturur.
Önceden Yükle
PHP 7.4'ten itibaren, standart OPcache önbelleğe almanın bir adım ötesine geçerek sunucu başlatılırken komut dosyalarını belleğe önceden yüklemek için OPcache önceden yükleme kullanılabilir.
Önceden yükleme komut dosyası, uygulamanız için özel olarak tasarlanmalıdır. PHP istemci kitaplığı, bellek kullanımı ile performans artışı arasındaki denge her projeye ve dağıtım ortamına özgü olduğundan genel bir önceden yükleme komut dosyası sağlamaz.