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 .NET de l'API Google Ads d'accéder au compte Google Ads d'un utilisateur sans avoir à gérer ni à stocker ses identifiants.

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

Il s'agit du workflow recommandé si votre application 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.

Configurez la bibliothèque comme suit :

// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};

// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);

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

Flux d'authentification à utilisateur unique

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.

Initialisez la bibliothèque à l'aide des identifiants OAuth 2.0 de l'utilisateur comme suit :

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};

GoogleAdsClient client = new GoogleAdsClient(config);

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 de manière dynamique par session ou requête utilisateur, puis initialise un GoogleAdsClient avec le jeton d'actualisation de l'utilisateur actif :

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = userSession.LoginCustomerId,
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = userSession.RefreshToken
};

GoogleAdsClient client = new GoogleAdsClient(config);

À partir de Google.Ads.GoogleAds v27.0.0, vous pouvez également injecter un objet ICredential ou GoogleCredential préconfiguré directement sur GoogleAdsConfig à l'aide de la propriété Credentials.

Pour en savoir plus, consultez le guide sur le workflow d'authentification multi-utilisateurs La bibliothèque cliente .NET inclut deux exemples de code à titre de référence :

  1. L'exemple de code AuthenticateInAspNetCoreApplication montre comment créer une application Web qui obtient l'authentification de l'utilisateur au moment de l'exécution pour gérer ses comptes Google Ads en son nom. L'application utilise les identifiants OAuth 2.0 de l'utilisateur pour récupérer les campagnes de son compte Google Ads.
  2. L'exemple de code de ligne de commande GenerateUserCredentials illustre 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 qui nécessitent l'authentification de l'utilisateur.

Que faire 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 via un compte administrateur Google Ads. La bibliothèque cliente .NET fournit les exemples de code suivants qui montrent comment gérer ces cas :

  1. L'exemple de code GetAccountHierarchy montre comment récupérer la liste de tous les comptes associés à 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 .NET (v24.1.0 et versions ultérieures) 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 champs d'application OAuth 2.0 requis.

Pour l'API Google Ads, assurez-vous que vos identifiants par défaut de l'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' UseApplicationDefaultCredentials option sur true dans votre GoogleAdsConfig (ou définissez la variable d'environnement USE_APPLICATION_DEFAULT_CREDENTIALS=true lors du chargement de la configuration avec config.LoadFromEnvironmentVariables()):

GoogleAdsConfig config = new GoogleAdsConfig()
{
    UseApplicationDefaultCredentials = true,
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);

Pour en savoir plus sur les options disponibles pour configurer la bibliothèque cliente .NET, consultez la page de configuration.