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]) ]) );