PHP

Google menyediakan library klien PHP untuk berinteraksi dengan Ad Manager API. Sebaiknya gunakan library klien dengan Composer.

Untuk memulai, buat project baru di IDE pilihan Anda atau tambahkan dependensi ke project yang ada. Google memublikasikan artefak library klien ke Packagist sebagai googleads/ad-manager.

composer require googleads/ad-manager

Mengonfigurasi kredensial

Library klien PHP menggunakan OAuth2 dan Kredensial Default Aplikasi (ADC) untuk melakukan autentikasi.

ADC menelusuri kredensial secara berurutan di lokasi berikut:

  1. Variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS.
  2. Kredensial pengguna yang disiapkan melalui Google Cloud CLI (gcloud CLI).
  3. Saat berjalan di Google Cloud, akun layanan akan dilampirkan ke resource Google Cloud.

Untuk membuat dan mengonfigurasi kredensial ADC, lihat Autentikasi.

Membuat permintaan pertama Anda

Setiap layanan memiliki objek ServiceClient dengan metode untuk setiap metode REST. Contoh berikut membaca objek Network.

<?php

use Google\Ads\AdManager\V1\Client\NetworkServiceClient;
use Google\Ads\AdManager\V1\GetNetworkRequest; use Google\Ads\AdManager\V1\Network; use Google\ApiCore\ApiException; /** * API to retrieve a Network object. * * @param string $formattedName Resource name of Network. * Format: networks/{network_code} * Please see {@see NetworkServiceClient::networkName()} for help formatting this field. */ function get_network_sample(string $formattedName): void { // Create a client. $networkServiceClient = new NetworkServiceClient(); // Prepare the request message. $request = (new GetNetworkRequest()) ->setName($formattedName); // Call the API and handle any network failures. try { /** @var Network $response */ $response = $networkServiceClient->getNetwork($request); printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); } catch (ApiException $ex) { printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); } } /** * Helper to execute the sample. * */ function callSample(): void { $formattedName = NetworkServiceClient::networkName('NETWORK_CODE'); get_network_sample($formattedName); }

Untuk contoh metode dan resource lainnya, lihat repositori GitHub googleapis/php-ads-ad-manager.

Membuat log permintaan dan respons HTTP

Library klien PHP mendukung logger yang mematuhi PSR-3 untuk mencatat permintaan dan respons HTTP. Secara default, logging dinonaktifkan.

Untuk mengaktifkan logging default ke output standar, tetapkan variabel lingkungan GOOGLE_SDK_PHP_LOGGING ke true dalam kode PHP atau lingkungan Anda:

putenv('GOOGLE_SDK_PHP_LOGGING=true');

$client = new NetworkServiceClient();
export GOOGLE_SDK_PHP_LOGGING=true

Atau, Anda dapat meneruskan logger yang mematuhi PSR-3 saat membuat klien layanan:

use Monolog\Handler\StreamHandler;
use Monolog\Level;
use Monolog\Logger;

$monologLogger = new Logger('sdk client');
$monologLogger->pushHandler(new StreamHandler('php://stdout', Level::Debug));

$client = new NetworkServiceClient([
    'logger' => $monologLogger
]);

Menangani error

Di library klien PHP, semua error Ad Manager API menampilkan pengecualian jenis ApiException:

Error penguraian

Kolom alasan error mengidentifikasi jenis error secara unik. Gunakan kolom ini untuk menentukan cara menangani error.

try {
    $response = $networkServiceClient->getNetwork($formattedName);
    printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
} catch (ApiException $ex) {
    printf('Error message: %s' . PHP_EOL, $ex->getBasicMessage());
    printf('Reason: %s' . PHP_EOL, $ex->getReason());
}

Error Ad Manager API juga menyertakan request_id unik yang dapat Anda berikan ke dukungan untuk mendapatkan bantuan dalam memecahkan masalah. Contoh berikut mengekstrak request_id.

$requestInfo = null;
foreach ($ex->getMetadata() as $metadata) {
    if($metadata["@type"] === "type.googleapis.com/google.rpc.RequestInfo") {
        $requestInfo = $metadata;
        break;
    }
}
if ($requestInfo == null) {
    printf('Unexpected empty RequestInfo');
} else {
    printf('RequestId: %s' . PHP_EOL, $requestInfo['requestId']);
}

Membuat nama resource

Library klien menyediakan class helper untuk membuat nama resource dari ID.

use Google\Ads\AdManager\V1\Client\OrderServiceClient;

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
$orderName = OrderServiceClient::orderName("NETWORK_CODE", "ORDER_ID");

Mengonfigurasi setelan proxy

Library klien PHP mengikuti setelan lingkungan HTTP_PROXY dan HTTPS_PROXY.