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

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

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

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

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

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

SearchStream

Чтобы получить объект GoogleAdsResponseMetadata для вызова потоковой передачи, вызовите getResponseMetadata() для объекта 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() возвращает объект 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.