Configuration

La bibliothèque cliente PHP de l'API Google Ads fournit plusieurs paramètres de configuration que vous pouvez utiliser pour personnaliser le comportement de la bibliothèque.

Fichier de configuration

Vous pouvez stocker la plupart de ces paramètres de configuration dans des fichiers de configuration INI et les utiliser lors de l'instanciation des clients, par exemple google_ads_php.ini.

Les compilateurs d'identifiants et de clients fournissent tous deux des méthodes fromFile pour charger les paramètres à partir de ces fichiers :

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

Si aucun chemin de configuration n'est fourni en tant qu'argument, les méthodes fromFile se chargent à partir du chemin de configuration par défaut, à savoir :

  1. La valeur de la variable d'environnement nommée GOOGLE_ADS_CONFIGURATION_FILE_PATH, si elle est définie.
  2. Sinon, le fichier google_ads_php.ini de votre répertoire HOME.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile()
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

Configuration dynamique

Vous pouvez définir ces paramètres de configuration de manière dynamique lors de l'instanciation des clients :

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

Variables d'environnement de configuration

Vous pouvez définir certains paramètres de configuration à partir de variables d'environnement lors de l'instanciation des clients (voir les variables d'environnement standards).

Les compilateurs d'identifiants et de clients fournissent tous deux des méthodes fromEnvironmentVariables pour charger les paramètres à partir de variables d'environnement.

$oAuth2Credential = (new OAuth2TokenBuilder())
    // ...
    ->fromEnvironmentVariables()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    // ...
    ->fromEnvironmentVariables()
    ->build();

Champs de configuration

Les paramètres de configuration acceptent plusieurs champs organisés en catégories :

  1. Champs utilisés par OAuth2TokenBuilder :
    • Mode d'application :
      • [OAUTH2] clientId : votre ID client OAuth2.
      • [OAUTH2] clientSecret : votre code secret du client OAuth2.
      • [OAUTH2] refreshToken : votre jeton d'actualisation OAuth2.
    • Mode du compte de service :
      • [OAUTH2] jsonKeyFilePath : chemin d'accès à la clé JSON.
      • [OAUTH2] scopes : champs d'application OAuth2 (par défaut, https://www.googleapis.com/auth/adwords dans v32.1.0 et versions ultérieures ; obligatoire dans les versions antérieures à v32.1.0 ou lors de l'utilisation de champs d'application personnalisés ; non lu à partir d'une variable d'environnement par fromEnvironmentVariables()).
      • [OAUTH2] impersonatedEmail : adresse e-mail facultative à emprunter lors de l'utilisation de la délégation au niveau du domaine Google Workspace.
    • Mode Identifiants par défaut de l'application :
      • Lorsque ni le champ "Mode d'application" ni le champ "Mode de compte de service" ne sont définis, OAuth2TokenBuilder utilise automatiquement les identifiants par défaut de l'application (ADC).
  2. Champs utilisés par GoogleAdsClientBuilder :
    • [GOOGLE_ADS] loginCustomerId : ID du client autorisé à utiliser dans la requête.
    • [GOOGLE_ADS] linkedCustomerId : Numéro client associé.
    • [GOOGLE_ADS] endpoint : point de terminaison facultatif du serveur de l'API Google Ads.
    • [LOGGING] logFilePath : chemin d'accès pour la sortie de journalisation.
    • [LOGGING] logLevel : niveau de journalisation.
    • [CONNECTION] proxy : URL du serveur proxy utilisée pour la connectivité Internet.
    • [CONNECTION] transport : transport réseau (grpc ou rest).
    • [CONNECTION] grpcChannelIsSecure : indique si le canal gRPC est sécurisé.
    • [CONNECTION] grpcChannelCredential : identifiants du canal gRPC.
    • [CONNECTION] unaryMiddlewares : middlewares unaires.
    • [CONNECTION] streamingMiddlewares : middlewares de streaming.
    • [CONNECTION] grpcInterceptors : intercepteurs gRPC.

Validation de la configuration

Les paramètres de configuration sont vérifiés lors de l'instanciation des clients, et des exceptions sont générées lorsqu'ils ne sont pas valides. Les règles de validation sont les suivantes :

  1. Les champs [OAUTH2] ne doivent pas être définis simultanément pour le mode Application et le mode Compte de service.
  2. [OAUTH2] jsonKeyFilePath doit être défini lorsque vous utilisez le mode Compte de service (dans les versions antérieures à v32.1.0, [OAUTH2] scopes doit également être défini ; dans v32.1.0 et les versions ultérieures, scopes est défini par défaut sur https://www.googleapis.com/auth/adwords).
  3. [OAUTH2] clientId, [OAUTH2] clientSecret et [OAUTH2] refreshToken doivent être définis lorsque vous utilisez le mode Application.
  4. Si elles sont définies, les valeurs [GOOGLE_ADS] loginCustomerId et [GOOGLE_ADS] linkedCustomerId doivent être des nombres positifs.
  5. Si elle est définie, [CONNECTION] proxy doit être une URL valide (voir le filtre FILTER_VALIDATE_URL).
  6. S'il est défini, [LOGGING] logLevel doit être un niveau de journalisation PSR valide en majuscules, tel que INFO.
  7. S'il est défini, [CONNECTION] transport doit être défini sur grpc ou rest.
  8. Si [CONNECTION] transport est défini sur grpc, le transport gRPC doit être compatible avec l'environnement (consultez le guide sur le transport).
  9. [CONNECTION] grpcChannelIsSecure doit être défini sur true lorsque [CONNECTION] transport n'est pas défini sur grpc (les connexions REST nécessitent toujours HTTPS).
  10. [CONNECTION] grpcChannelCredential ne peut être défini que lorsque [CONNECTION] transport est défini sur grpc.
  11. [CONNECTION] grpcChannelCredential ne peut être défini que lorsque [CONNECTION] grpcChannelIsSecure est défini sur true.