Метаданные ответа

Библиотека PHP-клиента по умолчанию регистрирует метаданные ответа, включая идентификатор запроса. В качестве альтернативы, вы можете получить метаданные ответа программно при вызове методов клиентской службы, установив необязательный параметр withResponseMetadata в true .

После вызова методов клиентского сервиса вы можете получить экземпляр GoogleAdsResponseMetadata из соответствующего объекта (например, клиентского сервиса или потока) в зависимости от вызываемого метода. Этот объект предоставляет getMetadata() и getRequestId() , которые возвращают полный массив метаданных ответа и идентификатор запроса API-вызова соответственно. Метод getMetadata() возвращает массив, имеющий следующую структуру:

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

Метод getRequestId() упрощает извлечение идентификатора запроса из массива метаданных без необходимости вручную анализировать ключи массива.

В следующих разделах объясняется, как получить метаданные GoogleAdsResponseMetadata для каждого типа метода.

SearchStream

Чтобы получить объект GoogleAdsResponseMetadata для потокового вызова, вызовите метод getResponseMetadata() для объекта потока после итерации по потоку:

$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() возвращает объект ` GoogleAdsResponseMetadata .

Методы поиска и мутации

Для получения объекта GoogleAdsResponseMetadata при унарных вызовах вызовите метод getResponseMetadata() для объекта клиента сервиса :

// 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;

И $campaignServiceClient->getResponseMetadata() , и $googleAdsServiceClient->getResponseMetadata() возвращают объект GoogleAdsResponseMetadata .