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 quindi modificato in modo da contenere riferimenti a tratti e 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 che si trovano in
src/Google/Ads/GoogleAds/Lib/vX/
.
Località dei corsi generate
I client di servizio post-elaborati si trovano in
src/Google/Ads/GoogleAds/VX/Services/Client/
.
Utilizzo
Devi creare un oggetto richiesta e passarlo al client che vuoi utilizzare.
In alcuni casi, hai più di un modo per creare un oggetto richiesta
perché alcuni client hanno anche un metodo pratico denominato build()
per passare
i parametri obbligatori.
Esempio 1.1: metodi con parametri obbligatori
Il seguente codice di esempio mostra come chiamare CampaignService::mutate()
. Tutti
i parametri ($customerId
e $operations
) sono obbligatori, pertanto nel codice viene generato
build()
che accetta entrambi i parametri.
Pattern 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) );
Pattern 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, il build()
generato nel codice accetta solo due parametri
($customerId
e $query
) perché sono parametri obbligatori. Per richiedere il numero totale di risultati che corrispondono alla query ignorando la clausola LIMIT
, devi impostarlo in modo esplicito utilizzando setReturnTotalResultsCount()
. In alternativa,
puoi trasmettere tutti i parametri insieme al costruttore di
SearchGoogleAdsRequest
, come mostrato nel pattern 3.
Pattern 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) );
Pattern 2
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request);
Pattern 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, build()
non viene generato nel codice sorgente in questo caso. Devi creare l'oggetto richiesta manualmente.
Pattern 1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Pattern 2
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) );