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 (Klien API yang Dibuat), berdasarkan file proto yang dipublikasikan.
Kode sumber yang dihasilkan kemudian diubah agar berisi referensi ke trait 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 kelas yang dibuat secara manual dan terletak di
src/Google/Ads/GoogleAds/Lib/vX/
.
Lokasi class yang dihasilkan
Klien layanan yang diproses pasca-pemrosesan berada di
src/Google/Ads/GoogleAds/VX/Services/Client/
.
Penggunaan
Anda harus membuat objek permintaan dan meneruskannya ke klien yang ingin Anda gunakan.
Dalam beberapa kasus, 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
Contoh kode berikut menunjukkan cara memanggil CampaignService::mutate()
. Semua
parameter ($customerId
dan $operations
) adalah parameter wajib, sehingga
build()
yang menerima kedua parameter tersebut 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
Contoh kode berikut memanggil GoogleAdsServiceClient::search()
. Dalam
contoh ini, build()
yang dibuat dalam kode hanya menerima dua parameter
($customerId
dan $query
) karena merupakan parameter wajib. Untuk meminta
jumlah total hasil yang cocok dengan kueri dengan mengabaikan klausa LIMIT
, Anda
harus menyetelnya secara eksplisit menggunakan setReturnTotalResultsCount()
. Atau,
Anda dapat meneruskan semua parameter bersama-sama 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 dengan hanya parameter opsional
Contoh ini menunjukkan cara memanggil
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
. Karena semua parameter GeoTargetConstantServiceClient::suggestGeoTargetConstants()
bersifat opsional, build()
tidak dibuat dalam kode sumber dalam kasus 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]) ]) );