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 les prendre en charge. Tous ces types d'applications sont compatibles avec l'API Google Ads. Voici d'autres informations techniques à retenir :
Pour accéder à l'API Google Ads, vous devez configurer votre application pour qu'elle s'authentifie pour le champ d'application suivant :
https://www.googleapis.com/auth/adwords
Il est possible que votre application doive 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 de 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.
Vous devez suivre la procédure de validation des applications OAuth et faire certifier votre application.
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 API.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId(OAUTH_CLIENT_ID)
.setClientSecret(OAUTH_CLIENT_SECRET)
.setRefreshToken(REFRESH_TOKEN)
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the developer token which enables API access.
.setDeveloperToken(DEVELOPER_TOKEN)
// Sets the OAuth credentials which provide Google Ads account access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
.build();
``` See the [configuration guide][java-config-guide] for additional options.
.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 API.
GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
DeveloperToken = DEVELOPER_TOKEN,
LoginCustomerId = LOGIN_CUSTOMER_ID,
OAuth2ClientId = OAUTH_CLIENT_ID,
OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
OAuth2RefreshToken = REFRESH_TOKEN,
};
GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);
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 API.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "REFRESH_TOKEN",
"client_id": "OAUTH_CLIENT_ID",
"client_secret": "OAUTH_CLIENT_SECRET"}
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 API.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->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 API.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_CLIENT_ID_HERE'
config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
config.developer_token = 'INSERT_DEVELOPER_TOKEN_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 API.
my $api_client = Google::Ads::GoogleAds::Client->new({
developer_token => "INSERT_DEVELOPER_TOKEN_HERE",
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");
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://www.googleapis.com/oauth2/v3/token
Vous pouvez maintenant 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/v21/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_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"
}