Metadati della risposta

La libreria client PHP registra i metadati della risposta, incluso un ID richiesta, per impostazione predefinita. In alternativa, puoi ottenere i metadati della risposta in modo programmatico quando chiami i metodi del servizio client impostando il parametro facoltativo withResponseMetadata su true.

Dopo aver chiamato i metodi del servizio client, puoi ottenere un'istanza di GoogleAdsResponseMetadata dall'oggetto pertinente (ad esempio un client di servizio o uno stream) a seconda del metodo chiamato. Questo oggetto fornisce getMetadata() e getRequestId(), che restituiscono l'array completo di metadati della risposta e l'ID richiesta della chiamata API, rispettivamente. Il metodo getMetadata() restituisce un array strutturato come il seguente output:

object(Google\Ads\GoogleAds\Lib\V25\GoogleAdsResponseMetadata)#51 (1) {
  ["metadata":"Google\Ads\GoogleAds\Lib\V25\GoogleAdsResponseMetadata":private]=>
  array(17) {
    ["content-disposition"]=>
    array(1) {
      [0]=>
      string(10) "attachment"
    }
    ["request-id"]=>
    array(1) {
      [0]=>
      string(22) "REQUEST_ID"
    }
    ...
  }
}

Il metodo getRequestId() semplifica l'estrazione dell'ID richiesta dall'array di metadati senza analizzare manualmente le chiavi dell'array.

Le sezioni seguenti spiegano come recuperare GoogleAdsResponseMetadata per ogni tipo di metodo.

SearchStream

Per ottenere un oggetto GoogleAdsResponseMetadata per una chiamata in streaming, chiama getResponseMetadata() sull'oggetto stream dopo aver iterato lo stream:

$stream = $googleAdsServiceClient->searchStream(
    SearchGoogleAdsStreamRequest::build($customerId, $query),
    ['withResponseMetadata' => true]
);

foreach ($stream->iterateAllElements() as $googleAdsRow) {
    // Process each row...
}

// Outputs the request ID.
echo $stream->getResponseMetadata()?->getRequestId() . PHP_EOL;

$stream->getResponseMetadata() restituisce un oggetto GoogleAdsResponseMetadata.

Metodi di ricerca e mutazione

Per ottenere un oggetto GoogleAdsResponseMetadata per le chiamate unarie, chiama getResponseMetadata() sull'oggetto client di servizio:

// Retrieves objects.
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query),
    ['withResponseMetadata' => true]
);

// Outputs the request ID.
echo $googleAdsServiceClient->getResponseMetadata()?->getRequestId() . PHP_EOL;

// Mutates campaigns.
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build($customerId, $campaignOperations),
    ['withResponseMetadata' => true]
);

// Outputs the request ID.
echo $campaignServiceClient->getResponseMetadata()?->getRequestId() . PHP_EOL;

Sia $campaignServiceClient->getResponseMetadata() che $googleAdsServiceClient->getResponseMetadata() restituiscono un oggetto GoogleAdsResponseMetadata.