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 GAPIC (cliente de API gerado), com base nos arquivos 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 turmas criadas manualmente localizadas em src/Google/Ads/GoogleAds/Lib/vX/.

Locais de classes gerados

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

Uso

Você precisa criar um objeto de solicitação e transmiti-lo ao cliente que quer usar. Em alguns casos, há 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 obrigatórios.

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

O exemplo de código a seguir mostra como chamar CampaignService::mutate(). Todos os parâmetros ($customerId e $operations) são obrigatórios. Portanto, o build() que aceita os dois 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 exemplo, o build() gerado no código aceita apenas dois parâmetros ($customerId e $query) porque são obrigatórios. Para solicitar o número total de resultados que correspondem à consulta ignorando a cláusula LIMIT, defina explicitamente usando setReturnTotalResultsCount(). Como alternativa, transmita 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 opcionais, build() não é gerado no código-fonte nesse caso. Você precisa 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])
    ])
);