Исходный код в каталоге 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]) ]) );