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 turmas criadas manualmente localizadas em src/Google/Ads/GoogleAds/Lib/vX/.

Locais de classe 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 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(). 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 eles são 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, é possível transmitir todos os parâmetros ao 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 neste caso. Você precisa criar o objeto de solicitação.

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