ГАПИК

Исходный код в каталоге src/Google/Ads/GoogleAds/v X клиентской PHP-библиотеки Google Ads API, где X — версия Google Ads API, автоматически генерируется с помощью генератора GAPIC (Generated API Client) на основе опубликованные файлы прототипов .

Затем сгенерированный исходный код модифицируется, чтобы содержать ссылки на признаки и классы, необходимые для создания клиентов службы, которые работают с API Google Рекламы, с использованием класса GoogleAdsClient , который создается путем вызова GoogleAdsClientBuilder::build() . И GoogleAdsClient , и GoogleAdsClientBuilder — это классы, созданные вручную и расположенные в src/Google/Ads/GoogleAds/Lib/vX/ .

Сгенерированные местоположения классов

Клиенты служб постобработки расположены в src/Google/Ads/GoogleAds/VX/Services/Client/ .

Использование

Вы должны создать объект запроса и передать его клиенту, которого хотите использовать. В некоторых случаях у вас есть несколько способов создания объекта запроса, поскольку некоторые клиенты также имеют удобный метод с именем build() для передачи необходимых параметров.

Пример 1.1: Методы с обязательными параметрами

В следующем примере кода показано, как вызвать CampaignService::mutate() . Все параметры ( $customerId и $operations ) являются обязательными параметрами, поэтому в коде генерируется метод build() , который принимает оба параметра.

Узор 1

$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
      $customerId,
      $campaignOperations
    )
);

Узор 2

$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);

Пример 1.2: Методы с обязательными и необязательными параметрами

Следующий пример кода вызывает GoogleAdsServiceClient::search() . В этом примере метод build() , созданный в коде, принимает только два параметра ( $customerId и $query ), поскольку они являются обязательными параметрами. Чтобы запросить общее количество результатов, соответствующих запросу, игнорирующему предложение LIMIT , вам необходимо установить его явно с помощью setReturnTotalResultsCount() . Альтернативно вы можете передать все параметры вместе в конструктор SearchGoogleAdsRequest , как показано в шаблоне 3.

Узор 1

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);

Узор 2

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);

Узор 3

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);

Пример 2: Методы только с необязательными параметрами

В этом примере показано, как вызвать GeoTargetConstantServiceClient::suggestGeoTargetConstants() . Поскольку все параметры GeoTargetConstantServiceClient::suggestGeoTargetConstants() являются необязательными, в этом случае build() не генерируется в исходном коде — вам придется создать объект запроса самостоятельно.

Узор 1

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);

Узор 2

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