Исходный код в каталоге src/Google/Ads/GoogleAds/V X библиотеки PHP-клиента Google Ads API, где X — номер версии Google Ads API, автоматически генерируется с помощью генератора GAPIC (Generated API Client) на основе опубликованных proto-файлов .
Сгенерированный исходный код затем модифицируется, чтобы содержать ссылки на характеристики и классы, необходимые для создания клиентских приложений, работающих с API Google Ads, с использованием класса GoogleAdsClient , который создается путем вызова GoogleAdsClientBuilder::build() . Классы GoogleAdsClient и GoogleAdsClientBuilder поддерживаются вручную и находятся в src/Google/Ads/GoogleAds/Lib/V X / .
Сгенерированные местоположения классов
Клиенты сервиса, прошедшие постобработку, находятся в src/Google/Ads/GoogleAds/V X /Services/Client/ (например, V25 ), а соответствующие классы сообщений запроса и ответа (такие как MutateCampaignsRequest и SearchGoogleAdsRequest ) находятся в src/Google/Ads/GoogleAds/V X /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: Свободно владеющие словом
$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])
])
);