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.json
"require": {
"googleads/ad-manager": "^0.16.0"
}
Befehlszeile
composer require googleads/ad-manager
Anmeldedaten konfigurieren
Die PHP-Clientbibliothek verwendet OAuth2 und Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) zur Authentifizierung.
ADC sucht an folgenden Standorten nach Anmeldedaten:
- Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS. - Nutzeranmeldedaten, die über die Google Cloud CLI (gcloud CLI) eingerichtet wurden.
- Bei der Ausführung in Google Cloud das Dienstkonto, das an die Google Cloud-Ressource angehängt ist.
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; /** * Retrieves 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 Logger 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, setzen Sie die Umgebungsvariable GOOGLE_SDK_PHP_LOGGING entweder in Ihrem PHP-Code oder in Ihrer Umgebung auf true:
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 ausgelöst:
Analysefehler
Im Feld „Fehlerursache“ werden Fehlertypen eindeutig identifiziert. Anhand dieses Felds können Sie festlegen, wie der Fehler behandelt 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 auch eine eindeutige request_id, die Sie dem Support zur Unterstützung bei der Fehlerbehebung zur Verfügung stellen 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.