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 poi modificato per contenere riferimenti a tratti e classi necessarie per creare i client di servizio che funzionano con l'API Google Ads utilizzando la classe GoogleAdsClient, creata chiamando GoogleAdsClientBuilder::build(). GoogleAdsClient e GoogleAdsClientBuilder sono classi gestite manualmente che si trovano in src/Google/Ads/GoogleAds/Lib/VX/.

Posizioni dei corsi generate

I client di servizio post-elaborati si trovano in src/Google/Ads/GoogleAds/VX/Services/Client/ (ad esempio, V25) 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 richiesta, incluso un metodo di fabbrica statico build() per passare i parametri obbligatori.

Esempio 1.1: metodi con parametri obbligatori

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

Pattern 1: metodo di compilazione statica (consigliato)

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

Pattern 2: persone che impostano fluentemente

$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 in modo esplicito 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 creazione statico con setter fluent

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

Pattern 2: Fluent setters

$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, build() non viene generato nel codice sorgente in questo caso. Devi costruire l'oggetto richiesta utilizzando i setter o il costruttore di array.

Pattern 1: Fluent setters (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])
    ])
);