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:
- Variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
. - Kredensial pengguna yang disiapkan melalui Google Cloud CLI (gcloud CLI).
- 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
.