Metadane odpowiedzi

Biblioteka klienta PHP domyślnie rejestruje metadane odpowiedzi, w tym identyfikator żądania. Możesz też uzyskać metadane odpowiedzi automatycznie podczas wywoływania metod usługi klienta, ustawiając opcjonalny parametr withResponseMetadata na true.

Po wywołaniu metod usługi klienta możesz uzyskać instancję GoogleAdsResponseMetadata z odpowiedniego obiektu (np. klienta usługi lub strumienia) w zależności od wywołanej metody. Ten obiekt udostępnia metody getMetadata() i getRequestId(), które zwracają odpowiednio pełną tablicę metadanych odpowiedzi i identyfikator żądania wywołania interfejsu API. Metoda getMetadata() zwraca tablicę o strukturze podobnej do tych danych wyjściowych:

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

Metoda getRequestId() upraszcza wyodrębnianie identyfikatora żądania z tablicy metadanych bez konieczności ręcznego analizowania kluczy tablicy.

W sekcjach poniżej znajdziesz informacje o tym, jak pobrać GoogleAdsResponseMetadata dla poszczególnych typów metod.

SearchStream

Aby uzyskać obiekt GoogleAdsResponseMetadata dla wywołania strumieniowego, wywołaj getResponseMetadata() na obiekcie stream po iteracji strumienia:

$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() zwraca obiekt GoogleAdsResponseMetadata.

Metody wyszukiwania i modyfikowania

Aby uzyskać obiekt GoogleAdsResponseMetadata dla wywołań jednoargumentowych, wywołaj getResponseMetadata() na obiekcie klienta usługi:

// 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;

Zarówno $campaignServiceClient->getResponseMetadata(), jak i $googleAdsServiceClient->getResponseMetadata() zwracają obiekt GoogleAdsResponseMetadata.