קוד המקור ב-src/Google/Ads/GoogleAds/vX
ספרייה של ספריית הלקוח של Google Ads API ב-PHP, שבה X הוא Google Ads API
של Google, נוצרת באופן אוטומטי באמצעות GAPIC (לקוח API שנוצר)
Generator, על סמך פורסם
פרוטו
.
לאחר מכן קוד המקור שנוצר משתנה כך שיכלול הפניות לתכונות
המחלקות שנדרשות כדי ליצור את לקוחות השירות שעובדים עם Google Ads API באמצעות
הכיתה GoogleAdsClient
, שנוצרה באמצעות התקשרות
GoogleAdsClientBuilder::build()
. גם GoogleAdsClient
וגם
GoogleAdsClientBuilder
הן כיתות שנוצרו באופן ידני ונמצאות ב-
src/Google/Ads/GoogleAds/Lib/vX/
.
קוד מקור של GAPIC גרסה 2
החל מגרסה v20.1.0, ספריית הלקוח
כולל גם גרסה חדשה של קוד המקור של GAPIC
src/Google/Ads/GoogleAds/vX
שתומך בהעברת אובייקט בקשה לשירות
של הלקוחות שיטות. הגרסה החדשה הזו, שנקראת GAPIC v2, משמשת גם כהכנה
כדי לקבל גישה לתכונות חדשות בעתיד. קוד המקור הקודם של GAPIC, GAPIC v1, הוא
עדיין נוצרו ונכללים בכל גרסה עד סוף 2023.
ספריית הלקוח של Google Ads API PHP מאפשרת לבחור את הגרסה שאליה רוצים לקשר
GoogleAdsClient
באמצעות הגדרת התצורה
useGapicV2Source
. כשההגדרה הזו מוגדרת לערך
true
, ספריית הלקוח יוצרת אובייקט GoogleAdsClient
שיוצר
לקוחות השירות של GAPIC v2.
מיקומי הכיתה שנוצרו
ההבדלים במיקומים של הקבצים בין גרסאות GAPIC של שני סוגי מחלקות:
לקוחות שנוצרו על ידי 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 תצטרכו להעביר כל פרמטר בקשה ישירות ל-method,
לעומת זאת, ב-GAPIC v2 תצטרכו להעביר אובייקט בקשה. שימו לב שב-
במקרים מסוימים, יש יותר מדרך אחת ליצור אובייקט בקשה מאז GAPIC
גרסה 2 גם יוצרת שיטה נוחה בשם build()
להעברת חובה
.
דוגמה 1.1: שיטות עם פרמטרים נדרשים
הקוד לדוגמה הבא משווה את הקריאה ל-CampaignService::mutate()
ב-GAPIC
v1 ו-v2. חשוב לשים לב שכל הפרמטרים ($customerId
ו-$operations
)
לכן הפונקציה build()
שמקבלת את שני הפרמטרים נוצרת
בקוד 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 בגרסאות 1 ו-2. בדוגמה הזו, השדה build()
שנוצר ב-GAPIC
קוד המקור בגרסה 2 מקבל רק שני פרמטרים ($customerId
ו-$query
) כי
הם פרמטרים נדרשים. כדי לבקש את המספר הכולל של תוצאות שתואמות
השאילתה מתעלמת מהסעיף LIMIT
, צריך להגדיר אותה באופן מפורש באמצעות
setReturnTotalResultsCount()
. לחלופין, אפשר להעביר את כל הפרמטרים
ל-constructor של 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 בגרסאות 1 ו-2. מכיוון שכל הפרמטרים של
הערכים 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]) ]) ); |