Authentification et autorisation

Comme les autres API Google, l'API Google Ads utilise le protocole OAuth 2.0 pour l'authentification et l'autorisation. OAuth 2.0 permet à votre application cliente de l'API Google Ads d'accéder au compte Google Ads d'un utilisateur sans avoir à gérer ni à stocker ses informations de connexion.

Ce guide explique comment configurer la bibliothèque cliente Java pour l'authentification de l'API Google Ads à l'aide des trois flux OAuth 2.0 les plus courants, et fournit les identifiants nécessaires.

Pour en savoir plus sur le modèle d'accès à l'API Google Ads, consultez le guide sur le modèle d'accès à Google Ads.

Identifiants

Pour accéder à l'API Google Ads, vous avez besoin d'un jeton de développeur, d'identifiants OAuth 2.0 et, dans certains cas, d'un numéro client de connexion.

Jeton de développeur

Le jeton de développeur est associé à un compte administrateur et se trouve dans l'interface Web Google Ads.

Bien que le jeton de développeur soit associé à un compte administrateur, il ne donne pas accès à ce compte. En effet, le jeton de développeur accorde un accès général à l'API, tandis que l'accès au niveau du compte est configuré via OAuth 2.0.

Dans la bibliothèque cliente, le jeton développeur est spécifié par la clé api.googleads.developerToken dans votre fichier ads.properties.

Identifiants OAuth 2.0

Pour vous authentifier en tant qu'utilisateur de compte Google ayant accès à des comptes Google Ads, vous devez fournir un ensemble d'identifiants OAuth 2.0. Le type d'identifiants requis varie en fonction du flux OAuth 2.0 utilisé.

La bibliothèque est compatible avec trois flux :

  • Flux de compte de service
  • Flux d'authentification mono-utilisateur
  • Flux d'authentification multi-utilisateurs

Consultez la présentation d'OAuth pour en savoir plus sur les flux OAuth de l'API Google Ads. Suivez ensuite les instructions du flux qui répond le mieux à vos besoins pour obtenir les identifiants requis.

Numéro client utilisé pour la connexion

Vous pouvez éventuellement spécifier l'ID client d'un compte administrateur qui donne accès au compte de diffusion. Cette valeur doit être spécifiée si vous accédez au compte client via un compte administrateur. Il n'est pas nécessaire de spécifier tous les comptes administrateur dans le chemin d'accès au numéro client. Seul l'ID de l'administrateur de premier niveau que vous utilisez pour les autorisations d'accès est requis. Pour en savoir plus, consultez la documentation associée.

Dans la bibliothèque cliente, l'ID client de connexion est spécifié par la clé api.googleads.loginCustomerId dans votre fichier ads.properties.

Configuration

Vous pouvez configurer la bibliothèque cliente avec un fichier ads.properties, des variables d'environnement ou de manière programmatique. Ce guide se concentre sur l'utilisation d'un fichier ads.properties. Pour en savoir plus sur toutes les options, consultez le guide de configuration.

Si vous utilisez un fichier ads.properties, placez-le dans votre répertoire d'accueil : ~/ads.properties.

Workflows OAuth

Il existe trois workflows courants lorsque vous utilisez l'API Google Ads.

Flux de compte de service

Il s'agit du workflow recommandé si votre workflow ne nécessite aucune interaction humaine. Ce workflow nécessite une étape de configuration, au cours de laquelle l'utilisateur ajoute un compte de service à son compte Google Ads. L'application peut ensuite utiliser les identifiants du compte de service pour gérer le compte Google Ads de l'utilisateur.

Une fois que vous avez le fichier JSON de clé privée, ajoutez les éléments suivants à votre fichier ads.properties :

api.googleads.serviceAccountSecretsPath=PRIVATE_KEY_JSON_FILE_PATH
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
# Only add this key if you are using impersonation to access an account
# other than the service account itself.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE

Pour en savoir plus, consultez le guide sur le workflow des comptes de service.

Flux d'authentification mono-utilisateur

Vous pouvez utiliser ce workflow si vous ne pouvez pas utiliser de comptes de service. Ce workflow nécessite deux étapes de configuration :

  1. Autorisez un seul utilisateur à accéder à tous les comptes à gérer à l'aide de l'API Google Ads. Une approche courante consiste à accorder à l'utilisateur l'accès à un compte administrateur de l'API Google Ads et à associer tous les comptes Google Ads à ce compte administrateur.
  2. L'utilisateur exécute un outil de ligne de commande tel que gcloud ou l'exemple de code GenerateUserCredentials pour autoriser votre application à gérer tous ses comptes Google Ads en son nom.

Une fois ces identifiants obtenus, ajoutez les éléments suivants à votre fichier ads.properties :

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE

Pour en savoir plus, consultez le guide du workflow d'authentification à un seul utilisateur.

Flux d'authentification multi-utilisateurs

Il s'agit du workflow recommandé si votre application permet aux utilisateurs de se connecter et d'autoriser votre application à gérer leurs comptes Google Ads en leur nom. GenerateUserCredentials est un exemple de code en ligne de commande qui montre comment obtenir l'authentification de l'utilisateur au moment de l'exécution pour gérer ses comptes Google Ads en son nom. Vous pouvez utiliser cet exemple de code comme référence pour créer des applications de bureau nécessitant l'authentification de l'utilisateur.

Ajoutez le code ci-dessous à votre fichier ads.properties :

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE

Pour en savoir plus, consultez le guide du workflow d'authentification multi-utilisateur.

Que se passe-t-il si mon utilisateur gère plusieurs comptes ?

Il est courant qu'un utilisateur gère plusieurs comptes Google Ads, soit en y accédant directement, soit par le biais d'un compte administrateur Google Ads. La bibliothèque cliente Java fournit les exemples de code suivants qui illustrent la manière de gérer de tels cas.

  1. L'exemple de code GetAccountHierarchy montre comment récupérer la liste de tous les comptes d'un compte administrateur Google Ads.
  2. L'exemple de code ListAccessibleCustomers montre comment récupérer la liste de tous les comptes auxquels un utilisateur a un accès direct. Ces comptes peuvent ensuite être utilisés comme valeurs valides pour le paramètre LoginCustomerId.

Identifiants par défaut de l'application

La bibliothèque cliente Java est également compatible avec l'authentification à l'aide des identifiants par défaut de l'application.

Cela est particulièrement utile pour le développement local ou pour le développement avec différentes API Google, car vous pouvez réutiliser les mêmes identifiants, à condition qu'ils puissent accéder aux habilitations OAuth 2.0 appropriées.

Pour l'API Google Ads, assurez-vous que les identifiants par défaut de votre application peuvent accéder au champ d'application OAuth 2.0 https://www.googleapis.com/auth/adwords.

Pour utiliser les identifiants par défaut de l'application, définissez l'option api.googleads.useApplicationDefaultCredentials sur true dans votre fichier ads.properties. Lorsque vous utilisez les identifiants par défaut de l'application, l'ID client, le code secret du client et le jeton d'actualisation ne doivent pas être définis.