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 (Generated API Client) na podstawie opublikowanych
plików proto.
Wygenerowany kod źródłowy jest następnie modyfikowany, aby zawierał odwołania do cech 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 GoogleAdsClientBuilder::build()
. Zarówno GoogleAdsClient
, jak i GoogleAdsClientBuilder
to zajęcia utworzone ręcznie 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 do klienta, którego chcesz użyć.
W niektórych przypadkach możesz utworzyć obiekt żądania na więcej niż 1 sposób, ponieważ niektóre usługi mają też wygodną metodę o nazwie build()
do przekazywania wymaganych parametrów.
Przykład 1.1. Metody z wymaganymi parametrami
Poniższy przykładowy kod pokazuje, jak wywołać CampaignService::mutate()
. Wszystkie parametry ($customerId
i $operations
) są wymagane, więc w kodzie jest generowany parametr 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 przykładzie kod build()
akceptuje tylko 2 parametry ($customerId
i $query
), ponieważ są to parametry wymagane. Aby poprosić o łączną liczbę wyników pasujących do zapytania z pominięciem klauzuli LIMIT
, musisz ustawić ją jawnie za pomocą setReturnTotalResultsCount()
. Możesz też przekazać wszystkie parametry razem do konstruktora SearchGoogleAdsRequest
, jak pokazano we wzorcu 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 samymi parametrami opcjonalnymi
Ten przykład pokazuje, jak wywołać funkcję
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
. Ponieważ wszystkie parametry GeoTargetConstantServiceClient::suggestGeoTargetConstants()
są opcjonalne, w tym przypadku w kodzie źródłowym nie jest generowany parametr build()
– 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]) ]) );