Metadados da resposta

A biblioteca de cliente PHP registra os metadados de resposta, incluindo um ID de solicitação, por padrão. Como alternativa, é possível receber os metadados de resposta de maneira programática ao chamar métodos de serviço do cliente definindo o parâmetro opcional withResponseMetadata como true.

Depois de chamar os métodos de serviço do cliente, é possível receber uma instância GoogleAdsResponseMetadata do objeto relevante (como um cliente de serviço ou um stream), dependendo do método chamado. Esse objeto fornece getMetadata() e getRequestId(), que retornam a matriz de metadados de resposta completa e o ID da solicitação da chamada de API, respectivamente. O método getMetadata() retorna uma matriz estruturada como a seguinte saída:

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"
    }
    ...
  }
}

O método getRequestId() simplifica a extração do ID da solicitação da matriz de metadados sem analisar manualmente as chaves da matriz.

As seções a seguir explicam como recuperar GoogleAdsResponseMetadata para cada tipo de método.

SearchStream

Para receber um objeto GoogleAdsResponseMetadata para uma chamada de streaming, chame getResponseMetadata() no objeto stream depois de iterar sobre o 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() retorna um objeto GoogleAdsResponseMetadata.

Métodos de pesquisa e mutação

Para receber um objeto GoogleAdsResponseMetadata para chamadas unárias, chame getResponseMetadata() no objeto cliente de serviço:

// 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() quanto $googleAdsServiceClient->getResponseMetadata() retornam um objeto GoogleAdsResponseMetadata.