Workflow d'authentification multi-utilisateur

Dans le workflow d'authentification multi-utilisateur, vous créez votre propre flux OAuth pour authentifier vos utilisateurs. La documentation Google Identity présente plusieurs types d'applications, ainsi que la configuration du projet de la console Google APIs nécessaire pour prendre en charge chaque type d'application. Tous ces types d'applications sont compatibles avec l'API Google Ads. Voici d'autres détails techniques à prendre en compte :

  • Configurez votre application pour qu'elle demande le niveau d'accès OAuth 2.0 suivant :

    https://www.googleapis.com/auth/adwords
    
  • Votre application peut avoir à effectuer des appels d'API au nom de l'utilisateur lorsqu'il est hors connexion. Un scénario courant consiste à télécharger les métriques du compte hors connexion pour générer des rapports et effectuer des analyses de compte. C'est pourquoi nous vous recommandons de demander un accès hors connexion OAuth.

  • Suivez la procédure de validation de l'application OAuth pour faire valider votre application.

Présentation du workflow

La mise en œuvre d'un workflow d'authentification multi-utilisateur implique trois étapes principales :

  1. Dirigez les utilisateurs vers l'écran de consentement OAuth : redirigez chaque utilisateur vers le point de terminaison d'autorisation OAuth 2.0 de Google en demandant le champ d'application https://www.googleapis.com/auth/adwords et l'accès hors connexion. Les utilisateurs doivent s'authentifier avec une clé d'accès pour terminer le flux d'autorisation et générer un jeton d'actualisation.
  2. Échangez le code d'autorisation contre des jetons : une fois que l'utilisateur a accordé l'autorisation, capturez le code d'autorisation renvoyé et échangez-le contre un jeton d'accès et un jeton d'actualisation.
  3. Stocker les jetons et initialiser le client au moment de l'exécution : stockez de manière sécurisée le jeton d'actualisation de chaque utilisateur dans votre datastore et transmettez les identifiants de l'utilisateur lors de l'initialisation de votre instance GoogleAdsClient au moment de l'exécution.

Configuration de la bibliothèque cliente

Une fois que vous avez autorisé l'utilisateur et obtenu les identifiants OAuth 2.0, vous pouvez configurer la bibliothèque cliente en suivant les instructions de l'onglet correspondant à votre langage de programmation.

Java

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
        .setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
        .setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the OAuth credentials which provide Google Ads account
        // access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
        .build();

Pour découvrir d'autres options, consultez le guide de configuration.

.NET

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};

GoogleAdsClient client = new GoogleAdsClient(config);

Pour découvrir d'autres options, consultez le guide de configuration.

Python

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    "client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
    "client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    "use_proto_plus": True,
}

client = GoogleAdsClient.load_from_dict(credentials)

Pour découvrir d'autres options, consultez le guide de configuration.

PHP

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Pour découvrir d'autres options, consultez le guide de configuration.

Ruby

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
  config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
  config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
  config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end

Pour découvrir d'autres options, consultez le guide de configuration.

Perl

Vous pouvez initialiser votre instance GoogleAdsClient au moment de l'exécution, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous effectuez des appels d'API vers les comptes.

my $api_client = Google::Ads::GoogleAds::Client->new({
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");

Pour découvrir d'autres options, consultez le guide de configuration.

curl

Commencez par utiliser un client HTTP pour récupérer un jeton d'accès OAuth 2.0. Ce guide utilise la commande curl.

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://oauth2.googleapis.com/token

Vous pouvez utiliser le jeton d'accès dans vos appels d'API. L'exemple suivant montre comment exécuter un rapport sur les campagnes à l'aide de la méthode GoogleAdsService.SearchStream pour récupérer les campagnes de votre compte. Ce guide ne couvre pas les détails des rapports.

curl -i -X POST \
  https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

Le contenu de query.json est le suivant :

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}