Come altre API di Google, l'API Google Ads utilizza il protocollo OAuth 2.0 per l'autenticazione e l'autorizzazione. OAuth 2.0 consente all'applicazione client dell'API Google Ads di accedere all'account Google Ads di un utente senza dover gestire o archiviare le informazioni di accesso dell'utente.
Informazioni sul modello di accesso a Google Ads
Per lavorare in modo efficace con l'API Google Ads, devi comprendere come funziona il modello di accesso a Google Ads. Ti consigliamo di leggere la guida al modello di accesso a Google Ads.
Flussi di lavoro OAuth
Esistono tre flussi di lavoro comuni utilizzati quando si lavora con l'API Google Ads.
Flusso del service account
Questo è il flusso di lavoro consigliato se il tuo flusso di lavoro non richiede alcuna interazione umana. Questo flusso di lavoro richiede un passaggio di configurazione, in cui l'utente aggiunge un service account al proprio account Google Ads. L'app può quindi utilizzare le credenziali del service account per gestire l'account Google Ads dell'utente. La libreria PHP può essere configurata come segue:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('PATH_TO_CREDENTIALS_JSON')
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->build();
Per saperne di più, consulta la guida al flusso di lavoro del service account.
Flusso di autenticazione per un singolo utente
Questo flusso di lavoro può essere utilizzato se non puoi utilizzare i service account. Questo flusso di lavoro richiede due passaggi di configurazione:
- Concedi a un singolo utente l'accesso a tutti gli account da gestire utilizzando l'API Google Ads. Un approccio comune consiste nel concedere all'utente un account amministratore dell'API Google Ads e collegare tutti gli account Google Ads a questo account amministratore.
L'utente esegue quindi uno strumento a riga di comando come
GenerateUserCredentialsper autorizzare la tua app a gestire tutti i suoi account Google Ads per suo conto.
La libreria può essere inizializzata utilizzando le credenziali OAuth 2.0 dell'utente come segue:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID')
->withClientSecret('INSERT_CLIENT_SECRET')
->withRefreshToken('INSERT_REFRESH_TOKEN')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Per saperne di più, consulta la guida al flusso di lavoro di autenticazione per un singolo utente.
per ulteriori informazioni.
Flusso di autenticazione multiutente
Questo è il flusso di lavoro consigliato se la tua app consente agli utenti di accedere e autorizzare la tua app a gestire i propri account Google Ads per loro conto. La tua app crea e gestisce le credenziali utente OAuth 2.0. La libreria può essere inizializzata utilizzando le credenziali dell'utente come segue:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID')
->withClientSecret('INSERT_CLIENT_SECRET')
->withRefreshToken('INSERT_REFRESH_TOKEN')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Per saperne di più, consulta la guida al flusso di lavoro di autenticazione multiutente.
per ulteriori informazioni.
Che cosa succede se il mio utente gestisce più account?
È normale che un utente gestisca più di un account Google Ads, tramite l'accesso diretto agli account o tramite un account amministratore Google Ads. La libreria client PHP fornisce i seguenti esempi di codice che illustrano come gestire questi casi.
L'esempio di codice GetAccountHierarchy
mostra come recuperare l'elenco di tutti gli account di un account amministratore Google Ads.
L'esempio di codice ListAccessibleCustomers
mostra come recuperare l'elenco di tutti gli account a cui un utente ha accesso diretto. Questi account possono essere utilizzati come valori validi per l'impostazione
loginCustomerId.