GAPIC

Kode sumber dalam direktori src/Google/Ads/GoogleAds/VX library klien PHP Google Ads API, dengan X sebagai nomor versi Google Ads API, otomatis dibuat menggunakan GAPIC (Generated API Client) Generator, 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 class yang dikelola secara manual yang terletak di src/Google/Ads/GoogleAds/Lib/VX/.

Lokasi class yang dihasilkan

Klien layanan pasca-pemrosesan berada di src/Google/Ads/GoogleAds/VX/Services/Client/ (misalnya, V26), dan class pesan permintaan dan respons yang sesuai (seperti MutateCampaignsRequest dan SearchGoogleAdsRequest) berada di src/Google/Ads/GoogleAds/VX/Services/. Rilis API minor (seperti v25.1) dibuat di dalam direktori versi utama (V25).

Penggunaan

Anda harus membuat objek permintaan dan meneruskannya ke klien layanan yang ingin Anda gunakan. Bergantung pada apakah parameter bersifat wajib atau opsional, Anda memiliki beberapa cara untuk membuat objek permintaan, termasuk metode factory build() statis untuk meneruskan parameter wajib.

Contoh 1.1: Metode dengan parameter wajib

Kode contoh berikut menunjukkan cara memanggil CampaignServiceClient::mutateCampaigns(). Karena $customerId dan $campaignOperations adalah parameter yang diperlukan, metode factory build() statis yang menerima kedua parameter akan dibuat di class permintaan.

Pola 1: Metode build statis (direkomendasikan)

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

Pola 2: Setter yang lancar

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

Contoh 1.2: Metode dengan parameter wajib dan opsional

Kode contoh berikut memanggil GoogleAdsServiceClient::search(). Dalam contoh ini, metode build() yang dihasilkan hanya menerima dua parameter ($customerId dan $query) karena keduanya merupakan parameter wajib. Untuk meminta jumlah total hasil yang cocok dengan kueri yang mengabaikan klausa LIMIT, Anda dapat menetapkannya secara eksplisit menggunakan setReturnTotalResultsCount(). Atau, Anda dapat meneruskan semua parameter bersama-sama dalam array asosiatif ke konstruktor SearchGoogleAdsRequest, seperti yang ditunjukkan dalam Pola 3.

Pola 1: Metode build statis dengan setter yang lancar

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

Pola 2: Setter yang lancar

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

Pola 3: Konstruktor array

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

Contoh 2: Metode yang hanya memiliki 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 menggunakan setter atau konstruktor array.

Pola 1: Setter yang lancar (direkomendasikan)

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

Pola 2: Konstruktor array

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