GAPIC

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