Google stellt eine PHP-Clientbibliothek für die Interaktion mit der Ad Manager API bereit. Wir empfehlen, die Clientbibliothek mit Composer zu verwenden.
Erstellen Sie zuerst ein neues Projekt in der IDE Ihrer Wahl oder fügen Sie die Abhängigkeit einem vorhandenen Projekt hinzu. Google veröffentlicht Clientbibliotheksartefakte in Packagist als googleads/ad-manager
.
composer require googleads/ad-manager
Anmeldedaten konfigurieren
Die PHP-Clientbibliothek verwendet OAuth2 und Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) für die Authentifizierung.
ADC sucht in der folgenden Reihenfolge an den folgenden Standorten nach Anmeldedaten:
GOOGLE_APPLICATION_CREDENTIALS
-Umgebungsvariable.- Über die Google Cloud CLI (gcloud CLI) eingerichtete Nutzeranmeldedaten
- Wenn die Ausführung in Google Cloud erfolgt, das an die Google Cloud-Ressource angehängte Dienstkonto.
Informationen zum Erstellen und Konfigurieren Ihrer ADC-Anmeldedaten finden Sie unter Authentifizierung.
Erste Anfrage senden
Jeder Dienst hat ein ServiceClient
-Objekt mit Methoden für jede REST-Methode. Im folgenden Beispiel wird ein Network
-Objekt gelesen.
<?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); }
Beispiele für andere Methoden und Ressourcen finden Sie im GitHub-Repository googleapis/php-ads-ad-manager
.
HTTP-Anfragen und ‑Antworten protokollieren
Die PHP-Clientbibliothek unterstützt PSR-3-kompatible Logging-Bibliotheken für das Logging von HTTP-Anfragen und ‑antworten. Standardmäßig ist das Logging deaktiviert.
Wenn Sie das Standard-Logging in der Standardausgabe aktivieren möchten, legen Sie die Umgebungsvariable GOOGLE_SDK_PHP_LOGGING
entweder in Ihrem PHP-Code oder in Ihrer Umgebung auf true
fest:
putenv('GOOGLE_SDK_PHP_LOGGING=true'); $client = new NetworkServiceClient();
export GOOGLE_SDK_PHP_LOGGING=true
Alternativ können Sie beim Erstellen eines Dienstclients einen beliebigen PSR-3-kompatiblen Logger übergeben:
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 ]);
Fehler verarbeiten
In der PHP-Clientbibliothek wird bei allen Ad Manager API-Fehlern eine Ausnahme vom Typ ApiException geworfen:
Parsing-Fehler
Im Feld „Fehlerursache“ werden Fehlertypen eindeutig identifiziert. Mit diesem Feld legen Sie fest, wie mit dem Fehler umgegangen werden soll.
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()); }
Ad Manager API-Fehler enthalten außerdem eine eindeutige request_id
, die Sie dem Support zur Fehlerbehebung mitteilen können. Im folgenden Beispiel wird request_id
extrahiert.
$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']); }
Ressourcennamen erstellen
Die Clientbibliothek bietet Hilfsklassen zum Erstellen von Ressourcennamen aus IDs.
use Google\Ads\AdManager\V1\Client\OrderServiceClient; // Constructs a String in the format: // "networks/{networkCode}/orders/{orderId}" $orderName = OrderServiceClient::orderName("NETWORK_CODE ", "ORDER_ID ");
Proxy-Einstellungen konfigurieren
Die PHP-Clientbibliothek berücksichtigt die Umgebungseinstellungen HTTP_PROXY
und HTTPS_PROXY
.