Kod źródłowy w katalogu src/Google/Ads/GoogleAds/vX biblioteki klienta PHP interfejsu Google Ads API (gdzie X to wersja interfejsu Google Ads API) jest generowany automatycznie za pomocą Generatora GAPIC (wygenerowanego klienta interfejsu API) na podstawie opublikowanych plików proto.
Wygenerowany kod źródłowy jest następnie modyfikowany, aby zawierał odwołania do atrybutów i klas wymaganych do utworzenia klientów usługi, którzy współpracują z interfejsem Google Ads API za pomocą klasy GoogleAdsClient, która jest tworzona przez wywołanie funkcji GoogleAdsClientBuilder::build(). Zarówno GoogleAdsClient, jak i
GoogleAdsClientBuilder to ręcznie utworzone zajęcia w
src/Google/Ads/GoogleAds/Lib/vX/
Wygenerowane lokalizacje zajęć
Przetworzone klienty usługi znajdują się w
src/Google/Ads/GoogleAds/VX/Services/Client/
Wykorzystanie
Musisz utworzyć obiekt żądania i przekazać go klientowi, którego chcesz użyć.
W niektórych przypadkach masz więcej niż 1 sposób tworzenia obiektu żądania, ponieważ niektórzy klienci mają też do dyspozycji wygodną metodę o nazwie build() do przekazywania parametrów wymaganych.
Przykład 1.1. Metody z wymaganymi parametrami
Ten przykładowy kod pokazuje, jak wywołać funkcję CampaignService::mutate(). Wszystkie
($customerId i $operations) są wymaganymi parametrami, więc parametr
W kodzie generowany jest kod build(), który akceptuje oba parametry.
Wzór 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) );
Wzór 2
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $request = (new MutateCampaignsRequest()) ->setCustomerId($customerId) ->setCampaignOperations($campaignOperations); $response = $campaignServiceClient->mutateCampaigns($request);
Przykład 1.2: Metody z wymaganymi i opcjonalnymi parametrami
Poniższy przykładowy kod wywołuje funkcję GoogleAdsServiceClient::search(). W tym
np. wygenerowany w kodzie element build() akceptuje tylko 2 parametry
($customerId i $query), bo są to parametry wymagane. Aby przesłać prośbę o
łączna liczba wyników pasujących do zapytania z ignorowaniem klauzuli LIMIT,
musisz ją ustawić bezpośrednio za pomocą setReturnTotalResultsCount(). Ewentualnie
możesz przekazać wszystkie parametry do konstruktora
SearchGoogleAdsRequest, na przykład dla wzorca 3.
Wzór 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) );
Wzór 2
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request);
Wzór 3
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest([ 'customer_id' => $customerId, 'query' => $query, 'return_total_results_count' => true ]); $response = $googleAdsServiceClient->search($request);
Przykład 2. Metody z tylko opcjonalnymi parametrami
Ten przykład pokazuje, jak wywołać funkcję GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Ponieważ wszystkie
parametru GeoTargetConstantServiceClient::suggestGeoTargetConstants() to
opcjonalnie, w tym przypadku parametr build() nie jest generowany w kodzie źródłowym.
musisz samodzielnie utworzyć obiekt żądania.
Wzór 1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Wzór 2
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) );