Исходный код в каталоге src/Google/Ads/GoogleAds/VX клиентской библиотеки Google Ads API PHP, где X – номер версии Google Ads API, автоматически генерируется с помощью генератора GAPIC (Generated API Client) на основе опубликованных протофайлов.
Затем в сгенерированный исходный код добавляются ссылки на типажи и классы, необходимые для создания клиентов сервиса, которые работают с Google Ads API, с помощью класса GoogleAdsClient, созданного путем вызова GoogleAdsClientBuilder::build(). Классы GoogleAdsClient и GoogleAdsClientBuilder поддерживаются вручную и находятся в src/Google/Ads/GoogleAds/Lib/VX/.
Сгенерированные места проведения занятий
Обработанные клиенты сервиса находятся в src/Google/Ads/GoogleAds/VX/Services/Client/ (например, V26), а соответствующие классы сообщений запроса и ответа (такие как MutateCampaignsRequest и SearchGoogleAdsRequest) – в src/Google/Ads/GoogleAds/VX/Services/. Промежуточные версии API (например, v25.1) создаются в каталоге основной версии (V25).
Использование
Вам нужно создать объект запроса и передать его клиенту сервиса, который вы хотите использовать. В зависимости от того, являются ли параметры обязательными или необязательными, у вас есть несколько способов создания объекта запроса, включая статический фабричный метод build() для передачи обязательных параметров.
Пример 1.1. Методы с обязательными параметрами
В приведенном ниже образце кода показано, как вызвать CampaignServiceClient::mutateCampaigns(). Поскольку $customerId и $campaignOperations являются обязательными параметрами, в классе запроса создается статический фабричный метод build(), который принимает оба параметра.
Шаблон 1. Статический метод сборки (рекомендуется)
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
MutateCampaignsRequest::build(
$customerId,
$campaignOperations
)
);
Шаблон 2. Сеттеры Fluent
$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. Сеттеры Fluent
$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. Сеттеры Fluent (рекомендуется)
$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])
])
);