De forma predeterminada, la biblioteca cliente de PHP registra los metadatos de la respuesta, incluido un ID de solicitud. Como alternativa, puedes obtener los metadatos de la respuesta de forma programática cuando llamas a los métodos del servicio del cliente. Para ello, establece el parámetro opcional withResponseMetadata en true.
Después de llamar a los métodos de servicio del cliente, puedes obtener una instancia de GoogleAdsResponseMetadata del objeto pertinente (como un cliente de servicio o una transmisión) según el método al que llames.
Este objeto proporciona getMetadata() y getRequestId(), que devuelven el array de metadatos de respuesta completo y el ID de solicitud de la llamada a la API, respectivamente. El método getMetadata() devuelve un array estructurado como el siguiente resultado:
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"
}
...
}
}
El método getRequestId() simplifica la extracción del ID de solicitud del array de metadatos sin analizar manualmente las claves del array.
En las siguientes secciones, se explica cómo recuperar GoogleAdsResponseMetadata para cada tipo de método.
SearchStream
Para obtener un objeto GoogleAdsResponseMetadata para una llamada de transmisión, llama a getResponseMetadata() en el objeto stream después de iterar sobre la transmisión:
$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() muestra un objeto GoogleAdsResponseMetadata.
Métodos de búsqueda y modificación
Para obtener un objeto GoogleAdsResponseMetadata para llamadas unarias, llama a getResponseMetadata() en el objeto del cliente del servicio:
// 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;
Tanto $campaignServiceClient->getResponseMetadata() como $googleAdsServiceClient->getResponseMetadata() devuelven un objeto GoogleAdsResponseMetadata.