Metadatos de la respuesta

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 respuesta de forma programática cuando llamas a los métodos de servicio del cliente configurando el parámetro opcional withResponseMetadata como 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 completo de metadatos de respuesta 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\V26\GoogleAdsResponseMetadata)#51 (1) {
  ["metadata":"Google\Ads\GoogleAds\Lib\V26\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 mutación

Para obtener un objeto GoogleAdsResponseMetadata para llamadas unarias, llama a getResponseMetadata() en el objeto cliente de 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.