Dans le workflow d'authentification multi-utilisateur, vous créez votre propre flux OAuth pour authentifier vos utilisateurs. La documentation Google Identity aborde plusieurs types d'applications, ainsi que la configuration du projet Google Cloud Console dont vous avez besoin pour prendre en charge chaque type d'application. Tous ces types d'applications sont compatibles avec l'API Google Ads. Voici d'autres informations techniques à prendre en compte :
Configurez votre application pour qu'elle demande le champ d'application OAuth 2.0 suivant :
https://www.googleapis.com/auth/adwordsIl est possible que votre application doive effectuer des appels d'API au nom de l'utilisateur lorsqu'il est hors connexion. Il est courant de télécharger les métriques de compte hors connexion pour générer des rapports et effectuer des analyses de compte. Pour cette raison, nous vous recommandons de demander un accès hors connexion OAuth.
Suivez la procédure de validation des applications 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 :
- Redirigez 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/adwordset l'accès hors connexion. - É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.
- Stockez les jetons et initialisez 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
GoogleAdsClientau 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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
$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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
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, en utilisant les identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes d'API.
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/tokenVous 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/v25/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"
}