O código-fonte no diretório src/Google/Ads/GoogleAds/VX
da biblioteca de cliente da API Google Ads para PHP, em que X é o número da versão
da API Google Ads, é gerado automaticamente usando o gerador GAPIC (Generated API
Client), 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 classes mantidas manualmente localizadas em
src/Google/Ads/GoogleAds/Lib/VX/.
Locais de classes geradas
Os clientes de serviço pós-processados estão localizados em
src/Google/Ads/GoogleAds/VX/Services/Client/ (por
exemplo, V26), e as classes de mensagem de solicitação e
resposta correspondentes (como MutateCampaignsRequest e
SearchGoogleAdsRequest) estão localizadas em
src/Google/Ads/GoogleAds/VX/Services/. As versões secundárias da API (como v25.1) são geradas dentro do diretório da versão principal (V25).
Uso
É preciso criar um objeto de solicitação e transmiti-lo ao cliente de serviço que você quer
usar. Dependendo de os parâmetros serem obrigatórios ou opcionais, há várias
maneiras de criar um objeto de solicitação, incluindo um método de fábrica build() estático
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
CampaignServiceClient::mutateCampaigns(). Como $customerId e
$campaignOperations são parâmetros obrigatórios, um método de fábrica build() estático
que aceita os dois parâmetros é gerado na classe de solicitação.
Padrão 1: método de build estático (recomendado)
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
MutateCampaignsRequest::build(
$customerId,
$campaignOperations
)
);
Padrão 2: setters fluentes
$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 método build() gerado 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, é
possível defini-lo explicitamente usando setReturnTotalResultsCount(). Como alternativa, é possível transmitir todos os parâmetros juntos em uma matriz associativa para o construtor de SearchGoogleAdsRequest, conforme mostrado no Padrão 3.
Padrão 1: método de build estático com setters fluentes
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
SearchGoogleAdsRequest::build($customerId, $query)
->setReturnTotalResultsCount(true)
);
Padrão 2: setters fluentes
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
->setCustomerId($customerId)
->setQuery($query)
->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);
Padrão 3: construtor de matrizes
$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. É necessário
construir o objeto de solicitação usando setters ou o construtor de matriz.
Padrão 1: setters fluentes (recomendado)
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
->setLocale($locale)
->setCountryCode($countryCode)
->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
$geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Padrão 2: construtor de matrizes
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
new SuggestGeoTargetConstantsRequest([
'locale' => $locale,
'country_code' => $countryCode,
'location_names' => new LocationNames(['names' => $locationNames])
])
);