Performances

La bibliothèque cliente PHP facilite les interactions avec l'API Google Ads avec une configuration minimale de votre part. Cependant, les performances dépendent fortement de la manière dont la bibliothèque est utilisée et intégrée.

La plupart de ces bonnes pratiques sont applicables à toutes les langues. Ce guide décrit ceux qui sont spécifiques à PHP.

Implémentation Protobuf

Protobuf est utilisé par gRPC et l'API Google Ads pour les messages de requête et de réponse. Deux implémentations sont disponibles, bien que celle écrite en C offre les meilleures performances.

Pour en savoir plus, consultez le guide Protobuf.

Mode de fonctionnement de l'interpréteur PHP

PHP est un langage de script polyvalent et propose de nombreux modes d'opération en fonction de l'utilisation. PHP CGI (Common Gateway Interface) présente un avantage notable, car il peut partager des ressources entre les exécutions.

Version de PHP

Il est recommandé de passer régulièrement à une version plus récente de PHP, car cela offre généralement de meilleures performances globales. Liste des versions de PHP compatibles

Versions inutilisées de l'API Google Ads

Toutes les versions de la bibliothèque cliente sont compatibles avec plusieurs versions de l'API Google Ads. Des packages dédiés sont disponibles pour chaque version de l'API Google Ads compatible avec la bibliothèque cliente.

Les packages dédiés aux versions de l'API Google Ads qui ne sont pas utilisées peuvent être supprimés de la bibliothèque cliente en toute sécurité. Étant donné qu'il peut être utile d'accélérer l'exécution ou de réduire l'espace mémoire utilisé, la bibliothèque cliente fournit des utilitaires permettant de le faire de manière automatisée.

Exemple

Supposons que vous implémentez la bibliothèque cliente qui n'utilise que la dernière version de l'API (v16) et que vous souhaitez supprimer la prise en charge des versions d'API inutilisées (v15 et v14).

Dans le fichier composer.json du projet, définissez un script Composer (nommé remove-google-ads-api-version-support) qui exploite l'utilitaire fourni par la bibliothèque cliente, dans la classe ApiVersionSupport:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

Ensuite, utilisez le script Composer avec les numéros de version comme paramètres et affichez des messages d'état:

# 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 v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# 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

L'exemple de résultat d'exécution ci-dessous indique une taille de fichier réduite de 50 Mo. La seule version compatible restante est V16:

# Supported Google Ads API versions:
V14
V15
V16
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 14 of Google Ads API...
Done
Removing support for the version 15 of Google Ads API...
Done
# Supported Google Ads API versions:
V16
# Vendor folder size:
60M     ./vendor

Développement ou production

PHP est un langage interprété dans la mesure où il compile d'abord des instructions avant de les exécuter. Cette approche est généralement avantageuse, car au cours du développement, les sources changent souvent, alors que le temps d'exécution n'est pas si important. Toutefois, l'inverse est vrai au moment de la production, car la stabilité et les performances deviennent les principales préoccupations.

Cache

La mise en cache est courante et vivement recommandée, car elle améliore les performances et la stabilité en stockant des instructions de script précompilées.

OPcache est la solution la plus couramment utilisée et est disponible par défaut.

Réapprovisionnement automatique

Le chargement automatique est courant, car il améliore les performances et la stabilité en chargeant des informations précompilées sur les classes.

La bibliothèque cliente PHP est conforme à la norme PSR-4 pour le chargement automatique et fournit la définition dans le fichier composer.json. Les options dédiées de Composer, telles que --optimize-autoloader ou --classmap-authoritative, par exemple, peuvent être utilisées prêtes à l'emploi.

Journalisation

La définition d'enregistreurs sur un niveau élevé tel que ERROR peut aider à réduire les coûts liés au temps d'exécution et la consommation de mémoire.

Pour en savoir plus, consultez le guide de journalisation.

Débogage et profilage

Nous vous recommandons de désactiver les outils de débogage et de profileur, car ils entraînent généralement une surcharge du temps d'exécution.

Précharger

Depuis PHP 7.4, vous pouvez utiliser le préchargement OPcache pour précharger des scripts en mémoire, ce qui va plus loin que la mise en cache standard.

Un script doit être conçu pour bénéficier de cette fonctionnalité, contrairement à la bibliothèque cliente PHP. En effet, il n'existe pas de moyen générique d'implémenter le préchargement OPcache, et le compromis entre utilisation de la mémoire et gain de performances est très spécifique à un projet et à une exécution donnés.