PHP

Google fournit une bibliothèque cliente PHP pour interagir avec l'API Ad Manager. Nous vous recommandons d'utiliser la bibliothèque cliente avec Composer.

Pour commencer, créez un projet dans l'IDE de votre choix ou ajoutez la dépendance à un projet existant. Google publie les artefacts de la bibliothèque cliente dans Packagist en tant que googleads/ad-manager.

composer require googleads/ad-manager

Configurer les identifiants

La bibliothèque cliente PHP utilise OAuth2 et les identifiants par défaut de l'application (ADC) pour s'authentifier.

L'ADC recherche les identifiants dans l'ordre suivant:

  1. Variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.
  2. Identifiants utilisateur configurés via la Google Cloud CLI (gcloud CLI)
  3. Lorsqu'il s'exécute sur Google Cloud, le compte de service associé à la ressource Google Cloud.

Pour créer et configurer vos identifiants ADC, consultez la section Authentification.

Envoyer votre première requête

Chaque service dispose d'un objet ServiceClient avec des méthodes pour chaque méthode REST. L'exemple suivant lit un objet 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); }

Pour obtenir des exemples d'autres méthodes et ressources, consultez le dépôt GitHub googleapis/php-ads-ad-manager.

Journaliser les requêtes et réponses HTTP

La bibliothèque cliente PHP est compatible avec les enregistreurs conformes à la norme PSR-3 pour enregistrer les requêtes et les réponses HTTP. Par défaut, la journalisation est désactivée.

Pour activer la journalisation par défaut dans la sortie standard, définissez la variable d'environnement GOOGLE_SDK_PHP_LOGGING sur true dans votre code PHP ou dans votre environnement:

putenv('GOOGLE_SDK_PHP_LOGGING=true');

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

Vous pouvez également transmettre n'importe quel enregistreur compatible avec PSR-3 lors de la création d'un client de service:

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

Gérer les erreurs

Dans la bibliothèque cliente PHP, toutes les erreurs de l'API Ad Manager génèrent une exception de type ApiException:

Erreurs d'analyse

Le champ "Motif de l'erreur" identifie de manière unique les types d'erreurs. Utilisez ce champ pour déterminer comment gérer l'erreur.

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

Les erreurs de l'API Ad Manager incluent également un request_id unique que vous pouvez fournir à l'assistance pour obtenir de l'aide pour le dépannage. L'exemple suivant extrait le 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']);
}

Créer des noms de ressources

La bibliothèque cliente fournit des classes d'assistance pour créer des noms de ressources à partir d'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");

Configurer les paramètres de proxy

La bibliothèque cliente PHP respecte les paramètres d'environnement HTTP_PROXY et HTTPS_PROXY.