Authentification et autorisation

Comme d'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.

Comprendre le modèle d'accès Google Ads

Pour utiliser efficacement l'API Google Ads, vous devez comprendre son modèle d'accès. Consultez le guide sur le modèle d'accès Google Ads.

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.

Voici comment configurer OAuth2 pour l'accès à l'API à l'aide de vos propres identifiants avec un compte de service dans la bibliothèque cliente Perl :

  1. Créer des identifiants OAuth2 :

    Suivez les instructions pour générer un compte de service et un fichier de clé JSON file.

  2. Configurer la bibliothèque cliente :

    Définissez le chemin JSON de la clé privée (et impersonatedEmail facultatif si vous utilisez la délégation au niveau du domaine Google Workspace) dans votre configuration. Si vous utilisez un fichier googleads.properties, ajoutez les éléments suivants :

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    # Optional unless using Google Workspace domain-wide delegation:
    impersonatedEmail=IMPERSONATED_EMAIL
    loginCustomerId=LOGIN_CUSTOMER_ID
    

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

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=KEY_FILE_PATH
    export GOOGLE_ADS_IMPERSONATED_EMAIL=\
    IMPERSONATED_EMAIL
    export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
    

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

Flux d'authentification à utilisateur unique

Ce workflow peut être utilisé si vous ne pouvez pas utiliser de comptes de service. Il nécessite deux étapes de configuration :

  1. Accorder à un seul utilisateur l'accès à 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 l' generate_user_credentials.pl exemple de code pour autoriser votre application à gérer tous ses comptes Google Ads en son nom.

Les étapes suivantes exécutent un exemple de code interactif, qui vous demande ensuite de fournir des entrées.

  1. Dans un terminal, exécutez l' generate_user_credentials.pl exemple dans le examples répertoire. Vous pouvez modifier les valeurs INSERT_XXX_HERE dans l'exemple avant de l'exécuter ou utiliser les arguments de ligne de commande -client_id pour l'ID client et -client_secret pour le code secret du client.

    perl generate_user_credentials.pl \
      -client_id OAUTH_CLIENT_ID \
      -client_secret OAUTH_CLIENT_SECRET
    
  2. Cet exemple de code vous invite à accéder à une URL où vous devez autoriser l'application à accéder à votre compte Google Ads en votre nom.

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline...
    

    Accédez à l'URL dans une session de navigation privée ou une fenêtre de navigation privée. Connectez-vous avec le compte Google que vous utilisez pour accéder à Google Ads. Il s'agit généralement d'un compte de messagerie qui a accès à un compte administrateur Google Ads contenant tous les comptes que vous devez gérer dans sa hiérarchie de comptes. Cliquez sur Continuer dans l'écran de consentement OAuth 2.0.

    Écran de consentement OAuth 2.0

    Vous serez redirigé vers une page contenant un message indiquant que l'autorisation a réussi.

    Authorization code was successfully retrieved.
    
  3. Revenez à la console où vous exécutez l'exemple de code. Vous verrez que l'exemple de code est terminé et affiche votre jeton d'actualisation et quelques instructions, suivies de celles que vous devrez suivre pour configurer la bibliothèque cliente :

    Replace the following keys and values in your googleads.properties
    configuration file:
    
    clientId=***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. Appuyez sur Ctrl + C pour mettre fin au processus. Copiez ensuite le jeton d'actualisation généré, ainsi que l'ID client et le code secret du client, dans votre fichier googleads.properties ou enregistrez-le ailleurs pour l'utiliser si vous instanciez la bibliothèque au moment de l'exécution.

La bibliothèque peut être initialisée à l'aide des identifiants OAuth 2.0 de l'utilisateur en définissant les éléments suivants dans googleads.properties :

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Vous pouvez également utiliser des variables d'environnement :

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Pour en savoir plus, consultez le guide sur le workflow d'authentification à utilisateur unique pour en savoir plus.

Flux d'authentification multi-utilisateurs

Il s'agit du workflow recommandé si votre application permet aux utilisateurs de se connecter et de l'autoriser à gérer leurs comptes Google Ads en leur nom. Votre application crée et gère les identifiants utilisateur OAuth 2.0.

Pour Perl, vous implémentez généralement un flux d'application Web dans lequel votre application gère la redirection OAuth 2.0 et la gestion des jetons. L'utilisateur s'authentifie via votre application, qui stocke et utilise son jeton d'actualisation pour effectuer des appels d'API en son nom.

La configuration pour l'utilisation des identifiants obtenus est la même que pour le flux d'authentification à utilisateur unique :

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Vous pouvez également utiliser des variables d'environnement :

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Pour en savoir plus, consultez le guide sur le workflow d'authentification multi-utilisateurs

Que faire si mon utilisateur gère plusieurs comptes ?

Il est courant qu'un utilisateur gère plusieurs comptes Google Ads, soit par accès direct aux comptes, soit par le biais d'un compte administrateur Google Ads. La bibliothèque cliente Perl fournit des exemples qui illustrent comment gérer ces cas :

  1. L'get_account_hierarchy.pl exemple montre comment récupérer la liste de tous les comptes sous un compte administrateur Google Ads.
  2. L'exemple list_accessible_customers.plmontre 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 dans le fichier googleads.properties ou la variable d'environnement GOOGLE_ADS_LOGIN_CUSTOMER_ID.