Il codice sorgente nella directory src/Google/Ads/GoogleAds/vX
della libreria client PHP dell'API Google Ads, dove X è la versione dell'API Google Ads, viene generato automaticamente utilizzando il Generatore GAPIC (Generated API Client), in base ai file proto
pubblicati.
Il codice sorgente generato viene poi modificato in modo da contenere riferimenti ai tratti e alle classi necessari per creare i client di servizio che funzionano con l'API Google Ads utilizzando la classe GoogleAdsClient
, creata chiamando GoogleAdsClientBuilder::build()
. Sia GoogleAdsClient
che
GoogleAdsClientBuilder
sono corsi creati manualmente e si trovano in
src/Google/Ads/GoogleAds/Lib/vX/
.
Sedi dei corsi generate
I client di servizio post-elaborati si trovano in
src/Google/Ads/GoogleAds/VX/Services/Client/
.
Utilizzo
Devi creare un oggetto request e passarlo al client che vuoi utilizzare.
In alcuni casi, hai più di un modo per creare un oggetto request
perché alcuni client hanno anche un pratico metodo denominato build()
per trasmettere
parametri obbligatori.
Esempio 1.1: metodi con parametri obbligatori
Il seguente esempio di codice mostra come chiamare CampaignService::mutate()
. Tutti
i parametri ($customerId
e $operations
) sono obbligatori, pertanto nel codice viene generato il
build()
che accetta entrambi i parametri.
Motivo 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) );
Motivo 2
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $request = (new MutateCampaignsRequest()) ->setCustomerId($customerId) ->setCampaignOperations($campaignOperations); $response = $campaignServiceClient->mutateCampaigns($request);
Esempio 1.2: metodi con parametri obbligatori e facoltativi
Il seguente codice di esempio chiama GoogleAdsServiceClient::search()
. In questo
esempio, build()
generato nel codice accetta solo due parametri
($customerId
e $query
) perché sono obbligatori. Per richiedere il
numero totale di risultati corrispondenti alla query ignorando la clausola LIMIT
, devi impostarlo esplicitamente utilizzando setReturnTotalResultsCount()
. In alternativa, puoi passare tutti i parametri insieme al costruttore di SearchGoogleAdsRequest
, come mostrato nel pattern 3.
Motivo 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) );
Motivo 2
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request);
Motivo 3
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest([ 'customer_id' => $customerId, 'query' => $query, 'return_total_results_count' => true ]); $response = $googleAdsServiceClient->search($request);
Esempio 2: metodi con solo parametri facoltativi
Questo esempio mostra come chiamare
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
. Poiché tutti
i parametri di GeoTargetConstantServiceClient::suggestGeoTargetConstants()
sono
facoltativi, in questo caso build()
non viene generato nel codice sorgente:
devi creare personalmente l'oggetto della richiesta.
Motivo 1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Motivo 2
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) );