Service e Type Getter

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.