PHP

Google fornisce una libreria client PHP per interagire con l'API Ad Manager. Consigliamo di utilizzare la libreria client con Composer.

Per iniziare, crea un nuovo progetto nell'IDE che preferisci o aggiungi la dipendenza a un progetto esistente. Google pubblica gli elementi della libreria client su Packagist come googleads/ad-manager.

composer require googleads/ad-manager

Configura le credenziali

La libreria client PHP utilizza OAuth2 e le credenziali predefinite dell'applicazione (ADC) per l'autenticazione.

ADC cerca le credenziali nell'ordine nelle seguenti posizioni:

  1. GOOGLE_APPLICATION_CREDENTIALS.
  2. Credenziali utente configurate tramite Google Cloud CLI (gcloud CLI).
  3. Quando viene eseguito su Google Cloud, il service account collegato alla risorsa Google Cloud.

Per creare e configurare le credenziali dell'ADC, consulta Autenticazione.

Effettua la tua prima richiesta

Ogni servizio ha un oggetto ServiceClient con metodi per ogni metodo REST. L'esempio seguente legge un oggetto 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); }

Per esempi di altri metodi e risorse, consulta il repository GitHub googleapis/php-ads-ad-manager.

Registra le richieste e le risposte HTTP

La libreria client PHP supporta i logger compatibili con PSR-3 per la registrazione delle richieste e delle risposte HTTP. Per impostazione predefinita, la registrazione è disattivata.

Per attivare la registrazione predefinita nell'output standard, imposta la variabile di ambiente GOOGLE_SDK_PHP_LOGGING su true nel codice PHP o nell'ambiente:

putenv('GOOGLE_SDK_PHP_LOGGING=true');

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

In alternativa, puoi passare qualsiasi logger conforme a PSR-3 durante la creazione di un client di servizio:

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

Gestisci gli errori

Nella libreria client PHP, tutti gli errori dell'API Ad Manager generano un'eccezione di tipo ApiException:

Errori di analisi

Il campo Motivo errore identifica in modo univoco i tipi di errore. Utilizza questo campo per determinare come gestire l'errore.

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());
}

Gli errori dell'API Ad Manager includono anche un request_id univoco che puoi fornire all'assistenza per ricevere aiuto per la risoluzione dei problemi. L'esempio seguente estrae il 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']);
}

Crea i nomi delle risorse

La libreria client fornisce classi di supporto per creare nomi di risorse dagli 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");

Configurare le impostazioni proxy

La libreria client PHP rispetta le impostazioni dell'ambiente HTTP_PROXY e HTTPS_PROXY.