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 les API Google au nom du compte de service, de sorte que les utilisateurs ne sont 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 présente deux avantages clés:

  • L'autorisation d'accès aux API Google s'effectue lors d'une étape de configuration, ce qui évite les complications associées aux autres flux OAuth 2.0 qui nécessitent des interactions utilisateur.

  • Le flux d'assertion OAuth 2.0 permet à votre application de se faire passer pour d'autres utilisateurs si nécessaire.

Il existe deux façons d'autoriser l'accès avec des comptes de service : directement ou par usurpation d'identité.

Autorisation avec accès direct au compte

Dans 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 à Admin > Access and security (Administration > 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 approprié pour le compte, puis cliquez sur le bouton Ajouter un compte. Notez que les niveaux d'accès "E-mail" et "Administrateur" ne sont pas acceptés pour les comptes de service.

  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 au fichier 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 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 google-ads.yaml file, une chaîne YAML ou dict, ajoutez ce qui suit:

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é

Dans cette option, vous usurpez l'identité d'un utilisateur ayant 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 usurper l'identité que d'utilisateurs (adresses e-mail) du même compte Google Workspace.

Prérequis

  • Un domaine Google Workspace dont vous êtes propriétaire, comme 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 de la console Google APIs 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'est pas compatible avec l'utilisation de comptes de service sans usurpation d'identité.

Configuration de l'accès au compte de service

Étant donné que l'usurpation d'identité de l'utilisateur n'est contrôlée qu'au niveau du domaine, vous devez disposer de votre propre domaine enregistré auprès de Google Workspace pour utiliser des comptes de service et un flux d'assertion avec Google OAuth 2.0. Votre application et ses utilisateurs peuvent alors usurper 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 du 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 avec le 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 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 YAML, google-ads.yaml file ou dict, ajoutez les éléments suivants:

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 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 piraté.