In der PHP-Clientbibliothek werden die Antwortmetadaten, einschließlich einer Anfrage-ID, standardmäßig protokolliert. Alternativ können Sie die Antwortmetadaten programmatisch abrufen, wenn Sie Clientdienstmethoden aufrufen. Setzen Sie dazu den optionalen Parameter withResponseMetadata auf true.
Nachdem Sie Clientdienstmethoden aufgerufen haben, können Sie je nach aufgerufener Methode eine GoogleAdsResponseMetadata-Instanz aus dem relevanten Objekt (z. B. einem Dienstclient oder einem Stream) abrufen.
Dieses Objekt stellt getMetadata() und getRequestId() bereit, die das vollständige Antwortmetadaten-Array bzw. die Anfrage-ID des API-Aufrufs zurückgeben. Die Methode getMetadata() gibt ein Array zurück, das wie die folgende Ausgabe strukturiert ist:
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"
}
...
}
}
Die Methode getRequestId() vereinfacht das Extrahieren der Anfrage-ID aus dem Metadaten-Array, ohne dass die Array-Schlüssel manuell geparst werden müssen.
In den folgenden Abschnitten wird erläutert, wie Sie GoogleAdsResponseMetadata für jeden Methodentyp abrufen.
SearchStream
Wenn Sie ein GoogleAdsResponseMetadata-Objekt für einen Streamingaufruf abrufen möchten, rufen Sie getResponseMetadata() für das stream-Objekt auf, nachdem Sie den Stream durchlaufen haben:
$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() gibt ein GoogleAdsResponseMetadata-Objekt zurück.
Such- und Änderungsmethoden
Wenn Sie ein GoogleAdsResponseMetadata-Objekt für unäre Aufrufe abrufen möchten, rufen Sie getResponseMetadata() für das Dienstclientobjekt auf:
// 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;
Sowohl $campaignServiceClient->getResponseMetadata() als auch $googleAdsServiceClient->getResponseMetadata() geben ein GoogleAdsResponseMetadata-Objekt zurück.