Библиотека 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 .