PHP

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:

  1. Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS.
  2. Nutzeranmeldedaten, die über die Google Cloud CLI (gcloud CLI) eingerichtet wurden.
  3. 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.