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 de serveur à serveur 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 à 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 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
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.
Connectez-vous à votre compte Google Ads en tant qu'administrateur. Accédez à Outils et paramètres > Configuration > Accès et sécurité.
Cliquez sur le bouton + sous l'onglet Utilisateurs.
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.
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 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 dont vous êtes propriétaire, comme
mydomain.com
oumybusiness.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'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 alors usurper l'identité de n'importe quel utilisateur du domaine.
Commencez par créer un compte de service et des identifiants.
Téléchargez la clé de compte de service au format JSON et notez l'ID du compte de service.
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.
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 google-ads.yaml file
, une chaîne YAML 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 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.