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