GAPIC

O código-fonte no diretório src/Google/Ads/GoogleAds/vX da biblioteca de cliente PHP da API Google Ads, em que X é a versão da API Google Ads, é gerado automaticamente usando o gerador de clientes de API gerados (GAPIC), com base nos arquivos de proto publicados.

O código-fonte gerado é modificado para conter referências a características e classes necessárias para criar os clientes de serviço que funcionam com a API Google Ads usando a classe GoogleAdsClient, que é criada chamando GoogleAdsClientBuilder::build(). GoogleAdsClient e GoogleAdsClientBuilder são classes criadas manualmente localizadas em src/Google/Ads/GoogleAds/Lib/vX/.

Locais das classes geradas

Os clientes de serviço pós-processados estão localizados em src/Google/Ads/GoogleAds/VX/Services/Client/.

Uso

É necessário criar um objeto de solicitação e transmiti-lo ao cliente que você quer usar. Em alguns casos, você tem mais de uma maneira de criar um objeto de solicitação, porque alguns clientes também têm um método conveniente chamado build() para transmitir parâmetros required.

Exemplo 1.1: métodos com parâmetros obrigatórios

O exemplo de código abaixo mostra como chamar CampaignService::mutate(). Tudo ($customerId e $operations) são parâmetros obrigatórios. Portanto, os Um build() que aceita ambos os parâmetros é gerado no código.

Padrão 1

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

Padrão 2

$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);

Exemplo 1.2: métodos com parâmetros obrigatórios e opcionais

O exemplo de código a seguir chama GoogleAdsServiceClient::search(). Neste Por exemplo, o build() gerado no código aceita apenas dois parâmetros. ($customerId e $query) porque são parâmetros obrigatórios. Para solicitar o número total de resultados que correspondem à consulta ignorando a cláusula LIMIT, você precisa defini-la explicitamente usando setReturnTotalResultsCount(). Como alternativa, você pode passar todos os parâmetros juntos para o construtor de SearchGoogleAdsRequest, conforme mostrado no padrão 3.

Padrão 1

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

Padrão 2

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

Padrão 3

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);

Exemplo 2: métodos com apenas parâmetros opcionais

Este exemplo mostra como chamar GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Como todos os parâmetros de GeoTargetConstantServiceClient::suggestGeoTargetConstants() são opcional, build() não será gerado no código-fonte, nesse caso, terá que criar o objeto de solicitação por conta própria.

Padrão 1

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

Padrão 2

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