Workflow du compte de service

Ce guide explique comment accéder à l'API Google Ads à l'aide des comptes de service.

Un compte de service est un compte qui appartient à votre application et non à un utilisateur final. Les comptes de service utilisent un flux OAuth 2.0 qui ne nécessite pas d'autorisation humaine. Ils font appel à un fichier clé auquel seule votre application peut accéder.

L'utilisation de comptes de service présente deux avantages clés :

  • L'autorisation d'accéder aux comptes Google Ads via l'API Google Ads est une étape de configuration qui utilise les fonctionnalités d'autorisation et de gestion de compte proposées par l'UI Google Ads. Cela permet aux développeurs de gagner du temps en évitant de créer des flux OAuth 2.0 et de gérer les complications liées à l'interaction utilisateur, au stockage des identifiants utilisateur et à la gestion des jetons.

  • L'autorisation d'accéder aux comptes Google Ads n'est pas liée aux identifiants d'utilisateur individuels. Cela peut être utile dans les cas où cette autorisation doit rester valable même si l'employé qui l'a accordée à l'origine quitte l'équipe ou l'entreprise.

Configurer l'accès au compte

  1. Commencez par créer un compte de service et des identifiants.

    Téléchargez la clé du compte de service au format JSON et notez l'ID et l'adresse e-mail du compte de service.

  2. Connectez-vous à votre compte Google Ads en tant qu'administrateur. Accédez à Admin > Accès et sécurité.

  3. Cliquez sur le bouton + sous l'onglet Utilisateurs.

  4. Saisissez l'adresse e-mail du compte de service dans le champ de saisie Adresse e-mail. Sélectionnez le niveau d'accès approprié pour le compte (notez que les comptes de service ne sont pas compatibles avec le niveau d'accès Adresse e-mail uniquement), puis cliquez sur le bouton Ajouter un compte.

  5. L'accès est accordé au compte de service.

  6. Facultatif : Par défaut, vous ne pouvez pas accorder d'accès administrateur à un compte de service. Suivez le principe du moindre privilège et n'accordez l'accès administrateur que si vos appels d'API l'exigent. Vous pouvez mettre à niveau l'accès comme suit :

    • Cliquez sur la flèche du menu déroulant à côté du niveau d'accès du compte de service dans la colonne Niveau d'accès.
    • Sélectionnez Administrateur dans la liste déroulante.

Configuration de la bibliothèque cliente

Sélectionnez l'onglet correspondant à votre langage de programmation pour obtenir des instructions sur la configuration de votre bibliothèque cliente. Si votre compte de service accède à des comptes client via un compte administrateur Google Ads (CM), définissez également login-customer-id (ou loginCustomerId) sur le numéro client à 10 chiffres de ce compte administrateur sans tirets (voir Numéro client de connexion).

Java

Définissez le chemin d'accès JSON de la clé privée dans votre configuration. Si vous utilisez un fichier ads.properties, ajoutez les lignes suivantes :

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Pour en savoir plus, consultez le guide de configuration.

.NET

Définissez OAuth2Mode et OAuth2SecretsJsonPath sur l'instance GoogleAdsConfig, puis utilisez-la pour initialiser l'objet GoogleAdsClient.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    // ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

Pour en savoir plus, consultez le guide de configuration.

Python

Définissez le chemin d'accès JSON de la clé privée dans votre configuration. Si vous utilisez un fichier google-ads.yaml, une chaîne YAML ou dict, ajoutez les éléments suivants :

json_key_file_path: JSON_KEY_FILE_PATH

Si vous utilisez des variables d'environnement, ajoutez les éléments suivants à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Pour en savoir plus, consultez le guide de configuration.

PHP

Configurez les clés suivantes dans votre fichier google_ads_php.ini.

[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Pour en savoir plus, consultez le guide de configuration.

Ruby

Configurez les clés suivantes dans votre google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Pour en savoir plus, consultez le guide de configuration.

Perl

Définissez le chemin d'accès JSON de la clé privée dans votre configuration. Si vous utilisez un fichier googleads.properties, ajoutez les lignes suivantes :

jsonKeyFilePath=JSON_KEY_FILE_PATH

Si vous utilisez des variables d'environnement, ajoutez les éléments suivants à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Pour en savoir plus, consultez le guide de configuration.

curl

Commencez par définir le compte de service comme identifiants actifs dans la gcloud CLI.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Ensuite, récupérez un jeton d'accès OAuth 2.0 pour l'API Google Ads.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Vous pouvez utiliser le jeton d'accès dans vos appels d'API. L'exemple suivant montre comment exécuter un rapport sur les campagnes à l'aide de la méthode GoogleAdsService.SearchStream pour récupérer les campagnes de votre compte. Ce guide ne couvre pas les détails des rapports.

curl -i -X POST \
  https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

Le contenu de query.json est le suivant :

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}