ซอร์สโค้ดใน src/Google/Ads/GoogleAds/vX
ของไลบรารีไคลเอ็นต์ Google Ads API PHP โดยที่ X คือ Google Ads API
จะสร้างขึ้นโดยอัตโนมัติโดยใช้ GAPIC (ไคลเอ็นต์ API ที่สร้างขึ้น)
โปรแกรมสร้างตามที่เผยแพร่
Proto
ไฟล์
จากนั้นซอร์สโค้ดที่สร้างขึ้นจะถูกแก้ไขให้มีการอ้างอิงไปยังลักษณะและ
ประเภทที่จำเป็นในการสร้างไคลเอ็นต์บริการที่ทำงานร่วมกับ Google Ads API โดยใช้
คลาส GoogleAdsClient
ซึ่งสร้างขึ้นด้วยการเรียก
GoogleAdsClientBuilder::build()
ทั้ง GoogleAdsClient
และ
GoogleAdsClientBuilder
เป็นชั้นเรียนที่สร้างขึ้นด้วยตนเองซึ่งอยู่ใน
src/Google/Ads/GoogleAds/Lib/vX/
ซอร์สโค้ด GAPIC v2
ตั้งแต่เวอร์ชัน v20.1.0 ไลบรารีของไคลเอ็นต์
ยังมีซอร์สโค้ด GAPIC เวอร์ชันใหม่ใน
src/Google/Ads/GoogleAds/vX
ซึ่งรองรับการส่งออบเจ็กต์คำขอไปยังบริการ
ของลูกค้า เวอร์ชันใหม่นี้ที่เรียกว่า GAPIC v2 ยังช่วยเตรียมความพร้อม
สำหรับฟีเจอร์ใหม่ๆ ในอนาคต ซอร์สโค้ด GAPIC เวอร์ชันก่อนหน้า GAPIC v1 คือ
ยังคงสร้างขึ้นและรวมอยู่ในแต่ละรุ่นจนถึงสิ้นปี 2023
ไลบรารีไคลเอ็นต์ PHP ของ Google Ads API ให้คุณเลือกเวอร์ชันที่จะลิงก์
GoogleAdsClient
กำลังใช้การตั้งค่าการกำหนดค่า
useGapicV2Source
เมื่อตั้งค่านี้เป็น
true
ไลบรารีของไคลเอ็นต์จะสร้างออบเจ็กต์ GoogleAdsClient
ที่สร้าง
ไคลเอ็นต์บริการ GAPIC v2
สถานที่ของชั้นเรียนที่สร้างขึ้น
ต่อไปนี้เป็นข้อแตกต่างของตำแหน่งไฟล์ระหว่างเวอร์ชัน GAPIC สำหรับ มี 2 ประเภทดังนี้
ไคลเอ็นต์ที่ GAPIC สร้างขึ้นและไฟล์ที่เกี่ยวข้อง | GAPIC เวอร์ชัน 1
src/Google/Ads/GoogleAds/VX/Services/Gapic/ |
ไคลเอ็นต์หลังการประมวลผล | GAPIC เวอร์ชัน 1
src/Google/Ads/GoogleAds/VX/Services/ src/Google/Ads/GoogleAds/VX/Services/Client/ |
การใช้งาน
GAPIC v1 กำหนดให้คุณต้องส่งพารามิเตอร์คำขอแต่ละรายการไปยังเมธอดโดยตรง
ในขณะที่ GAPIC v2 กำหนดให้คุณต้องส่งอ็อบเจกต์คำขอแทน โปรดทราบว่าใน
ในบางกรณี คุณมีวิธีสร้างอ็อบเจกต์คำขอมากกว่า 1 วิธีนับตั้งแต่ GAPIC
v2 ยังสร้างเมธอดที่สะดวกชื่อว่า build()
สำหรับการส่งผ่าน จําเป็น
พารามิเตอร์
ตัวอย่าง 1.1: เมธอดที่มีพารามิเตอร์ที่จำเป็น
โค้ดตัวอย่างต่อไปนี้เปรียบเทียบการเรียกใช้ CampaignService::mutate()
ใน GAPIC
v1 และ v2 โปรดทราบว่าพารามิเตอร์ทั้งหมด ($customerId
และ $operations
)
พารามิเตอร์ที่จำเป็นเพื่อให้ระบบสร้าง build()
ที่ยอมรับพารามิเตอร์ทั้ง 2 รายการ
ในโค้ด GAPIC v2
รูปแบบ 1 | GAPIC เวอร์ชัน 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( $customerId, $campaignOperations ); $campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) ); |
รูปแบบ 2 | GAPIC เวอร์ชัน 1
N/A $campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $request = (new MutateCampaignsRequest()) ->setCustomerId($customerId) ->setCampaignOperations($campaignOperations); $response = $campaignServiceClient->mutateCampaigns($request); |
ตัวอย่างที่ 1.2: เมธอดที่มีพารามิเตอร์ที่จำเป็นและพารามิเตอร์ที่ไม่บังคับ
โค้ดตัวอย่างต่อไปนี้เปรียบเทียบการเรียกใช้ GoogleAdsServiceClient::search()
ใน
GAPIC v1 และ v2 ในตัวอย่างนี้ build()
ที่สร้างขึ้นใน GAPIC
ซอร์สโค้ด v2 ยอมรับพารามิเตอร์เพียง 2 รายการ ($customerId
และ $query
) เนื่องจาก
เป็นพารามิเตอร์ที่จำเป็น หากต้องการขอจำนวนผลลัพธ์ทั้งหมดที่ตรงกัน
ข้อความค้นหาโดยไม่คำนึงถึงข้อความ LIMIT
คุณต้องตั้งค่าอย่างชัดเจนโดยใช้
setReturnTotalResultsCount()
หรือคุณสามารถส่งผ่านพารามิเตอร์ทั้งหมด
เข้าด้วยกันกับตัวสร้าง SearchGoogleAdsRequest
ดังที่แสดงในรูปแบบที่ 3
รูปแบบ 1 | GAPIC เวอร์ชัน 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( $customerId, $query, ['returnTotalResultsCount' => true] ); $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) ); |
รูปแบบ 2 | GAPIC เวอร์ชัน 1
N/A $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request); |
รูปแบบ 3 | GAPIC เวอร์ชัน 1
N/A $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest([ 'customer_id' => $customerId, 'query' => $query, 'return_total_results_count' => true ]); $response = $googleAdsServiceClient->search($request); |
ตัวอย่างที่ 2: เมธอดที่มีเฉพาะพารามิเตอร์ที่ไม่บังคับเท่านั้น
เปรียบเทียบการโทร GeoTargetConstantServiceClient::suggestGeoTargetConstants()
ใน
GAPIC v1 และ v2 เนื่องจากพารามิเตอร์ทั้งหมดของ
GeoTargetConstantServiceClient::suggestGeoTargetConstants()
เป็นตัวเลือกที่ไม่บังคับ
build()
จะไม่สร้างในซอร์สโค้ด GAPIC v2 ในกรณีนี้ คุณ
คุณต้องสร้างออบเจ็กต์คำขอด้วยตัวเอง
รูปแบบ 1 | GAPIC เวอร์ชัน 1
$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); |
รูปแบบ 2 | GAPIC เวอร์ชัน 1
N/A $geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) ); |