レスポンスのメタデータ

PHP クライアント ライブラリは、デフォルトでリクエスト ID などのレスポンス メタデータをログに記録します。また、オプション パラメータ withResponseMetadata を true に設定してクライアント サービス メソッドを呼び出すときに、レスポンス メタデータをプログラムで取得することもできます。

クライアント サービス メソッドを呼び出した後、呼び出すメソッドに応じて、関連するオブジェクト(サービス クライアントやストリームなど)から GoogleAdsResponseMetadata インスタンスを取得できます。このオブジェクトは、それぞれ API 呼び出しの完全なレスポンス メタデータ配列とリクエスト ID を返す getMetadata() と getRequestId() を提供します。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() メソッドを使用すると、配列キーを手動で解析することなく、メタデータ配列からリクエスト ID を簡単に抽出できます。

以降のセクションでは、各メソッドタイプで GoogleAdsResponseMetadata を取得する方法について説明します。

SearchStream

ストリーミング呼び出しの GoogleAdsResponseMetadata オブジェクトを取得するには、ストリームを反復処理した後、stream オブジェクトで 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 オブジェクトを返します。