Kod źródłowy w katalogu src/Google/Ads/GoogleAds/VX biblioteki klienta interfejsu Google Ads API w języku PHP, gdzie X to numer wersji 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 klasy zarządzane ręcznie, które znajdują się w src/Google/Ads/GoogleAds/Lib/VX/.
Wygenerowane lokalizacje zajęć
Przetworzeni klienci usługi znajdują się w src/Google/Ads/GoogleAds/VX/Services/Client/ (np. V26), a odpowiednie klasy komunikatów żądania i odpowiedzi (takie jak MutateCampaignsRequest i SearchGoogleAdsRequest) znajdują się w src/Google/Ads/GoogleAds/VX/Services/. Mniejsze wersje interfejsu API (np. v25.1) są generowane w katalogu wersji głównej (V25).
Wykorzystanie
Musisz utworzyć obiekt żądania i przekazać go do klienta usługi, którego chcesz użyć. W zależności od tego, czy parametry są wymagane czy opcjonalne, masz kilka sposobów na utworzenie obiektu żądania, w tym statyczną metodę fabryczną build() do przekazywania wymaganych parametrów.
Przykład 1.1. Metody z wymaganymi parametrami
Poniższy przykładowy kod pokazuje, jak wywołać CampaignServiceClient::mutateCampaigns(). Ponieważ zarówno $customerId, jak i $campaignOperations są wymaganymi parametrami, w klasie żądania generowana jest statyczna metoda fabryczna build(), która akceptuje oba parametry.
Wzorzec 1. Metoda kompilacji statycznej (zalecana)
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
MutateCampaignsRequest::build(
$customerId,
$campaignOperations
)
);
Wzorzec 2. Metody ustawiające w stylu fluent
$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 GoogleAdsServiceClient::search(). W tym przykładzie wygenerowana metoda build() akceptuje tylko 2 parametry ($customerId i $query), ponieważ są one wymagane. Aby poprosić o łączną liczbę wyników pasujących do zapytania z pominięciem klauzuli LIMIT, możesz ustawić ją bezpośrednio za pomocą setReturnTotalResultsCount(). Możesz też przekazać wszystkie parametry razem w tablicy asocjacyjnej do konstruktora SearchGoogleAdsRequest, jak pokazano we wzorcu 3.
Wzorzec 1. Statyczna metoda kompilacji z płynnymi metodami ustawiającymi
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
SearchGoogleAdsRequest::build($customerId, $query)
->setReturnTotalResultsCount(true)
);
Wzorzec 2. Metody ustawiające w stylu fluent
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
->setCustomerId($customerId)
->setQuery($query)
->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);
Wzorzec 3. Konstruktor tablicy
$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 parametrami opcjonalnymi
Ten przykład pokazuje, jak wywołać GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Ponieważ wszystkie parametry GeoTargetConstantServiceClient::suggestGeoTargetConstants() są opcjonalne, w tym przypadku build() nie jest generowany w kodzie źródłowym – musisz utworzyć obiekt żądania za pomocą metod ustawiających lub konstruktora tablicy.
Wzorzec 1. Metody ustawiające (zalecane)
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
->setLocale($locale)
->setCountryCode($countryCode)
->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
$geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Wzorzec 2. Konstruktor tablicy
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
new SuggestGeoTargetConstantsRequest([
'locale' => $locale,
'country_code' => $countryCode,
'location_names' => new LocationNames(['names' => $locationNames])
])
);