Dans le workflow d'authentification multi-utilisateur, vous créez votre propre flux OAuth pour authentifier vos utilisateurs. Plusieurs types d'applications sont abordés dans la documentation Google Identity, ainsi que la configuration du projet Google Cloud Console dont vous avez besoin pour prendre en charge ce type d'application. Tous ces types d'applications sont compatibles avec l'API Google Ads. Voici les détails techniques supplémentaires à prendre en compte :
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/adwordsIl 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 des 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.
Vous devez suivre la procédure de validation de l'application 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, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes.
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, à l'aide des identifiants que vous avez obtenus de l'utilisateur dont vous appelez les comptes.
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 connaître les 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 appelez les comptes.
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 connaître les 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 appelez les comptes.
$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 connaître les 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 appelez les comptes.
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 connaître les 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 appelez les comptes.
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 connaître les 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/tokenVous 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
GoogleAdsService.SearchStream méthode 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/v24/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"
}