GAPIC

کد منبع موجود در دایرکتوری src/Google/Ads/GoogleAds/V X از کتابخانه کلاینت PHP API گوگل ادز، که در آن X شماره نسخه API گوگل ادز است، به طور خودکار با استفاده از GAPIC (Generated API Client) Generator ، بر اساس فایل‌های اولیه منتشر شده ، تولید می‌شود.

سپس کد منبع تولید شده اصلاح می‌شود تا شامل ارجاعاتی به ویژگی‌ها و کلاس‌های مورد نیاز برای ایجاد کلاینت‌های سرویس باشد که با API تبلیغات گوگل با استفاده از کلاس GoogleAdsClient کار می‌کنند، که با فراخوانی GoogleAdsClientBuilder::build() ایجاد می‌شود. هر دو GoogleAdsClient و GoogleAdsClientBuilder کلاس‌هایی هستند که به صورت دستی نگهداری می‌شوند و در src/Google/Ads/GoogleAds/Lib/V X / قرار دارند.

مکان‌های کلاس تولید شده

کلاینت‌های سرویس پس‌پردازش‌شده در src/Google/Ads/GoogleAds/V X /Services/Client/ (برای مثال، V25 ) قرار دارند و کلاس‌های پیام درخواست و پاسخ مربوطه (مانند MutateCampaignsRequest و SearchGoogleAdsRequest ) در src/Google/Ads/GoogleAds/V X /Services/ قرار دارند. نسخه‌های فرعی API (مانند v25.1 ) در داخل دایرکتوری نسخه اصلی خود ( V25 ) تولید می‌شوند.

کاربرد

شما باید یک شیء درخواست ایجاد کنید و آن را به سرویس گیرنده‌ای که می‌خواهید از آن استفاده کنید، ارسال کنید. بسته به اینکه پارامترها الزامی یا اختیاری باشند، روش‌های مختلفی برای ایجاد یک شیء درخواست دارید، از جمله یک متد factory استاتیک build() برای ارسال پارامترهای الزامی .

مثال ۱.۱: متدهایی با پارامترهای الزامی

کد نمونه زیر نحوه فراخوانی CampaignServiceClient::mutateCampaigns() را نشان می‌دهد. از آنجا که هر دو پارامتر $customerId و $campaignOperations الزامی هستند، یک متد factory استاتیک build() که هر دو پارامتر را می‌پذیرد، در کلاس درخواست ایجاد می‌شود.

الگوی ۱: روش ساخت استاتیک (توصیه می‌شود)

$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
        $customerId,
        $campaignOperations
    )
);

الگوی ۲: تنظیم‌کننده‌های مسلط

$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);

مثال ۱.۲: متدهایی با پارامترهای الزامی و اختیاری

کد نمونه زیر، تابع GoogleAdsServiceClient::search() را فراخوانی می‌کند. در این مثال، متد build() تولید شده فقط دو پارامتر ( $customerId و $query ) را می‌پذیرد زیرا آنها پارامترهای اجباری هستند. برای درخواست تعداد کل نتایجی که با پرس و جو مطابقت دارند، بدون در نظر گرفتن بند LIMIT ، می‌توانید آن را به طور صریح با استفاده از setReturnTotalResultsCount() تنظیم کنید. به طور جایگزین، می‌توانید همانطور که در الگوی 3 نشان داده شده است، تمام پارامترها را با هم در یک آرایه انجمنی به سازنده SearchGoogleAdsRequest ارسال کنید.

الگوی ۱: روش ساخت استاتیک با تنظیم‌کننده‌های روان

$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);

الگوی ۲: تنظیم‌کننده‌های مسلط

$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);

الگوی ۳: سازنده آرایه

$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);

مثال ۲: متدهایی با پارامترهای اختیاری

این مثال نحوه فراخوانی GeoTargetConstantServiceClient::suggestGeoTargetConstants() را نشان می‌دهد. از آنجایی که تمام پارامترهای GeoTargetConstantServiceClient::suggestGeoTargetConstants() اختیاری هستند، در این مورد build() در کد منبع تولید نمی‌شود - شما باید شیء درخواست را با استفاده از setterها یا سازنده آرایه بسازید.

الگوی ۱: تنظیم‌کننده‌های مسلط (توصیه می‌شود)

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);

الگوی ۲: سازنده آرایه

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);