API

Kode sumber di direktori src/Google/Ads/GoogleAds/vX library klien PHP Google Ads API, dengan X adalah versi Google Ads API, dibuat secara otomatis menggunakan Generator GAPIC (Klien API yang Dibuat), berdasarkan file proto yang dipublikasikan.

Kode sumber yang dihasilkan kemudian diubah agar berisi referensi ke trait dan class yang diperlukan untuk membuat klien layanan yang berfungsi dengan Google Ads API menggunakan class GoogleAdsClient, yang dibuat dengan memanggil GoogleAdsClientBuilder::build(). GoogleAdsClient dan GoogleAdsClientBuilder adalah kelas yang dibuat secara manual dan terletak di src/Google/Ads/GoogleAds/Lib/vX/.

Lokasi class yang dihasilkan

Klien layanan yang diproses pasca-pemrosesan berada di src/Google/Ads/GoogleAds/VX/Services/Client/.

Penggunaan

Anda harus membuat objek permintaan dan meneruskannya ke klien yang ingin Anda gunakan. Dalam beberapa kasus, Anda memiliki lebih dari satu cara untuk membuat objek permintaan karena beberapa klien juga memiliki metode praktis bernama build() untuk meneruskan parameter yang diperlukan.

Contoh 1.1: Metode dengan parameter wajib

Contoh kode berikut menunjukkan cara memanggil CampaignService::mutate(). Semua parameter ($customerId dan $operations) adalah parameter wajib, sehingga build() yang menerima kedua parameter tersebut dibuat dalam kode.

Pola 1

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

Pola 2

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

Contoh 1.2: Metode dengan parameter wajib dan parameter opsional

Contoh kode berikut memanggil GoogleAdsServiceClient::search(). Dalam contoh ini, build() yang dibuat dalam kode hanya menerima dua parameter ($customerId dan $query) karena merupakan parameter wajib. Untuk meminta jumlah total hasil yang cocok dengan kueri dengan mengabaikan klausa LIMIT, Anda harus menyetelnya secara eksplisit menggunakan setReturnTotalResultsCount(). Atau, Anda dapat meneruskan semua parameter bersama-sama ke konstruktor SearchGoogleAdsRequest, seperti yang ditunjukkan dalam pola 3.

Pola 1

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

Pola 2

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

Pola 3

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

Contoh 2: Metode dengan hanya parameter opsional

Contoh ini menunjukkan cara memanggil GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Karena semua parameter GeoTargetConstantServiceClient::suggestGeoTargetConstants() bersifat opsional, build() tidak dibuat dalam kode sumber dalam kasus ini—Anda harus membuat objek permintaan sendiri.

Pola 1

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

Pola 2

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