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:
- Variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
. - Identifiants utilisateur configurés via la Google Cloud CLI (gcloud CLI)
- 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
.