Kode sumber di direktori src/Google/Ads/GoogleAds/vX
library klien PHP Google Ads API, dengan X adalah versi Google Ads API, dibuat secara otomatis menggunakan Generator GAPIC (Generated API Client), berdasarkan file proto
yang dipublikasikan.
Kode sumber yang dihasilkan kemudian diubah agar berisi referensi ke karakteristik dan
class yang diperlukan untuk membuat klien layanan yang berfungsi dengan Google Ads API menggunakan
class GoogleAdsClient
, yang dibuat dengan memanggil
GoogleAdsClientBuilder::build()
. GoogleAdsClient
dan
GoogleAdsClientBuilder
adalah class yang dibuat secara manual dan terletak di
src/Google/Ads/GoogleAds/Lib/vX/
.
Lokasi class yang dihasilkan
Klien layanan pasca-pemrosesan berada di
src/Google/Ads/GoogleAds/VX/Services/Client/
.
Penggunaan
Anda harus membuat objek permintaan dan meneruskannya ke klien yang ingin digunakan.
Terkadang, Anda memiliki lebih dari satu cara untuk membuat objek permintaan
karena beberapa klien juga memiliki metode praktis bernama build()
untuk meneruskan
parameter yang diperlukan.
Contoh 1.1: Metode dengan parameter wajib
Kode contoh berikut menunjukkan cara memanggil CampaignService::mutate()
. Semua
parameter ($customerId
dan $operations
) adalah parameter wajib, sehingga
build()
yang menerima kedua parameter tersebut akan dibuat dalam kode.
Pola 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) );
Pola 2
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $request = (new MutateCampaignsRequest()) ->setCustomerId($customerId) ->setCampaignOperations($campaignOperations); $response = $campaignServiceClient->mutateCampaigns($request);
Contoh 1.2: Metode dengan parameter wajib dan parameter opsional
Kode contoh berikut memanggil GoogleAdsServiceClient::search()
. Dalam contoh
ini, build()
yang dihasilkan dalam kode hanya menerima dua parameter
($customerId
dan $query
) karena merupakan parameter yang diperlukan. Untuk meminta jumlah total hasil yang cocok dengan kueri yang mengabaikan klausa LIMIT
, Anda harus menetapkannya secara eksplisit menggunakan setReturnTotalResultsCount()
. Atau,
Anda dapat meneruskan semua parameter secara bersamaan ke konstruktor
SearchGoogleAdsRequest
, seperti yang ditunjukkan dalam pola 3.
Pola 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) );
Pola 2
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request);
Pola 3
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest([ 'customer_id' => $customerId, 'query' => $query, 'return_total_results_count' => true ]); $response = $googleAdsServiceClient->search($request);
Contoh 2: Metode yang hanya memiliki parameter opsional
Contoh ini menunjukkan cara memanggil
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
. Karena semua
parameter GeoTargetConstantServiceClient::suggestGeoTargetConstants()
bersifat
opsional, build()
tidak dibuat dalam kode sumber dalam hal ini—Anda
harus membuat objek permintaan sendiri.
Pola 1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Pola 2
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) );