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, indem Sie den optionalen Parameter withResponseMetadata auf true setzen.
Nachdem Sie Clientdienstmethoden aufgerufen haben, können Sie je nach aufgerufener Methode eine GoogleAdsResponseMetadata-Instanz vom entsprechenden Objekt (z. B. einem Dienstclient oder einem Stream) abrufen.
Dieses Objekt stellt getMetadata() und getRequestId() bereit, die das vollständige Array mit Antwortmetadaten 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\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"
}
...
}
}
Die getRequestId()-Methode vereinfacht das Extrahieren der Anfrage-ID aus dem Metadaten-Array, ohne dass die Arrayschlüssel manuell geparst werden müssen.
In den folgenden Abschnitten wird beschrieben, 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 Mutationsmethoden
Wenn Sie ein GoogleAdsResponseMetadata-Objekt für unäre Aufrufe abrufen möchten, rufen Sie getResponseMetadata() für das Service-Client-Objekt 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.