GAPIC

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])
    ])
);