Library klien PHP mempermudah interaksi dengan Google Ads API dengan konfigurasi minimal dari pihak Anda. Namun, performa sangat bergantung pada cara penggunaan dan integrasi library.
Sebagian besar praktik terbaik ini berlaku untuk semua bahasa. Panduan ini membahas yang khusus untuk PHP.
Implementasi Protobuf
Protobuf digunakan oleh gRPC dan Google Ads API untuk pesan permintaan dan respons. Dua penerapan tersedia, meskipun penerapan yang ditulis dalam C memiliki performa yang lebih baik.
Lihat panduan Protobuf untuk mengetahui informasi selengkapnya.
Mode operasi penafsir PHP
PHP adalah bahasa skrip serbaguna dan memiliki banyak mode operasi, bergantung pada penggunaannya. PHP CGI (Common Gateway Interface) memiliki keunggulan yang signifikan karena dapat membagikan resource di antara eksekusi.
Versi PHP
Sebaiknya upgrade ke versi PHP yang lebih baru secara rutin karena biasanya menghasilkan performa keseluruhan yang lebih baik. Daftar versi PHP yang didukung.
Versi Google Ads API yang tidak digunakan
Semua versi library klien mendukung beberapa versi Google Ads API. Untuk setiap versi Google Ads API yang didukung oleh library klien, ada paket khusus untuk versi tersebut.
Paket yang dikhususkan untuk versi Google Ads API yang tidak digunakan dapat dihapus dengan aman dari library klien. Karena dapat berguna untuk mempercepat eksekusi atau mengurangi jejak memori, library klien menyediakan utilitas untuk melakukannya secara terprogram.
Contoh
Misalkan Anda menerapkan library klien yang hanya menggunakan versi API terbaru: v21
, dan Anda ingin menghapus dukungan untuk versi API yang tidak digunakan: v20
dan
v19
.
Dalam file composer.json
project, tentukan skrip Composer (bernama
remove-google-ads-api-version-support
) yang memanfaatkan utilitas yang disediakan oleh
library klien, dalam class
ApiVersionSupport
:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Kemudian, gunakan skrip Composer dengan nomor versi sebagai parameter dan cetak beberapa pesan status:
# 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 v19 and v20 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 19 20
# 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
Output eksekusi contoh di bawah menunjukkan pengurangan ukuran file sebesar 50 M dan
satu-satunya versi yang didukung yang tersisa adalah V21
:
# Supported Google Ads API versions:
V19
V20
V21
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 19 of Google Ads API...
Done
Removing support for the version 20 of Google Ads API...
Done
# Supported Google Ads API versions:
V21
# Vendor folder size:
60M ./vendor
Pengembangan versus produksi
PHP adalah bahasa yang diinterpretasi karena PHP mengompilasi terlebih dahulu instruksi sebelum mengeksekusinya. Hal ini biasanya menguntungkan karena selama waktu pengembangan, sumber sering berubah, sedangkan waktu eksekusi tidak terlalu penting. Namun, hal sebaliknya berlaku pada waktu produksi karena stabilitas dan performa menjadi perhatian utama.
Cache
Caching umum dan sangat direkomendasikan karena meningkatkan performa dan meningkatkan stabilitas dengan menyimpan petunjuk skrip yang telah dikompilasi sebelumnya.
OPcache adalah solusi yang paling umum digunakan dan tersedia secara default.
Penambahan saldo otomatis
Autoload umum digunakan karena dapat meningkatkan performa dan stabilitas dengan memuat informasi yang telah dikompilasi sebelumnya tentang class.
Library klien PHP sesuai dengan PSR-4 untuk
pemuatan otomatis dan menyediakan definisi sebagai bagian dari
file composer.json
. Opsi khusus Composer, seperti
--optimize-autoloader
atau --classmap-authoritative
misalnya, dapat langsung
digunakan.
Logging
Menyetel logger ke tingkat tinggi seperti ERROR
dapat membantu mengurangi beban waktu eksekusi dan konsumsi memori.
Lihat Panduan logging untuk mengetahui informasi selengkapnya.
Proses debug & pembuatan profil
Sebaiknya nonaktifkan alat debugger dan profiler karena biasanya memiliki overhead waktu eksekusi.
Pramuat
Sejak PHP 7.4, pemuatan awal OPcache dapat digunakan untuk memuat awal skrip dalam memori, yang merupakan langkah lebih lanjut dari penyiapan cache biasa.
Skrip harus didesain untuk memanfaatkan fitur ini, tetapi library klien PHP tidak memanfaatkannya karena tidak ada cara umum untuk menerapkan pra-pemuatan OPcache, dan trade-off antara penggunaan memori dan peningkatan performa sangat spesifik untuk project dan eksekusi tertentu.