GAPIC

Il codice sorgente nella directory src/Google/Ads/GoogleAds/VX della libreria client PHP dell'API Google Ads, dove X è il numero di 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 i riferimenti ai tratti e alle classi necessari per creare i client di servizio che funzionano con l'API Google Ads utilizzando la classe GoogleAdsClient, che viene creata chiamando GoogleAdsClientBuilder::build(). Sia GoogleAdsClient che GoogleAdsClientBuilder sono classi gestite 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/ (ad esempio V26) e le classi di messaggi di richiesta e risposta corrispondenti (come MutateCampaignsRequest e SearchGoogleAdsRequest) si trovano in src/Google/Ads/GoogleAds/VX/Services/. Le release secondarie dell'API (ad esempio v25.1) vengono generate all'interno della directory della versione principale (V25).

Utilizzo

Devi creare un oggetto richiesta e passarlo al client di servizio che vuoi utilizzare. A seconda che i parametri siano obbligatori o facoltativi, hai diversi modi per creare un oggetto di richiesta, tra cui un metodo factory build() statico per passare i parametri obbligatori.

Esempio 1.1: metodi con parametri obbligatori

Il seguente codice campione mostra come chiamare CampaignServiceClient::mutateCampaigns(). Poiché sia $customerId che $campaignOperations sono parametri obbligatori, nella classe della richiesta viene generato un metodo statico di fabbrica build() che accetta entrambi i parametri.

Pattern 1: metodo di build statico (consigliato)

$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
        $customerId,
        $campaignOperations
    )
);

Pattern 2: setter fluent

$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 campione chiama GoogleAdsServiceClient::search(). In questo esempio, il metodo build() generato 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, puoi impostarlo esplicitamente utilizzando setReturnTotalResultsCount(). In alternativa, puoi passare tutti i parametri insieme in un array associativo al costruttore di SearchGoogleAdsRequest, come mostrato nel Pattern 3.

Pattern 1: metodo di build statico con setter fluent

$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);

Pattern 2: setter fluent

$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);

Pattern 3: costruttore di array

$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 l'oggetto della richiesta utilizzando i setter o il costruttore dell'array.

Pattern 1: setter fluent (consigliato)

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);

Pattern 2: costruttore di array

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);