根據預設,PHP 用戶端程式庫會記錄回應中繼資料,包括要求 ID。或者,您也可以在呼叫用戶端服務方法時,將選用參數 withResponseMetadata
設為 true
,以程式設計方式取得回應中繼資料。
呼叫用戶端服務方法後,您可以根據所呼叫的方法,從相關物件 (例如服務用戶端或串流) 取得 GoogleAdsResponseMetadata
。這個物件包含 getMetadata()
和 getRequestId()
,分別會傳回回應中繼資料和 API 呼叫的要求 ID。getMetadata()
方法會傳回類似下列的陣列:
object(Google\Ads\GoogleAds\Lib\V19\GoogleAdsResponseMetadata)#51 (1) {
["metadata":"Google\Ads\GoogleAds\Lib\V19\GoogleAdsResponseMetadata":private]=>
array(17) {
["content-disposition"]=>
array(1) {
[0]=>
string(10) "attachment"
}
["request-id"]=>
array(1) {
[0]=>
string(22) "REQUEST_ID"
}
...
}
}
getRequestId()
方法可簡化從中繼資料陣列中擷取要求 ID 的程序,省去手動剖析的麻煩。
以下各節將說明如何擷取各個方法的 GoogleAdsResponseMetadata
。
SearchStream
如要取得 GoogleAdsResponseMetadata
物件,請在 stream 物件上呼叫 getResponseMetadata()
:
$stream = $googleAdsServiceClient->searchStream(
SearchGoogleAdsStreamRequest::build($customerId, $query),
['withResponseMetadata' => true]
);
// Prints the request ID.
print $stream->getResponseMetadata()->getRequestId() . PHP_EOL;
$stream->getResponseMetadata()
是 GoogleAdsResponseMetadata
的物件。
搜尋和其他變異方法
如要取得 GoogleAdsResponseMetadata
的物件,請在 client 物件上呼叫 getResponseMetadata()
:
// Retrieves objects.
$response = $googleAdsServiceClient->search(
SearchGoogleAdsRequest::build($customerId, $query),
['withResponseMetadata' => true]
);
// Prints the request ID.
print $googleAdsServiceClient->getResponseMetadata()->getRequestId() . PHP_EOL;
// Mutates campaigns.
$response = $campaignServiceClient->mutateCampaigns(
MutateCampaignsRequest::build($customerId, $campaignOperations),
['withResponseMetadata' => true]
);
// Prints the request ID.
print $campaignServiceClient->getResponseMetadata()->getRequestId() . PHP_EOL;
$campaignServiceClient->getResponseMetadata()
和 $googleAdsServiceClient->getResponseMetadata()
是 GoogleAdsResponseMetadata
的物件。