Kode sumber di src/Google/Ads/GoogleAds/vX
direktori library klien PHP Google Ads API, dengan X adalah Google Ads API
dibuat secara otomatis menggunakan GAPIC (Generated API Client)
Generator, berdasarkan laporan yang dipublikasikan
Proto
file akun.
Kode sumber yang dihasilkan kemudian dimodifikasi
untuk memuat referensi ke trait dan
yang diperlukan untuk membuat klien layanan yang dapat digunakan dengan Google Ads API
class GoogleAdsClient
, yang dibuat dengan memanggil
GoogleAdsClientBuilder::build()
. GoogleAdsClient
dan
GoogleAdsClientBuilder
adalah class yang dibuat secara manual yang terletak di
src/Google/Ads/GoogleAds/Lib/vX/
.
Kode sumber GAPIC v2
Sejak versi v20.1.0, library klien
juga menyertakan versi baru
kode sumber GAPIC di
src/Google/Ads/GoogleAds/vX
yang mendukung penerusan objek permintaan ke layanan
klien metode. Versi baru ini, yang disebut GAPIC v2, juga berfungsi sebagai persiapan
untuk fitur baru di masa mendatang. Kode sumber GAPIC sebelumnya, GAPIC v1,
masih dibuat dan disertakan dalam setiap rilis hingga akhir tahun 2023.
Library klien PHP Google Ads API memungkinkan Anda memilih versi yang akan ditautkan
GoogleAdsClient
menggunakan setelan konfigurasi
useGapicV2Source
. Jika setelan ini disetel ke
true
, library klien akan menghasilkan objek GoogleAdsClient
yang membuat
Klien layanan GAPIC v2.
Lokasi kelas yang dibuat
Berikut adalah perbedaan lokasi file di antara versi GAPIC untuk dua jenis class:
Klien yang dihasilkan GAPIC dan file terkait | GAPIC v1
src/Google/Ads/GoogleAds/VX/Services/Gapic/ |
Klien yang telah diproses | GAPIC v1
src/Google/Ads/GoogleAds/VX/Services/ src/Google/Ads/GoogleAds/VX/Services/Client/ |
Penggunaan
GAPIC v1 mengharuskan Anda meneruskan setiap parameter permintaan secara langsung ke metode,
sedangkan GAPIC v2 mengharuskan Anda meneruskan objek permintaan. Perhatikan bahwa saat
dalam beberapa kasus, Anda memiliki lebih dari satu cara untuk membuat objek permintaan karena GAPIC
v2 juga menghasilkan metode praktis bernama build()
untuk meneruskan wajib
parameter.
Contoh 1.1: Metode dengan parameter yang diperlukan
Kode contoh berikut membandingkan pemanggilan CampaignService::mutate()
di GAPIC
v1 dan v2. Perhatikan bahwa semua parameter ($customerId
dan $operations
) adalah
parameter yang diperlukan, sehingga build()
yang menerima kedua parameter akan dibuat
dalam kode GAPIC v2.
Pola 1 | GAPIC v1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( $customerId, $campaignOperations ); $campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) ); |
Pola 2 | GAPIC v1
N/A $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 membandingkan pemanggilan GoogleAdsServiceClient::search()
dalam
GAPIC v1 dan v2. Dalam contoh ini, build()
yang dihasilkan di GAPIC
Kode sumber v2 hanya menerima dua parameter ($customerId
dan $query
) karena
parameter tersebut adalah parameter wajib. Untuk meminta jumlah total hasil yang cocok
kueri yang mengabaikan klausa LIMIT
, Anda harus menyetelnya secara eksplisit menggunakan
setReturnTotalResultsCount()
. Atau, Anda dapat meneruskan semua parameter
bersama-sama dengan konstruktor SearchGoogleAdsRequest
, seperti yang ditunjukkan pada pola 3.
Pola 1 | GAPIC v1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( $customerId, $query, ['returnTotalResultsCount' => true] ); $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) ); |
Pola 2 | GAPIC v1
N/A $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request); |
Pola 3 | GAPIC v1
N/A $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
Bandingkan panggilan GeoTargetConstantServiceClient::suggestGeoTargetConstants()
dalam
GAPIC v1 dan v2. Karena semua parameter
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
bersifat opsional,
Dalam kasus ini, build()
tidak dibuat dalam kode sumber GAPIC v2—Anda
harus membuat objek permintaan sendiri.
Pola 1 | GAPIC v1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants([ 'locale' => $locale, 'countryCode' => $countryCode, 'locationNames' => new LocationNames(['names' => $locationNames]) ]); $geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request); |
Pola 2 | GAPIC v1
N/A $geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) ); |