GAPIC

src/Google/Ads/GoogleAds/vX içindeki kaynak kodu Google Ads API PHP istemci kitaplığının dizini (burada X, Google Ads API'dir) sürümü, GAPIC (Oluşturulan API İstemcisi) kullanılarak otomatik olarak oluşturulur Yayınlananlara göre oluşturucu proto dosyaları kullanabilirsiniz.

Oluşturulan kaynak kodu, daha sonra özelliklere ve özelliklere referanslar Google Ads API ile çalışan hizmet istemcilerini oluşturmak için gereken sınıfları çağrısı ile oluşturulan GoogleAdsClient sınıfı GoogleAdsClientBuilder::build(). Hem GoogleAdsClient hem de GoogleAdsClientBuilder şu konumda manuel olarak oluşturulmuş sınıflardır: src/Google/Ads/GoogleAds/Lib/vX/.

GAPIC v2 kaynak kodu

v20.1.0 sürümünden itibaren, istemci kitaplığı GAPIC kaynak kodunun Bir istek nesnesini hizmete iletmeyi destekleyen src/Google/Ads/GoogleAds/vX müşterilerin yöntemlerine göz atın. GAPIC v2 adı verilen bu yeni sürüm, aynı zamanda ileride yeni özellikler için. Önceki GAPIC kaynak kodu olan GAPIC v1, oluşturulmaya devam ediyor ve 2023'ün sonuna kadar her sürümle birlikte sunuluyor.

Google Ads API PHP istemci kitaplığı, bağlanılacak sürümü seçmenize olanak tanır Yapılandırma ayarını kullanarak GoogleAdsClient useGapicV2Source Bu ayar true ise istemci kitaplığı, şunları oluşturan bir GoogleAdsClient nesnesi oluşturur: GAPIC v2 hizmet istemcileri.

Oluşturulan sınıf konumları

Aşağıda, iki sınıf türü vardır:

GAPIC tarafından oluşturulan istemciler ve ilgili dosyalar GAPIC s1
src/Google/Ads/GoogleAds/VX/Services/Gapic/
GAPIC v2: Yok. Yalnızca işlenmiş bir dosya oluşturulur.
İşlenmiş istemciler GAPIC s1
src/Google/Ads/GoogleAds/VX/Services/
GAPIC 2. sürüm
src/Google/Ads/GoogleAds/VX/Services/Client/

Kullanım

GAPIC v1, her istek parametresini doğrudan bir yönteme iletmenizi gerektirir. GAPIC v2 ise bunun yerine bir istek nesnesi iletmenizi gerektirir. Not: Bazı durumlarda, GAPIC'den itibaren istek nesnesi oluşturmak için birden fazla yöntem v2, zorunlu geçirmek için build() adında kullanışlı bir yöntem de oluşturur. parametreleridir.

Örnek 1.1: Gerekli parametrelere sahip yöntemler

Aşağıdaki örnek kod, GAPIC'de CampaignService::mutate() çağrısını karşılaştırmaktadır v1 ve v2. Tüm parametrelerin ($customerId ve $operations) gerekli parametreler olduğundan, her iki parametreyi de kabul eden build() oluşturulur yazmalısınız.

Desen 1 GAPIC s1
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    $customerId,
    $campaignOperations
);
      
GAPIC 2. sürüm
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
      $customerId,
      $campaignOperations
    )
);
      
Desen 2 GAPIC s1
N/A
GAPIC 2. sürüm
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);
      

Örnek 1.2: Gerekli parametreler ve isteğe bağlı parametreler içeren yöntemler

Aşağıdaki örnek kod, GoogleAdsServiceClient::search() çağrısını GAPIC v1 ve v2. Bu örnekte, GAPIC'de oluşturulan build() v2 kaynak kodu yalnızca iki parametreyi ($customerId ve $query) kabul eder çünkü bunlar gerekli parametrelerdir. Eşleşen sonuçların toplam sayısını istemek için LIMIT ifadesini yok sayarak bunu açıkça belirtmek için setReturnTotalResultsCount(). Alternatif olarak, tüm parametreleri birlikte SearchGoogleAdsRequest öğesinin oluşturucusu ile birlikte gösterilmektedir.

Desen 1 GAPIC s1
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    $customerId,
    $query,
    ['returnTotalResultsCount' => true]
);
      
GAPIC 2. sürüm
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);
      
Desen 2 GAPIC s1
N/A
GAPIC 2. sürüm
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);
      
Kalıp 3 GAPIC s1
N/A
GAPIC 2. sürüm
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);
      

2. Örnek: Yalnızca isteğe bağlı parametreleri olan yöntemler

Şu konumdaki GeoTargetConstantServiceClient::suggestGeoTargetConstants() aramasını karşılaştırın: GAPIC v1 ve v2. Tüm parametreleri GeoTargetConstantServiceClient::suggestGeoTargetConstants() isteğe bağlıdır, Bu durumda, GAPIC v2 kaynak kodunda build() oluşturulmaz. istek nesnesini kendiniz oluşturmanız gerekir.

Desen 1 GAPIC s1
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants([
    'locale' => $locale,
    'countryCode' => $countryCode,
    'locationNames' => new LocationNames(['names' => $locationNames])
]);
      
GAPIC 2. sürüm
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
      
Desen 2 GAPIC s1
N/A
GAPIC 2. sürüm
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);