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 é o número da versão da API Google Ads, é gerado automaticamente usando o gerador GAPIC (cliente de API gerado), 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 classe gerados

Os clientes de serviço pós-processados estão localizados em src/Google/Ads/GoogleAds/VX/Services/Client/ (por exemplo, V25), e as classes de mensagens 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 no diretório da versão principal (V25).

Uso

É necessário 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 estático build() 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 são obrigatórios. Para solicitar o número total de resultados que correspondem à consulta, ignorando a cláusula LIMIT, defina explicitamente usando setReturnTotalResultsCount(). Como alternativa, você pode 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 matriz

$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. Você precisa 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 array

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);