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