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 de l'API Google Ads d'accéder au compte Google Ads d'un utilisateur sans avoir à gérer ni à stocker ses informations de connexion.
Comprendre le modèle d'accès Google Ads
Pour utiliser efficacement l'API Google Ads, vous devez comprendre le fonctionnement du modèle d'accès Google Ads. 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.
Parcours du compte de service
Il s'agit du workflow recommandé si votre workflow 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 alors utiliser les identifiants du compte de service pour gérer le compte Google Ads de l'utilisateur.
La bibliothèque PHP peut être configurée comme suit :
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
// Optional in v32.1.0 and later (defaults to
// 'https://www.googleapis.com/auth/adwords').
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->build();
Pour en savoir plus, consultez le guide sur le workflow des comptes de service.
Flux d'authentification pour un seul utilisateur
Vous pouvez utiliser ce workflow si vous ne pouvez pas utiliser de comptes de service. Ce workflow nécessite deux étapes de configuration :
- Accordez à un seul utilisateur l'accès à 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.
- Cet utilisateur exécute ensuite un outil de ligne de commande tel que
GenerateUserCredentialspour autoriser votre application à gérer tous ses comptes Google Ads en son nom.
La bibliothèque peut être initialisée à l'aide des identifiants OAuth 2.0 de l'utilisateur comme suit :
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Pour en savoir plus, consultez le guide du workflow d'authentification à un seul utilisateur.
Flux d'authentification multi-utilisateur
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 de manière dynamique les identifiants utilisateur OAuth 2.0 pour chaque session utilisateur authentifiée. La bibliothèque peut être initialisée à l'aide des identifiants de l'utilisateur connecté comme suit :
// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken($userRefreshToken)
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId($userLoginCustomerId)
->build();
Pour en savoir plus, consultez le guide du workflow d'authentification multi-utilisateur.
Identifiants par défaut de l'application
La bibliothèque cliente PHP est également compatible avec l'authentification à l'aide des identifiants par défaut de l'application (ADC). Lorsque ni les identifiants du mode Application (clientId, clientSecret, refreshToken) ni ceux du mode Compte de service (jsonKeyFilePath) ne sont définis sur OAuth2TokenBuilder, l'appel de build() revient automatiquement aux identifiants par défaut de l'application :
$oAuth2Credential = (new OAuth2TokenBuilder())->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Gérer 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 PHP fournit les exemples de code suivants qui illustrent comment gérer de tels cas :
- L'exemple de code
GetAccountHierarchymontre comment récupérer la liste de tous les comptes d'un compte administrateur Google Ads. - L'exemple de code
ListAccessibleCustomersmontre 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ètreloginCustomerId.