Recupero dei riferimenti a tutte le varie classi proto richieste per utilizzare l'API in Il linguaggio Python può essere dettagliato e richiede una comprensione intrinseca del o effettuare spesso un cambio di contesto per fare riferimento ai protos o alla documentazione.
I metodi get_service
e get_type
del client
Questi due metodi getter consentono di recuperare qualsiasi servizio o tipo di oggetto
tramite Google Cloud CLI
o tramite l'API Compute Engine. Il metodo get_service
viene utilizzato per recuperare i client di servizio. get_type
è utilizzato per qualsiasi altro oggetto. Le classi del client di servizio sono definite nel codice
nel percorso della versione google/ads/googleads/v*/services/services/
e tutte
sono definiti nelle varie categorie di oggetti,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Viene generato tutto il codice sotto la directory della versione, quindi è la
di utilizzare questi metodi invece di importare direttamente gli oggetti, nel caso in cui
della struttura delle modifiche del codebase.
Ecco un esempio di come utilizzare il metodo get_service
per recuperare un'istanza
del client GoogleAdsService
.
from google.ads.googleads.client import GoogleAdsClient
# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")
Ecco un esempio di come utilizzare il metodo get_type
per recuperare un
Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")
Enum
Sebbene sia possibile utilizzare il metodo get_type
per recuperare le enum,
L'istanza GoogleAdsClient
ha anche un attributo enums
che in modo dinamico
carica le enum utilizzando lo stesso meccanismo del metodo get_type
. Questa interfaccia
è pensato per essere più semplice e più facile da leggere rispetto all'utilizzo di get_type
:
client = GoogleAdsClient.load_from_storage(version=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
I campi degli oggetti Proto che sono enum sono rappresentati in Python dal
enum. Ciò significa che
possa leggere facilmente il valore
del membro. Utilizzo dell'istanza campaign
dall'esempio precedente in un repl Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
A volte è utile conoscere il nome del campo che corrisponde alla
come mostrato sopra. Puoi accedere a queste informazioni utilizzando name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
L'interazione con le enumerazioni varia a seconda che tu abbia o meno il
use_proto_plus
impostata su true
o false
. Per maggiori dettagli sulle due interfacce, vedi
la documentazione relativa ai messaggi protobuf.
Controllo delle versioni
Più versioni dell'API vengono mantenute contemporaneamente. Mentre
v17
potrebbe essere la versione più recente, mentre le versioni precedenti sono
accessibili fino al tramonto. La libreria includerà un protocollo separato
e le classi di messaggi che corrispondono a ogni versione attiva dell'API. Per accedere a un messaggio
per una versione specifica, fornisci il parametro della parola chiave version
quando
inizializzare un client in modo che restituisca sempre un'istanza da quel determinato
versione:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v17/")
# The Campaign instance will be from the v17 version of the API.
campaign = client.get_type("Campaign")
È anche possibile specificare la versione durante la chiamata di get_service
e
get_type
metodi. Questa operazione sostituirà la versione fornita
Inizializzazione del client:
client = GoogleAdsService.load_from_storage()
# This will load the v17 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v17")
client = GoogleAdsService.load_from_storage(version="v17")
# This will load the v15 version of a Campaign.
campaign = client.get_type("Campaign", version="v15")
Se non viene fornito alcun parametro parola chiave version
, la libreria utilizzerà per impostazione predefinita
all'ultima versione. Un elenco aggiornato delle versioni più recenti e di altre versioni disponibili
disponibile nella sezione di navigazione a sinistra della
documentazione di riferimento API.