GAPIC

Google Ads API PHP istemci kitaplığının src/Google/Ads/GoogleAds/vX dizinindeki kaynak kodu (burada X, Google Ads API sürümüdür), yayınlanmış proto dosyalarına dayalı olarak GAPIC (Oluşturulmuş API İstemcisi) Oluşturucu kullanılarak otomatik olarak oluşturulur.

Ardından, oluşturulan kaynak kodu, GoogleAdsClient sınıfı kullanılarak Google Ads API ile çalışan hizmet istemcileri oluşturmak için gereken özelliklere ve sınıflara referans içerecek şekilde değiştirilir. GoogleAdsClient sınıfı, GoogleAdsClientBuilder::build() çağrılarak oluşturulur. Hem GoogleAdsClient hem de GoogleAdsClientBuilder, src/Google/Ads/GoogleAds/Lib/vX/ içinde bulunan manuel olarak oluşturulmuş sınıflardır.

Oluşturulan sınıf konumları

İşlem sonrası hizmet istemcileri src/Google/Ads/GoogleAds/VX/Services/Client/ konumundadır.

Kullanım

Bir istek nesnesi oluşturup kullanmak istediğiniz istemciye iletmeniz gerekir. Bazı istemcilerde gerekli parametreleri iletmek için build() adlı kullanışlı bir yöntem de bulunduğundan bazı durumlarda istek nesnesi oluşturmanın birden fazla yolu vardır.

Örnek 1.1: Gerekli parametreleri olan yöntemler

Aşağıdaki örnek kodda CampaignService::mutate() işlevinin nasıl çağrılacağı gösterilmektedir. Tüm parametreler ($customerId ve $operations) zorunlu parametrelerdir. Bu nedenle, her iki parametreyi de kabul eden build() kodu oluşturulur.

Desen 1

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

Desen 2

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

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

Aşağıdaki örnek kod GoogleAdsServiceClient::search() işlevini çağırır. Bu örnekte, kodda oluşturulan build() yalnızca iki parametre ($customerId ve $query) kabul eder. Bunun nedeni, bu parametrelerin zorunlu olmasıdır. LIMIT koşulunu yoksayarak sorguyla eşleşen toplam sonuç sayısını istemek için setReturnTotalResultsCount() kullanarak bunu açıkça ayarlamanız gerekir. Alternatif olarak, 3. kalıpta gösterildiği gibi tüm parametreleri SearchGoogleAdsRequest oluşturucusuna birlikte aktarabilirsiniz.

Desen 1

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

Desen 2

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

Desen 3

$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ı parametreler içeren yöntemler

Bu örnekte, GeoTargetConstantServiceClient::suggestGeoTargetConstants() işlevinin nasıl çağrılacağı gösterilmektedir. GeoTargetConstantServiceClient::suggestGeoTargetConstants() parametrelerinin tümü isteğe bağlı olduğundan bu durumda kaynak kodda build() oluşturulmaz. İstek nesnesini kendiniz oluşturmanız gerekir.

Desen 1

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

Desen 2

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