Video: guarda il talk sulla gestione degli errori del workshop del 2019
Gli errori possono essere causati da una configurazione errata dell'ambiente, da un bug nel software o da un input non valido da parte di un utente. Indipendentemente dall'origine, dovrai risolvere il problema e correggere il codice o aggiungere una logica per gestire l'errore dell'utente. Questa guida illustra alcune best practice per la risoluzione dei problemi relativi agli errori dell'API Google Ads.
Garantire la connettività
Assicurati di avere accesso all'API Google Ads e di aver eseguito una configurazione corretta. Se la risposta restituisce errori HTTP, assicurati di risolverli attentamente e di raggiungere i servizi che intendi utilizzare dal codice.
Le tue credenziali sono incorporate nella richiesta per consentire ai servizi di autenticarti. Acquisisci familiarità con la struttura delle richieste e delle risposte dell'API Google Ads, soprattutto se gestirai le chiamate senza utilizzare le librerie client. Ogni libreria client viene fornita con istruzioni specifiche su come includere le credenziali nel file di configurazione (consulta il file README della libreria client).
Verifica di utilizzare le credenziali corrette. La nostra guida rapida ti guida nella procedura di acquisizione del set corretto di cui hai bisogno. Ad esempio, il seguente errore di risposta mostra che l'utente ha inviato credenziali di autenticazione non valide:
{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "Authentication error: 2" } ] } }
Se hai seguito questi passaggi e il problema persiste, è il momento di approfondire la risoluzione degli errori dell'API Google Ads.
Determinare il problema
In genere, l'API Google Ads segnala gli errori come oggetto di errore JSON contenente un elenco di errori nella risposta. Questi oggetti forniscono un codice di errore e un messaggio che spiega il motivo. Sono i primi indicatori del possibile problema.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
Tutte le nostre librerie client generano eccezioni che incapsulano errori nella risposta. Acquisire queste eccezioni e stampare i messaggi in un log o in una schermata per la risoluzione dei problemi è un ottimo modo per iniziare. L'integrazione di queste informazioni con gli altri eventi registrati nella applicazione offre una buona panoramica di ciò che potrebbe causare il problema. Una volta identificato l'errore nei log, dovrai capire cosa significa.
Ricerca dell'errore
Consulta la nostra documentazione sugli errori comuni, che illustra gli errori riscontrati più di frequente. descrive il messaggio di errore, i riferimenti API pertinenti e come evitare o gestire l'errore.
Se la nostra documentazione sugli errori comuni non menziona specificamente l'errore, consulta la nostra documentazione di riferimento e cerca la stringa di errore.
Cerca nei nostri canali di assistenza per ottenere l'accesso ad altri sviluppatori che condividono le loro esperienze con l'API. Qualcun altro potrebbe aver riscontrato e risolto il problema che stai riscontrando.
Se riscontri errori non documentati, segnalali alla nostra attenzione nel forum.
Visita il Centro assistenza Google Ads per ricevere assistenza per la risoluzione dei problemi di convalida o dei limiti dell'account. L'API Google Ads eredita le regole e le limitazioni del prodotto Google Ads principale.
I post del blog a volte possono essere un buon riferimento per la risoluzione dei problemi dell'applicazione.
Dopo aver esaminato l'errore, è il momento di determinare la causa principale.
Individuare la causa
Controlla il messaggio di eccezione per determinare la causa dell'errore. Dopo aver esaminato la risposta, controlla la richiesta per individuare una possibile causa. Alcuni messaggi di errore dell'API Google Ads includono un elemento fieldPathElements
nel campo location
di GoogleAdsError
, che indica in quale punto della richiesta si è verificato l'errore. Ad esempio:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
Durante la risoluzione di un problema, è possibile che la tua applicazione fornisca informazioni sbagliate all'API. Ti consigliamo vivamente di utilizzare un ambiente di sviluppo interattivo come Eclipse, un IDE open source senza costi utilizzato principalmente per sviluppare Java, ma con plug-in per altri linguaggi, per semplificare il debug. Ti consente di impostare punti di interruzione e di eseguire il walkthrough del codice riga per riga.
Assicurati che la richiesta corrisponda agli input dell'applicazione (ad esempio, il nome della campagna potrebbe non essere presente nella richiesta). Assicurati di inviare una maschera di campo corrispondente agli aggiornamenti che vuoi apportare. L'API Google Ads supporta gli aggiornamenti sparsi. L'omissione di un campo dalla maschera di campi in una richiesta di modifica indica che l'API deve lasciarlo invariato. Se la tua applicazione recupera un oggetto, apporta una modifica e lo invia di nuovo, potresti scrivere in un campo che non supporta l'aggiornamento. Controlla la descrizione del campo nella documentazione di riferimento per verificare se sono previste limitazioni su quando o se puoi aggiornare il campo.
Come ricevere assistenza
Non è sempre possibile identificare e risolvere il problema autonomamente. Se la fai nel forum, la tua domanda viene esposta a migliaia di sviluppatori che potrebbero aver dovuto affrontare lo stesso problema.
Prova a includere il maggior numero possibile di informazioni nelle query. Gli elementi consigliati includono:
- Richiesta e risposta JSON convalidate. Assicurati di rimuovere informazioni sensibili come il token sviluppatore o AuthToken.
- Snippet di codice. Se hai un problema specifico per una lingua o se stai richiedendo assistenza per l'utilizzo dell'API, includi uno snippet di codice per spiegare cosa stai facendo.
- RequestId. In questo modo, i membri del team per le relazioni con gli sviluppatori di Google possono individuare la tua richiesta se è stata effettuata nell'ambiente di produzione. Ti consigliamo di registrare nei tuoi log il requestId incluso come proprietà nelle eccezioni che incapsulano gli errori di risposta e più contesto rispetto al solo requestId.
- Anche informazioni aggiuntive, come la versione del runtime/dell'interprete e la piattaforma, possono essere utili per la risoluzione dei problemi.
Risolvere il problema
Ora che hai risolto il problema e hai trovato una soluzione, è il momento di apportare la modifica e testare la correzione su un account di test (opzione preferita) o di produzione (se il bug si applica solo ai dati di un account di produzione specifico).
Valutare la condivisione
Se hai pubblicato una domanda nel forum relativa a un errore che non era mai stato riscontrato prima e hai trovato la soluzione, ti consigliamo di aggiungerla al thread. La prossima volta che uno sviluppatore avrà lo stesso problema, potrà risolverlo subito.
Passaggi successivi
Ora che hai risolto il problema, hai notato dei modi per migliorare il codice per evitarlo?
La creazione di un buon insieme di test delle unità contribuisce a migliorare notevolmente la qualità e l'affidabilità del codice. Velocizza anche il processo di test delle nuove modifiche per garantire che non interrompano le funzionalità precedenti. Una buona strategia di gestione degli errori è inoltre fondamentale per visualizzare tutti i dati necessari per la risoluzione dei problemi.