Comptes de service

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

Un compte de service est un compte qui appartient à votre application et non à un utilisateur final individuel. Les comptes de service permettent des interactions entre serveurs entre une application Web et un service Google. Votre application appelle des API Google au nom du compte de service. Les utilisateurs ne sont donc pas directement impliqués.

Les comptes de service utilisent un flux OAuth 2.0 qui ne nécessite aucune autorisation humaine. Ils font appel à un fichier de clé auquel seule votre application peut accéder.

L'utilisation de comptes de service offre deux avantages principaux:

  • L'autorisation d'accès à l'API Google est effectuée en tant qu'étape de configuration, évitant ainsi les complications associées à d'autres flux OAuth 2.0 qui nécessitent des interactions utilisateur.

  • Le flux d'assertion OAuth 2.0 permet à votre application d'emprunter l'identité d'autres utilisateurs si nécessaire.

Il existe deux façons d'autoriser des comptes de service: directement ou par emprunt d'identité.

Autorisation avec accès direct au compte

Avec cette option, vous accordez au compte de service un accès direct à votre compte Google Ads.

Configuration de 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, puis 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 à Outils et paramètres > Configuration > 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 la zone de saisie Adresse e-mail. Sélectionnez le niveau d'accès au compte approprié, puis cliquez sur le bouton Ajouter un compte.

  5. Le compte de service dispose d'un accès.

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.

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 éléments suivants:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Pour en savoir plus, consultez le guide de configuration.

.NET

Configurez les clés suivantes dans votre fichier App.config / Web.config. Pour en savoir plus, consultez le guide de configuration.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Python

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

json_key_file_path: JSON_KEY_FILE_PATH

Si vous utilisez des variables d'environnement, ajoutez ce qui suit à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

PHP

Configurez les clés suivantes dans votre google_ads_php.ini. Pour en savoir plus, consultez le guide de configuration.

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

Ruby

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

c.keyfile = 'JSON_KEY_FILE_PATH'

Perl

Définissez le chemin d'accès au fichier JSON de la clé privée et l'ID de compte délégué dans votre configuration. Si vous utilisez un fichier googleads.properties, ajoutez les éléments suivants :

jsonKeyFilePath=JSON_KEY_FILE_PATH

Si vous utilisez des variables d'environnement, ajoutez ce qui suit à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Autorisation à l'aide de l'emprunt d'identité

Avec cette option, vous empruntez l'identité d'un utilisateur qui a accès à votre compte Google Ads à l'aide du compte de service. Cette approche ne fonctionne que pour les clients Google Workspace. Un compte de service ne peut emprunter l'identité d'utilisateurs (adresses e-mail) que dans le même domaine Google Workspace.

Prérequis

  • Un domaine Google Workspace qui vous appartient, tel que mydomain.com ou mybusiness.com

  • Un jeton de développeur pour l'API Google Ads et éventuellement un compte de test

  • La bibliothèque cliente pour le langage que vous utilisez

  • Un projet dans la console Google APIs qui a été configuré pour l'API Google Ads

  • Un utilisateur Google Ads disposant d'autorisations sur le compte Google Ads auquel vous souhaitez accéder. Google Ads n'accepte pas les comptes de service sans emprunt d'identité.

Configuration de l'accès au compte de service

Étant donné que l'emprunt d'identité des utilisateurs n'est contrôlé qu'au niveau du domaine, l'utilisation des comptes de service et du flux d'assertion avec Google OAuth 2.0 nécessite que vous disposiez de votre propre domaine enregistré auprès de Google Workspace. Votre application et ses utilisateurs peuvent ensuite emprunter l'identité de n'importe quel utilisateur du domaine.

  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 du compte de service.

  2. Partagez l'ID de compte de service et le champ d'application de l'API Google Ads (https://www.googleapis.com/auth/adwords) avec l'administrateur de votre domaine.

    Demandez à l'administrateur du domaine de déléguer l'autorité au niveau du domaine à votre compte de service.

  3. Si vous êtes l'administrateur du domaine, suivez les instructions du centre d'aide.

Vous pouvez désormais utiliser le compte de service pour accéder à votre compte Google Ads à l'aide du flux d'assertion OAuth 2.0.

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.

Java

Définissez le chemin d'accès au fichier JSON de la clé privée et l'ID de compte délégué dans votre configuration. Si vous utilisez un fichier ads.properties, ajoutez les éléments suivants:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

Pour en savoir plus, consultez le guide de configuration.

.NET

Configurez les clés suivantes dans votre fichier App.config / Web.config. Pour en savoir plus, consultez le guide de configuration.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Python

Définissez le chemin d'accès JSON de la clé privée et l'adresse e-mail usurpée dans votre configuration. Si vous utilisez une chaîne google-ads.yaml file, YAML ou dict, ajoutez ce qui suit:

json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL

Si vous utilisez des variables d'environnement, ajoutez ce qui suit à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

PHP

Configurez les clés suivantes dans votre google_ads_php.ini. Pour en savoir plus, consultez le guide de configuration.

; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"

Ruby

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

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Perl

Définissez le chemin d'accès au fichier JSON de la clé privée et l'ID de compte délégué dans votre configuration. Si vous utilisez un fichier googleads.properties, ajoutez les éléments suivants :

jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL

Si vous utilisez des variables d'environnement, ajoutez ce qui suit à votre configuration ou environnement Bash :

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

Problèmes de sécurité

Étant donné que le compte de service dispose d'un contrôle de délégation au niveau du domaine pour votre domaine Google Workspace, il est important de protéger le fichier de clé qui permet à un compte de service d'accéder aux services Google pour lesquels il est autorisé. Cela est particulièrement vrai, car ce compte de service peut usurper l'identité de n'importe quel utilisateur du domaine.

Il est également recommandé de n'autoriser les comptes de service qu'à accéder à l'ensemble minimal d'API requis. Il s'agit d'une mesure préventive visant à limiter la quantité de données auxquelles un pirate informatique peut accéder si le fichier de clé du compte de service est compromis.